100% found this document useful (1 vote)
665 views

Image Compression

The document discusses image compression techniques. It defines different types of redundancies that can be exploited in images, such as coding, interpixel, and psychovisual redundancies. It also describes error-free and lossy compression models. Key aspects of compression standards and different measures of fidelity criteria are summarized.

Uploaded by

Bhavuk Chandak
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
665 views

Image Compression

The document discusses image compression techniques. It defines different types of redundancies that can be exploited in images, such as coding, interpixel, and psychovisual redundancies. It also describes error-free and lossy compression models. Key aspects of compression standards and different measures of fidelity criteria are summarized.

Uploaded by

Bhavuk Chandak
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 47

Image Compression

Content

 Redundancies
 Coding
 Interpixel
 Psychovisual
 Fidelity Criteria
 Image Compression models
 Error free compression
 Lossy compression
 Image compression standards
Compression..??
 What is compression.?
 A technique by which the data is stored as information.
 Representation of data in such a way that it makes the
use of less resources to store and transmit it.
 How it is done..??
 By reducing the redundancy present in the data.
 Redundancy = Data – Information
 Redundancy = Irrelevant or symmetric data.
 R= 1- 1/C
 Where
 c= b/b’
 R = relative redundancy
 b= bits used to represent data
 b’ = bits used to represent the information from that data
Redundancies

 Coding Redundancies
 Interpixel Redundancies
 Psychovisual Redundancies
Coding Redundancies
 Code: system of letters, numbers, bits (symbols)
 Codeword: Meaningful sequence of symbols
 Code Length: Number of symbols used to form codeword
 Often Coding techniques makes the use of more number of bits than
that required to store the intensity.
 Example
 In 8 bit gray scale representation intensity level ‘6’ is represented by
‘00000110’
 where only 3 last bits are significant and rest 5 are redundant.
 In this example
 Code = {1,0}, Codeword = 00000110 and Code Length = 8
 Other way to exploit redundancy
 Suppose we are making use of 8 bits to represent the gray levels in the
image.
 But suppose image is having only ’64’ different intensity levels in it out
of possible ‘256’ gray levels.
 Now if we assign new code to those ’64’ intensities, ‘6’ bits are sufficient
to store the pixel information
Interpixel Redundancy (based
on planes)
 Spetial (Intra plane) Redundancy:
 The correlated pixels in a still image

 Temporal (Interplane) Redundancy:


 The correlated pixels in two consecutive
frames (two still images)
Psychovisual Redundancies

 The information coded, that is not


interpreted by human visual system.
 The information coded, that is not
detected by human visual system.
 Detected = Interpreted..??
Fidelity Criteria
 How to specify Information loss.?
 Objective fidelity (mathematical)
 Subjective fidelity (human opinion)
 Objective Fidelity
 Let f(x,y) is original image and f’(x,y) be the
approximation of f(x,y)
 Error e(x,y) = f’(x,y) – f(x,y)
 So the total error between original and
decompressed image
 ∑∑[f’(x,y) – f(x,y)]
 Where summation is taken along the rows and
columns
Fidelity Criteria (cntd…)

 Root Mean Square Error

 Where MSE is mean square error.

 MSE =1/MN ( ∑∑[f’(x,y) – f(x,y)] )2


 Where summation is taken along the rows
(M) and columns (N)
Fidelity Criteria (cntd…)

 Signal to Noise Ratio (SNR)


 ∑∑f’(x,y)2 / ∑∑[f’(x,y) – f(x,y)] )2
 Where summation is taken along the rows
(M) and columns (N)

 i.e. Approximated Signal / Square Error


Fidelity Criteria (cntd…)
 Subjective Fidelity
 Human opinion about the perceived image
 Excellent (much better)
 Fine (better)
 Passable (slightly better)
 Marginal (slightly worse)
 Inferior (worse)
 Unusable (much worse)

 These comments can be ranged from -3 to 3


numeric from ‘much better’ to ‘much ‘worse’
respectively
Image Compression Model

 General Compression Model

 Generic Image Compression Model


Special about Image Compression
 Compressing an image is significantly different than compressing raw
binary data.
 Of course, general purpose compression programs can be used to
compress images, but the result is less than optimal.
 This is because images have certain statistical properties which can be
exploited by encoders specifically designed for them.
 Also, some of the finer details in the image can be sacrificed for the
sake of saving a little more bandwidth or storage space.
 This also means that lossy compression techniques can be used in this
area. 
 Lossless compression involves with compressing data which, when
decompressed, will be an exact replica of the original data.
 This is the case when binary data such as executables, documents etc.
are compressed.
 On the other hand, images (and music too) need not be reproduced
'exactly'.
 An approximation of the original image is enough for most purposes, as
