Reformulating the question: Does the rate of charge of the pixels photodiodes in an image sensor depends of the previous accumulated charge?

The pixel sensor integrates light during a specific amount of time called exposure time. Suppose that the image sensor scanning time is in perfect synchronization with a light source that generates square pulses. That is, when the pixel start scanning the light is starting to arrive to its surface (ideal conditions). Now, If the pulse has the same duration as the exposure time of the pixel I will get an integration quantity, q1. Now, if the pulse is on just half of this time, is it my new quantity half of the previous (q2=q1/2). Does the pixel behaves linearly with charge? How can I measure this effect, taking into account that I'm not able to reproduce the ideal conditions of perfect synchronization? Thank you!

  • \$\begingroup\$ What photosensor? \$\endgroup\$ – Andy aka Jan 14 '20 at 9:04
  • \$\begingroup\$ Any of them as a generic question. I'm interested cause I do a lot of image processing and knowing it's hardware behaviour will be very helpful \$\endgroup\$ – CristoJV Jan 14 '20 at 9:08
  • \$\begingroup\$ Be more specific and explain more about the setup you are contemplating. \$\endgroup\$ – Andy aka Jan 14 '20 at 9:27
  • \$\begingroup\$ @CristoJV there's more than one type of photosensor, so, stating the type at least would be required to pinpoint which physical phenomena are of relevance. \$\endgroup\$ – Marcus Müller Jan 14 '20 at 14:44
  • \$\begingroup\$ You were right, I'm editing the question to address a more specific situation. I'm talking about image sensors (Ej: picamera module) \$\endgroup\$ – CristoJV Jan 14 '20 at 17:47

Does the rate of charge of the photosensor after the photon to electron conversion depends of the previous overall charge?

Yes absolutely. If it didn't, your sensor would have infinite dynamic range. At some point all photosensors saturate.

Probably you are asking about image sensors and not any photosensor. Usually the gain will be set such that the highest value (eg 255) is below saturation (so that the device is highly linear), but not always. If you want to test for linearity, you can use the photon transfer method, which check that shot noise scales proportional to exposure time. If the device becomes nonlinear, shot noise will stop being proportional to the exposure time.


Photon Transfer Method

The EMVA 1288 standard provides formalized test procedures for evaluating the SNR and linearity of imaging devices such as CCDs and CMOS image sensors. They have an excellent description of the entire process and the theory behind it:



However, the core idea is quite simple. For photons hitting a sensor, the signal variance is equal to the signal mean due to shot noise. Thus, if you record a few images of a white surface at different exposure times or illumination powers and then plot the pixel variance vs the pixel mean values (e.g. 0-255 units):

photon transfer curve

You get a linear relationship where the slope is the gain of the sensor (in digital numbers per photon). At a certain point, the sensor will saturate, which will be seen a deviation and then a decrease in variance with increasing pixel value. Thus you can measure both how many photons are needed to increase the pixel intensity by one unit as well as the maximum number of photons the sensor can receive in a frame before its response deviates from linear.

In addition, if you repeat the same measurement with the camera lens cap on (so that the frame is completely black and the mean/variance come from non-photoelectrons), the slope will be the sensor dark current, while the y-intercept (variance at 0 integration time) will the read noise. If using the gain from the previous measurement, you can calculate the sensor dark and read noise in units of photoelectrons and the absolute sensitivity of the sensor in units of photons.

Note that both of these measurements must be performed on raw, uncompressed pixel data. JPEG, noise reduction, debayering, etc will prevent you from measuring the real shot noise statistics.

  • \$\begingroup\$ Yes I'm talking about an image sensor, (ej picamera module). How can I perform that test experimentally? How can I compute the shot noise giving a set exposure time? I can imagine that I have to capture images in a dark room, and compute the variance of the pixel values to get a sense of the power noise. Am I correct? Thank you! I will update the question to address this kind of sensors \$\endgroup\$ – CristoJV Jan 14 '20 at 17:46
  • \$\begingroup\$ @CristoJV Yes that is part of it. I've added links and more explanation. \$\endgroup\$ – user1850479 Jan 14 '20 at 18:51
  • \$\begingroup\$ thank you very much for your detailed explanation! Now time to do some experiments! \$\endgroup\$ – CristoJV Jan 14 '20 at 20:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.