I’m currently testing the 4k@60fps performance on Jetson Orin AGX.
Hardware setup: Orin AGX 32GB; Camera IMX 715, 4k60fps
Software version: Jetpack version 5.1
We run some simple tests. Firstly, we revise sample camera_unit_sample to use DRM renderer to do the display. Knowing from here link, the v4l2 protocol is able to stream frames after Jetson ISP. Our 4k60fps glass to glass latency is 88ms.
Next, we directly fetch the bayer data with v4l2src API, and simply display to the screen. The glass to glass latency is about 66ms.
My questions are:
Can I conclude that the ISP processing time is around 88ms - 66ms → 22ms?
Is there any further space to improve the glass to glass latency? from our test results, even if eliminating the ISP pipeline, the latency is still 66ms. What aspects could affect this?
Because we haven’t fully studied the Argus API, so we only use camera_unit_sample to stream the ISP frames. Is this the optimal way to get the frames with lower latency? Or we have to implement Argus API?
Thanks for your prompt reply. We are looking into the latency without ISP, 66ms. It’s around 4 frames, which is a bit of longer to our application, can I check with you what dose it consists of? Is there anything we can to do to narrow it down? For example, to concurrently write-in, copy-out the buffer, etc.
I just noticed a tricky issue. The current kernel Image in extlinux.conf is the customized Image by the camera vender. After replacing to my modified one, the cam device cannot be detected. Do you have other suggestion to do it under this scenario?
Just tried to contact with vender, but pending for their feedbacks. I was wondering whether I can insert the module which contains my modified vi5_fops to the kernel? Is it possible to achieve this? If it is, which *.ko file is related to it? Thanks!
Thanks for the advice, I managed to get the kernel Image recompiled. just checked, the nbuffers is 2. According to this topic (Vi_capture_status function take about one-frame time latency), buffer number of 2 seems already the optimal setting… I guess if I further reduce it to 1, it will drop frames.
Can I check with you which part configures and determines this buffer number? Is it dynamically determined?