High Dynamic Range Image Processing
Peter Catrysse and Robert Batchko
Final Project Psych 221
Stanford University, 3/13/98
Motivation
Driven by the continuous advances in CMOS technology for processors and
DRAM's, CMOS sensor arrays are becoming a more viable alternative to CCD
sensor technology every day. Research on CMOS vision chip design with A/D
conversion at the pixel level, presentated at the past SPIE
Photonics West Conference by El
Gamal et al. is leading us to unexplored terrain. The availability
of such a device is one step along the way to bring us to the programmable
digital camera-on-a-chip. But before this camera sees the daylight, a number
of issues need to be researched. (Figure 1)
It is expected at this point that A/D conversion at the pixel level
should give advantages when dealing with images taken from scenes with
high dynamic range. Those scenes tend to be a problem for CCD based digital
cameras (even for traditional film based photography) and lead to totally
unacceptable images.In a first part of the project, we explore this particular
topic from a device independent point of view focussing on algorithms and
techniques. We started by writing our own decomposition tools and used
to to try out a few ideas, but they should allow more rigorous work in
the future.
Another issue that needs to be dealt with is the expected excess noise
in CMOS sensors over CCD sensors. We made a first pass at evaluating the
impact of CMOS noise on the image quality using the CIELAB L* metric. This
part of the project should allow us to suggest A/D conversion schemes and
the appropriate use of quantizers. (Figure 2)
Part I: High Dynamic Range Image Processing Tools.
Overview.
The goal of this portion of the project was to utilize spatial- and intensity-filtering
techniques in order to enhance the viewability of information in a high
dynamic range image. (Figure 3)
This work focused on implementing two techniques for signal processing
of the high dynamic range image; bit plane decomposition and blurring.
However, other techniques such as pyramid decomposition and spatial and
spectral averaging were briefly explored and merit further study.
(Figure 4)
Step 1: Original source image.
An original (black and white) image was acquired. The image resolution
was 256 x 256 pixel with 12 bit grey scale.
(Figure 5)
Step 2: Bit Plane Decomposition.
Using binary intesity decompositon, the original image is broken up into
12 bit planes. Each bit plane consists of the (single bit) information
corresponding to a respective bit level from the 12 bits of intesity. Notice
that in bit planes 7 and 8, image information is revealed which was not
viewable in the original image.
(Figure 6)
Unweighted Reconstructed Image.
Without altering the values of (ie., weighting) the bit planes relative
to eachother, a reconstructred image is built by recombining the bit planes.
This unweighted reconstructed image is a duplicate of the original image.
(Figure 7)
Weighted Reconstructed Image.
By assigning an individual weighting coeficient to each bit plane, a weighted
reconstructed image is created. This image reveals information not
previously viewable in the original image. However, some "noise"
has also been amplified thus degrading other parts of the original image.
(Figure 8)
Step 3: Blurring.
The third step of this work involved the use of blurring (ie., low-pass
filtering) on the individual bit planes. Twelve separate Gaussian
blurring kernels were constructed. Each kernel was convolved with
a respective bit plane, thus performing a specific blurring function on
each bit plane.
(Figure 9)
Bit Plane Blurring.
This slide shows the twelve (unweighted) bit planes with blurring. Notice
that the lowest order bit planes (ie., bit planes 1-4) were given the greatest
blurring while the hightest order order bit planes (ie., bit planes 9-12)
were blurred the least.
(Figure 10)
Step 4: Resulting Image.
Last, the weighting factors are applied to each blurred bit plane.
The resulting image now contains more viewable information than in the
original image, with a small degradation of some image content due to amplified
noise. Compare this resulting image (Figure 12)
to the original image (Figure 11)
Conclusions for part I of the project.
Binary intensity decomposition combined with blurring and weighting of
the bit planes is useful in displaying the full signal extent of high dynamic
range images.
However, while these methods can improve certain areas of the image,
other areas may be degraded. Spatial decomposition in combination with
intensity decomposition has potential to overcome this limitation. (Figure
13)
Robert G. Batchko, March 1998
Part II: Noise Analysis and Reduction Techniques.
Overview.
The second part of the project consists of a noise analysis and modeling
for CMOS sensors including shot noise, fixed pattern noise and quantization
noise. It will in the future also include readout noise. We perform the
following steps: first we create synthetic digital images; then we convert
those images back to their analog representation using a model of the capturing
device and the A/D converter used in the process; next we add noise to
the image and finally we compare the re-digitized image with the original
using the CIELAB metric (Figure 14). This processing
pipeline can be reformulated in the shape of a project graph showing the
different smaller parts of the task (Figure 15
and Figure 16).
Step 1: Synthetic Digital Images.
We developed a small set of synthetic images, because we soon realized
that operating on real images of any decent size was going to be painful
during the development phase of the MATLAB tools. The synthetic images
also give us more flexibility in isolating particular image characteristics.
At this point our library consists of a checkerboard pattern and a couple
of grayscale ramps. This enabled us to experiment and try out the tools
we wrote for this project and as need arises we will expand this library.
(Figure 17)
Step 2: Digital-to-Analog Conversion.
In order to model the noise associated with the analog image as it is captured
by the sensor array, we perform an digital-to-analog conversion based on
two different quantizers: a linear or uniform one and a nonlinear (square
root) one. Their characteristics are given in Figure
18.
The choice of quantizer is a definite choice that is available having
the A/D conversion at the pixel level and we should definitely explore
the options we have. The uniform quantizer was chosen as a reference and
the nonlinear one was chosen because it allows us at least 8 bits of digital
data for the given set of sensor parameters (Figure
19). Also it was chosen with the notion in the back of the head that
shot noise has a square root type of behavior and this quantizer might
be suitable to deal well with shot noise dominated images.
Step 3: Noise Modeling for the Analog Image.
We show the models for both the shot noise and the fixed pattern noise
(Figure 20 and Figure 21).
At this point we only investigate the impact of shot noise on image quality.
Step 4: Analog-to-Digital Conversion.
Of course we use the same quantizer here than the one used for digital-to-analog
conversion, it wouyld not make sense to do otherwise
Step 5: CIELAB L* Vision Metric.
The L* value which is part of the CIELAB metric gives us the luminance
that would be obtained from the rgb values of a pixel within an image.
This is a visual metric for the way pixels would look similar to the eye.
We use this value to compare our original synthetic digital image to the
digitsal image that has been obtained after noise degradation.
We perform the comparison for both quantizers and notice that if the
image is shot noise dominated that the nonlinear square root quantizer
outperforms the linear quantizer. (Figure 22)
Step 6: Blurring of the Digital Images.
Blurring of both the original synthetic image and the noisy digital image
allow us to see what the impact is of the limited resolution of the human
eye as a function of the viewing distance but also allows us to explore
if blurring improves image quality when an image has been degraded with
noise.
Clearly, blurring does not improve the L* matching on a pixel to pixel
basis between the both images as can be readily seen from Figure
23.
Conclusions for part I of the project.
Well Capacity determines maximum number of bits available after performing
A/D conversion. If the only noise source is shot noise, then the nonlinear
quantizer outperforms the linear quantizer. At the maximum allowable number
of bit levels the nonlinear quantizer produces almost perfectly matched
L* values. Blurring of both the original and the noisy digital image has
a deteriorating effect on L* matching. (Figure 24)
Peter Catrysse, March 1998
Peter B. Catrysse / peter@kaos.stanford.edu
Robert G. Batchko / rgb@loki.stanford.edu
Copyright © 1998 Peter B. Catrysse and Robert
G. Batchko