5 Data Compression
5 Data Compression
com
DATA COMPRESSION
For more notes visit https://collegenote.pythonanywhere.com
Wh C
Why Compress?
pr ?
To reduce the volume of data to be
transmitted (text, fax, images)
Too reduce
educe the
t e bandwidth
ba d dt required
equ ed for
o
transmission and to reduce storage
requirements (speech, audio, video)
For more notes visit https://collegenote.pythonanywhere.com
C pr i
Compression
How is compression possible?
Redundancy in digital audio, image, and video
data
Properties of human perception
Digital audio is a series of sample values;
image is a rectangular
l array off pixell
values; video is a sequence of images
played out at a certain rate
Neighboring sample values are correlated
For more notes visit https://collegenote.pythonanywhere.com
R d d
Redundancy
Adjacent audio samples are similar
(predictive encoding); samples
corresponding to silence (silence removal)
In digital image, neighboring samples on a
scanning line are normally similar (spatial
redundancy)
In digital video, in addition to spatial
redundancy,
d d neighboring
hb images in a
video sequence may be similar (temporal
redundancy)
For more notes visit https://collegenote.pythonanywhere.com
H
Human P
Perception
r pti F Factors
t r
Compressed version of digital audio,
image, video need not represent the
original information exactly
Perception sensitivities are different for
different signal patterns
Human eye is less sensitive to the higher
spatial frequency components than the
l
lower ffrequencies (transform
( f coding)
d )
For more notes visit https://collegenote.pythonanywhere.com
Cl ifi ti
Classification
Lossless compression
lossless compression for legal and medical
documents, computer programs
exploit only data redundancy
Lossy compression
digital audio, image, video where some errors
or loss can be tolerated
exploit both data redundancy and human
perception properties
Constant bit rate versus variable bit rate
coding
For more notes visit https://collegenote.pythonanywhere.com
E tr p
Entropy
Amount of information I in a symbol of
occurring probability p : I = log2(1/p)
Sy
Symbols
bo s that
t at occur
occu rarely
a e y convey
co ey a large
a ge
amount of information
Average
g information p per symbol
y is called
entropy H
H = pix log2(1/pi) bits per codeword
Average number of bits per codeword =
Nipi where Ni is the number of bits for
the symbol generated by the encoding
algorithm
For more notes visit https://collegenote.pythonanywhere.com
H ff
Huffman Coding
C di
Assigns fewer bits to symbols that appear
more often and more bits to the symbols
that appear less often
Efficient when occurrence probabilities
vary widely
Huffman codebook from the set of
symbols and their occurring probabilities
Two properties:
generate compact codes
prefix property
For more notes visit https://collegenote.pythonanywhere.com
R l th Coding
Run-length C di
Repeated occurrence of the same
character is called a run
Number
u be of
o repetition
epet t o is
s called
ca ed the
t e length
e gt of
o
the run
Run of any
y length
g is represented
p byy three
characters
eeeeeee7tnnnnnnnn
@e7t@n8
For more notes visit https://collegenote.pythonanywhere.com
L p l Zi W l h (LZW) Coding
Lempel-Ziv-Welch C di
Works by building a dictionary of phrases
from the input stream
A to
token
e or
o an
a index
de is s used to identify
de t y
each distinct phrase
Number of entries in the dictionary y
determines the number of bits required for
the index -- a dictionary with 25,000
words
d requires 15 b bits to encode
d the
h index
d
For more notes visit https://collegenote.pythonanywhere.com
Arith ti Coding
Arithmetic C di
String of characters with occurrence
probabilities make up a message
A co
complete
p ete message
essage may
ay be fragmented
ag e ted
into multiple smaller strings
A codeword corresponding
p g to each string
g
is found separately
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Cod g Requirements
Coding equ e e ts
Let us consider the general
requirements imposed on most
multimedia
l i di systems:
Storage — multimedia elements
require much more storage space
than simple text. For example, a full
screen true colour image is 640 x 480
X 3 = 921600 bytes
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
The size of one second of
uncompressed CD quality stereo
audio is 44.1kHz X 2 X 2 = 176400
bytes
The size of one second of
uncompressed PAL video is
384X288X 3 X 25 frames = 8294400
bytes
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Throughput — continuous media require
very large throughput. For example, an
uncompressed CD quality stereo audio
stream needs 176400 bytes/sec. A raw
digitized PAL TV signal needs(13.5MHz +
6 75MH + 6
6.75MHz 6.75MHz)
75MH ) X 8bits
8bit
= 216 X106bits/sec
= 27
2 X10 06Bytes/sec
/
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Interaction — to support
pp fast interaction,, the
end-to-end delay should be small. A ‘face-to-face’
application, such as video conferencing, requires
the delayy to be less than 50ms. Furthermore,,
multimedia elements have to be accessed
randomly.
Conclusion:
Multimedia elements are very large.
We need to reduce the data size using
compression.i
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Kinds
ds o
of cod
coding
g methods
et ods
Lossless — the compression process
does not reduce the amount of
i f
information.
i
- The original can be reconstructed
exactly
Lossy — the compression process
reduces the amount of information.
-Only an approximation of the original
can be reconstructed.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Categories of Compression Techniques
D t Compression
Data C mpr i n
Coding techniques
Vector Quantization — a data stream is divided into
blocks of n bytes (where n > 1). A predefined table
contains a set of patterns is used to code the data
blocks.
blocks
LZW —a general compression algorithm capable of
working on almost any type of data. It builds a data
y of data occurring
dictionary g in an uncompressed
p data
stream. Patterns of data are identified and are
matched to entries in the dictionary. When a match is
found the code of the entry is output.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Since the code is shorter than the data
pattern, compression is achieved. The
popular zip application used this method to
compress
p files.
Differential coding — (also know as
prediction or relative coding) The most
known coding of this kind is DPCM (
Differential Pulse Code Modulation). This
method encodes the difference between the
consecutive samples instead of the sample
values. For example,
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
PCM 215 218 210 212 208 . . .
DPCM 215 3 -8 2 -4 . . .
DM ( Delta Modulation) is a
modification of DPCM. The difference
is coded with a single
g bit.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Huffman coding
The principle of Huffman coding is to
assign
ass g shorter
s o te code for
o symbol
sy bo that
t at
has higher probability of occurring in
the data stream.
The length of the Huffman code is
optimal.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
JPEG
JPEG (stands for Joint Photographic Experts
Group) is a joint ISO and CCITT (Comité
Consultatif International
Téléphonique et Télégraphique),
working group for developing standards for
compressing still images
The JPEG image compression standard
became an international standard in 1992
JPEG can be applied
pp to colour or g
grayscale
y
images
For more notes visit https://collegenote.pythonanywhere.com
Our eyes
y and ears cannot distinguish
g subtle changes
changes.
g . In
such cases, we can use a lossy data compression method.
method.
These methods are cheaper
cheaper— —they take less time and
space when it comes to sending millions of bits per
second for images and video.
video. Several methods have
been developed using lossy compression techniques
techniques..
JPEG (Joint Photographic Experts Group) encoding is
used to compress pictures and graphics, MPEG
(Moving Picture Experts Group) encoding is used to
compress video, and MPMP33 (MPEG audio layer 3) for
audio compression
compression..
For more notes visit https://collegenote.pythonanywhere.com
Image
g compression
p – JPEG encodingg
an image can be represented by a two-dimensional array
(table) of picture elements (pixels).
A grayscale picture of 307,200 pixels is represented by
2,457,600 bits, and a color picture is represented by
7,372,800 bits.
IIn JPEG,
JPEG a grayscale l picture
i t i divided
is di id d into bl k off 8 × 8
i t blocks
pixel blocks to decrease the number of calculations because,
as we will see shortly,
shortly the number of mathematical
operations for each picture is the square of the number of
units.
For more notes visit https://collegenote.pythonanywhere.com
Audio compression
Audio compression
p can be used for speech
p or music. For
speech we need to compress a 64 kHz digitized signal,
while for music we need to compress a 1.411 MHz signal.
Two categories of techniques are used for audio
compression: predictive encoding and perceptual
encoding.
encoding
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
By changing appropriate parameters,
the user can select
D t Compression
Data C mpr i n
The JPEG standard have three levels of definition
as follows:
Baseline system — must reasonably decompress
colour images, maintain a high compression
ratio, and handle from 4bits/pixel to 16bits/pixel.
Extended system — covers the various encoding
aspects such as variable length encoding,
encoding
progressive encoding, and hierarchical mode of
encoding.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Special lossless function
function— ensures that at
the resolution at which the image is
compressed, decompression results in no
loss of any detail the was in the original
image.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
JPEG — Preparation
p
A source image consists of at least one and
at most 255 planes.
Each plane Ci may have different number of
pixels in the horizontal (Xi) and vertical (Yi)
dimension.
Th resolution
The l ti off the
th individual
i di id l plane
l may
be different.
Each ppixel is represented
p byy a number of
bits p where 2 ≤p ≤ 12.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
The meaning of the value in these
planes is not specified in the
standard.
The image is divided into 8 X 8 blocks.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
MPEG
MPEG (stands for Moving Picture Experts
Group) is also a joint ISO and CCITT
working
ki group for
f d
developing
l i standards
t d d forf
compressing still images
The MPEG video compression standard
became an international standard in 1993
MPEG uses technology defined in other
standards,
t d d such h as JPEG and d H.261
H 261
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Itt defines
de es a bas
basicc data rate
ate o
of
1.2Mbits/sec
It is suitable for symmetric as well
asymmetric i compression
i It
I follows
f ll
the reference scheme that consists of
four stages of processing:
1. Preparation
2. Processing
3. Quantization
4. Entropypy Encodingg
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
In the p
preparation
p stage,
g , unlike JPEG,, MPEG
defines the format of the images
Each image consists of three components — YUV
The luminance component has twice as many
samples in the horizontal and vertical axes as
the other two components (known as colour sub-
sampling
The resolution of the luminance component
should not exceed 768 pixels
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
for each component, a pixel is coded with
eight bits
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
How MPEG encode the video stream
In order to achieve higher compression
ratio, MPEG uses the fact the image on
consecutive
ti fframes diff
differ relative
l ti small.
ll It
uses a temporal prediction technique to
encode the frame so that the storage
requirement is greatly reduced.
Common MPEG data stream consists of four
kinds of frames:
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
I-frame (
(Intra-frame)) — it is a self
contained frame, and it is coded without
reference to any other frames.
P-frame
P frame (Predictive
(Predictive-coded
coded frame) — It is
coded using the predictive technique with
reference to the previous I-frame and/or
previous P
P-frame.
frame.
B-frame (Bi-directionally predictive coded
frame) — It requires information of the
previous and following I-
I and P-frames
P frames for
encoding and decoding.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
D frame (DC
D-frame (DC-coded
coded frame) Only the
lowest frequency component of image is
encoded. It is used in fast forward or fast
rewind.
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
MPEG-2
MPEG-2 is a newer video encoding standard
which builds on MPEG-1
It supports
pp higher
g video q
quality
y and higher
g
data rate (up to 80 Mbits/sec)
It supports several resolutions:
pixels/line line/frame frames/sec
352 288 30
720 576 30
1920 1152 60
For more notes visit https://collegenote.pythonanywhere.com
D t Compression
Data C mpr i n
Summary
Compression methods — lossless vs.
lossy
ossy
Entropy coding — run-length
encoding,
g, Huffman encoding
g
Source coding — prediction (DPCM,
DM), transformation (DCT)
hybrid coding — JPEG, MPEG