Image Processing and Sampling

advertisement
Image Processing and Sampling
Aaron Bloomfield
CS 445: Introduction to Graphics
Fall 2006
Overview

Image representation


What is an image?
Halftoning and dithering


Trade spatial resolution for intensity resolution
Reduce visual artifacts due to quantization
What is an Image?

An image is a 2D rectilinear array of pixels
Continuous image
Digital image
What 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!
What 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!
Image Acquisition

Pixels are samples from continuous function



Photoreceptors in eye
CCD cells in digital camera
Rays in virtual camera
Image Display

Re-create continuous function from samples

Example: cathode ray tube
Image is reconstructed
by displaying pixels
with finite area
(Gaussian)
Image Resolution
Intensity resolution


Spatial resolution


Each pixel has only “Depth” bits for colors/intensities
Image has only “Width” x “Height” pixels
Temporal resolution

Monitor refreshes images at only “Rate” Hz
Typical
Resolutions

NTSC
Workstation
Film
Laser Printer
Width x Height
640 x 480
1280 x 1024
3000 x 2000
6600 x 5100
Depth
8
24
12
1
Rate
30
75
24
-
Sources of Error

Intensity quantization


Spatial aliasing


Not enough intensity resolution
Not enough spatial resolution
Temporal aliasing

Not enough temporal resolution
E 
2
 I ( x, y)  P( x, y)
2
( x, y )
Overview

Image representation


What is an image?
Halftoning and dithering

Reduce visual artifacts due to quantization
Quantization

Artifacts due to limited intensity resolution


Frame buffers have limited number of bits per pixel
Physical devices have limited dynamic range
Uniform Quantization
P(x, y) = trunc(I(x, y) + 0.5)
P(x,y)
I(x,y)
I(x,y)
P(x,y)
(2 bits per pixel)
Uniform Quantization

Images with decreasing bits per pixel:
8 bits
256 bpp
4 bits
32 bpp
2 bits
8 bpp
1 bit
2 bpp
Reducing Effects of Quantization

Halftoning


Classical halftoning
Dithering



Error diffusion dither
Random dither
Ordered dither
Classical Halftoning

Use dots of varying size to represent intensities

Area of dots proportional to intensity in image
I(x,y)
P(x,y)
Classical Halftoning
Newspaper image from North American Bridge Championships Bulletin, Summer 2003
Halftone patterns

Use cluster of pixels to represent intensity

Trade spatial resolution for intensity resolution
Figure 14.37 from H&B
Dithering

Distribute errors among
pixels



Uniform quantization
discards all errors


Exploit spatial integration in
our eye
Display greater range of
perceptible intensities
i.e. all “rounding” errors
Dithering is also used in
audio, by the way
Floyd-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
0.00 0.00 0.00
0.00 1.00 0.00


0.00 0.00 0.00
0.00 0.00 0.00
0.00 0.00 0.44


0.19 0.31 0.06
Error Diffusion Dither

Spread quantization error over neighbor pixels

Error dispersed to pixels right and below




 +  +  +   1.0
Figure 14.42 from H&B
Floyd-Steinberg dithering

Floyd-Steinberg dithering
dithering algorithm
Original
(8 bits)
Uniform
Quantization
(1 bit)
is a specific
Floyd-Steinberg
Dither (1 bit)
error
Floyd-Steinberg
Dither (1 bit)
(pure B&W)
Random Dither
Randomize quantization errors

Errors appear as noise
P(x,y)
P(x,y)

I(x,y)
I(x,y)
P(x, y) = trunc(I(x, y) + noise(x,y) + 0.5)
Random Dither
Original
(8 bits)
Uniform
Quantization
(1 bit)
Random
Dither
(1 bit)
Ordered Dither

Pseudo-random quantization errors

Matrix stores pattern of thresholds
3
i = x mod n
D2  
j = y mod n
0
e = I(x,y) - trunc(I(x,y))
if (e > D(i,j))
P(x,y) = ceil(I(x, y))
else
P(x,y) = floor(I(x,y))
1

2
Ordered Dither

Bayer’s ordered dither matrices

Reflections and rotations of these are used as well
 4 Dn + D2 (1,1)U n
2
2
Dn  
4 Dn 2 + D2 (2,1)U n 2
3
D2  
0
1
2
4 Dn + D2 (1,2)U n 
2
2

4 Dn + D2 (2,2)U n 
2
2
15
3
D4  
12

0
7
11
4
13
1
14
8
2
5
9 
6

10
Ordered Dither
Original
(8 bits)
Uniform
Quantization
(1 bit)
4x4 Ordered
Dither
(1 bit)
Dither Comparison
Original
(8 bits)
Random
Dither
(1 bit)
Ordered
Dither
(1 bit)
Floyd-Steinberg
Dither
(1 bit)
Color dithering comparison
Original image
Optimized 256 color palette
FS dithering
Web-safe palette, no dithering
Optimized 16 color palette
No dithering
Web-safe palette, FS dithering
Optimized 16 color palette
FS dithering
Summary

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
Download