CSI latency

Dear *,

we are testing our camera and we are seeing the glass-to-glass latency of around 140ms.

We tried with:

sudo ~/jetson_clocks.sh
gst-launch-1.0 nvcamerasrc queue-size=10 sensor-id=0 fpsRange='60 60' auto-exposure='off' ! \
'video/x-raw(memory:NVMM), width=1936, height=1096, format=I420, framerate=60/1' ! \
 nvoverlaysink sync=true enable-last-sample=false

we also get 140ms with argus camera

cd tegra_multimedia_api/argus/build/apps/camera/ui/camera
./argus_camera

Only when we used the pre-compiled binary from nvidia

libgstnvcamera.so

found on forum so that the queue-size can be set to 6

then used

gst-launch-1.0 nvcamerasrc queue-size=6 sensor-id=0 fpsRange='60 60' auto-exposure='off' ! \
'video/x-raw(memory:NVMM), width=1936, height=1096, format=I420, framerate=60/1' ! \
 nvoverlaysink sync=true enable-last-sample=false

and we have around 93ms with this new binary file.

But this is huge latency, we see that you have with OV5693 latency of only 2-3 frames with argus and 5 frames with gstreamer.

https://devtalk.nvidia.com/default/topic/1026587/jetson-tx2/csi-latency-is-over-80-milliseconds-/1

Please can you tell us what else can we change to improve the latency??

Sensor Resolution: 1936x1096
Sensor FPS:60

Devicetree:

mode0 { // MODE_1936X1086
				mclk_khz = "26000";
				//mclk_khz = "24000";
				num_lanes = "2";
				tegra_sinterface = "serial_a";
				//discontinuous_clk = "yes";
				discontinuous_clk = "yes";
				dpcm_enable = "false";
				cil_settletime = "0";
				//dynamic_pixel_bit_depth = "12";
				csi_pixel_bit_depth = "10";
				mode_type = "bayer";
				pixel_phase = "bggr";

				active_w = "1936";
				active_h = "1096";
				//pixel_t = "bayer_bggr";
				//readout_orientation = "90";
				readout_orientation = "0";
				//line_length = "2640";
				line_length = "2072";
				inherent_gain = "1";
				//mclk_multiplier = "6.4"; 
				mclk_multiplier = "5.6";
				//pix_clk_hz = "332800000"; 
				pix_clk_hz   = "144000000";

				//min_gain_val = "1.0";
				//max_gain_val = "16";
				min_gain_val = "1.0";
				max_gain_val = "3.0";
				min_hdr_ratio = "1";
				max_hdr_ratio = "64";
				min_framerate = "60";
				max_framerate = "60";
				//min_exp_time = "34";
				//max_exp_time = "550385";
				min_exp_time = "30";
				max_exp_time = "15000";
			};

Br.

Dear *,

for checking we put your OV5693 module to the TX2 board and we are getting following latency:

With nvcamerasrc 140ms

gst-launch-1.0 nvcamerasrc queue-size=10 sensor-id=0 fpsRange='60 60' auto-exposure='off' ! \
'video/x-raw(memory:NVMM), width=1280, height=720, format=I420, framerate=60/1' ! \
 nvoverlaysink sync=true enable-last-sample=false

With argus_camera 140ms

With nvcamerasrc 94ms

gst-launch-1.0 nvcamerasrc queue-size=6 sensor-id=0 fpsRange='60 60' auto-exposure='off' ! \
'video/x-raw(memory:NVMM), width=1280, height=720, format=I420, framerate=60/1' ! \
 nvoverlaysink sync=true enable-last-sample=false

How can you get low latency with OV5693??


WP_20180816_15_16_38_Pro.zip (1010 KB)