The effect of pixel size

Having looked at what happens with cameras and crops made from the same sized pixels, what happens if we have differently sized pixels? Aren't small pixels worse because they're receiving less light? The answer is: yes, when considered at the level of individual pixels.

But, when you think about the effect on the whole image, not by as much as you'd think (if at all). Here we're talking about the relatively large sensors typically used in interchangeable lens cameras - pixel size can play more of a role at the extremes of small pixel design encountered in tiny smartphone sensors.

A quick thought experiment

Think of two sensors of equal size, one with a single, large pixel, the other with four small pixels. Each of these pixels will have registered some shot noise and will have added some read noise. Because noise is a +/- variation, these contributions aren't simply added together*1: four pixels won't have four times the noise of the one large pixel. In fact the shot noise components cancel each other out completely: combine the shot noise from the small pixels and it'll be the same as the shot noise from the large pixel*2. This means the only difference is read noise.

Furthermore, the way noise combines*1 means that, if the read noise of each small pixel were exactly the same as the read noise of the large pixel, you'd only end up read noise two times higher (√4), not four times*3. Or, looked at the other way round, if the read noise of each small pixel is 1/2 as much as that of the large pixels, then the total noise of the two systems would be equal. But how realistic is this?

As we covered in our read noise article, noise from the pixels counts as upstream read noise. In general, upstream read noise in modern sensors is very low. Furthermore, smaller pixels tend to produce less read noise than large ones. Not necessarily 1/2 as much, but generally less.

This already means that moving to four times as many pixels will generally result in much less than the twofold increase in read noise you'd get if the smaller pixels were just as noisy as the large one. In a more realistic case, consider the move from 16MP to 24MP: a 1.5 factor pixel increase. If the read noise of each pixel were kept the same, the (already very low) total read noise would increase by 1.2 times (Because 1.2 is √1.5). Any improvement in read noise through generational improvements and downscaling would chip away at that difference. A 19% reduction in per-pixel read noise would be enough to give exactly the same whole-image noise (when viewed at a common output size).

Although most noise can be reduced by downsampling, special cases such as pattern noise are not so easily dealt with. However, this tends to have more to do with sensor design than pixel count. Photo by Rishi Sanyal

The pixels in large sensors are many times*4 the size of the cutting-edge ones used in smartphones, so aren't working anywhere near the limits of current design constraints. It's also reasonable to assume that sensor makers would try to avoid increasing the pixel count until they can make pixels with read noise that comes close to matching the performance of their existing sensors (a situation in which read noise =1/√pixel increase factor), since better products are easier to sell.

Even if you can't achieve a 19% improvement, the differences will be very subtle: in good light, where shot noise dominates, there'll be no difference if the two images are viewed at the same size. In the deep shadows or at high ISOs, where read noise begins to play more of a role, you will see at worst a 22% increase in the read noise contribution (and almost always less).

The main exception to this is where the camera has a source of downstream read noise that introduces a pattern to the noise. Pattern noise, also known as 'banding', is a form of correlated noise: the amount of noise at each pixel isn't totally independent of its neighbour (if, for instance, different amounts of noise are being added to each row of pixels as it's being read off the sensor). Because it isn't totally random, this noise doesn't average out if you downsample. Worse still, humans are especially good at recognising edges, so will tend to see patterns and find the noise much more distracting than totally random noise from other sources. In the photo above, brightening the corners to correct the vignetting of a 24mm f/1.4 shot that wasn't very underexposed to begin with introduced visible banding that is still quite evident even after downsampling.

Prove it!

We've looked at pixels of the same size and seen how much difference a larger sensor size makes. But what about two sensors with different sized pixels?

Here we look at the Nikon D810 against the Sony a7S. The Nikon has 36MP while the Sony has just 12MP. The calculations suggest that, even if the Nikon's pixels were contributing the same amount of upstream read noise, they would add 1.7 times more read noise. Let's see how much difference they really make:

ISO 400
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 800
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 1600
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 3200
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 6400
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 12800
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 25600
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]
ISO 51200
D810 (resized: 12MP) [Raw File] a7S [Raw File] D810 Full size [Raw File]

In this case we're not quite comparing like with like, since the a7S was one of the first cameras to include a Sony sensor with dual gain design (which offers improved low light performance).

So, as theory would lead us to expect, the differences first appear in dark regions, where the read noise lives, and then become increasingly visible as the ISO setting rises and amplification pulls that noise further and further into the images. But part of this benefit is coming from the dual gain design, which lowers read noise at high ISOs, not just from the larger pixels.

Note also that, because it has sampled the scene at higher resolution, the 36MP camera's images are more detailed than those from the 12MP camera, even when downscaled to the same pixel count.

Even in this extreme case, with both pixel size and more advanced technology acting together, it's a difference that only becomes relevant at very high ISOs. The key thing to note is that the shot noise difference (from sensor size) plays a role at all ISOs, and usually has more impact than is made by difference in pixel size or technology enhancements.

< The effect of sensor size on noise


*1 Because, with the exception of special cases such as banding, the amount of noise in one pixel is unrelated to the amount in its neighbor, we can consider its contribution to be random. And, because noise can represent either a higher or lower than expected result, these variances partially cancel one another. So, instead of simply adding them together, the variances are combined as what's called the root of sum of squares (Also called 'adding in quadrature'). [Jump back to text]

*2 Because shot noise occurs randomly in time, it's best represented by Poisson statistics, which state that the noise of a single, large pixel is:

Now let's consider the result that n pixels in the same space would give. The equation looks like this:

So far, so intimidating (if you don't encounter algebra on a regular basis). However, it ends up not being as complex as it looks.

Because the shot noise of each pixel is the square root of the signal of each pixel, we can re-write the equation as:

Which might look like I've made things even worse. However, logically we can assume that the total signal for all the small pixels is the same as for the one large one. So, if they're 1/nth the size, they'll each, on average, receive 1/nth as much light as our large pixel did. At which point we can say:

Which then simplifies to:


And finally:

Which, as you can see, is the same as it was for the large pixel. [Jump back to text]

*3 Now let's consider the read noise components:

For a single, large pixel, let's say that the total read noise is Y:

Then let's say each pixel contributes read noise of X. Just like the shot noise, the read noise from each pixel adds in quadrature:

This simplifies to:


And finally:

So, for the total noise of both systems to be the same, X would need to be Y/√n. And, while read noise tends to be a little lower as you scale pixels down, it doesn't always totally cancel-out the increased pixel count. As we tried to show in Part 2 of our noise article, differences in read noise (particularly the upstream read noise that comes from the pixels themselves), tend to become apparent at very high ISO settings where the very darkest tones from the Raw file are being used to make up the image. Sure enough, the difference in performance between the 12MP Sony a7S and the 36MP Nikon D810 only really becomes apparent at the very highest ISO settings. [Jump back to text]

*4 Each pixel in a 12MP full frame sensor are around 8.5µm while those in a 20MP Four thirds sensor would be around 3.3µm across, still many, many times greater than the 1.12µm pixels in the latest 13MP 1/3"-type sensors used in contemporary smartphones. [Jump back to text]