Calculating HQ camera readout speed in Jetson Nano

Hi all.
I saw some rolling shutter effect occurs in the raspberry pi HQ camera.
So I want to measure its exact temporal disparities.

I think the readout speed of the camera may be the one of main reasons for the rolling shutter effect.
I could kind some opensource drivers of the IMX477 (here), and found its pixel rate is 840MHz.
But I am not sure it also has the same pixel rate in Jetson nano.

Is there anyone who can find or measure the readout speed of HQ camera in Jetson nano?

hello flashsquirrel,

may I know what’s your use-case,
which sensor mode you’re used, could you please have a try to choose the one with higher frame-rate for confirmation?

hello flashsquirrel,

Readout time is used for CMOS camera sensors to describes how fast the entire array can be imaged.
if you’re able to probe the MIPI signaling, Readout time is equal to CSI end minus CSI start.

Hi JerryChang,

I used 30Hz and I need 4K resolution that’s why I cannot increase the fps.
Thank you for the suggestion. I will give it a try. Can I ask you what is CSI start and end? In FFC there are data, CLK, SCL, SDA pins. You mean the SDA pins? I have little idea what pins should I check.

“The entire array” means the full pixels? In this case, the time for reading the whole 12Mpixels(raspberry pi HQ camera has 12MP resolution) not a single line?

And I have one more question. Is readout time independent on the mainboard computers or outer conditions? Does it only depend on CMOS sensors?


hello flashsquirrel,

please refer to below for a diagram to picture the capture frames with rolling shutter rule,
you should observe that, readout time = csi end - csi start

 ^                  <---frame--length--->
 |    <exposure-time>                   |
 |    _______________     ______________|
 |    \              \    \             |\
Row    \              \    \            | \
 |      \   Frame 0    \    \   Frame 1 |  \
 |       \              \    \          |   \
 |________\______________\____\_________|____\_________> time
                                        ^     ^
                                        |     |
                                       csi   csi
                                      start  end
  • Readout time = csi end - csi start
  • Exposure time <= frame length
  • Frame length >= readout time

I’m still not clearly understand your use-case.
what’s the abnormal results you’d seen, are you having objects moving around?

Oh I understood about the readout time.

I captured rotating fans and it seems weird. It looks just like rolling shutter effects problems which is hardware issue.

I’m now confusing how can I measure the CSI start and end points.

thanks for the kind reply.

hello flashsquirrel,

assume you’re seeing Jello effect, could you please also attach the capture results for reference,


Yes, the Jello effect.
Well, this is the photo I took. It looks like a boomerang.

I do not mind about the Jello effect.
But I wish to know its readout times and control it.

hello flashsquirrel,

that’s a normal result, since not all parts of the image of the scene are recorded at the exactly same instant.
you’re working with 4K@30fps sensor module, it is 33ms for the minimum frame programming time (i.e. 1/30-fps).
you cannot simply adjust readout time for making higher frame-rate. I’m also adding some general formulas into post #7, about readout time, exposure time, and frame length for your reference.

Hello JerryChang,

Thank you for your advice.
Is there no way to know its readout time?
How can I know CSI start and end?


hello flashsquirrel,

readout time is used by internal camera stack, it’s also used by AE.
please have a try to enable debug flags as below. it should populate debug messages to the foreground of Argus daemon service.
for example,

$ sudo pkill nvargus-daemon
$ export enableCamScfLogs=5
$ export enableCamCoreLogs=5
$ sudo nvargus-daemon
$ gst-launch-1.0 nvarguscamerasrc ... 

you may check the logs coming after AE_DEBUG_MAIN for reference.