ISP's autoexposure does not use the full exposure time range and instead increases gain

Hello ShaneCCC,

Unfortunately our setup does not have an HDMI port; I have been connecting to the Jetson over SSH when using the xviamgesink element. The problem with this is that SSH introduces a lot of latency and this affects the measurements that fpsdisplaysinkcan get.

Instead of the element you proposed, I used RidgeRun’s open source gst-perf plugin for measuring the framerate. It is a filter element that prints performance metrics to the standard output. I ran several pipelines with it and I collected the following results.

Simple pipeline with no exposure or gain limit

gst-launch-1.0 nvarguscamerasrc sensor-id=2 sensor-mode=0 ! nvvidconv ! perf ! fakesink sync=false
  • Exposure times: under 22 ms.
  • Gain values: increased from 1 to 16 after exposure times reached 22 ms.
  • Frame rate: 20 fps.

Fixed unitary gain

gst-launch-1.0 nvarguscamerasrc sensor-id=2 sensor-mode=0 gainrange="1 1" ! nvvidconv ! perf ! fakesink sync=false
  • Exposure times: under 22 ms.
  • Gain values: fixed to 1.
  • Frame rate: 20 fps.

Fixed exposure time under 22 ms

gst-launch-1.0 nvarguscamerasrc sensor-id=2 sensor-mode=0 exposuretimerange="10000000 10000000" ! nvvidconv ! perf ! fakesink sync=false
  • Exposure times: fixed to 10 ms.
  • Gain values: immediately increased from 1 to 16.
  • Frame rate: 20 fps.

Fixed exposure time over 22 ms

gst-launch-1.0 nvarguscamerasrc sensor-id=2 sensor-mode=0 exposuretimerange="50000000 50000000" ! nvvidconv ! perf ! fakesink sync=false
  • Exposure times: started at 33 ms. Varied from 33 ms to 70 ms depending on light conditions.
  • Gain values: varied from 1 to 16 depending on light conditions.
  • Frame rate: started at 20 fps but progressively dropped as soon as the exposure time broke the 33 ms barrier. The frame rate reached 10 fps when the exposure time was about 66 ms.

Let me know if there is any other scenario that you would like me to test.

Thanks for your help!