Graphics
Image Processing 고려대학교 컴퓨터 그래픽스 연구실
Graphics Lab @ Korea University
Overview
Image Representation
What is an image?
Halftoning and Dithering
CGVR
Trade spatial resolution for intensity resolution Reduce visual artifacts due to quantization
Sampling and Reconstruction
Key steps in image processing Avoid visual artifacts due to aliasing Graphics Lab @ Korea University
What is an Image? ď Ž
CGVR
An image is a 2D rectilinear array of pixels
Continuous image
Digital image
Graphics Lab @ Korea University
What is an Image? ď Ž
CGVR
An image is a 2D rectilinear array of pixels
Continuous image
Digital image
Graphics Lab @ Korea University
What is an Image? ď Ž
CGVR
An image is a 2D rectilinear array of pixels
Continuous image
Digital image A pixel is a sample, not a little square!! Graphics Lab @ Korea University
Image Acquisition
CGVR
Pixels are samples from continuous function
Photoreceptors in eye CCD cells in digital camera Rays in virtual camera
Graphics Lab @ Korea University
Image Display
CGVR
Re-create continuous function from samples
Example: cathode ray tube
Image is reconstructed by displaying pixels with finite area (Gaussian) Graphics Lab @ Korea University
Image Resolution
Intensity resolution
Each pixel has only “Depth” bits for colors/intensities
Spatial resolution
CGVR
Image has only “Width” x “Height” pixels
Temporal resolution
Monitor refreshes images at only “Rate” Hz
Graphics Lab @ Korea University
Sources of Error
Intensity quantization
Not enough intensity resolution
Spatial aliasing
CGVR
Not enough spatial resolution
Temporal aliasing
Not enough temporal resolution
E
2
2 ( ( ) ( ) ) = ∑ I x, y − P x, y
( x, y )
Graphics Lab @ Korea University
Overview
Image Representation
What is an image?
Halftoning and Dithering
CGVR
Trade spatial resolution for intensity resolution Reduce visual artifacts due to quantization
Sampling and Reconstruction
Key steps in image processing Avoid visual artifacts due to aliasing Graphics Lab @ Korea University
Quantization
CGVR
Artifact due to limited intensity resolution
Frame buffers have limited number of bits per pixel Physical devices have limited dynamic range 255 150 255 255 150 150 75 255 255 150 150 75 750 255 150 255 255 150 150 75 750 255 150 255 255 150 150 75 750 255 150 255 255 150 150 75 750 255 150 75 0
75 750
0
750 750
0
750 0
0
0 0 Blue channel
Green channel Red channel Graphics Lab @ Korea University
Uniform Quantization
CGVR
P( x, y ) = trunc( I ( x, y ) + 0.5)
I(x, y)
P(x, y) 2 bits per pixel Graphics Lab @ Korea University
Uniform Quantization ď Ž
CGVR
Image with decreasing bits per pixel:
8 bits
4 bits
2 bits
1 bit
Notice contouring Graphics Lab @ Korea University
Reducing Effects of Quantization
Halftoning
CGVR
Classical halftoning
Dithering
Random dither Ordered dither Error diffusion dither
Graphics Lab @ Korea University
Classical Halftoning ď Ž
CGVR
Use dots of varying size to representation intensities ď Ž
Area of dots proportional to intensity in image
I(x, y)
P(x, y)
Graphics Lab @ Korea University
Classical Halftoning
CGVR
Newspaper image From New York Times 9/21/99 Graphics Lab @ Korea University
Halftone Patterns ď Ž
CGVR
Use cluster of pixels to represent intensity ď Ž
Trade spatial resolution for intensity resolution
Graphics Lab @ Korea University
Halftone Patterns ď Ž
CGVR
How many intensities in a n x n cluster?
Graphics Lab @ Korea University
Dithering
CGVR
Distribute errors among pixels
Exploit spatial integration in our eye Display greater range of perceptible intensities
Original (8 bits)
Uniform Quantization (1 bit)
Floyd-Steinberg Dither (1 bit) Graphics Lab @ Korea University
Random Dither ď Ž
CGVR
Randomize quantization errors ď Ž
Errors appear as noise
P( x, y ) = trunc( I ( x, y ) + noise( x, y ) + 0.5) Graphics Lab @ Korea University
Random Dither
Original (8 bits)
Uniform Quantization (1 bit)
CGVR
Random Dither (1 bit)
Graphics Lab @ Korea University
Ordered Dither
CGVR
Pseudo-random quantization errors
Matrix stores pattern of thresholds j = x mod n i = y mod n 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))
3 1 D2 = 0 2
Graphics Lab @ Korea University
Ordered Dither
Original (8 bits)
Uniform Quantization (1 bit)
CGVR
Ordered Dither (1 bit)
Graphics Lab @ Korea University
Error Diffusion Dither
CGVR
Spread quantization error over neighbor pixels
Error dispersed to pixels right and below
α β
γ
δ
α + β + γ + δ = 1.0 Graphics Lab @ Korea University
Error Diffusion Dither
Original (8 bits)
Random Dither (1 bit)
Ordered Dither (1 bit)
CGVR
Floyd-Steinberg Dither (1 bit)
Graphics Lab @ Korea University
Overview
Image Representation
What is an image?
Halftoning and Dithering
CGVR
Trade spatial resolution for intensity resolution Reduce visual artifacts due to quantization
Sampling and Reconstruction
Key steps in image processing Avoid visual artifacts due to aliasing Graphics Lab @ Korea University
Sampling and Reconstruction
CGVR
Sampling
Reconstruction
Graphics Lab @ Korea University
Sampling and Reconstruction
CGVR
Graphics Lab @ Korea University
Aliasing
In general:
CGVR
Artifacts due to under-sampling or poor reconstruction
Specifically, in graphics:
Spatial aliasing Temporal aliasing
Under-sampling Graphics Lab @ Korea University
Spatial Aliasing ď Ž
CGVR
Artifacts due to limited spatial resolution
Graphics Lab @ Korea University
Spatial Aliasing
CGVR
Artifacts due to limited spatial resolution
“Jaggies” Graphics Lab @ Korea University
Temporal Aliasing
CGVR
Artifacts due to Limited Temporal Resolution
Strobing Flickering
Graphics Lab @ Korea University
Temporal Aliasing
CGVR
Artifacts due to Limited Temporal Resolution
Strobing Flickering
Graphics Lab @ Korea University
Temporal Aliasing
CGVR
Artifacts due to Limited Temporal Resolution
Strobing Flickering
Graphics Lab @ Korea University
Temporal Aliasing
CGVR
Artifacts due to Limited Temporal Resolution
Strobing Flickering
Graphics Lab @ Korea University
Antialiasing
Sample at higher rate
CGVR
Not always possible Doesn’t always solve problem
Pre-filter to form bandlimited signal
Form bandlimited function (low-pass filter) Trades aliasing for blurring Must consider sampling theory!
Graphics Lab @ Korea University
Sampling Theory
CGVR
ď Ž
How many samples are required to represent a given signal without loss of information?
ď Ž
What signals can be reconstructed without loss for a given sampling rate?
Graphics Lab @ Korea University
Sampling Theorem
CGVR
A signal can be reconstructed from its samples, if the original signal has no frequencies above ½ the sampling frequency – Shannon
The minimum sampling rate for bandlimited function is called “Nyquist rate”
A signal is bandlimited if its highest frequency is bounded. The frequency is called the bandwidth. Graphics Lab @ Korea University
Image Processing
Quantization
CGVR
Filtering
Blur Uniform quantization Detect edge Random dither Ordered dither Floyd-Steinberg dither Warping Scale Rotate Pixel operations Warps Add random noise
Add luminance Add contrast Add saturation
Combining
Morphs Composite Graphics Lab @ Korea University