gstreamer nvarguscamerasrc anti-banding has no effect

I’m having a banding issue while using CSI cameras with gstreamer running on L4T v32.1

When I run “argus_camera” sample GUI app and select “Auto” or “50Hz” for “AE Antibanding mode” everything works as expected, the banding disappears.

https://www.dropbox.com/s/xwt3ngzfbdazk6r/gstreamer_antibanding.png?dl=0

But with equivalent gstreamer setup using “nvarguscamerasrc” plugin and its element “aeantibanding” there is no effect, the banding remains.
Gstreamer pipeline example:

gst-launch-1.0 nvarguscamerasrc aeantibanding=2 ! nvvidconv ! xvimagesink

I’ve tried all possible values for aeantibanding: 0, 1, 2, 3, “AeAntibandingMode_Auto”, “AeAntibandingMode_50HZ”, “AeAntibandingMode_60HZ”. Nothing changes, banding effect remains the same.

It seems like anti-banding in Multimedia API works fine, but there’s a bug in nvarguscamerasrc plugin for gstreamer.

Any advices how to fix it?

I’ve also wrote about this issue to authors mentioned in plugin description Viranjan Pagar vpagar@nvidia.com, Amit Pandya apandya@nvidia.com.


Running Xavier on L4T 32.1 with multiple Leopard Imaging cameras LI-IMX577-MIPI-CS and corresponding LI-JXAV-MIPI-ADPT-6CAM-FP controller.

https://leopardimaging.com/product/csi-2-mipi-modules-i-pex/csi-2-mipi-modules/li-imx577-mipi-cs/
https://leopardimaging.com/product/accessories/adapters-carrier-boards/li-jxav-mipi-adpt-6cam-fp/

hello nazikus,

it looks like nvarguscamerasrc plugin still include aeantibanding options.

$ gst-inspect-1.0 nvarguscamerasrc
..
  aeantibanding       : property to set the auto exposure antibanding mode
                        flags: readable, writable
                        Enum "GstNvArgusCamAeAntiBandingMode" Default: 1, "AeAntibandingMode_Auto"
                           (0): AeAntibandingMode_Off - GST_NVCAM_AEANTIBANDING_OFF
                           (1): AeAntibandingMode_Auto - GST_NVCAM_AEANTIBANDING_AUTO
                           (2): AeAntibandingMode_50HZ - GST_NVCAM_AEANTIBANDING_50HZ
                           (3): AeAntibandingMode_60HZ - GST_NVCAM_AEANTIBANDING_60HZ

assume there’s a bug, could you please also share the abnormal images of your banding issue.
thanks

@JerryChange

Exactly, I’ve tried all those options but it does not influence captured image at all.

It is difficult to capture banding effect in a single frame, so I made a screencast demonstrating how argus_camera app handles banding issue, but then aeantibanding param in gstreamer (which should be equivalent to argus_camera antibanding param) simply has no effect.

Youtube link to screencast:
https://youtu.be/VmX2AJ7sF8o

(make sure you switch to hi-res video quality, otherwise font is unreadable).

I have exactly the same issue, any updates?

hi all,

we cannot reproduce the issue locally.
since we’re based-on 60Hz environments, we’re now trying to arrange sources to reproduce the issue in the 50Hz environment.
thanks

hello nazikus,

may I know how many sensor modes of your IMX577.
you should also note that gstreamer launching with sensor-mode=2 at 1920x1080@60-fps, which reproduce the issue.
however, in the Argus camera application it’s launching with sensor-mode=0 at 4056x3040@30-fps.

could you please testing again to assign resolution settings to choose same mode as Argus application used.
for example,

$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=4056, height=3040, framerate=30/1, format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)NV12, width=1920, height=1080' ! nvoverlaysink -ev

Hi JerryChang,

As for sensor mode, we use only standard 4K UHD size (3480x2160).

Please see another video: https://youtu.be/9POr8k4BqPQ

This time I noticed inconsistent behavior in argus_camera gui app, anti-banding has effect depending how to change the frame rate value (decrease or increase).

Starting from 01:36 on video your proposed gstreamer pipeline is tested.
There is no banding effect at 25fps (I assume because 25fps is multiple of 50Hz), but with 30fps the anti-banding does not have any effect.

hello nazikus,

that should due to your sensor device tree define such 4K sensor-mode frame-rate at 60-fps.
hence, Argus application would enable 3840x2160 sensor mode at 60-fps by default.
please check your DT properties, you may also refer to Property-Value Pairs for details.
for example,

<i>$l4t-r32.3.1/JAX_TX2/Linux_for_Tegra/source/public/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules$ vim tegra194-camera-imx274-a00.dtsi</i>

        i2c@3180000 {
                tca9546@70 {
                        i2c@0 {
                        imx274_a@1a {
                                mode0 {
                                        min_framerate = "1500000";
                                        max_framerate = "60000000";
                                        default_framerate= "60000000";

BTW, we’re investigate anti-banding no effect with nvarguscamerasrc internally.
please enable gstreamer pipeline with 25-fps settings as a short-term solutions.
thanks