We are seeing ringing (like edge enhancement, an artificial exaggeration/white halo around sharp white/black transitions) in our images when we set our stream to YCbCr420 with the Argus examples on the Jetson Xavier. The camera is an IMX577 module from Leopard Imaging and a fisheye lens.
The Jetpack version is 4.2.0, which is the version we are stuck with for the moment, given the sensor/MIPI card combo.
Pronounced black/white transitions in the image appear to be submitted to strong edge enhancement set to a very aggressive setting. If we grab the images as RAW16, and debayer ourselves using CUDA, we don’t see the ringing, which leads me to believe that something between the CameraDevice, CameraSession and OutputStream is introducing this effect.
In the ringing case, we instruct the stream to use the YCbCr420 Pixel Format:
iEGLStreamSettings->setPixelFormat(Argus::PIXEL_FMT_YCbCr_420_888);
We also try to disable everything we can that might pertain to edge enhancement:
iSourceSettings->setFrameDurationRange(Argus::Range<uint64_t>(frameDuration));
iSourceSettings->setExposureTimeRange(1e6*20);
iSourceSettings->setGainRange(1.0f);
iAutoControlSettings->setExposureCompensation(0.0f);
iAutoControlSettings->setIspDigitalGainRange(1.0f);
iDenoiseSettings->setDenoiseMode(Argus::DENOISE_MODE_FAST);
iDenoiseSettings->setDenoiseStrength(0.4f);
iEdgeEnhanceSettings->setEdgeEnhanceMode(Argus::EDGE_ENHANCE_MODE_OFF);
iEdgeEnhanceSettings->setEdgeEnhanceStrength(0.0f);
Disabling post processing has no effect:
iStreamSettings->setPostProcessingEnable(false);
I have tried the argus_camera application, and I haven’t been able to shut this effect off with any of the settings. Incidentally, changing the edge enhancement settings don’t seem to have an effect at all.
Does anyone know of any other settings we might need to turn off? I have gone through the list of interfaces in the documentation and I have run out of ideas – I must be missing something obvious…