Image Processing Fundamentals - PowerPoint PPT Presentation

1 / 111
About This Presentation
Title:

Image Processing Fundamentals

Description:

Digital Image Processing Chapter 13: Image Compression Prepared by: Eng. Mohamed Hassan Supervised by: Dr. Ashraf Aboshosha http://www.icgst.com/A_Aboshosha.html – PowerPoint PPT presentation

Number of Views:934
Avg rating:3.0/5.0
Slides: 112
Provided by: George555
Category:

less

Transcript and Presenter's Notes

Title: Image Processing Fundamentals


1
Digital Image Processing
Chapter 13 Image Compression
Prepared by Eng. Mohamed Hassan Supervised by
Dr. Ashraf Aboshosha http//www.icgst.com/A_Abosh
osha.html editor_at_icgst.com Tel.
0020-122-1804952 Fax. 0020-2-24115475
2
Goal of Image Compression
  • Digital images require huge amounts of space for
    storage and large bandwidths for transmission.
  • A 640 x 480 color image requires close to 1MB of
    space.
  • The goal of image compression is to reduce the
    amount of data required to represent a digital
    image.
  • Reduce storage requirements and increase
    transmission rates.

3
Approaches
  • Lossless
  • Information preserving
  • Low compression ratios
  • Lossy
  • Not information preserving
  • High compression ratios
  • Trade-off image quality vs compression ratio

4
Data ? Information
  • Data and information are not synonymous terms!
  • Data is the means by which information is
    conveyed.
  • Data compression aims to reduce the amount of
    data required to represent a given quantity of
    information while preserving as much information
    as possible.

5
Data vs Information
  • The same amount of information can be represented
    by various amount of data, e.g.

Your wife, Helen, will meet you at Logan Airport
in Boston at 5 minutes past 600 pm tomorrow
night Your wife will meet you at Logan Airport
at 5 minutes past 600 pm tomorrow night Helen
will meet you at Logan at 600 pm tomorrow night
Ex1
Ex2
Ex3
6
Data Redundancy
compression
Compression ratio
7
Data Redundancy
  • Relative data redundancy

Example
8
Types of Data Redundancy
  • Coding
  • Interpixel
  • Psychovisual
  • Compression attempts to reduce one or more of
    these redundancy types.

9
Coding Redundancy
  • Code a list of symbols (letters, numbers, bits
    etc.)
  • Code word a sequence of symbols used to
    represent a piece of information or an event
    (e.g., gray levels).
  • Code word length number of symbols in each code
    word

10
Coding Redundancy
N x M image rk k-th gray level P(rk)
probability of rk l(rk) of bits for rk
Expected value
11
Coding Redundancy
  • l(rk) constant length

Example
12
Coding Redundancy
  • l(rk) variable length
  • Consider the probability of the gray levels

13
Interpixel redundancy
  • Interpixel redundancy implies that any pixel
    value can be reasonably predicted by its
    neighbors (i.e., correlated).

autocorrelation f(x)g(x)
14
Interpixel redundancy
  • To reduce interpixel redundnacy, the data must be
    transformed in another format (i.e., through a
    transformation)
  • e.g., thresholding, differences between adjacent
    pixels, DFT

(110) bits/pair
15
Psychovisual redundancy
  • The human eye does not respond with equal
    sensitivity to all visual information.
  • It is more sensitive to the lower frequencies
    than to the higher frequencies in the visual
    spectrum.
  • Idea discard data that is perceptually
    insignificant!

16
Psychovisual redundancy
Example quantization
256 gray levels
16 gray levels
16 gray levels
i.e., add to each pixel a small pseudo-random
number prior to quantization
C8/4 21
17
How do we measure information?
  • What is the information content of a
    message/image?
  • What is the minimum amount of data that is
    sufficient to describe completely an image
    without loss of information?

18
Modeling Information
  • Information generation is assumed to be a
    probabilistic process.
  • Idea associate information with probability!

A random event E with probability P(E) contains
Note I(E)0 when P(E)1
19
How much information does a pixel contain?
  • Suppose that gray level values are generated by a
    random variable, then rk contains

units of information!
20
How much information does an image contain?
  • Average information content of an image

using
Entropy
units/pixel
(assumes statistically independent random events)
21
Redundancy (revisited)
  • Redundancy

