How Many Photons on a Pixel

How many visible photons hit a pixel on my sensor?  The answer depends on Exposure, Spectral power distribution of the arriving light and pixel area.  With a few simplifying assumptions it is not too difficult to calculate that with a typical Daylight illuminant the number is roughly 11,850 photons per lx-s per micron^2.  Without the simplifying assumptions* it reduces to about 11,260.

Light from a source is reflected by the scene, travels through the air, traverses the lens and finally reaches the camera’s sensor.   With a few simplifying assumptions, including an illuminant producing equal energy per small wavelength interval, the number of visible spectrum photons N_{ph} incident on the sensor is given by the following formula:

(1)   \begin{equation*} N_{ph}= \frac{\lambda_2 - \lambda_1}{E_{avgph} \cdot 683 \cdot \int\limits_{380}^{780} V(\lambda) d\lambda} \: \frac{photons}{lx-s \cdot \: micron^2} \end{equation*}

where the infra-red and ultra-violet bandpass limits of the sensor are the range of wavelengths between \lambda_1 and \lambda_2, E_{avgph} is the energy of the average photon in the range and V(\lambda) is the photopic eye response function. In the denominator V(\lambda) is integrated over the range 380-780nm because I believe that’s how incident light meters are calibrated.

As we will see the application of the formula is fairly simple because we know the photopic function which we will also use to define the range of visible light – so all we need to figure out is the average photon energy in the range to get our answer.

We will take visible light to be the range of wavelengths above a certain visibility threshold, namely 10 stops below peak (photopic) eye response.  This yields a range of visible wavelengths between 395nm and 718nm inclusive, the mean wavelength being 556.5nm.  This is fairly typical of the bandpass let through by the infra-red and ultra-violet filters in recent DSC sensors (including Bayer).

For the photographic purposes of this post we can simplify things further and assume the average energy for visible photons – from a well behaved ‘Daylight’ illuminant, reflected by a neutral subject, going through a neutral lens – to be that of the wavelength in the middle of the range.  We can therefore estimate the energy of the average photon in the visible band as follows:

(2)   \begin{equation*} E_{avgph}= \frac{h \cdot c}{\lambda_{avg}} \: joules \end{equation*}

with h and c Planck’s and Boltzmann’s constants.  At 556.5nm E_{avgph} is therefore equal to about 3.569 \times 10^{-19} joules.

The integral of the photopic function is simply the sum of its value at one nm interval from 380-780nm, equal to 112.137.   With this information we can calculate N_{ph} using (1)

(3)   \begin{equation*} \begin{split} N_{ph} &= \frac{(718.5 - 394.5) \times 10^{-9}}{3.569\times 10^{-19} \times 683.002 \times 112.137} \\ \\ &= 11,851 \: \frac{photons}{lx-s \cdot \: micron^2} \end{split} \end{equation*}

That’s it.  We’ll deal with the figure that results without the simplifying assumptions in a later post, but suffice it to say for now that it is about 5% less, or about 11,260.

Let’s work through an example using the more accurate estimate.  You and/or your camera decide on an appropriate Exposure to obtain the desired result from a specific capture in daylight and pull the trigger.  How many visible photons impinged on a pixel that time?  All we need is the Exposure and the area of the pixel to plug into (3).  If you have an incident light meter you can simply read Exposure off that.  Alternatively you can take a look at your raw data and work it out backwards from there as follows.

At base ISO my D610’s highest raw level is 15778.  It starts clipping highlights at an exposure H_{sat} of 1.05 lx-s and it has square pixels of 5.9 micron pitch.  The green channel normally clips first with light reflected off a neutral subject in daylight.  Therefore the number of visible photons incident on one of its green pixels at full scale (raw level 15778) in daylight is roughly

N_{ph} = 11,260 \times 1.05 \times 5.9^2 = 411,600 \: photons

…at 10% of full scale (raw level 1578) 41,160 photons, at 1% (raw level 158) 4,116, you get the idea.  Cut exposure in half, the number of photons is cut in half throughout the dynamic range.

To figure out at what Exposure your digital camera saturates head to  They measure the Exposure at which modern digital cameras saturate (or clip) under a Daylight illuminant.  I assume they look at the green channel which should clip first.  They publish the data in terms of sensor sensitivity S_{sat}, what they call Measured ISO.   We can recover the saturation exposure that they actually measured using the formula

(4)   \begin{equation*} H_{sat}= \frac{78}{S_{sat}} \: lx-s \end{equation*}

At base ISO the majority of current DSCs saturates at around 1 lx-s +/- 20%.  For example Ssat for the D610 at base ISO is 74, which means that DxOmark actually measured that it saturates at an exposure of 1.05 lx-s.

The next step is to figure out how many of these photons actually get converted to photoelectrons.


* For a more accurate treatment see this post.