Archive for June, 2012

Harvest Imaging on the road

Friday, June 29th, 2012

I am writing this blog after finishing two in-house trainings in North America.  It was the first time that my hands-on class went overseas, but also the first time that the hands-on class was organized as an in-house course.  So two premieres at the same time.  A big thank you for my customers who invited me to fly over to North America and organized the in-house trainings.

This hands-on class is very unique in the training world I think, but it also costed me a lot of effort to get it running the way it now does.  Constantly changing, updating and improving is the message.  Especially the feedback I received from the participants is of crucial importance in this process.  After conducting 130+ trainings an, of course you get a very good feeling yourself whether a course is running well or not, and where to improve.  But the feedback of the participants is of crucial importance.  For that reason I would like thank all people attended the hands-on course for their great cooperation and feedback.  Including the two classes of this week, in total about 100 people have already attended the hands-on course.  Next open hands-on course will be organized in Amsterdam, Dec. 3-4, 2012.  Maybe I will meet there some of my blog-readers.  

Albert, 29-06-2012.

How To Measure Temporal Noise in Dark ? (2)

Wednesday, June 27th, 2012


After measuring the noise in dark on pixel level, it is important to check the noise in dark on column level and on row level.  This time we will discuss the temporal noise on column level.  The latter can be calculated based on the same data/images used for the FPN in dark and used for the noise in dark on pixel level.  It is just a matter of applying the right order of statistical calculations.  To evaluate the noise in dark on column level, all pixels in each column are averaged and next the rms value is calculate on these average column values.  Once the noise for each column is known, the average of all rms values is calculated.

The result of this process is shown in Figure 1.  Both the temporal noise on pixel level (previous blog) and the temporal noise on column level are shown as a function of integration time.



Figure 1. Temporal noise measured in dark on pixel level and on column level, as a function of the exposure or integration time.

As can be expected, the column level noise is much lower than the pixel level noise, although the difference between the two curves is minimum at 0 s exposure time and at saturation.  At lower exposure times, the temporal noise of the electronic circuitry plays the most important role, and because the difference between pixel and column noise is not that much, it can be expected that most of the total temporal noise in dark is coming from the column circuitry.  For larger values of the exposure time, the dark shot noise is dominant and in that case, the averaging effect on the data removes this pixelized noise component.  At saturation, the noise is reaching its minimum value.

Numbers that are obtained :

       At 0 s exposure time, the temporal noise on column level is 2.40 DN,

       At 25 % of saturation, and for an exposure time of 8 s, the temporal noise on column level is 2.66 DN.



Figure 2.  Column noise in dark for two different integration times.

Figure 2 shows the column noise in dark for two integration times : 0 s (to get the noise without any dark shot noise) and at 8s (when the pixels containing 25 % of the full well capacity).  In both cases no repetitive pattern in the noise can be recognized, this is also verified by means of a FFT calculation.  The result of this is shown in Figure 3.



 Figure 3.  FFT of the signal of the column noise calculated for an exposure time of 0 s.

As can be observed in Figure 3, there is no specific FFT signal available at a particular frequency.  From this, one can conclude that the column noise is randomly distributed.

Next time a similar exercise will be done for the temporal noise in dark on row level.

Albert, 27-06-2012.

CMOS Image Sensor Workshop, Duisburg, June 12-13, 2012

Thursday, June 14th, 2012

Over the last two days, IMS Fraunhofer organized their bi-yearly CMOS imager workshop.  The workshop was attended by (about) 90 people I guess.  Presentations were done by invitation only.  It was already the sixth time this workshop took place, always in a very good atmosphere and always accompanied by an excellent workshop dinner on the first night.

Of course the most important part are the presentations held at the workshop.   It is impossible to comment on all of the details (because I did not take enough notes), but what I can recall from the top of my head :

– the undersigned had the honour to open the workshop with a talk on the effects of CMOS scaling versus scaling of photonics,

– two interesting presentations followed about the pinned photodiode as the heart of modern CMOS pixels.  TowerJazz gave a lot of details about the pinned diodes, its optimization in technology and in driving circuitry.  Several artifacts were illustrated and explained, like lag, noise, full well, transfer, etc.   After this presentation, Viimagic illustrated how to implement the diodes in a high-performance image sensor.  Focus was paid on CMOS pixels with a global shutter.

– from the application side, Dirk Viehmann gave an overview of solid-state imaging in space.  Many people are used to camera modules for mobile phones, but in the presentation, camera systems almost as large as a complete house were shown.  Impressing technology !

– ToF was covered in 3 talks, coming from PMD, SoftKinetic and Fraunhofer themselves.  Very nice overview of the various methods to perform depth sensing by ToF imagers.

– With respect to non-visible imaging, there were 2 presentations.  First one from Holger Vogt on uncooled microbolometers.  The second one from Jan Bosiers about wafer-scale CMOS imagers.  The bolometer paper described a technology somewhat outside the classical image configurations and technologies, but maybe just for that reason, it was very interesting.  Bosiers on his side gave a very nice overview of large area CMOS devices published recently.

– Next two presentations on optics and camera testing.  Ziv Attar got the attention of the audience by his ideas and explanation of array cameras.  Bernd Jaehne explained in his enthousiastic style the benefits of the EMVA1288 measurement standard.

– The workshop concluded with 3 presentations in the SPAD field : University of Edinburgh, Philips and Politecnico di Milano.  Robert Henderson gave a great overview of the recent published SPAD work.  Philips was focusing on implementing their specific SPAD technology into a medical product and from Politecnico the introduction of SPADs in InGaAs technology was shown.