where
Note of Lavg H, the R0 (no redundancy)
22
Entropy Estimation
  • It is not easy to estimate H reliably!

image
23
Entropy Estimation
  • First order estimate of H

24
Estimating Entropy
  • Second order estimate of H
  • Use relative frequencies of pixel blocks

image
25
Estimating Entropy
  • The first-order estimate provides only a
    lower-bound on the compression that can be
    achieved.
  • Differences between higher-order estimates of
    entropy and the first-order estimate indicate the
    presence of interpixel redundancy!

Need to apply transformations!
26
Estimating Entropy
  • For example, consider differences

27
Estimating Entropy
  • Entropy of difference image
  • Better than before (i.e., H1.81 for original
    image)
  • However, a better transformation could be found
    since

28
Image Compression Model
29
Image Compression Model
  • Mapper transforms input data in a way that
    facilitates reduction of interpixel redundancies.

30
Image Compression Model
  • Quantizer reduces the accuracy of the mappers
    output in accordance with some pre-established
    fidelity criteria.

31
Image Compression Model
  • Symbol encoder assigns the shortest code to the
    most frequently occurring output values.

32
Image Compression Models
  • Inverse operations are performed.
  • But quantization is irreversible in general.

33
Fidelity Criteria
  • How close is to ?
  • Criteria
  • Subjective based on human observers
  • Objective mathematically defined criteria

34
Subjective Fidelity Criteria
35
Objective Fidelity Criteria
  • Root mean square error (RMS)
  • Mean-square signal-to-noise ratio (SNR)

36
Objective Fidelity Criteria (contd)
RMSE 5.17
RMSE 15.67
RMSE 14.17
37
Lossless Compression
38
Lossless Methods Taxonomy
39
Huffman Coding (coding redundancy)
  • A variable-length coding technique.
  • Optimal code (i.e., minimizes the number of code
    symbols per source symbol).
  • Assumption symbols are encoded one at a time!

40
Huffman Coding
  • Forward Pass
  • 1. Sort probabilities per symbol
  • 2. Combine the lowest two probabilities
  • 3. Repeat Step2 until only two probabilities
    remain.

41
Huffman Coding
  • Backward Pass
  • Assign code symbols going backwards

42
Huffman Coding
  • Lavg using Huffman coding
  • Lavg assuming binary codes

43
Huffman Coding/Decoding
  • After the code has been created, coding/decoding
    can be implemented using a look-up table.
  • Note that decoding is done unambiguously.

44
Arithmetic (or Range) Coding (coding redundancy)
  • No assumption on encode source symbols one at a
    time.
  • Sequences of source symbols are encoded together.
  • There is no one-to-one correspondence between
    source symbols and code words.
  • Slower than Huffman coding but typically achieves
    better compression.

45
Arithmetic Coding (contd)
  • A sequence of source symbols is assigned a single
    arithmetic code word which corresponds to a
    sub-interval in 0,1.
  • As the number of symbols in the message
    increases, the interval used to represent it
    becomes smaller.
  • Smaller intervals require more information units
    (i.e., bits) to be represented.

46
Arithmetic Coding (contd)
Encode message a1 a2 a3 a3 a4
1) Assume message occupies 0, 1)
2) Subdivide 0, 1) based on the probability of
ai
3) Update interval by processing source symbols
47
Example
Encode
a1 a2 a3 a3 a4
0.06752, 0.0688) or, 0.068
48
Example
  • The message a1 a2 a3 a3 a4 is encoded using 3
    decimal digits or 3/5 0.6 decimal digits per
    source symbol.
  • The entropy of this message is
  • Note finite precision arithmetic might cause
    problems due to truncations!

-(3 x 0.2log10(0.2)0.4log10(0.4))0.5786
digits/symbol
49
Arithmetic Decoding
1.0
0.8
0.72
0.592
0.5728
a4
0.8
0.72
0.688
0.5856
0.57152
Decode 0.572
a3
0.4
0.56
0.624
0.5728
056896
a2
a3 a3 a1 a2 a4
0.2
0.48
0.592
0.5664
0.56768
a1
0.0
0.4
0.56
0.56
0.5664
50
LZW Coding (interpixel redundancy)
  • Requires no priori knowledge of pixel probability
    distribution values.
  • Assigns fixed length code words to variable
    length sequences.
  • Patented Algorithm US 4,558,302
  • Included in GIF and TIFF and PDF file formats

