Yinhang Liu | 286d04b | 2017-02-22 09:51:21 +0800 | [diff] [blame] | 1 | ## libXCam |
| 2 | |
| 3 | Copyright (C) 2014-2017 Intel Corporation |
| 4 | |
| 5 | libxcam core source code under the terms of Apache License, Version 2.0 |
| 6 | |
| 7 | #### Description: |
Yinhang Liu | 024a234 | 2017-02-27 11:01:17 +0800 | [diff] [blame] | 8 | libXCam is a project for extended camera features and focus on image |
Yinhang Liu | 286d04b | 2017-02-22 09:51:21 +0800 | [diff] [blame] | 9 | quality improvement and video analysis. There are lots features supported |
| 10 | in image pre-processing, image post-processing and smart analysis. This |
| 11 | library makes GPU/CPU/ISP working together to improve image quality. |
| 12 | OpenCL is used to improve performance in different platforms. |
| 13 | |
| 14 | #### Features: |
| 15 | * Image processing features. |
Yinhang Liu | 286d04b | 2017-02-22 09:51:21 +0800 | [diff] [blame] | 16 | - Advanced features |
Wind Yuan | a7fe91e | 2017-07-10 11:15:08 -0400 | [diff] [blame] | 17 | - 360 Image stiching: generate 360 degree panorama photography by |
| 18 | stitching multiple neighbor fisheye images. |
| 19 | - Digital Video Stabilization: |
| 20 | - OpenCV feature-matched based video stabilization. |
| 21 | - gyroscope 3-DoF (orientation) based video stabilization. |
| 22 | - Blender: multi-band blender. |
| 23 | - Noise reduction. |
| 24 | - adaptive NR based on wavelet-haar and Bayersian shrinkage. |
| 25 | - 3D-NR with inter-block and intra-block reference. |
| 26 | - wavelet-hat NR (obsolete). |
| 27 | - Wide dynamic range (WDR). |
| 28 | - histogram adjustment tone-mapping. |
| 29 | - gaussian-based tone-mapping (obsolete). |
| 30 | - Fog removal: retinex and dark channel prior algorithm. |
| 31 | - dark channel prior algorithm based defog. |
| 32 | - multi-scale retinex based defog (obsolete). |
| 33 | - Basic pipeline from bayer to YUV/RGB format. |
| 34 | - Gamma correction, MACC, color space, demosaicing, simple bilateral |
| 35 | noise reduction, edge enhancement and temporal noise reduction. |
| 36 | - 3A features. |
| 37 | - Auto whitebalance, auto exposure, auto focus, black level correction, |
| 38 | color correction, 3a-statistics calculation. |
Yinhang Liu | 286d04b | 2017-02-22 09:51:21 +0800 | [diff] [blame] | 39 | * Support 3rd party 3A lib which can be loaded dynamically. |
Wind Yuan | a7fe91e | 2017-07-10 11:15:08 -0400 | [diff] [blame] | 40 | - hybrid 3a plugin. |
| 41 | * Support 3a analysis tuning framework for different features. |
| 42 | * Support smart analysis framework. |
| 43 | - Face detection interface/plugin. |
| 44 | * Enable gstreamer plugin. |
Yinhang Liu | 286d04b | 2017-02-22 09:51:21 +0800 | [diff] [blame] | 45 | - xcamsrc, capture from usb/isp camera, process 3a/basic/advanced features. |
| 46 | - xcamfilter, improve image quality by advanced features and smart analysis. |
| 47 | |
| 48 | #### Prerequisite: |
| 49 | * install gcc/g++, automake, autoconf, libtool, gawk, pkg-config |
| 50 | * Linux kernel > 3.10 |
| 51 | * install libdrm-dev |
| 52 | * install ocl-icd-dev, ocl-icd-opencl-dev |
| 53 | * If --enable-libcl, need compile ocl driver <https://www.freedesktop.org/wiki/Software/Beignet/> |
| 54 | * If --enable-opencv, need compile opencv <http://opencv.org> (or: <https://github.com/opencv/opencv/wiki>) |
| 55 | * If --enable-gst, need install libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev |
| 56 | * If --enable-aiq, need get ia_imaging lib which we don't support. |
| 57 | |
| 58 | #### Building and installing: |
| 59 | * Environment variable settings<BR> |
Yinhang Liu | 024a234 | 2017-02-27 11:01:17 +0800 | [diff] [blame] | 60 | For different --prefix options, the environment variables may be different. Please set the environment variable according to the actual situation.<BR> |
Yinhang Liu | 286d04b | 2017-02-22 09:51:21 +0800 | [diff] [blame] | 61 | --prefix=/usr/local: |
| 62 | |
| 63 | export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH |
| 64 | export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0:$GST_PLUGIN_PATH |
| 65 | |
| 66 | --prefix=/usr: |
| 67 | |
| 68 | export LD_LIBRARY_PATH=/usr/lib/:$LD_LIBRARY_PATH |
| 69 | export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0:$GST_PLUGIN_PATH |
| 70 | |
| 71 | * $ ./autogen.sh [options] |
| 72 | |
| 73 | --prefix=PREFIX install architecture-independent files in PREFIX [default=/usr/local] |
| 74 | --enable-debug enable debug, [default=no] |
| 75 | --enable-profiling enable profiling, [default=no] |
| 76 | --enable-drm enable drm buffer, [default=yes] |
| 77 | --enable-aiq enable Aiq 3A algorithm build, [default=no] |
| 78 | --enable-gst enable gstreamer plugin build, [default=no] |
| 79 | --enable-libcl enable libcl image processor, [default=yes] |
| 80 | --enable-opencv enable opencv library, [default=no] |
| 81 | --enable-docs build Doxygen documentation [default=no] |
| 82 | --enable-3alib enable 3A lib build, [default=no] |
| 83 | --enable-smartlib enable smart analysis lib build, [default=no] |
| 84 | |
| 85 | For example: |
| 86 | |
| 87 | $ ./autogen.sh --prefix=/usr --enable-3alib --enable-aiq --enable-gst --enable-drm \ |
| 88 | --enable-libcl --enable-opencv --enable-profiling --enable-smartlib |
| 89 | |
| 90 | * $ make |
| 91 | * $ sudo make install |
| 92 | |
| 93 | #### Testing: |
| 94 | * For detailed test cases, please refer to:<BR> |
| 95 | <https://github.com/01org/libxcam/wiki/Tests> |
| 96 | |
| 97 | #### Reporting Bugs: |
| 98 | * Bugs or suggestions can be reported on the github issues page:<BR> |
| 99 | <https://github.com/01org/libxcam/issues> |