12017/07/10: release libxcam version 1.0.0 2 * 360 video stitching performance and quality improvement. 3 - enable geometry map to improve performance. 4 - quality tuned on different resolutions (1080P and 4K). 5 - support CPU and OpenCL path in feature match. 6 - enable lens shading correction based on fisheye image. 7 8 * gyroscope-based video stabilization enabling. 9 - enable gyroscope 3-DoF (orientation) assist video stabilization. 10 - orientation (gyro) data should be measured by quaternion as the pose 11 of target frame reference to base frame 12 13 * CL framework refine. 14 - enable CL argument template instead of member variables in kernel. 15 - CL kernel support async mode. 16 - image handler take over input/output buffer management from image kernel. 17 18 * prepare libxcam debian package and fix most warnings. 19 202017/04/01: release libxcam version 0.9.0 21 * 360 video stitching improvement. 22 - remove sharp boundary in sphere mode by local/global area resize. 23 - tune algorithm parameters to preserve blinking. 24 - integrate 360 stitching pipeline into libxcam module. 25 - gst-xcam-filter supports 360 stitching case. 26 27 * export C APIs for each OpenCL feature. 28 - support stich/3d-nr/wavelet-nr/defog features by xcam handle. 29 - be designed for FFmpeg xcam video filter usage. 30 312016/12/30: release libxcam version 0.8.0 32 * Digital Video Stabilization (DVS) 33 - enable DVS smart analysis plugin. 34 - algorithms used in DVS (feature detect, optical flow, motion model estimation) are based on OpenCV. 35 - implement image warp perspective algorithm in CL kernel. 36 37 * Image stitching to create panorama photography 38 - implement fisheye calculation which map location to equirectangular. 39 - enable feature detection and match based on OpenCV optical flow algorithm. 40 - enable seam mask to improve the quality of blender. 41 42 * gstreamer plugin xcamfilter can co-work with xcamsrc 43 442016/09/30: release libxcam version 0.7.0 45 * 3D-NR quality and performance improvement. 46 - use image exposure parameters to adjust global denoise strength. 47 - calculate image local variation to adjust local denoise strength. 48 - optimize OCL kernel by shared local memory and sub-group to 49 improve performance. 50 51 * defog/dehaze quality improvement based on DCP(dark channel prior). 52 - enable dark channel prior to improve hazy image quality. 53 - fix image corruption in recover step. 54 - add lateral-range filter to smooth dark channel and remove 55 halo effect. 56 57 * enable multi-band blender for image stitching. 58 - based on gaussian and laplacian pyramid and blend images in each 59 band, then reconstruct stitching image from pyramid level. 60 - blender can smooth seams and prevent ghosting. 61 62 * enable geometry correction. 63 - map 2D image from src to dst image based on coordinate table which 64 is center aligned. 65 - prevent sawtooth edge by OCL sampler. 66 * gst-xcamfilter feature supports. 67 - xcamfilter can co-work with different camera source. 68 692016/07/29: release libxcam version 0.6.1 70* enable 3D noise reduction, performance stay tuned. 71 - suppress image noise in both temporal and spatial domain. 72 - the algorithm applies denoise filter based on pixel-block differences 73 in neighbor blocks and previous frames. 74 - the processed image is much more clean and preserves motion objects 75 edge in low-light conditions. 76 77 * support gst xcamfilter plugin which is independent from camera source. 78 - xcamfilter plugin can work with gstreamer source plugins, 79 e.g. videotestsrc/filesrc/v4l2src. 80 - xcamfilter features support defog/wireframe/waveletNR/3d-denoise. 81 - sink pad supports format NV12, src pad supports DMA buffer-sharing 82 for performace if links to HW plugin(encoder). 83 - wireframe/scaler/waveletNR moved to post image processor which can 84 co-work with isp processor(as pre-image processor) 85 862016/06/30: release libxcam version 0.6.0 87 * enable block-split version of histogram based WDR tone-mapping algorithm. 88 - divide image into several blocks and apply bidirectional log based 89 function on luminance to improve the contrast inside each block. 90 - apply weight function based on distance between target pixel and center 91 pixel of each neighbor block to smooth and eliminate block boundaries. 92 - apply weight function based on pixel intensity deviation between neighbor 93 blocks keep differentiation and weaken boundaries. 94 - image quality is improved and more details in both over-exposured and 95 under-exposured area can be shown clearly on screen. 96 97 * Bayesian wavelet shrinkage for adaptive noise filtering. 98 - enable adaptive noise filtering based on Bayesian shrinkage estimation 99 - estimate the image’s background noise level by analyzing. 100 wavelet coefficient. 101 - optimize the threshold T which minimizes the Bayesian risk, 102 i.e, the expected value of the mean square error. 103 104 * Haar wavelet tuning improvement. 105 - fine tuning the threshold statistic data for ultra-low light condition. 106 to prevent edge from over smoothing. 107 108 * face detection supports. 109 - enable face detection framework and support FD plugins. 110 - enable wire-frame to track faces. 111 112 * fog removal improvement based on Retinex algorithm. 113 - support multi-scale algorithm to reduce halo effects. 114 - tune parameters to keep brightness and clear edge. 115 - improve saturation based on chroma enhancement. 116 117 * image processing service framework. 118 - add pipe-manager to support smart-analysis and post image processor. 119 - separate major code into different modules, e.g. xcore/isp/ocl/3a. 120 - support NV12 stream as fake input instead of camera sensor. 121 1222016/03/28: release libxcam version 0.5.0 123 * enable new WDR tone mapping based on histogram adjustment. 124 - apply bidirectional log based function on luminance to improve 125 image contrast. 126 - transmit wide dynamic range image data to 8-bit color data by 127 novel histogram adjustment algorithm. 128 - details in both over-exposured and under-exposured area clearly 129 show up on screen. 130 * enable wavelet-based algorithm for noise reduction. 131 - decompose image into multiple-scales by wavelet transform with 132 low pass and high pass filters. 133 - perform soft threshold on smaller coefficients(high-pass) 134 to reduce noise. 135 - threshold should be suitably decided by tuned parameters. 136 - reconstruct image from scaled low-pass and high-pass images. 137 - enable Haar-wavelet and Hat-wavelet NR filters. 138 * enable fog removal feature based on retinex algorithm. 139 - base on retinex single-scale algorithm. 140 - scale down image for gaussian blur to improve performance. 141 - scale up blured image and amplify log differences with original 142 image. 143 * improve sharpness in normal light with extreme profile. 144 * support cl post processing with isp mode. 145 * support swap-buffer on nv12 format if only single plane need to 146 process. 147 1482015/12/30: release libxcam version 0.4.0 149 * improve performance on OCL pipeline. 150 - design new formats and pipeline to save memory IO. 151 - improve bayer noise reduction with bilateral filter. 152 - support edge enhancement into bayer pipe. 153 - make gpu/cpu working together for 3a-statistics calculation. 154 - move tonemapping kernel from RBG to bayer format. 155 * improve WDR-tonemapping algorithm for quality. 156 - utilize an new adaptive local tone mapping algorithm. 157 - provide the mapping between 16-bit wide dynamic range images to 158 8-bit images to have “nice looking”. 159 - preserve more information on luminance values of the scene 160 especially for high contrast images. 161 * tonemapping parameters calculated to increase the contrast between 162 high light and low light. 163 - tone mapping regularization parameters are calculated according 164 to the distribution of brightness histogram. 165 - the local adaptive parameter are calculated by weighting the 166 neighbor pixels with a Gaussian blur filter. 167 * add bayer raw video input to simulate camera sensor. 168 1692015/10/19: release libxcam version 0.3.0 170 * improved OCL pipeline on basic and advanced/extreme pipeline 171 - add new bayer noise-reduction into demosaic 172 - merged yuv-tnr into yuv-pipe kernel 173 - merged TNR-yuv and TNR-rgb together 174 * support WDR(wide dynamic range) feature 175 * add 3a analysis tuner framework for more features tunning, e.g TNR 176 * add hybrid 3a analysis framework 177 - support partial customized 3a algorith, e.g AWB/AE 178 * add smart analysis framework 179 - generate small scaled picture 180 - support customized to analyze small picture and feedback results 181 - support loading user-defined method on smart analysis 182 1832015/07/31: release libxcam version 0.2.1 184 * improved OCL pipeline on basic 3a image processing 185 - merged bayer kernels with blc, wb, gamma, demosaic and 3a stats. 186 - merged yuv kernerls with rgb2yuv color conversion and macc. 187 - support async framework as option on cl features 188 - support OCL buffer allocation which can choose tiling mode. 189 * support different AIQ versions. 190 * fix capture of dead-loop and sensor format setting. 191 1922015/07/02: release libxcam version 0.2.0 193 * add gstreamer plugin 'xcamsrc' for Linux media framework support 194 * support loading user-defined 3a algorithm lib dynamically 195 * support more manual 3a features on ISP, e.g multiple-ae-window, ae/awb speed... 196 * add OpenCL pipeline for 3a image processing 197 - bayer format features, black level correction, defect pixel 198 correction, whitebalance, 3a statistics calculation, 199 demosaic, gamma correction, HDR(high dynamic range) 200 - RGBA format features, bilateral NR(noise reduction), simple NR, 201 temporal NR, macc, color correction 202 - YUV format features, temporal NR, edge enhancement, color conversion 203 - support any user-defined 3a algorithms(e.g AIQ) 204 * rich test cases, e.g. test-device-manager, test-cl-image 205 2062015/01/15: Initial xcam version 0.1 207