Fast Open Image Signal Processor (fast-openISP)

December 23, 2021 ยท View on GitHub

As told by its name, fast-openISP is a faster (and bugs-fixed) re-implementation of the openISP project.

Compared to C-style code in the official openISP repo, fast-openISP uses pure matrix implementations based on Numpy, and increases processing speed over 300 times.

Here is the running time in my Ryzen 7 1700 8-core 3.00GHz machine with the 1920x1080 input Bayer array:

ModuleopenISPfast-openISP
DPC20.57s0.29s
BLC11.75s0.02s
AAF16.87s0.08s
AWB7.54s0.02s
CNF73.99s0.25s
CFA40.71s0.20s
CCM56.85s0.06s
GAC25.71s0.07s
CSC60.32s0.06s
NLM1600.95s5.37s
BNF801.24s0.75s
CEH*-0.14s
EEH68.60s0.24s
FCS25.07s0.08s
HSC56.34s0.07s
BBC27.92s0.03s
End-to-end pipeline2894.41s7.82s

* CEH module is not included in the official openISP pipeline.

Usage

Clone this repo and run

python demo.py

The ISP outputs will be saved to ./output directory.

The only required package for pipeline execution is numpy. opencv-python and scikit-image are required only for data IO.

Algorithms

All modules in fast-openISP reproduce processing algorithms in openISP, except for EEH and BCC modules. In addition, a CEH (contrast enhancement) module with CLAHE is added into the fast-openISP pipeline.

EEH (edge enhancement)

The official openISP uses an asymmetric kernel to extract edge map. In fast-openISP, however, we use the subtraction between the original and the gaussian filtered Y-channel as the edge estimation, which reduces the artifact when the enhancement gain is large.

BCC (brightness & contrast control)

The official openISP enhances the image contrast by pixel-wise enlarging the difference between pixel values and a constant integer (128). In fast-openISP, we use the median value of the whole frame instead of a constant.

Parameters

Tunable parameters in fast-openISP are differently named from those in openISP, but they are all self-explained, and no doubt you can easily tell the counterparts in two repos. All parameters are managed in a yaml in ./configs, one file per camera.

Demo

Bayer Input
CFA Interpolation
Color Correction
Gamma Correction
Non-local Means & Bilateral Filter
Contrast Enhancement
Edge Enhancement
Hue & Saturation Control
Brightness & Contrast Control

License

Copyright 2021 Qiu Jueqin.

Licensed under MIT.