An Alternative to the Correlated Double Sampling (CDS) and Binning in CCD Readout

An Alternative to the Correlated Double Sampling (CDS) and Binning in CCD Readout

Andrey Filippov

What is CDS and why is it used?

The process of readout from the CCD consists of 2 parts:

- moving charge packets (representing pixel values) around the sensor - very efficient process that does not introduce noise and

- converting the charge packet values into output voltages - this is where "readout noise" gets injected into the signal path.

The charge-to-voltage converter at the CCD output is basically a capacitor with single- or multistage voltage follower and a switch to preset the capacitor voltage to a "known" level. In simplest video systems the switch is closed in the beginning of each pixel readout - that presets the capacitor voltage as well as the output level. After the pixel charge packet is transferred to the capacitor its voltage changes and the output signal represents the pixel value. The "worst" element in this process is the switch - due to its finite residual conductivity the capacitor is precharged to an unknown value - and it adds the output signal. Fortunately there is a way to compensate for this precharge uncertainty - correlated double sampling (CDS). In this method the output signal is sampled twice for each pixel - just after precharging capacitor and after the pixel charge packet is added. The difference between these two values does not include the noise component induced by the switch.

What CDS cannot compensate for?

Even CDS cannot eliminate all noise from the CCD readout signal induced by the output stage (combined with analog circuits that process the CCD signal outside its chip). Most of this noise comes from active component of the impedances in the signal path (resistor thermal noise) and is proportional to the square root of the bandwidth. This is why high sensitivity scientific-grade CCD readouts are called "slow scan" - the longer the pixel value is integrated during the sampling process the lower noise is added to the signal. Reducing the readout rate has its limits too - it increases the waiting time for the charge packets to reach the output stage from just 16 milliseconds for NTSC video rate to seconds and tens of seconds for slow scan mode. And all this time charge packets are subject to thermal ("dark") current that adds to their values. And while average value of that number of thermally generated charges can be subtracted from the output value the random part of it (proportional to the square root of the number of electrons) - cannot. Trying to fight this noise source adds another word to the name of the slow-scan cameras "cooled". Peltier or even liquid nitrogen cooling of the sensor is often used to exponentially decrease its dark current - but it adds much to the complexity of the system too.

So design of the slow scan CCD readout systems (with the given sensor temperature) has to negotiate between two conflicting requirements. The slower the (pixel) readout is the less noise is induced at the output amplifier, the faster the (chip) readout is the less noise is added by the dark current. Most CDS use analog circuitry for sampling and subtracting the signal values - it makes it rather difficult to adjust the optimal sampling time depending on the readout mode (windowing, binning, sensor temperature, etc.)

What else is used to increase sensitivity?

There is other known way to increase sensitivity of a given CCD sensor - at a price of reducing it resolution - called "(on-chip) binning". Most CCD sensors allow merging pixel charge packets before they are converted to the output voltage. "Horizontal binning" is merging of several pixel packets in the output capacitor, "vertical" - merging several pixel rows in an output (horizontal) shift register. Compared to "off-chip" averaging of the pixel values (normally done with image processing software) on-chip binning gives better signal to noise ratio proportional to square root of the number of pixels merged. It is so because for combined charge packets the output amplifier noise is added only once, and for individual pixel outputs it is added to each pixel. As these are independent random numbers the sum of the pixel values will have the noise component square root of number of pixels higher than each of them.

Is there any way to push the limits?

It is possible to get more information from a given CCD using alternative readout techniques. The method described below allows to:

- decrease pixel readout time twice with the same output noise level;

- make horizontal binning "nondestructive" - single shot contains information that normally require several shots - with and without binning;

- make the readout rate adjustable maintaining sampling times optimal.

It all is possible by using modern fast high-resolution ADCs and shifting some acquisition functions from analog to digital domain. Using ADC at fixed sampling rate of 10 MHz allows building digital CDS that easily covers normal slow-scan rates from 100K samples/sec to 5M samples/sec. And digital sampling can do much more than just copying analog functions. The "reset" pulse that precharges the output capacitor is not needed at each pixel. The pixel information is coded in the difference between the output value after the pixel charge was applied to the capacitor and before. When reading low-value pixels precharging may be needed once per hundreds of pixels. And as full-well capacity of the output capacitor is much higher than that of a pixel, it is safe to let the output signal rise up to half of saturation value before resetting it.

This is the comparison of the readout algorithms:

Analog (fixed) CDS:

for each pixel {

precharge capacitor;

sample referenceValue;

transfer charge packet;

sample signalValue;

output (signalValue-referenceValue);

} // In slow-scan mode cycle time is approximately twice the sampling time.

Analog (fixed) CDS with horizontal binning:

for each N pixels { // N is number of pixels to merge

precharge capacitor;

sample referenceValue;

repeat N times {transfer charge packet;} // all the individual pixel information is lost

sample signalValue;

output (signalValue-referenceValue);

}

Digital (adaptive) readout:

precharge capacitor;

sample referenceValue;

for each pixel {

if (referenceValue > saturationValue/2) { // comparison performed by analog comparator as most ADCs use pipelined operation and the digital data may not be available yet

precharge capacitor;

sample referenceValue;

}

transfer pixel charge packet;

sample signalValue;

output (signalValue-referenceValue);

referenceValue:=signalValue;

}

For most of the low-value pixels only one sampling will be needed - this reduces readout time twice (for the same sampling time). Adding together result pixel values (in the same reset group) provides exactly the same information (and the same S/N ratio) as the regular binning as only two actual analog measurements will remain in the result. Different binning parameters (how many pixels to merge) can be applied to the same data array after the image was acquired - very useful feature if process captured is impossible (or difficult) to repeat.

It is possible to modify this algorithm for the images that contain both low and high pixel value areas by adding an option of shorter sampling time for high value pixels. This sampling time decrease will not add much to the result noise - prevailing noise source for that pixels is the quantum nature of the charge packets themselves - they consist of finite number of electrons. This number is limited by the "full-well capacity" of the pixels and is usually in the range of tens to hundreds of thousands of electrons. The charge packet of 100,000 electrons will have the random component of 300 electrons (or 0.3%) - much higher than output amplifier noise. This fact also means that instead of a single high resolution ADC it is possible to use two lower resolution ones - one for low pixel values, and the other - for high.

 

home