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.
Thanks a lot! Could you pls suggest how I can see those log info after rebuild the kernel? Will it be automatically printed out while running my script?
I’m unable to re-flash the devices, is there any other way to debug the kernel source code instead of flashing the device completely? Or, do I have to re-flash the device to make the change effective?
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?
The buffer looks like acquire by v4l2 APP request by VIDIOC_REQBUFS,
BTW, MMAP is allocate the DMA buffer.
I would suggest to check the timestamp to narrow down the frame done after VI to memory then the less could be the display then check if any chance to improve.