Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
Target Operating System
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
SDK Manager Version
Host Machine Version
native Ubuntu 18.04
I am trying to get histogram data from the Tegra hardware ISP. We are currently using the SIPL camera API, however I cannot see any option to get a histogram from the ISP in this API under DriveOS 5.1.6, only under 5.2.0. Is this correct? I see that it’s possible to get the histogram using the old NvMedia ISP API. It looked fairly simple, and I started implemented a temporary solution (until we migrate to 5.2), but I ran into many issues. Some of these issue are likely to be connected.
We currently have two SIPL consumers - one for the raw image, one for processed YUV.
The first problem I ran into is that when I try to disable the YUV consumer, only keep the raw (ICP) consumer, INvSIPLCamera::Start call fails.
Since this is supposed top be a temporary solution, I would be okay with the image processing running twice for starters. When trying to reprocess the image, I ran into the issue, that it it comes out purple - the green channel is completely missing. Otherwise the processing does appear work. (The image from SIPL is fine.)
Note that I may not have configured the ISP correctly - I’ve set eg. the calibration matrix, but haven’t set most of the other options. I don’t see any way to specify eg. the sensor layout (one of the things I suspected being wrong).
The retrieved histogram is also unusable - it seems to register all the pixels in the topmost bin. I use the following settings (expecting a simple histogram):
controls.enable = true; controls.offset = 0.0f; //Holds offset to be applied to input data prior to bin mapping controls.knees = 32 - 1; controls.knees = 2*32 - 1; controls.knees = 3*32 - 1; controls.knees = 4*32 - 1; controls.knees = 5*32 - 1; controls.knees = 6*32 - 1; controls.knees = 7*32 - 1; controls.knees = 8*32 - 1; controls.ranges = 5; //Holds \(log_2\) range of the pixel values to be considered for each zone controls.ranges = 5; // controls.ranges = 5; // controls.ranges = 5; // controls.ranges = 5; // controls.ranges = 5; // controls.ranges = 5; // controls.ranges = 5; //
All the calls for setting this up seem to succeed.
Anyone have any tips? Which of these issues are related?