Measuring Camera Sensor Readout

I often photograph events where absolute silence is a must, so I rely on my camera’s electronic shutter instead of its noisy mechanical shutter.

The downside? Electronic shutters don’t capture the whole image at once. Instead, they read the sensor data line by line, a process called “rolling shutter” (Wikipedia).

Rolling shutter can cause multiple artifacts, but the two main ones are:

The time the sensor takes to read out the image is called “readout speed”. Slower readout speeds result in more visible rolling shutter artifacts.

Manufacturers rarely advertise the actual readout speed of their cameras. Some review websites measure it but most often for video modes, rarely for still photos. Out of curiosity, I wanted to find out for myself just how fast my cameras really are.

My Simple DIY Approach

To measure sensor readout speed, I needed a way to create a flickering light, at a known and high enough frequency to get precise results. The easiest solution? An Arduino and an LED.

setup

The code for this is super simple:

void setup() {
  pinMode(12, OUTPUT);
}

void loop() {
  digitalWrite(12, HIGH);
  delayMicroseconds(500);
  digitalWrite(12, LOW);
  delayMicroseconds(500);
}

This blinks the LED one thousand times per second (on for 0.5 ms, off for 0.5 ms). To the eye, this flickering is imperceptible, but for a camera sensor it’s a whole different story. I placed the LED in front of my camera sensor (without any lens), set the camera to electronic shutter with a very high shutter speed to get a crisp banding effect, and took a photo.

Results

Here are the photos I got:

X-T4
X-T4
X100VI
X100VI
X-H2
X-H2
X-H2S
X-H2S

To get a rough estimate of the readout time, you can simply count the number of yellow lines, the total will give you the readout time in milliseconds. That’s good enough for the X-T4, X100VI, and X-H2.

For the X-H2S, there are much fewer bands and not a whole number of them. In order to get a more precise measurement, I measured how many pixels a whole number of bands span, and used a cross-multiplication to extend that to the whole sensor size. I counted 6 full cycles (light + dark bands) spanning 3673 pixels and the full sensor is 4160 pixels high. Therefore the readout time is:

  6 cycles
x 1 ms / cycle
x 4160 pixels / 3673 pixels
= 6.80 ms

Here are the end results:

We can make a few observations:

And the mechanical shutter?

In case you’re wondering, here’s what the experiment looks like when using the mechanical shutter:

Mechanical shutter

Here, it’s the X-H2, but the X-H2S and X-T4 look exactly the same.

So, about 2 ms of “readout speed” equivalent. Mechanical still wins!

Conclusion

This experiment shows just how easy it is to measure sensor readout speed, and how useful this information can be when comparing cameras. I really wish manufacturers would advertise this spec, and that reviewers would routinely measure it. Depending on the kind of photography you do, sensor readout speed can be a crucial factor in making an informed choice.