51
LZW Coding
  • A codebook (or dictionary) needs to be
    constructed.
  • Initially, the first 256 entries of the
    dictionary are assigned to the gray levels
    0,1,2,..,255 (i.e., assuming 8 bits/pixel)

Initial Dictionary
Consider a 4x4, 8 bit image 39 39 126
126 39 39 126 126 39 39
126 126 39 39 126 126
52
LZW Coding (contd)
  • 39 39 126 126
  • 39 39 126 126
  • 39 39 126 126
  • 39 39 126 126

As the encoder examines image pixels, gray level
sequences (i.e., blocks) that are not in the
dictionary are assigned to a new entry.
- Is 39 in the dictionary..Yes - What
about 39-39.No - Then add 39-39 in entry
256
39-39
53
Example
Concatenated Sequence CS CR P
39 39 126 126 39 39 126 126 39 39
126 126 39 39 126 126
(CR)
(P)
CR empty
If CS is found (1) No Output (2) CRCS
else (1) Output D(CR) (2) Add CS to D (3)
CRP
54
Decoding LZW
  • The dictionary which was used for encoding need
    not be sent with the image.
  • Can be built on the fly by the decoder as it
    reads the received code words.

55
Differential Pulse Code Modulation (DPCM) Coding
(interpixel redundancy)
  • A predictive coding approach.
  • Each pixel value (except at the boundaries) is
    predicted based on its neighbors (e.g., linear
    combination) to get a predicted image.
  • The difference between the original and predicted
    images yields a differential or residual image.
  • i.e., has much less dynamic range of pixel
    values.
  • The differential image is encoded using Huffman
    coding.

56
Run-length coding (RLC) (interpixel redundancy)
  • Used to reduce the size of a repeating string of
    characters (i.e., runs)
  • 1 1 1 1 1 0 0 0 0 0 0 1 ? (1,5) (0,
    6) (1, 1)
  • a a a b b b b b b c c ? (a,3) (b, 6) (c,
    2)
  • Encodes a run of symbols into two bytes (symbol,
    count)
  • Can compress any type of data but cannot achieve
    high compression ratios compared to other
    compression methods.

57
Bit-plane coding (interpixel redundancy)
  • An effective technique to reduce inter pixel
    redundancy is to process each bit plane
    individually.
  • (1) Decompose an image into a series of binary
    images.
  • (2) Compress each binary image (e.g., using
    run-length coding)

58
Combining Huffman Coding with Run-length Coding
  • Assuming that a message has been encoded using
    Huffman coding, additional compression can be
    achieved using run-length coding.

e.g., (0,1)(1,1)(0,1)(1,0)(0,2)(1,4)(0,2)
59
Lossy Compression
  • Transform the image into a domain where
    compression can be performed more efficiently
    (i.e., reduce interpixel redundancies).

(N/n)2 subimages
60
Example Fourier Transform
The magnitude of the FT decreases, as u, v
increase!
K ltlt N
K-1
K-1
61
Transform Selection
  • T(u,v) can be computed using various
    transformations, for example
  • DFT
  • DCT (Discrete Cosine Transform)
  • KLT (Karhunen-Loeve Transformation)

62
DCT
  • forward
  • inverse

63
DCT (contd)
  • Basis set of functions for a 4x4 image
    (i.e.,cosines of different frequencies).

64
DCT (contd)
DFT
WHT
DCT
8 x 8 subimages 64 coefficients per
subimage 50 of the coefficients truncated
RMS error 2.32 1.78
1.13
65
DCT (contd)
  • Subimage size selection

4 x 4 subimages
8 x 8 subimages
2 x 2 subimages
original
66
JPEG Compression
  • JPEG is an image compression standard which was
    accepted as an international standard in 1992.
  • Developed by the Joint Photographic Expert Group
    of the ISO/IEC for coding and compression of
    color/gray scale images.
  • Yields acceptable compression in the 101 range.
  • A scheme for video compression based on JPEG
    called Motion JPEG (MJPEG) exists