long as the error between the original and the compressed image is
tolerable.
Image Compression Model (cntd..)

 Mapper : Reduces inter-pixel redundancy


 Run length coding: reversible
 Calculation of DCT: reversible
 Quantizer: reduces psyco-visual redundancy
 Reduction of grey scales: not reversible
 Removal of high frequency content: not reversible
 Reduces the accuracy of Mapper’s output
 Symbol Enoder:reduces coding redundancy
 Generates the fixed length or variable length symbols
to represent the output of quantizer.
 Variable length coding: reversible
 Channel transmits the compressed data.
Error Free Compression
Variable length coding
 Huffman coding
 Most probable symbol is assigned the shortest code
word

 Some Properties of Huffman Code

 Instantaneous:
 do not refer|ence s{uz cceed}ing symbols
 Uniquely decodable
 symbols can be decoded in only one way
 Block code
 for each symbol: only one code
Example
 Symbol Frequency
 A 24
 B 12
 C 10
 D 08
 E 08
 Total 186 bit (with 3 bit per code word)
 Steps
 The two rarest symbols 'E' and 'D' are connected first,
followed by 'C' and 'D'.
 The new parent nodes have the frequency 16 and 22
respectively and are brought together in the next step.
 The resulting node and the remaining symbol 'A' are
subordinated to the root node that is created in a final
step.
Example Continued
Example Continued

S F C CL TL
 A 24 0 1 24
 B 12 100 3 36
 C 10 101 3 30
D 8 110 3 24
E 8 111 3 24
 -------------------------------------
 186 138 bits
 Lavg = (0.4)(1) + (0.3)(2) + (0.1)(3) + (0.1)(4) + (0.06)(5) +
(0.04)(5) = 2.2 bits/pixel
Arithmetic Coding

 Huffman uses a static table for the whole


coding process, so it is rather fast, but
does not produce an efficient
compression ratio.
 Arithmetic coding, on the other hand,
