cl-stitch: support 4k resolution mode

 * tune 4k parameters for video stream
 * add debug information to make it easier for qualiy tuning
 * support framerate options in test-image-stitching via OpenCV codec
 * gst-launch-1.0 cmdline:
   $ gst-launch-1.0 filesrc location=input.nv12 \
     ! videoparse format=nv12 width=4096 height=2048 framerate=24/1 \
     ! xcamfilter copy-mode=1 enable-stitch=true stitch-scale=local \
     stitch-fisheye-map=true stitch-fm-ocl=true stitch-res-mode=4k \
     ! video/x-raw, foramt=NV12, width=4096, height=2048 \
     ! queue ! vaapih264enc rate-control=cbr \
     ! tcpclientsink host="host-ip" port=3000 blocksize=1024000 sync=false
 * test-image-stitching cmdline:
   $ test-image-stitching --input input.nv12 --output output.mp4 \
     --input-w 4096 --input-h 2048 --output-w 4096 --output-h 2048 \
     --scale-mode local --enable-fisheyemap --fm-ocl true \
     --res-mode 4k --framerate 24.0 --save true

Signed-off-by: Wind Yuan <[email protected]>
12 files changed
tree: e7d032b560b34b1138af20366dfae831c5eb35bd
  1. capi/
  2. cl_kernel/
  3. clx_bin/
  4. clx_kernel/
  5. doc/
  6. ext/
  7. modules/
  8. pkgconfig/
  9. plugins/
  10. tests/
  11. tools/
  12. wrapper/
  13. xcore/
  14. .gitignore
  15. .gitmodules
  16. AUTHORS
  17. autogen.sh
  18. ChangeLog
  19. code_style.sh
  20. configure.ac
  21. COPYING
  22. LICENSE
  23. Makefile.am
  24. NEWS
  25. NOTICE
  26. README.md
README.md

libXCam

Copyright (C) 2014-2017 Intel Corporation

libxcam core source code under the terms of Apache License, Version 2.0

Description:

libXCam is a project for extended camera features and focus on image quality improvement and video analysis. There are lots features supported in image pre-processing, image post-processing and smart analysis. This library makes GPU/CPU/ISP working together to improve image quality. OpenCL is used to improve performance in different platforms.

Features:

  • Image processing features.
  • Basic features Gamma correction, MACC, color space, demosaicing, noise reduction, edge enhancement. - Advanced features
    • Noise reduction: simple bilateral NR, temporal NR, wavelet NR, adaptive NR with Bayesian shrinkage, 3D-NR.
    • WDR: gaussian-based tone-mapping, histogram adjustment tone-mapping
    • Fog removal: retinex and dark channel prior algorithm.
    • Blender: multi-band blender and fisheye geometry map correction.
    • Image stiching: feature detect and match to generate 360 degree panorama photography by stitching multiple neighbor images
    • DVS: digital video stabilization based on feature detect, optical flow and motion model estimation.
    • 3A features Auto whitebalance, auto exposure, auto focus, black level correction, color correction, 3a-statistics calculation.
  • Capture features support memory type of mmap and dma buffer.
  • Support 3rd party 3A lib which can be loaded dynamically.
    • hybrid 3a plugin
  • Image processing based on both ISP and Open CL.
  • Support 3a analysis tuning framework for different features
  • Support smart analysis framework
    • Face detection interface/plugin
  • Support as gstreamer plugin
    • xcamsrc, capture from usb/isp camera, process 3a/basic/advanced features.
    • xcamfilter, improve image quality by advanced features and smart analysis.

Prerequisite:

Building and installing:

  • Environment variable settings
    For different --prefix options, the environment variables may be different. Please set the environment variable according to the actual situation.
    --prefix=/usr/local:

    export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
    export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0:$GST_PLUGIN_PATH
    

    --prefix=/usr:

    export LD_LIBRARY_PATH=/usr/lib/:$LD_LIBRARY_PATH
    export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0:$GST_PLUGIN_PATH
    
  • $ ./autogen.sh [options]

    --prefix=PREFIX         install architecture-independent files in PREFIX [default=/usr/local]
    --enable-debug          enable debug, [default=no]
    --enable-profiling      enable profiling, [default=no]
    --enable-drm            enable drm buffer, [default=yes]
    --enable-aiq            enable Aiq 3A algorithm build, [default=no]
    --enable-gst            enable gstreamer plugin build, [default=no]
    --enable-libcl          enable libcl image processor, [default=yes]
    --enable-opencv         enable opencv library, [default=no]
    --enable-docs           build Doxygen documentation [default=no]
    --enable-3alib          enable 3A lib build, [default=no]
    --enable-smartlib       enable smart analysis lib build, [default=no]
    

    For example:

    $ ./autogen.sh --prefix=/usr --enable-3alib --enable-aiq --enable-gst --enable-drm \
      --enable-libcl --enable-opencv --enable-profiling --enable-smartlib
    
  • $ make

  • $ sudo make install

Testing:

Reporting Bugs: