Skip to content

ab2005/Belka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fast Camera Raw Image Processing Pipeline for Mobile

This project is a C++/OpenCL implementation of high-performance camera ISP:

  • bad pixels
  • black level adjust
  • green balancing
  • white balancing
  • noise reduction
  • demosaicing
  • color correction matrix
  • gamma encoding
  • yuv conversion

The code is checked against GNU C++ compiler on desktop and Android toolchain. The test harnes supports only RAW input and BMP output. The OpenCL kernels are in the kernels folder. Qualcomm OpenCl library (Linux/Android) is in folder: libs.

The pipeline performs at ~0.4 Gpix/sec (200fps of 1920x1080 / 37fps of 4016x3016)

Run on MacOSX

  • Download test1 (~1GB): 13.4 sec (404 frames) 1920x1080, 10bit, RCCB sensor or test2 (~138MB): ~0.3 sec (10 frames) 4016X3016, 12bit, RCCB sensor
  • unzip
  • run ./run.sh or run with controls ./controls.sh
  • to apply noise reduction use [cmd]+ and [cmd]-

Run on Android

OpenCL on Android

  • Set ANDROID_NDK to the NDK location on your computer: export ANDROID_NDK=~/<project>/android-ndk-r9
  • Set ANDROID_HOME to the SDK location: export ANDROID_HOME=~/<project>/adt-bundle-linux-x86_64-20130917/sdk
  • Change AndroidManifest.xml to target the SDK you have, such as: android:targetSdkVersion="18"
  • Change project.properties accordingly: target=android-18
  • Do not use android update project --name Rccb --path . --target 1 because it kills some existing targets of the project in build.xml.

Buiding and deploying


  • To clean: ndk-build clean or ant clean
  • To build the JNI: ndk-build or use ant jni.
  • To install the native part of the application:make adb-install
  • To do everythig at once: ant jni debug install run
  • To run the OpenCL code on the platform and get the image back:make adb-run

Benchmarks

MacbookPro : 1920x1080 12bits : 5.3ms / frame
           : 4016x3016 12bits : 24.4ms / frame 

Noise reduction

Original Denoised Original Denoised

Links

Belka and Strelka

Belka and Strelka

Animal heroes. They were instrumental in the future of human space fligh.

Chewbacca

Chewbacca

Chewbacca is a transcription of the Russian word Собака (pronounced as Sobaka) which means Dog.

R2-D2

Android

The Grand Father of Android.

About

Fast Camera Image Processing Pipeline for Mobile

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published