Title: Image Processing and Sampling
1Image Processing and Sampling
- Aaron Bloomfield
- CS 445 Introduction to Graphics
- Fall 2006
2Overview
- Image representation
- What is an image?
- Halftoning and dithering
- Trade spatial resolution for intensity resolution
- Reduce visual artifacts due to quantization
3What is an Image?
- An image is a 2D rectilinear array of pixels
Continuous image
Digital image
4What is an Image?
- An image is a 2D rectilinear array of pixels
Continuous image
Digital image
A pixel is a sample, not a little square!
5What is an Image?
- An image is a 2D rectilinear array of pixels
Continuous image
Digital image
A pixel is a sample, not a little square!
6Image Acquisition
- Pixels are samples from continuous function
- Photoreceptors in eye
- CCD cells in digital camera
- Rays in virtual camera
7Image Display
- Re-create continuous function from samples
- Example cathode ray tube
Image is reconstructed by displaying pixels with
finite area (Gaussian)
8Image Resolution
- Intensity resolution
- Each pixel has only Depth bits for
colors/intensities - Spatial resolution
- Image has only Width x Height pixels
- Temporal resolution
- Monitor refreshes images at only Rate Hz
Width x Height Depth Rate NTSC 640 x 480
8 30 Workstation 1280 x 1024 24 75 Film 3000 x
2000 12 24 Laser Printer 6600 x 5100 1 -
Typical Resolutions
9Sources of Error
- Intensity quantization
- Not enough intensity resolution
- Spatial aliasing
- Not enough spatial resolution
- Temporal aliasing
- Not enough temporal resolution
10Overview
- Image representation
- What is an image?
- Halftoning and dithering
- Reduce visual artifacts due to quantization
11Quantization
- Artifacts due to limited intensity resolution
- Frame buffers have limited number of bits per
pixel - Physical devices have limited dynamic range
12Uniform Quantization
P(x, y) trunc(I(x, y) 0.5)
I(x,y)
P(x,y) (2 bits per pixel)
13Uniform Quantization
- Images with decreasing bits per pixel
- 256 bpp 32 bpp 8 bpp 2 bpp
8 bits
4 bits
2 bits
1 bit
14Reducing Effects of Quantization
- Halftoning
- Classical halftoning
- Dithering
- Error diffusion dither
- Random dither
- Ordered dither
15Classical Halftoning
- Use dots of varying size to represent intensities
- Area of dots proportional to intensity in image
P(x,y)
I(x,y)
16Classical Halftoning
Newspaper image from North American Bridge
Championships Bulletin, Summer 2003
17Halftone patterns
- Use cluster of pixels to represent intensity
- Trade spatial resolution for intensity resolution
Figure 14.37 from HB
18Dithering
- Distribute errors among pixels
- Exploit spatial integration in our eye
- Display greater range of perceptible intensities
- Uniform quantization discards all errors
- i.e. all rounding errors
- Dithering is also used in audio, by the way
19Floyd-Steinberg dithering
- Any rounding errors are distributed to other
pixels - Specifically to the pixels below and to the right
- 7/16 of the error to the pixel to the right
- 3/16 of the error to the pixel to the lower left
- 5/16 of the error to the pixel below
- 1/16 of the error to the pixel to the lower right
- Assume the 1 in the middle gets rounded to 0
20Error Diffusion Dither
- Spread quantization error over neighbor pixels
- Error dispersed to pixels right and below
?
?
?
?
? ? ? ? 1.0
Figure 14.42 from HB
21Floyd-Steinberg dithering
- Floyd-Steinberg dithering is a specific error
dithering algorithm
Uniform Quantization (1 bit)
Floyd-Steinberg Dither (1 bit)
Floyd-Steinberg Dither (1 bit) (pure BW)
Original (8 bits)
22Random Dither
- Randomize quantization errors
- Errors appear as noise
P(x, y) trunc(I(x, y) noise(x,y) 0.5)
23Random Dither
Uniform Quantization (1 bit)
Random Dither (1 bit)
Original (8 bits)
24Ordered Dither
- Pseudo-random quantization errors
- Matrix stores pattern of thresholds
i x mod n j y mod n e I(x,y) -
trunc(I(x,y)) if (e gt D(i,j)) P(x,y)
ceil(I(x, y)) else P(x,y) floor(I(x,y))
25Ordered Dither
- Bayers ordered dither matrices
- Reflections and rotations of these are used as
well
26Ordered Dither
Uniform Quantization (1 bit)
4x4 Ordered Dither (1 bit)
Original (8 bits)
27Dither Comparison
Random Dither (1 bit)
Original (8 bits)
Ordered Dither (1 bit)
Floyd-Steinberg Dither (1 bit)
28Color dithering comparison
- Original image Web-safe palette, no
dithering Web-safe palette, FS dithering
Optimized 256 color palette
Optimized 16 color palette Optimized
16 color palette FS dithering No
dithering FS dithering
29Summary
- Image representation
- A pixel is a sample, not a little square
- Images have limited resolution
- Halftoning and dithering
- Reduce visual artifacts due to quantization
- Distribute errors among pixels
- Exploit spatial integration in our eye
- Sampling and reconstruction
- Reduce visual artifacts due to aliasing
- Filter to avoid undersampling
- Blurring is better than aliasing