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.

PROCESSOR-SDK-J721E: dcc tool: wdr and Gamma for RAW10 images

Part Number: PROCESSOR-SDK-J721E

Tool/software:

Hello Ti experts,

I am working on DCC tuning with the IMX462 Arducam camera (https://www.arducam.com/2mp-imx462-color-ultra-low-light-starvis-camera-module-with-141h-wide-angle-m12-lens-for-raspberry-pi.html). I successfully did the AWB, AE, EE, and colour correction, and the image quality improved a bit, even though the AWB is complicated to do correctly. 

But as far as the IMX462 is a low-light sensor with amazing capabilities, I wanted to push the borders, and try to add Gamma correction and WDR+CFA, but in the tool, this is not available for RAW10, only RAW12+. I am using the DCC tool build version 3.1  . Maybe that is the problem?

The reason I need WDR is that in case of a bright object in the image (for example, a window in our classroom or a light bulb), the object itself and area around it influence the image quality and brightness a lot, the image becomes dark and with a big white blob around the window. If there is any advice on how to fix that without WDR, I would be glad!

Also, maybe you can recommend a lightbox that can be used for AWB calibration, because it is really hard to find one with a controllable light in the specified range.

Regards,
Mykola 

  • Hi Mykola,

    try to add Gamma correction

    I suppose you would like to adjust gamma curve.
    It should be supported by the latest version of tuning tool V3.2.

    and WDR+CFA, but in the tool, this is not available for RAW10, only RAW12+

    I am not sure what you mean exactly and I am not familiar with IMX462.

    What Is the WDR output format of your sensor?
    Is it multiple RAW10 frames for a single image output?

  • It should be supported by the latest version of tuning tool V3.2.

    it is already supported by the V3.1, but it expects RAW12 image. My camera can give only RAW10, so how am I supposed to use the tool to adjust the Gamma curve?

    I am not sure what you mean exactly and I am not familiar with IMX462.

    I mean that I need to execute the plugin called CFAI+WDR in TI DCC tool, because I hope to fix the error described in my initial message. If there are any other suggestions on how I can achieve that without the CFAI+WDR, I would be glad to find know, because for now I am not capable of receiving an image of the quality as on RPI3, it is much worse, despite all DCC plugins I tried.

    What Is the WDR output format of your sensor?

    As I already specified in my initial message, my camera output is RAW 10. To be more specific, Bayer RGGB10.
    My problem is that the WDR curve is available only starting from 12-bit - should I consider getting a new DCC tool to fix that? 

    Is it multiple RAW10 frames for a single image output?

    a single image output.

    Regards,
    Mykola 

  • Hi Mykola,

    it is already supported by the V3.1, but it expects RAW12 image. My camera can give only RAW10, so how am I supposed to use the tool to adjust the Gamma curve?

    The input image for gamma plugin should be a RGB image which is only for checking the effect of applying gamma curve you provided.
    It is optional and does not really matter for the xml output.
    Please follow the plugin guide under the help menu for more detail.

    I mean that I need to execute the plugin called CFAI+WDR in TI DCC tool, because I hope to fix the error described in my initial message. If there are any other suggestions on how I can achieve that without the CFAI+WDR, I would be glad to find know, because for now I am not capable of receiving an image of the quality as on RPI3, it is much worse, despite all DCC plugins I tried.

    It looks like your IMX462 only works in linear mode and output in 10-bit linear raw images.
    I was not sure if you needed WDR mode or not.

    In this case, it is easier for you to use the python script below to get the initial VISS settings.

    https://git.ti.com/cgit/processor-sdk/imaging/tree/tools/default_DCC_profile_gen?h=main

    You may refer to these sample configuration files for 10-bit linear sensors.

    https://git.ti.com/cgit/processor-sdk/imaging/tree/tools/default_DCC_profile_gen/configs/imx219_properties.txt?h=main

    https://git.ti.com/cgit/processor-sdk/imaging/tree/tools/default_DCC_profile_gen/configs/X5B_properties.txt?h=main

    There is also a FAQ link for using the python tool https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1275034/faq-default-dcc-profile-generation-tool-for-tda4-am6xa-isp-vpac?tisearch=e2e-sitesearch&keymatch=%20user%3A35541

    As I already specified in my initial message, my camera output is RAW 10. To be more specific, Bayer RGGB10.
    My problem is that the WDR curve is available only starting from 12-bit - should I consider getting a new DCC tool to fix that? 

    Tuning tool (WDR+CFAI plugin) is not friendly with linear (LDR) sensors.
    The python tool is much easier to use.

    For fine tuning of AWB and other components, you may go back to tuning tool and export xml files to replace the python generated ones.

    a single image output.

    I don't have the details of IMX462.
    A single image output in this case should be linear/LDR 10-bit output.

  • Hello,

    The input image for gamma plugin should be a RGB image

    Sorry for the confusion, and thank you for clarifying.

    Tuning tool (WDR+CFAI plugin) is not friendly with linear (LDR) sensors.
    The python tool is much easier to use.

    Thank you for the advice! Yes, I already tried the Python tool to generate corresponding binaries, but unfortunately, it did not solve my problem of the overlighted parts of the image. 

    The reason I need WDR is that in case of a bright object in the image (for example, a window in our classroom or a light bulb), the object itself and area around it influence the image quality and brightness a lot, the image becomes dark and with a big white blob around the window. If there is any advice on how to fix that without WDR, I would be glad!

    Maybe you can recommend something, for example, some good initial knee points for WDR plugin with my 10-bit image, on how to use that to improve my image quality and get rid of huge light bulbs?

    Regards,
    Mykola 

  • Hi Mykola,

    but unfortunately, it did not solve my problem of the overlighted parts of the image.
    Maybe you can recommend something, for example, some good initial knee points for WDR plugin with my 10-bit image, on how to use that to improve my image quality and get rid of huge light bulbs?

    We are not familiar with IMX462.
    Do you mean that you let the sensor to output multiple exposure frames in RAW10 format for each image?
    That requires merging those frames into a single WDR image (typically 20 or 24 bits).

    We typically work with ADAS image sensors that can merge the frames in sensor and output companded WDR images.

    TDA4 ISP only has a simple WDR-merge logic in VPAC-VISS, but it is does not support motion compensation and cannot avoid motion artifacts.
    That WDR-merge is not supported in TDA4 SDK S/W or tuning tool and I don't normally recommend using WDR-merge in TDA4.

  • BTW, I will be out of office until 23rd.
    I am copying if you have any further questions.

  • Hello! Okay, so I tried the same with IMX219, which is recommended to use everywhere in TI configs, etc, and I have exactly the same issue
    When the light object is inside the image, everything else dims significantly, and it is not able to see it. 

    So it is not only related to the IMX462.

    Also the playing around with the WDR knee points didn't improve the image quality on the IMX219.
    I use the 10-bit mode of IMX219.

    Can you give some advice on how to solve this with your DCC tool? When using the IMX219 with RPI zero W2, the image quality is excellent, and huge light bulbs in the image do not influence the exposure of the entire image; objects behind the light bulb are still visible.

  • Hi Mykola,

    I tried the same with IMX219, which is recommended to use everywhere in TI configs, etc, and I have exactly the same issue
    When the light object is inside the image, everything else dims significantly, and it is not able to see it. 

    IMX219 is also a linear low dynamic range sensor with only 10-bit dynamic range.

    Also the playing around with the WDR knee points didn't improve the image quality on the IMX219.

    These knee points are for WDR sensors with output images in companded format.

    IMX219 is not a WDR sensor and it won't work as an WDR sensor while you change the knee points in the configuration file.

    Can you give some advice on how to solve this with your DCC tool? When using the IMX219 with RPI zero W2, the image quality is excellent, and huge light bulbs in the image do not influence the exposure of the entire image; objects behind the light bulb are still visible.

    Typically, to get WDR effect, you would need a WDR sensor operating in WDR mode so that you can see both the bright side and dark side at the same time while the brightness ratio between them is beyond the 10-bit range.

    I am not familiar with "IMX219 with RPI zero W2".
    Your description above seems suggesting an AE feature of stable sensor exposure with the presence bright lights similar to back light compensation.
    That does not require WDR sensors, but need some AE algorithm to ignore bright lights or back lighting and expose the scene according to the other objects in the scene.

    TI's reference AE algorithm in SDK is based on adjusting average raw image brightness.
    It does not support this feature well.

    https://git.ti.com/cgit/processor-sdk/imaging/tree/algos/ae?h=main