has different features.
 It can generate a high compression ratio (3
bits per character on avarage), but all the
complex calculation takes much more time,
resulting in a slower implementation.
AAA: 0, 0.0996
AA: 0, 0.166 AAB: 0.0996, 0.1328
AAC: 0.1328, 0.166
ABA: 0.166, 0.1869375
: 0, 0.333 AB: 0.166, 0.24975 ABB: 0.1869375, 0.2288125
ABC: 0.2288125, 0.24975
ACA: 0.24975, 0.2705625
AC: 0.24975, 0.333 ACB: 0.2705625, 0.291375
ACC: 0.291375, 0.333
BAA: 0.333, 0.34965
BA: 0.333, 0.41625 BAB: 0.34965, 0.3996
BAC: 0.3996, 0.41625
BBA: 0.41625, 0.457875
B: 0.333, 0.666 BB: 0.41625, 0.58275 BBB: 0.457875, 0.541125
BBC: 0.541125, 0.58275
BCA: 0.58275, 0.5994
BC: 0.58275, 0.666 BCB: 0.5994, 0.6327
BCC: 0.6327, 0.666
CAA: 0.666, 0.68265
CA: 0.666, 0.74925 CAB: 0.68265, 0.6993
CAC: 0.6993, 0.74925
CBA: 0.74925, 0.7700625
C: 0.666, 1.0 CB: 0.74925, 0.8325 CBB: 0.7700625, 0.790875
CBC: 0.790875, 0.8325
CCA: 0.8325, 0.874375
CC: 0.8325, 1.0 CCB: 0.874375, 0.91625
Initial:
D
i
v
i
d
e
a
r
e
a
i
n
2nd
t
1st Iteration: Iteratio
o
After n: 3rd Iteration: After
5 4th Iteration: After
A After ABA 5th Iteration: After
( ABAC
Divide AB Divide ABACU
# Divide
previo Divide previous Divide previous
o previous area
us area previo area by 8 (# area by 10 (#
f by 9 (#
by 6 (# us area unique unique characters
u unique
unique by 7 (# characters +5)
n characters +4)
charact unique +3)
i
ers +1) charact
q
ers +2)
u
e
c
h
Comparison
Lampel-Zev-Welch
 Huffman coding and Arithmetic coding
 Coding redundancy
 LZW emphasizes on Spatial Redundancy
 Error free compression technique that makes the use of
fixed length codes.
 It assigns fixed length-length to variable length code words.
 It is a patent technique 
 Technique is used in GIF, TIFF and PDF
 So PNG was designed to overcome the difficulties of patent .
 LZW gives the better compression ratio than that of HC or
AC as it exploits both coding as well as spetial
redundancies.
How LZW works.?
 A dictionary is constructed which contains
 Source symbols to be encoded.
 For 8 bit image, intensities [0,255] are put in
dictionary
 Encoder examines the pixel intensities
 Intensity that are not in the dictionary are put in
next unused (algorithmically determined)
locations.
 Suppose we encountered two consecutive
pixels of value 255 then a new code word ‘256’
is used to represent it.
 Number of bits saved = (8+8) – 9 = 7 bits
Introduction to LZW (cont'd)
 Codes 0-255 in the code table are always assigned to represent single
bytes from the input file.

 When encoding begins the code table contains only the first 256
entries, with the remainder of the table being blanks.

 Compression is achieved by using codes 256 through 4095 to represent


sequences of bytes.

 As the encoding continues, LZW identifies repeated sequences in the


data, and adds them to the code table.

 Decoding is achieved by taking each code from the compressed file,


and translating it through the code table to find what character or
characters it represents.
Example 1: Compression using LZW

Example 1: Use the LZW algorithm to compress the string

BABAABAAA
Example 1: LZW Compression Step 1

BABAABAAA P=A
STRING TABLE
C=empty
ENCODER OUTPUT
string codeword representing output code
BA 256 B 66
Example 1: LZW Compression Step 2

BABAABAAA P=B
STRING TABLE
C=empty
ENCODER OUTPUT
string codeword representing output code
BA 256 B 66
AB 257 A 65
Example 1: LZW Compression Step 3

BABAABAAA P=A
STRING TABLE
C=empty
ENCODER OUTPUT
string codeword representing output code
BA 256 B 66
AB 257 A 65
BAA 258 BA 256
Example 1: LZW Compression Step 4

BABAABAAA P=A
STRING TABLE
C=empty
ENCODER OUTPUT
string codeword representing output code
BA 256 B 66
AB 257 A 65
BAA 258 BA 256
ABA 259 AB 257
Example 1: LZW Compression Step 5

BABAABAAA P=A
STRING TABLE
C=A
ENCODER OUTPUT
string codeword representing output code
BA 256 B 66
AB 257 A 65
BAA 258 BA 256
ABA 259 AB 257
AA 260 A 65
Example 1: LZW Compression Step 6

BABAABAAA P=AA
STRING TABLE
C=empty
ENCODER OUTPUT
string codeword representing output code
BA 256 B 66
AB 257 A 65
BAA 258 BA 256
ABA 259 AB 257
AA 260 A 65
AA 260
LZW Decompression

 The LZW decompressor creates the same string table during


decompression.

 It starts with the first 256 table entries initialized to single characters.

 The string table is updated for each character in the input stream,
except the first one.

 Decoding achieved by reading codes and translating them through the


code table being built.
LZW Decompression Algorithm

1 Initialize table with single character strings


2 OLD = first input code
3 output translation of OLD
4 WHILE not end of input stream
5 NEW = next input code
6  IF NEW is not in the string table
7 S = translation of OLD
8   S=S+C
9 ELSE
10  S = translation of NEW
11 output S
12   C = first character of S
13   OLD + C to the string table
14 OLD = NEW
15 END WHILE
Run length Encoding

 It specifies two values


 New intensity value
 Number of consecutive pixels having that intensity.
 The technique was explored for two dimensions
 It became standard in facsimile (FAX)
 It exploits the ------------ redundancy..??
 It exploits spetial redundancy by grouping
consecutive pixels having same intensity value.
RLE Example
Standards that use RLE

 CCITT
 JPEG
 M-JPEG
 BMP
Symbol Based Coding
 It exploits coding as well as spetial
redundancies
 It assign a unique value to each symbol.
 For compression it stores location and
corresponding code of that symbol.
Bit Plane Coding
 First make the use of bit slice of the image
 Then use one of the available techniques to compress the file.
 Generally
 Image is broken up into bit planes and then RLE is applied to each
plane.
 Let the image is represented as
 am-12m-1 + am-2 2m-2 + a1 21 + a0 20
 So here we will get ‘m’ planes (0,1,2...m-1)
 Problem:
 Small change in intensities can cause lots of variation in code i.e. 127
(01111111) and 128(10000000)
 Solution
 Make the use of gray code
 gi = ai EXOR ai+1 where 0<=i<=m-2 and gm-1 = am-1
Block Transform Coding

I/P Block Symbol Compressed


FT Quantizer Image
Preparation Encoder

Merge all Inverse Symbol


blocks Transform Decoder
Block Preparation

 Y = 0.30R+0.59G+0.11B
 I = 0.60R-0.28G-0.32B
Q = 0.21R-0.52G+0.31B
 4800 blocks
Block ‘Y’ matrix to DCT
Computation of the quantized DCT coefficients
Transmission order
Image Compression
Standards
 JPEG
 CCITT
 BMP

You might also like