How to get MIPI-CSI camera delay under the 100ms?

Hi,
I refer to this link to verify the lantency of the imx219 camera.
after trying ,I use following command:

v4l2-ctl --list-formats-ext --device=0

[0]: 'RG10' (10-bit Bayer RGRG/GBGB)
	Size: Discrete 3280x2464
		Interval: Discrete 0.048s (21.000 fps)
	Size: Discrete 3280x1848
		Interval: Discrete 0.036s (28.000 fps)
	Size: Discrete 1920x1080
		Interval: Discrete 0.033s (30.000 fps)
	Size: Discrete 1640x1232
		Interval: Discrete 0.033s (30.000 fps)
	Size: Discrete 1280x720
		Interval: Discrete 0.017s (60.000 fps)

gst-launch-1.0 nvarguscamerasrc sensor-id =0 ! ‘video/x-raw(memory:NVMM),width=1280,height=720,framerate=30/1,format=NV12’ ! nv3dsink
gst-launch-1.0 nvarguscamerasrc sensor-id =0 ! ‘video/x-raw(memory:NVMM),width=1280,height=720,framerate=60/1,format=NV12’ ! nv3dsink

I find change framerate seems not work, the lantency cost about: 180ms-220ms
And I change the plugin from nv3dsink to xvimagesink by using following command:

gst-launch-1.0 nvarguscamerasrc sensor-id =1 ! ‘video/x-raw(memory:NVMM),width=1280,height=720,framerate=30/1,format=NV12’ ! nvvidconv ! xvimagesink

In this command, the lantency cost about: 120ms-160ms

How I test the delay is shoot with the csi camera at the screen time and observe the time difference.
I wonder if this delay can be reduced, or this is already basically the best.

Here is a example:

Suppose the latency 4 - 5 frames are reasonable.
You can confirm the frame rate by below command.

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1280,height=720 framerate=(fraction)30/1' ! nvvidconv ! fpsdisplaysink video-sink=xvimagesink sync=false

thanks, this command can display ‘rendered, dropped,current,average’ info.
but it seems have no effect on reducing the delay. In fact, after using this command, the lantency is approximately 180ms.

Does the frame rate reach 60fps?

Yes, it displays two refreshes per second; After two refreshes, it’s about 60 frames per second

What’s the display flash rate?

I mean the monitor reflash rate.
How do you check the latency?

by this way:


you can see the last line: 09:24:12.409->09:24:12.562
that’s the latency.

What’s the version?

cat /etc/nv_tegra_release

R36 (release), REVISION: 4.3, GCID: 38968081, BOARD: generic, EABI: aarch64, DATE: Wed Jan 8 01:49:37 UTC 2025

KERNEL_VARIANT: oot

TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia

We got below result on AGX Orin.

Framerate30 → G2G latency delay about 128ms
Framerate60 → G2G latency delay about 96ms

Okay, I see. Thank you for your patient answer.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.