I do realize that much and much more information was given on many more topics than listed over here.  But I just want to give my readers an idea of what happened over the last couple of days in Duisburg.

Thanks to Werner, Bedrich, Cornelia and all the others for organizing this workshop.  Looking forward to the next on in 2014 ?



How To Measure Temporal Noise in Dark ? (1)

Monday, June 4th, 2012

A few days ago I promised to write some material about how to measure temporal noise.  Temporal noise measurements seem to be very difficult, but actually the reality is different.  Based on the fact that temporal noise is simply the variation of a particular parameter in the time domain, multiple measurements of the same pixel in combination with some simple statistical calculations can do the job !  If one has the choice, the pixel that is going to be sampled is not illuminated, otherwise the photon shot noise will be measured (and there are plenty of people who did this already before !).  Also the dark shot noise needs to be avoided, so preferably a pixel with 0 ms exposure time is analyzed.  Besides the photon shot noise and the dark shot noise, other noise components present when measuring the temporal noise are :

       Johnson noise of all resistive components,

       1/f noise of the MOS transistors (mainly the source-follower in CMOS pixels),

       kTC noise (if not cancelled by CDS),

       quantization noise of the ADC, and,

       any other noise contribution of extra electronics on-chip or off-chip.

Actually there are several ways to measure the temporal noise of an image sensor :

       After sampling a particular pixel multiple times (the more the better !) the rms value of all measurements is calculated.  This will give the noise in mV, DN or maybe even in another measurable quantity,

       The usage of a spectrum analyzer, to evaluate the temporal noise as a function of the frequency.  This type of measurement can help in localizing a particular noise source that is popping up at a specific frequency (e.g. power supply related noise),

       Once the fixed-pattern noise is known of an imager, grabbing a single image (containing temporal and fixed-pattern noise) and subtracting from it the FPN image can result in a temporal noise measurement as well,

       The photon transfer curve (with or without light as discussed in this blog).

The data or images that are going to be used in the analysis of the temporal noise are the same ones as already used in the discussion of the fixed-pattern noise.   The average dark signal as a function of the exposure or integration time is already shown in an earlier blog, here only the temporal noise in dark is shown in Figure 1.  To calculate the temporal noise the following procedure is followed :

       Grabbing 100 images in dark at various exposure times, including an exposure time of 0 s,

       Based on the 100 images obtained at every exposure time, the noise on pixel level is calculated by calculating the rms value of the 100 values available for every pixel.  In this way a noise value for every pixel is obtained,

       Finally the average value of all noise values (at every exposure time) is calculated and shown in Figure 1.  So every single data point in the figure is the result of 320 x 240 x 100 = 7.7 M pixel values.  (It is not an absolute must to include all pixels in the calculation of the temporal noise.  To avoid some “edge effects” a smaller window or region-of-interest can be used for the noise calculations.)


 Figure 1. Temporal noise, measured in dark, as a function of the exposure or integration time.

From left to right the following noise effects/components can be recognized :

       For an exposure time equal to 0 s, the temporal noise is equal to 3.9 DN.  This is the absolute minimum value the noise can have, it is the contribution of all temporal noise sources excluding any photon shot noise (the measurement is done in dark anyhow), and excluding any dark-current related noise because of the chosen exposure time,

       Once the exposure time is larger than 0 s, the dark current shot noise is added, and the total noise increases.  The increase is non-linear, because the dark shot noise has a square-root relation with the dark signal (this square-root relation is only valid in the charge domain !),

       The noise reaches a maximum (23.15 DN) at the moment that the dark-current generated signal + dark current shot noise is hitting the saturation ceiling of the pixel.  At the onset of saturation, only a few pixels will saturate, but at a larger exposure time, more and more pixels will and ultimately the average noise level is going to decrease,

       Once all pixels are saturated, the temporal noise contribution of the pixel is becoming negligible.

But “There’s a warning sign on the road ahead” :

       All the images at a particular exposure time are represented in Figure 1 by means of a single number.  This can be OK for a system that can be characterized by a global measurement (such as a CCD with a single output).  But the CMOS pixels can have noise levels that differ from each other.  Any variation from pixel to pixel cannot be detected from a single number.  It should be mentioned that data sheets very often contain such a single number for the noise specification,

       Measuring noise and expressing it by means of a single number has the risk that it can be dominated by other noise sources, such as shading, fixed-pattern noise, defects,etc.

       No information is available on the type of noise,

       Dark current shot noise is strongly dependent on temperature, other noise sources change less with temperature.  Thus noise characterization needs to be done on temperature-stabilized devices.  Temperature variation should be less than 1 oC,

       Statistics on column noise and row noise can be of great importance to analyze the temporal noise of an imager.  These topics will be subject of the next blog.

During the noise calculation, the data of the temporal noise of every single pixel is present.  For that reason, it is quite simple to extract a histogram of the noise on pixel level.  The result is shown in Figure 2.



Figure 2.  Temporal noise (in dark) histogram of the pixel at 0 s exposure time.

To exclude any effect of the dark-current shot noise, the histogram is based on the data obtained at 0 s exposure time.  As can be seen, the distribution has a fairly long tail.  The latter is due to 1/f noise and RTS noise in the pixels.  The main distribution, with a relative narrow and sharp needle is representing the pixels in which the dominant noise source is the Johnson noise.


Albert, 04-06-2012.