Home | History | Annotate | Download | only in libxcam
      1 2017/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 
     20 2017/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 
     31 2016/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 
     44 2016/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 
     69 2016/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 
     86 2016/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 images 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 
    122 2016/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 
    148 2015/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 
    169 2015/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 
    183 2015/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 
    192 2015/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 
    206 2015/01/15: Initial xcam version 0.1
    207