67
JPEG Compression (contd)
  • JPEG uses DCT for handling interpixel redundancy.
  • Modes of operation
  • (1) Sequential DCT-based encoding
  • (2) Progressive DCT-based encoding
  • (3) Lossless encoding
  • (4) Hierarchical encoding

68
JPEG Compression (Sequential DCT-based encoding)
Entropy decoder
69
JPEG Steps
  • 1.Divide the image into 8x8 subimages
  • For each subimage do
  • 2. Shift the gray-levels in the range -128,
    127
  • - DCT requires range be centered
    around 0
  • 3. Apply DCT (i.e., 64 coefficients)
  • 1 DC coefficient F(0,0)
  • 63 AC coefficients F(u,v)

70
JPEG Steps
  • 4. Quantize the coefficients (i.e., reduce the
    amplitude of coefficients that do not contribute
    a lot).

Q(u,v) quantization table
71
Example
  • Quantization Table Qij

72
Example (contd)
Quantization
73
JPEG Steps (contd)
  • 5. Order the coefficients using zig-zag ordering
  • - Place non-zero coefficients first
  • - Create long runs of zeros (i.e., good for
    run-length encoding)

74
Example
75
JPEG Steps (contd)
  • 6. Form intermediate symbol sequence and encode
    coefficients
  • 6.2 AC coefficients variable length coding

6.1 DC coefficients predictive encoding
76
Intermediate Coding
DC
symbol_1 (SIZE)
symbol_2 (AMPLITUDE)
end of block
DC (6)
(61) AC (0,2)
(-3)
symbol_1 (RUN-LENGTH, SIZE) symbol_2
(AMPLITUDE)
SIZE bits for encoding amplitude RUN-LENGTH
run of zeros
77
DC/AC Symbol Encoding
  • DC encoding
  • AC encoding

symbol_1 symbol_2 (SIZE)
(AMPLITUDE)
predictive coding
-2048, 2047
-211, 211-1 1 SIZE11
0 0 0 0 0 0 476 (6,9)(476)
-210, 210-1 1 SIZE10
If RUN-LENGTH gt 15, use symbol (15,0) , i.e.,
RUN-LENGTH16
78
Effect of Quality
90 (58k bytes)
50 (21k bytes)
10 (8k bytes)
worst quality, highest compression
best quality, lowest compression
79
Example 1 homogeneous 8 x 8 block
80
Example 1 (contd)
Quantized
De-quantized
81
Example 1 (contd)
Reconstructed
Error
82
Example 2 less homogeneous 8 x 8 block
83
Example 2 (contd)
Quantized
De-quantized
84
Example 2 (contd)
Error
Reconstructed spatial
85
JPEG for Color Images
  • Could apply JPEG on R/G/B components .
  • It is more efficient to describe a color in terms
    of its luminance and chrominance content
    separately, to enable more efficient processing.
  • YUV
  • Chrominance can be subsampled due to human vision
    insensitivity

