How can I generate default DCC profile for TDA4/AM6xA ISP (VPAC)?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi everyone,
This is a FAQ for using the Default DCC profile generation script tool for TDA4/AM6xA ISP (VPAC).
The script tool generates a default DCC profile (a set of xml files and LUT text files) for your image sensor so that you can get correct color output of your camera in just a few minutes if your sensor driver is ready.
You may find the latest python script in this link below if you use old versions of SDK.
https://git.ti.com/cgit/processor-sdk/imaging/tree/tools/default_DCC_profile_gen?h=main
I have created a short video for using the tool -- Demo video in webex
/cfs-file/__key/communityserver-discussions-components-files/791/Python_5F00_scripts.mp4
Below is an outline of the basic steps.
1. The tool requires a simple configuration file for you to fill in your sensor information such as width, height, WDR mode, and companding knee points.
SENSOR_ID 390 PRJ_DIR ../imx390_output SENSOR_NAME imx390 SENSOR_DCC_NAME IMX390-UB953_D3 SENSOR_WIDTH 1936 SENSOR_HEIGHT 1096 # 0=RGGB; 1=GRBG; 2=GBRG; 3=BGGR, 4=MONO COLOR_PATTERN 0 # sensor mode: 0 for linear (no decompanding), 1 for WDR (decompanding) WDR_MODE 1 # raw sensor image BIT_DEPTH: it may be 8, 10, or 12 for linear sensors; typically 12 for WDR mode because of companding BIT_DEPTH 12 # WDR BIT_DEPTH: WDR raw sensor image bitdepth after decompanding, typically 20 or 24 WDR_BIT_DEPTH 20 # WDR decompanding knee points (comma separated without spaces in between) WDR_KNEE_X 0,512,1408,2176,4095,65535 WDR_KNEE_Y 0,2048,16384,65536,1048063,1048063 # Sensor black level to subtract before decompanding (for linear sensors only and some Sony WDR sensors) BLACK_PRE 0 # Sensor black level to subtract after decompanding (for most WDR sensors and all linear sensors) BLACK_POST 0 # GAMMA value for compressing 20/24-bit WDR raw to 16-bit ISP internal # typically around 50 (0.5) for 24-bit WDR sensors and 70 (0.7) for 20-bit sensors GAMMA_PRE 70 # LSB location for H3A input bit range (from bit-H3A_INPUT_LSB to bit-H3A_INPUT_LSB+9) H3A_INPUT_LSB 2
[Update on 08/19/2024]
New configuration file format is available at git.ti.com for RGBIR 4x4 sensor support.
You may take a look at this X5B example for the latest one.
https://git.ti.com/cgit/processor-sdk/imaging/tree/tools/default_DCC_profile_gen/configs/X5B_properties.txt?h=main
SENSOR_ID 5 PRJ_DIR ../X5B_output SENSOR_NAME X5B SENSOR_DCC_NAME X5B SENSOR_WIDTH 2592 SENSOR_HEIGHT 1944 # 0=RGGB; 1=GRBG; 2=GBRG; 3=BGGR, 4=MONO, #10=RGGI, 11=GRIG, 12=BGGI, 13=GBIG, 14=GIRG, 15=IGGR, 16=GIBG, 17=IGGB COLOR_PATTERN 12 # sensor mode: 0 for linear (no decompanding), 1 for WDR (decompanding) WDR_MODE 0 # raw sensor image BIT_DEPTH: it may be 8, 10, or 12 for linear sensors; typically 12 for WDR mode because of companding BIT_DEPTH 10 # WDR BIT_DEPTH: WDR raw sensor image bitdepth after decompanding, typically 20 or 24 WDR_BIT_DEPTH 24 # WDR decompanding knee points (comma separated without spaces in between) WDR_KNEE_X 0,512,750,988,1226,1464,1702,1940,2178,2416,2654,2892,3130,3368,3606,4095 WDR_KNEE_Y 0,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,16777215 # Sensor black level to subtract before decompanding (for some Sony WDR sensors) # When PCID is on for RGBIR sensors, black level might be set to 0 BLACK_PRE 0 # Sensor black level to subtract after decompanding (for most WDR sensors and all linear sensors) # When PCID is on for RGBIR sensors, black level might be set to 0 BLACK_POST 0 # GAMMA value for compressing 20/24-bit WDR raw to 16-bit ISP internal # typically around 50 (0.5) for 24-bit WDR sensors and 70 (0.7) for 20-bit sensors GAMMA_PRE 50 # LSB location for H3A input bit range (from bit-H3A_INPUT_LSB to bit-H3A_INPUT_LSB+9) H3A_INPUT_LSB 0
2. Then, you may execute the tool as below (under "imaging/tool/default_DCC_profile_gen/scripts/") to generate the default DCC profile.
python ctt_def_xml_gen.py ../configs/imx390_properties.txt
3. Copy the default profile to your sensor driver folder (e.g., imaging/sensor_drv/imx390/_dcc_xmls/wdr/" and run the "generate_dcc.sh" script from there.
4. Recompile your SDK and build to your SD card.
5. Start the single-cam app on your EVM with your camera/sensor to preview the video output.
You should get proper looking color and good WDR effect.
This picture below is what I get while using the tool for the D3-IMX390 camera on TDA4 EVM.
6. Next steps are to fine tune the color and image quality (AE/AWB color etc.) with the DCC tuning tool.