GitHub - JokerEyeAdas/HDR-ISP: An ISP Pipeline For HDR CMOS Image Sensor (original) (raw)
Image Signal Process For HDR CMOS Image Sensor
Project Description
An ISP pipeline written in C++ for HDR cameras
- The ISP modules are written in C style
- Without other library dependencies
- Can be deployed various embedded platforms
- Customize your pipeline through json configuration
The Isp support run on GPU(on branch gpu_dev)
Default Pipeline
Support ISP Module Lists
- Raw Domain
- MipiUnPack: mipi raw data unpack to raw16
- DePwl: decode the pwl curve
- Dpc: dynamic pixel correct
- Lsc: lens shding correct
- Blc: black level correct
- Rns: raw noise filter
- WbGain: white balance gain
- Demoasic: change raw to rgb
- RGB Domain
- Ltm: local tone mapping
- RgbGamma: rgb gamma curve
- Ccm: color correct matrix
- Rgb2Yuv: rgb domain to yuv domain
- YUV Domain
- YGamma: gray gamma curve
- Contrast: gray contrast adjust
- Sharpen: gray usm sharpen
- Cns: chrome noise filter
- Saturation: chrome saturation
- Yuv2Rgb: yuv domain to rgb domain
How To Build and Run
Linux
Develop Env :
#dependencies install(cmake and opencv) sudo apt update sudo apt install cmake
Build
git clone https://github.com/JokerEyeAdas/HDR-ISP cd HDR-ISP/ mkdir build cmake .. make -j12
Windows
Develop Env (x64):
- vs code
- cmake
- vs2019 c++ gen tool
Build
git clone https://github.com/JokerEyeAdas/HDR-ISP code HDR-ISP #cmake choose Debug or Release #compiler choose xxx-amd64 #build all
How To Run
cd build #cp cfgs and data cp -r ../data/ ./ cp -r ../cfgs/ ./ #run isp ./HDR_ISP ./cfgs/isp_config_cannon.json
How To Tunning Params
By changing Json Config
example1, change sensor params:
"raw_file": "./data/connan_raw14.raw",
"out_file_path": "./",
"info": {
"sensor_name": "cannon",
"cfa": "RGGB",
"data_type": "RAW16",
"bpp": 16,
"max_bit": 14,
"width": 6080,
"height": 4044,
"mipi_packed": 0
},example2, change rgb gamma params:
"rgbgamma": { "enable": true, "in_bit": 10, "out_bit": 8, "gammalut_nums": 11, "gammalut": [ 0, 0.3504950718773984, 0.48243595264750255, 0.57750428843709, 0.6596458942714417, 0.731034378464739, 0.7925580792857235, 0.8509817015104557, 0.9029435754464383, 0.9534255851019492, 1.0 ] }
Result
ISP Result
| Notes | Image |
|---|---|
| Raw | ![]() |
| ISP Result(Ours) | ![]() |
| FastOpenISP Result | ![]() |
Detail Compare
| ISP | Image1 | Image2 | Notes |
|---|---|---|---|
| Ours | ![]() |
![]() |
Detail and boundaries is clear |
| Fast Open Isp | ![]() |
![]() |
Color banding and detail lost |
Follow-Up
- Support Dpc, Rns, Cns and other ISP modules;
- Write ISP tunning GUI tools.
Project Support
- Thanks for your support, we hope that my project can help your work
Reference Repo
Thanks for the following code repository!
| Index | Repo | Language | Notes |
|---|---|---|---|
| 0 | OpenISP | Python | image signal process in C style |
| 1 | fast-openIsp | Python | open isp speed up verison in python |
| 2 | ISP Lab | C++ | Isp realized by c++ |
| 3 | xk-ISP | C++ | C++ ISP For HLS on FPGA |
Follow Me
Zhihu:EYES OF ADAS | Blog:EYES OF ADAS | WeChat:
Eyes of Adas Copyright Reserved @2023, No commercial use without permission










