Skip to content
Wind Yuan edited this page Oct 19, 2018 · 61 revisions

Introduction

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

libXCam code is accepted by Google and merged into AOSP (Android Open Source Project) https://android.googlesource.com/platform/external/libxcam/ . Android EVS (Exterior View System) automotive features of surround view integration with libXCam stitching is WIP.

Features:

  • Image processing features.

    • Advanced features.
      • Automotive surround view(360) stitching (OpenCL/CPU/GLES).
        • support bowl view mode 3D-stitching by 4 video input.
        • enable geometry remap for WFoV camera calibration(intrinsic and extrinsic data).
        • quality and performance improved (OpenCL/CPU/GLES).
        • CPU version upstreamed into AOSP for automotive surround view.
      • 360 video stitching (Equirectangular mode via OpenCL).
        • support 2-fisheye (>180 degree) video stream stitching.
        • performance and quality improved.
      • Digital video stabilization.
        • OpenCV feature-match homograph based video stabilization.
        • gyroscope 3-DoF (orientation) based video stabilization.
      • Multi-band Blender (OpenCL/CPU/GLES).
      • Noise reduction (OpenCL).
        • adaptive NR based on wavelet with Bayersian shrinkage.
        • 3D-NR with inter-block and intra-block reference.
      • Wide dynamic range (WDR) (OpenCL).
        • histogram adjustment local tone-mapping.
        • gaussian-based tone-mapping (obsolete).
      • Fog removal (OpenCL).
        • dark channel prior based defog.
        • retinex based. (obsolete)
    • Basic features (OpenCL, AtomISP).
      • Gamma correction, MACC, color space, demosaicing, simple bilateral noise reduction, edge enhancement and temporal noise reduction.
    • 3A features.
      • Auto whitebalance, auto exposure, auto focus, black level correction, color correction, 3a-statistics calculation.
  • Support DMA buffer-sharing from capture, image processing to HW encoder.

  • Support 3rd party 3A lib which can be loaded dynamically. (hybrid 3a plugin)

  • Support smart analysis framework.

  • Enable gstreamer plugin.

    • xcamsrc; capture from usb/isp camera, process 3a/basic/advanced features.
    • xcamfilter; improve image quality by advanced features and smart analysis.
  • Enable ffmpeg-xcam modules and webRTC VR stitching (WIP)

GSoC (Google Summer of Code) sponsored students work

Mailing List

To register libxcam public maillist, please go to: https://lists.01.org/mailman/listinfo/libxcam
To post a message to all the list members, please send email to libxcam@lists.01.org.

Report Bugs

Framework Overview

xcam framework

LibXCam OCL Image Processing Pipeline

xcam ocl pipeline

LibXCam IPU/GPU Dataflow Diagram

xcam dataflow