86
JPEG for Color Images
  • Luminance Received brightness of the light
    (proportional to the total energy in the visible
    band).
  • Chrominance Describe the perceived color tone of
    the light (depends on the wavelength composition
    of light
  • Hue Specify the color tone (i.e., depends on the
    peak wavelength of the light).
  • Saturation Describe how pure the color is (i.e.,
    depends on the spread or bandwidth of the light
    spectrum).

87
JPEG for Color Images
Encoder
Decoder
88
JPEG Modes
  • JPEG supports several different modes
  • Sequential Mode
  • Progressive Mode
  • Hierarchical Mode
  • Lossless Mode
  • Sequential is the default mode
  • Each image component is encoded in a single
    left-to-right, top-to-bottom scan.
  • This is the mode we have been describing.

89
Progressive JPEG
  • The image is encoded in multiple scans, in order
    to produce a quick, rough decoded image when
    transmission time is long.

Sequential
Progressive
90
Progressive JPEG (contd)
  • Send DCT coefficients in multiple scans
  • (1) Progressive spectral selection algorithm
  • (2) Progressive successive approximation
    algorithm
  • (3) Hybrid progressive algorithm

91
Progressive JPEG (contd)
  • (1) Progressive spectral selection algorithm
  • Group DCT coefficients into several spectral
    bands
  • Send low-frequency DCT coefficients first
  • Send higher-frequency DCT coefficients next

92
Progressive JPEG (contd)
  • (2) Progressive successive approximation
    algorithm
  • Send all DCT coefficients but with lower
    precision.
  • Refine DCT coefficients in later scans.

93
Progressive JPEG (contd)
  • (3) Hybrid progressive algorithm
  • Combines spectral selection and successive
    approximation.

94
Hierarchical JPEG
  • Hierarchical mode encodes the image at several
    different resolutions.
  • Image is transmitted in multiple passes with
    increased resolution at each pass.

95
Hierarchical JPEG (contd)
f4
N/4 x N/4
f2
N/2 x N/2
f
N x N
96
Hierarchical JPEG (contd)
 
 
97
Hierarchical JPEG (contd)
98
Lossless Differential Pulse Code Modulation
(DPCM) Coding
  • Each pixel value (except at the boundaries) is
    predicted based on certain neighbors (e.g.,
    linear combination) to get a predicted image.
  • The difference between the original and predicted
    images yields a differential or residual image.
  • Encode differential image using Huffman coding.

xm
dm
Entropy Encoder
pm
predictor
99
Lossy Differential Pulse Code Modulation (DPCM)
Coding
  • Similar to lossless DPCM except that (i) it uses
    quantization and (ii) the pixels are predicted
    from the reconstructed values of certain
    neighbors.

100
Block Truncation Coding
  • Divide image in non-overlapping blocks of pixels.
  • Derive a bitmap (0/1) for each block using
    thresholding.
  • e.g., use mean pixel value in each block as
    threshold.
  • For each group of 1s and 0s, determine
    reconstruction value
  • e.g., average of corresponding pixel values in
    original block.

101
Subband Coding
  • Analyze image to produce components containing
    frequencies in well defined bands (i.e.,
    subbands)
  • e.g., use wavelet transform.
  • Optimize quantization/coding in each subband.

102
Vector Quantization
  • Develop a dictionary of fixed-size vectors (i.e.,
    code vectors), usually blocks of pixel values.
  • Partition image in non-overlapping blocks (i.e.,
    image vectors).
  • Encode each image vector by the index of its
    closest code vector.

103
Fractal Coding
  • What is a fractal?
  • A rough or fragmented geometric shape that can be
    split into parts, each of which is (at least
    approximately) a reduced-size copy of the whole.

Idea store images as collections of
transformations!
104
Fractal Coding (contd)
Generated by 4 affine transformations!
105
Fractal Coding (contd)
  • Decompose image into segments (i.e., using
    standard segmentations techniques based on edges,
    color, texture, etc.) and look them up in a
    library of IFS codes.
  • Best suited for textures and natural images.

106
Fingerprint Compression
  • An image coding standard for digitized
    fingerprints, developed and maintained by
  • FBI
  • Los Alamos National Lab (LANL)
  • National Institute for Standards and Technology
    (NIST).
  • The standard employs a discrete wavelet
    transform-based algorithm (Wavelet/Scalar
    Quantization or WSQ).

107
Memory Requirements
  • FBI is digitizing fingerprints at 500 dots per
    inch with 8 bits of grayscale resolution.
  • A single fingerprint card turns into about 10 MB
    of data!

A sample fingerprint image 768 x 768 pixels
589,824 bytes
108
Preserving Fingerprint Details
The "white" spots in the middle of the black
ridges are sweat pores Theyre admissible points
of identification in court, as are the little
black flesh islands in the grooves between
the ridges
These details are just a couple pixels wide!
109
What compression scheme should be used?
  • Better use a lossless method to preserve every
    pixel perfectly.
  • Unfortunately, in practice lossless methods
    havent done better than 21 on fingerprints!
  • Would JPEG work well for fingerprint compression?

110
Varying compression ratio
  • FBIs target bit rate is around 0.75 bits per
    pixel (bpp)
  • i.e., corresponds to a target compression ratio
    of 10.7 (assuming 8-bit images)
  • This target bit rate is set via a knob on the
    WSQ algorithm.
  • i.e., similar to the "quality" parameter in many
    JPEG implementations.
  • Fingerprints coded with WSQ at a target of 0.75
    bpp will actually come in around 151

111
End
Thank you
Write a Comment
User Comments (0)
About PowerShow.com