Logarithmic Pixels

 

Most of Centeye’s vision chips use logarithmic response pixel circuits. Essentially such pixel circuits generate a voltage level that is a logarithmic function of the amount of light striking a pixel. This is different from most CMOS or CCD type image sensors that use a linear type of pixel.

Advantages:

Logarithmic pixel circuits have several advantages:

  • Logarithmic compression allows operation over a wide range of light levels without having to adjust any “shutter”.
  • Logarithmic pixels are easy to use- you just sample the voltage. No need to reset, wait, sample, and read out like when using linear pixel.
  • Logarithmic pixels allow direct addressing of pixels- they inherently support the ability to directly read out the pixel you want to read at any time and without having to scan out whole rows or columns of pixels first. Of course, this depends on the ability of the image sensor chip to support this feature as well.
  • The logarithmic response allows illumination invariant processing- Suppose two pixels A and B are observing the visual scene. The outputs of these pixels will be an essentially be log(A) and log(B). The difference between these pixel signals will be log(A)-log(B) = log(A/B) or encode the ratio of the amount of light striking A and B. If the global illumination levels change (say by someone turning a light on), this ratio stays pretty much constant.
  • Logarithmic pixels operate in continuous time- they are always generating a pixel voltage in response to the light striking it. When the pixel is “read out”, this voltage is merely sampled. If you wanted to, you can monitor different regions of the image at different frame rates. This is not readily possible using standard CMOS or CCD image sensors.
  • Since logarithmic pixels operate in continuous time, they can have a faster response to changes in light levels. This can in some cases assist with operation in lower light levels.
  • It can be argued that logarithmic pixels are more biologically realistic, since the photoreceptors in animal visual systems tend to have a logarithmic response to light levels. (How else can you look at something in the bright sun and the deep shade at the same time?)

Disadvantages:

Logarithmic pixels are generally known to have several disadvantages . First, the logarithmic compression can reduce contrast sensitivity. Another issue is that logarithmic pixels tend to have a stronger fixed pattern noise (FPN) pattern than linear pixels. Whether these are an issue or not really depend on your application, but these can generally be worked around. For example, to boost contrast sensitivity some of Centeye’s logarithmic response vision chips include on-chip amplifiers to amplify the signal voltage before it gets sent off-chip. For dealing with FPN, there are many standard techniques available to cancel out FPN, either with a one-time calibration step or using adaptive techniques in real-time. For applications in which only pixel intensity change is measured, however, FPN is a constant that may be subtracted out and is thus irrelevant.

How Logarithmic Pixels Work:

The figure below shows a typical logarithmic pixel circuit. Diode D1 is the photodiode that responds to light and sinks to ground an amount of current proportional to the light striking it. This current is typically in the nanoamp to picoamp range. Transistor M1 is “diode connected” and, due to the small current levels flowing through it, is subthreshold biased. The voltage drop across it’s source and drain inputs as connected is a logarithmic function of the current flowing through it. Brighter light increases the current flowing through D1 and M1, which increases the voltage drop across M1 and lowers the resulting pixel voltage. Transistor M2 reads out the pixel voltage and, with transistor MC, forms a source follower to read off the voltage without drawing any current. Typically there is one M2 per pixel and just one MC per column of pixels, with transistor M3 being a “row select” switch that connects the selected pixel to the column output.

LogarithmicPixelCircuit