This post is prompted by the simultaneous occurrence of two events:

1. I've recently been re-reading the section of "Animal Eyes" (Michael F. Land & Dan Eric Nillson, 2nd edition, 2012) that discusses limitations imposed by available photons.

2. Recent discussions here in the forum have touched on signal noise as an important limitation in image reconstruction.

The thrust of this post is simple: I'm going to calculate how many photons are available to make a white pixel, for a 40 megapixel fullframe sensor at ISO 100.

(Spoiler alert: the answer turns out to be only about 100,000 available, 10,000 captured.)

The method is pretty simple too. Imagine a 1 meter x 1.5 meter matte white target, in full sun, filling the fullframe sensor as seen through a lens set on f/16, and making an exposure of 1/100 second ("sunny 16 rule" for ISO 100). From the geometry, calculate the fraction of photons that are reflected from the target and delivered to the sensor. Multiply together the total number of photons falling on the target, by the fraction delivered to the sensor, and divide by the number of pixels. The result is the number of photons per pixel.

Then the calculation goes like this:

target width: 1.5 meters

sensor width: 36 mm

focal length (arbitrary, doesn't matter in the end): 200 mm

distance from lens to target: 200 mm * 1.5 meters / 36 mm = 8.33 meters

area of hemisphere surrounding target at that distance: 2 * pi * (8.33^2) = 436 square meters

f-number: 16

diameter of aperture: 200 mm / 16 = 12.5 mm

area of aperture = pi/4 * (12.5^2) = 123 square mm = 123e-6 square meters

fraction of photons delivered to sensor: area of aperture / area of hemisphere = 123e-6 / 436 = 2.82e-7

photons per square meter per second: visible light power density 400 W/m^2 = 400 J/sec/m^2, divided by green photon energy 3.8e-19 J = 1.05e21

(Animal Eyes, pg 27, says "10^20 photons per second per square metre". I'll go with the larger number.)

exposure time: 0.01 second

total area of target: 1.5 meters squared

photons delivered to sensor: 1.5 * 1.05e21 * 0.01 * 2.82e-7 = 4.44e12

pixels per sensor: 40e6 (by assumption)

photons available per pixel: 4.44e12 / 40e6 = 111,000

The number of photons actually captured by the sensor will be about 10X less, due to the Bayer filter (1/3 per channel) and the roughly 35% quantum efficiency of CMOS sensors.

If somebody would care to check this calculation, I'd be delighted.

--Rik

## How many photons are available to make a white pixel?

**Moderators:** ChrisR, Chris S., Pau, rjlittlefield

- rjlittlefield
- Site Admin
**Posts:**20882**Joined:**Tue Aug 01, 2006 8:34 am**Location:**Richland, Washington State, USA-
**Contact:**

- rjlittlefield
- Site Admin
**Posts:**20882**Joined:**Tue Aug 01, 2006 8:34 am**Location:**Richland, Washington State, USA-
**Contact:**

Yep, give or take a couple. You need 14 bit samples to count beyond 8192, so maybe you could argue that it's 13 or 14 stops.Lou Jost wrote:If that's right, then a 12-stop dynamic range is about the most you could expect from that sensor, because at the dark end of the range, you'd be registering a single photon per exposure.

Anyway, in all cases because of shot noise (Poisson distribution of detections) the standard deviation for individual samples is equal to the square root of the sample value. So if you fill up 14 bits, the bottom 7 or so are just noise. Recognizing that fact, a better way to allocate the bits is to take the square root of the sample value and encode that as a binary integer, which reduces the noise level to a constant ~1 in the LSB. This is the largely unrecognized reason why 8-bit color with gamma ~2 actually works very well, up to the point that you start levels-adjusting the values and introducing gaps in the histogram.

--Rik

- rjlittlefield
- Site Admin
**Posts:**20882**Joined:**Tue Aug 01, 2006 8:34 am**Location:**Richland, Washington State, USA-
**Contact:**

Thanks for the comments and links.

Another helpful reference is to the blog post by Jack/Almaphoto at https://www.strollswithmydog.com/photons-on-a-pixel/ . (Thanks for that link, Pierre!)

That one summarizes his example by saying that for his D610 (24 megapixels full-frame), at base ISO (100), the green channel clips first, at an exposure that he calculates as 411,600 photons.

I always like to figure out why different methods give different results. In this case one big factor is the pixel size, his 24 MP FF versus my assumed 40 MP FF. Making that correction means that his method on my sensor would predict 246,960 photons per pixel at 40 MP.

A second big factor is that I incorrectly modeled reflectivity. My calculation overlooked that a matte reflector actually has a Lambertian reflectance profile, which is center-weighted by 2X compared to the type of uniform reflectance that my model used. Making that correction takes my number from 111,000 to 222,000 photons per pixel. That's close enough to Jack's number for my pixel size that I'm no longer looking for anything wrong in the calculation.

https://www.strollswithmydog.com/photons-on-a-pixel/ also measures/calculates what he calls an "Effective Quantum Efficiency" (eQE) that bundles together all of the factors that can cause only some photons to produce electrons. The number that he gets for his D610 is 18.1%, versus the roughly 12% that I would have gotten from 1/3 of 35%.

So, at this point it seems that my initial numbers were too low, by something around 2 f-stops.

That's significant, but not enough to change the main point that shot noise from the fundamental issue of sampling available photons is a big deal, reducing even the best pixel values to something like 8 bits of significance -- 16 bits total count, with the bottom half of those being noise.

--Rik

Another helpful reference is to the blog post by Jack/Almaphoto at https://www.strollswithmydog.com/photons-on-a-pixel/ . (Thanks for that link, Pierre!)

That one summarizes his example by saying that for his D610 (24 megapixels full-frame), at base ISO (100), the green channel clips first, at an exposure that he calculates as 411,600 photons.

I always like to figure out why different methods give different results. In this case one big factor is the pixel size, his 24 MP FF versus my assumed 40 MP FF. Making that correction means that his method on my sensor would predict 246,960 photons per pixel at 40 MP.

A second big factor is that I incorrectly modeled reflectivity. My calculation overlooked that a matte reflector actually has a Lambertian reflectance profile, which is center-weighted by 2X compared to the type of uniform reflectance that my model used. Making that correction takes my number from 111,000 to 222,000 photons per pixel. That's close enough to Jack's number for my pixel size that I'm no longer looking for anything wrong in the calculation.

https://www.strollswithmydog.com/photons-on-a-pixel/ also measures/calculates what he calls an "Effective Quantum Efficiency" (eQE) that bundles together all of the factors that can cause only some photons to produce electrons. The number that he gets for his D610 is 18.1%, versus the roughly 12% that I would have gotten from 1/3 of 35%.

So, at this point it seems that my initial numbers were too low, by something around 2 f-stops.

That's significant, but not enough to change the main point that shot noise from the fundamental issue of sampling available photons is a big deal, reducing even the best pixel values to something like 8 bits of significance -- 16 bits total count, with the bottom half of those being noise.

--Rik

Last edited by rjlittlefield on Fri Apr 03, 2020 1:14 pm, edited 1 time in total.

- rjlittlefield
- Site Admin
**Posts:**20882**Joined:**Tue Aug 01, 2006 8:34 am**Location:**Richland, Washington State, USA-
**Contact:**

What I'm looking at is the number of photons for a white subject, when "properly" exposed at base ISO.Lou Jost wrote:Rik, weren't you looking at the MINIMUM number of photons to get a white pixel, while StrollsWithMyDog was looking at the clipping value?

It seems to me that's more like maximum, not minimum. Much lower numbers of photons could be turned into white by using higher ISO or stretching the histogram.

The difference between StrollsWithMyDog's model and mine is more like

*headroom*-- the difference between nominal white on the histogram and the somewhat larger value where the sensor completely saturates.

--Rik