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)
- 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]-
- 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 inbuild.xml
.
- To clean:
ndk-build clean
orant clean
- To build the JNI:
ndk-build
or useant 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
MacbookPro : 1920x1080 12bits : 5.3ms / frame
: 4016x3016 12bits : 24.4ms / frame
Animal heroes. They were instrumental in the future of human space fligh.
Chewbacca is a transcription of the Russian word Собака (pronounced as Sobaka) which means Dog.
The Grand Father of Android.