SlideShare una empresa de Scribd logo
1 de 113
Descargar para leer sin conexión
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
1
Introduction
to
Multimedia
Data Compression
Prof. Khaled Mostafa El- Sayed
Prof. Khaled Mostafa El- Sayed
khaledms@fci-cu.edu.eg
Khaledms@gmail.com
Faculty of Computers and Information
Cairo University
Feb 2015
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
2
Course Reference
“Introduction to Data Compression”
By Khalid Sayood
Fourth Edition , 2012
(The Morgan Kaufmann Series in Multimedia Information and Systems)
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
3
Why Compress?
● To reduce the volume of data to be
transmitted (text, fax, images)
● To reduce storage requirements (speech,
audio, video)
● To reduce the bandwidth required for
transmission
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
4
Image Data Size
Gray Image (one Byte / Pixel)
● For 1024*768 Pixel Gray Image
● Original Size = 1024*768 * 1 Byte = 768 K bytes
Color Image (Three Bytes / Pixel {Red, Green, Blue})
● For 1024*768 Pixel Color Image
● Original Size = 1024*768 * 3 Bytes = 2304 K bytes
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
5
Video Data Size
Video (25 Frame / Second)
For 1 Minute 1024*768 Pixel Video clip
● Original Size (for 1 Sec) = 1024*768 * 3 Bytes * 25
Frames = 57600 K bytes
● Original Size (for 1 Min) = 1024*768 * 3 Bytes * 25
Frames / Sec * 60 Sec/Min = 57600 * 60 = 3456000 K
bytes = 3.456 GB
● What About 2 Hours Movie ?? (3.456 * 120 Min = !!!!)
● What of using NTSC system (30 Frame / Sec) !!!
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
6
How is compression possible?
[1] Redundancy in digital audio, image, and video data
[2] Properties of human perception
Digital audio is a series of sample values;
Image is a rectangular array of pixel values;
Video is a sequence of images played out at a certain
rate
Neighboring sample values are correlated
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
7
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,
neighboring images in a video sequence may be similar
(temporal redundancy)
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
8
Human Perception Factors
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 lower frequencies
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
9
Classification of
Compression Techniques
[1] Lossless compression
lossless compression for legal and medical documents, computer
programs
exploit only data redundancy
[2] Lossy compression
digital audio, image, video where some errors or loss can be tolerated
exploit both data redundancy and human perception properties
[3] Near Lossless Compression
It is a lossy compression with a predefined max accepted error
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
10
Classification of
Compression Techniques
[4] Hybrid Techniques
A compression algorithm that utilizes many lossy/lossless
techniques to achieve high compression ratio with best quality.
(.e.g. JPEG, MPEG, H264,..)
Constant bit rate versus variable bit rate coding ??
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
11
Image Quality Measure
Subjective
● Evaluated by human observers
● Do not require the original copy as a reference
● Reliable, accurate yet impractical
Objective
● Easy to operate (automatic)
● Often requires the original copy as the reference
(measures fidelity rather than quality)
● Works better if taking HVS model into account
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
12
Image Quality
Gray Image 400 * 500 Pixels
Image Size = 400 * 500 * 1 byte/pixel
=200,000 byte =~ 200 Kbyte
What will be the degradation in Quality
if this image is compressed using lossy
compression ?
● Degradation in smoothness ?
● Degradation in Eye details ?
● Degradation in Sharpness of finger
edges?
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
13
Image Quality
Gray Image 400 * 500 Pixels
Image Size = 400 * 500 * 1 byte/pixel
=200,000 byte =~ 200 Kbyte
What will be the degradation in Quality
if this image is compressed using lossy
compression ?
● Degradation in smoothness ?
● Degradation in Eye details ?
● Degradation in Sharpness of finger
edges?
Sorry, this is the compressed version with size 38Kbyte Only
Is this quality accepted for you ??
The compressed size is about 1/5 of the original size
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
14
All These Images are Lossy
Compressed images
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
15
All These Images are Lossy
Compressed images
670 * 527 Pixes
Original 353K
Compressed 91K
400 * 400 pixels
Original 160K
Compressed 80K
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
16
Covered Compression Techniques
for our course
Compression Techniques
Lossless Compression Lossy Compression Hybrid Compression
JPEG MPEG
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
17
Covered Compression Techniques
for our course
Lossless Compression
Huffman Arithmetic Coding
Dictionary Based
LZ 77 LZ 78 LZW Floating Point Binary
Standard Modified Adaptive
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
18
Covered Compression Techniques
for our course
Lossy Compression
Lossy Predictive Transform Coding
Qunatization
Uniform Optimal Vector DCT
DPCM Linear Delta
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
19
Dictionary Based Compression
LZ 77
LZ78
LZW
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
20
Lempel Ziv 77 Algorithm
A B A A B A B A A B B B B B B B B B B B B A
Search Window Look Ahead Window
Sliding Window
<Position , Length , Next Symbol >
TAG
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
21
Lempel Ziv 77 Algorithm
Search Buffer: It contains a portion of the recently encoded
sequence.
Look-Ahead Buffer: It contains the next portion of the sequence to
be encoded.
Once the longest match has been found, the encoder encodes it with
a triple <Position , Length , Next Symbol >
Position :the offset or position of the longest match from the
lookahead buffer
Length :the length of the longest matching string
Next Symbol :the codeword corresponding to the symbol in the
look-ahead buffer that follows the match
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
22
Lempel Ziv 77 Algorithm
longest match
is found and
all the characters
are compared
searches the search buffer for the longest match
Output <Position , Length , Next Symbol >
Shift window “Length” characters
Output <0 , 0 , Next Symbol >
Shift window 1 character
End
Start
Yes
No
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
23
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
?
There is no “A” in search buffer
Position=0, Length =0, next Symbol=”A”
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
24
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
?
There is no “B” in search buffer
Position=0, Length =0, next Symbol=”B”
<0,0,”B”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
25
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
Only “A” exists in search buffer
Go Back two Steps, Pick One Symbol
Position=2, Length =1, next Symbol=”A”
<0,0,”B”>
<2,1,”A”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
26
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“BA” exists in search buffer
Go Back three Steps, Pick Two Symbol
Position=3, Length =2, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
27
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“AAB” exists in search buffer
Go Back five Steps, Pick Three Symbol
Position=5, Length =3, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
28
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“BB” exists in search buffer
Go Back two Steps, Pick two Symbol
Position=2, Length =2, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
<2,2,”B”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
29
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“BBBBB” exists in search buffer
Go Back five Steps, Pick five Symbol
Position=5, Length =5, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
<2,2,”B”>
<5,5,”B”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
30
LZ 77 (Compression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“B” exists in search buffer
Go Back One Steps, Pick One Symbol
Position=1, Length =1, next Symbol=”A”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
<2,2,”B”>
<5,5,”B”>
<1,1,”A”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
31
LZ77 (Compression Ratio)
Remember
1 Bit can represent 2 Values (0,1) [0-1]
2 Bits can represent 4 values (00,01,10,11) [0-3]
3 Bits can represent 8 Values (000,001,010,011,100,101,110,111) [0-7]
In General
N Bits can be used to represent 2N
Values [1 - 2N
-1]
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
32
LZ77 (Compression Ratio)
<0,0,”A”> <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
Original Size = Number of Symbols * Bits used to Store one Symbol
= 22 Symbols * 8 Bits / Symbol = 176 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Position” Value = 5 Store “Position” Value in 3 Bits
Max “Length” Value=5 Store “Length” Value in 3 Bits
Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits
Tag size = 3 + 3 + 8 =14 Bits
Number of Tags = 8 Tags
Compressed Size=8*14=112 bits
Tag = < Position, Length ,Next Symbol Code>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
33
LZ77 (Compression Ratio)
Effect of Increasing length of Search Window
Higher Probability to find matched strings ( Decrease Number of Tags)
Increase Number of Bits used to Store “Position” values
Effect of Increasing length of Look Ahead Buffer
Higher Probability to match longer strings( Decrease Number of Tags)
Increase Number of Bits used to Store “Length” values
Tag = < Position, Length ,Next Symbol Code>




Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
34
LZ 77 (Decompression)
A B
<0,0,”A”>
Don't pick any symbol from Search Window
Add Symbol=”A”
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
35
LZ 77 (Decompression)
A B A A
<0,0,”A”>
Go back Two Positions in search window
pick One symbol from Search Window
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
36
LZ 77 (Decompression)
A B A A B A B
<0,0,”A”>
Go back Three Positions in search window
pick Two symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
37
LZ 77 (Decompression)
A B A A B A B A A B B
<0,0,”A”>
Go back Five Positions in search window
pick Three symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
38
LZ 77 (Decompression)
A B A A B A B A A B B B B B
<0,0,”A”>
Go back Two Positions in search window
pick Two symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
39
LZ 77 (Decompression)
A B A A B A B A A B B B B B B B B B B B
<0,0,”A”>
Go back Five Positions in search window
pick Five symbols from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
40
LZ 77 (Decompression)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
Go back One Positions in search window
pick One symbol from Search Window
Add Symbol=”B”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
41
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
“AAB” exists in search buffer
Go Back five Steps, Pick Three Symbol
Position=5, Length =3, next Symbol=”B”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”>
Back to Previous Example
Can We manipulate Consecutive “B”s more efficient ?
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
42
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
There are Ten Consecutive “B” in Look Ahead Buffer
“B” exists in search buffer One position Backward
Go Back One Steps, Pick Ten Symbols
Position=1, Length =10, next Symbol=”A”
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<5,3,”B”> <1,10,”A”>
YES, We Can
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
43
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick ONE (out of Ten) Symbol
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
44
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Two (out of Ten) Symbol
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
45
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Three (out of Ten) Symbol
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
46
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Four (out of Ten) Symbol
Repeat , Five, Six, Seven, Eight, Nine, and Ten
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
47
LZ 77 (Decompression)
(Handling Repetitive Sequence)
A B A A B A B A A B B B B B B B B B B B B A
<0,0,”A”>
Go back One Position in search window
pick Ten symbols from Search Window (in 10 Steps)
Add Symbol=”A”
<0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”>
A B A A B A B A A B B B B B B B B B B B B A
Original Data
Pick Ten (out of Ten) Symbol
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
48
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A B A B A B A B A B A B A B A
<0,0,”A”>
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<2,10,”A”>
Can We Apply the same Technique on
Consecutive “Two Symbols” ?
There are Ten Consecutive Symbols “AB” in Look Ahead Buffer
“AB” exists in search buffer Adjacent to Look Ahead Buffer
Go Back Two Steps, Pick Ten Symbols
Position=2, Length =10, next Symbol=”A”
End of
Look Ahead Buffer
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
49
LZ 77 (Compression)
(Handling Repetitive Sequence)
A B A A B A B A B A B A B A B A B A B A B A
<0,0,”A”>
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<2,10,”A”>
There are Four Consecutive Symbols “BA” in Look Ahead Buffer
“BA” exists in search buffer Adjacent to Look Ahead Buffer
Go Back Two Steps, Pick Four Symbols
Position=2, Length =4, next Symbol=NULL
<2,4,NULL>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
50
LZ 77
A B A A B A B A B A B A B A B A B A B A B A
<0,0,”A”>
<0,0,”B”>
<2,1,”A”>
<3,2,”B”>
<2,14,”A”>
What if we use BIGGER look Ahead Buffer ?
There are 14 Consecutive Symbols “AB” in Look Ahead Buffer
“AB” exists in search buffer Adjacent to Look Ahead Buffer
Go Back Two Steps, Pick Ten Symbols
Position=2, Length =14, next Symbol=”A”
End of
Look Ahead Buffer
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
51
LZ 77 (Compression)
(Handling Repetitive Overlapped Sequence)
C A B R A C A D A B R A R R A R R A D <0,0,”C”>
C A B R A C A D A B R A R R A R R A D <0,0,”A”>
C A B R A C A D A B R A R R A R R A D <0,0,”B”>
C A B R A C A D A B R A R R A R R A D <0,0,”R”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
52
LZ 77 (Compression)
(Handling Repetitive Overlapped Sequence)
C A B R A C A D A B R A R R A R R A D <3,1,”C”>
C A B R A C A D A B R A R R A R R A D <2,1,”D”>
C A B R A C A D A B R A R R A R R A D <7,4,”R”>
C A B R A C A D A B R A R R A R R A D <3,5,”D”>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
53
Compression Ratio
<0,0,”C”> <0,0,”A”> <0,0,”B”> <0,0,”R”> <3,1,”C”> <2,1,”D”> <7,4,”R”>
<3,5,”D”>
Original Size = Number of Symbols * Bits used to Store one Symbol
= 19 Symbols * 8 Bits / Symbol = 152 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Position” Value = 7 Store “Position” Value in 3 Bits
Max “Length” Value=5 Store “Length” Value in 3 Bits
Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits
Tag size = 3 + 3 + 8 =14 Bits
Number of Tags = 8 Tags
Compressed Size=8*14=112 bits
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
54
Advantages and Disadvantage of
LZ77
Advantages of LZ77
● Probabilities of symbols is not required to be known a priori.
(suitable for Real time Compression).
● That is, the longer the size of the sliding window, the better the
performance of data compression
● No coding table Required for Decompression.
Disadvantage of LZ77
A straightforward implementation would require up to [Look Ahead
Buffer Size] * [Search Window Size] Symbol comparisons per Tag
produced. Complexity of comparison is very large
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
55
LZ 78 (Compression)
Start
Read Symbol in S
{ T && S }
is in Dictionary ?
Save Tag < N ,S>
Store {T && S } in Dictionary
T=S
T={T && S }
Last Symbol
End
Yes (at Index N) No
No
Yes
Set Store T=””
S Buffer to Ready Symbol
T Temporary Storage buffer
N Index (pointer) in Dictionary
{ T && S } Concatenation (T,S)
Tag = < iNdex in Dict , Next Symbol>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
56
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1
2
3
4
5
6
7
8
9
10
11
Compress the Following Text
(22 Characters)
Custom Dictionary
(first Word is reserved as Empty)
<Index in dictionary , Next Symbol >
TAG
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
57
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2
3
4
5
6
7
8
9
10
11
“A” is not in the dictionary
Save “A” as < 0,”A”>
Add Symbol=”A” to Dictionary
< 0 , “A” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
58
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3
4
5
6
7
8
9
10
11
“B” is not in the dictionary
Save “B” as < 0,”B”>
Add Symbol=”B” to Dictionary
< 0 , “B” >
< 0 , “A” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
59
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4
5
6
7
8
9
10
11
“A” is in the dictionary BUT “AA” is NOT
Save “AA” as < 1,”A”>
Add Symbols=”AA” to Dictionary
< 0 , “B” >
< 1 , “A” >
< 0 , “A” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
60
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5
6
7
8
9
10
11
“B” is in the dictionary BUT “BA” is NOT
Save “BA” as < 2,”A”>
Add Symbols=”BA” to Dictionary
< 1 , “A” >
< 2 , “A” >
< 1 , “A” >
< 0 , “B” >
< 0 , “A” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
61
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6
7
8
9
10
11
“BA” is in the dictionary BUT “BAA” is NOT
Save “BAA” as < 4,”A”>
Add Symbols=”BAA” to Dictionary
< 0 , “A” >
< 1 , “A” >
< 4 , “A” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
62
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7
8
9
10
11
“BA” is in the dictionary BUT “BAB” is NOT
Save “BAA” as < 4,”B”>
Add Symbols=”BAB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
63
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8
9
10
11
“B” is in the dictionary BUT “BB” is NOT
Save “BB” as < 2,”B”>
Add Symbols=”BB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
64
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9
10
11
“BB” is in the dictionary BUT “BBB” is NOT
Save “BBB” as < 7,”B”>
Add Symbols=”BBB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
65
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
“BBB” is in the dictionary BUT “BBBB” is NOT
Save “BBBB” as < 8,”B”>
Add Symbols=”BBBB” to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
66
LZ 78 (Compression)
A B A A B A B A A B A B B B B B B B B B B A
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
“A” is in the dictionary
Save “A” as <1 ,NULL> or < 0,”A”>
Add NOTHING to Dictionary
< 0 , “A” >
< 1 , “A” > <4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<7 , “B” > <0 , “A” > or
<1, NULL>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
67
LZ 78 (De-Compression)
0 –-----
1 A
2
3
4
5
6
7
8
9
10
11
Get symbol at Index [0] in Dictionary {“”}
Concatenate Symbol “A” , Obtain {“A”}
Add {“A”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
68
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3
4
5
6
7
8
9
10
11
Get symbol at Index [0] in Dictionary {“”}
Concatenate Symbol “B” , Obtain {“B”}
Add {“B”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
69
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4
5
6
7
8
9
10
11
Get symbol at Index [1] in Dictionary {“A”}
Concatenate Symbol “B” , Obtain {“AA”}
Add {“AA”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
70
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5
6
7
8
9
10
11
Get symbol at Index [2] in Dictionary {“B”}
Concatenate Symbol “A” , Obtain {“BA”}
Add {“BA”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
71
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6
7
8
9
10
11
Get symbol at Index [4] in Dictionary {“BA”}
Concatenate Symbol “A” , Obtain {“BAA”}
Add {“BAA”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
72
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7
8
9
10
11
Get symbol at Index [4] in Dictionary {“BA”}
Concatenate Symbol “B” , Obtain {“BAB”}
Add {“BAB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
73
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8
9
10
11
Get symbol at Index [2] in Dictionary {“B”}
Concatenate Symbol “B” , Obtain {“BB”}
Add {“BB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
74
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9
10
11
Get symbol at Index [7] in Dictionary {“BB”}
Concatenate Symbol “B” , Obtain {“BBB”}
Add {“BBB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B B B B
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
75
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
Get symbol at Index [8] in Dictionary {“BBB”}
Concatenate Symbol “B” , Obtain {“BBBB”}
Add {“BBBB”} to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B B B B B B B B
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
76
LZ 78 (De-Compression)
0 –-----
1 A
2 B
3 AA
4 BA
5 BAA
6 BAB
7 BB
8 BBB
9 BBBB
10
11
Get symbol at Index [1] in Dictionary {“A”}
Concatenate Symbol “NULL” , Obtain {“A”}
Add NOTHING to Dictionary
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
A B A A B A B A A B A B B B B B B B B B B A
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
77
LZ 78 Compression Ratio
Original Size = Number of Symbols * Bits used to Store one Symbol
= 22 Symbols * 8 Bits / Symbol = 176 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Index” Value = 8 Store “Index” Value in 4 Bits
Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits
Tag size = 4 + 8 =12 Bits
Number of Tags = 10 Tags
Compressed Size=10*12=120 bits
< 0 , “A” >
<4 , “B” >
< 0 , “B” >
< 1 , “A” >
< 2 , “A” >
< 4 , “A” > <2 , “B” >
<7 , “B” >
<8 , “B” >
<0 , “A” > or
<1, NULL>
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
78
LZ 78: Main Features
● No use of the sliding window.
● Instead of the triples used in the LZ77, only pairs are used in
the LZ78. Specifically, only the Position (index in the list)
of the matched string and the Next Symbol following the
matched string need to be encoded (in the Tag).
● Use encoded text as a dictionary which, potentially, does not
have a fixed size.
● Each time a Tag is issued, the encoded string is included in
the dictionary.
● Once a preset limit to the dictionary size has been reached,
it is reset to zero, i.e., it must be restarted.
●
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
79
LZW (Compression)
Start
Read Symbol in S
{ T && S }
is in Dictionary ?
Save Tag < N >
Store {T && S } in Dictionary
T=S
N= Index of T in Dictionary
T={T && S }
N= Index in Dictionary
Last Symbol
End
Yes No
No
Yes
Read Symbol in T
N= Index of T in Dictionary
S Buffer to Ready Symbol
T Temporary Storage buffer
N Index (pointer) in Dictionary
{ T && S } Concatenation (T,S)
Tag = < iNdex in Dict >
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
80
LZW Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129
130
131
132
133
134
135
136
137
138
139
140
141
142
“A” exists in the table at index [97]
“AB” does NOT exist in the table
Save Symbol “A” as [97]
Add “AB” to Dictionary
65
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
81
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130
131
132
133
134
135
136
137
138
139
140
141
142
“B” exists in the table at index [98]
“BA” does NOT exist in the table
Save Symbol “B” as [98]
Add “BA” to Dictionary
65
66
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
82
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131
132
133
134
135
136
137
138
139
140
141
142
“A” exists in the table at index [97]
“AA” does NOT exist in the table
Save Symbol “A” as [97]
Add “AA” to Dictionary
65
66
65
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
83
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132
133
134
135
136
137
138
139
140
141
142
“AB” exists in the table at index [128]
“ABA” does NOT exist in the table
Save Symbol “AB” as [128]
Add “ABA” to Dictionary
65
66
65
128
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
84
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133
134
135
136
137
138
139
140
141
142
“AB” exists in the table at index [128]
“ABB” does NOT exist in the table
Save Symbol “AB” as [128]
Add “ABB” to Dictionary
65
66
65
128
128
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
85
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134
135
136
137
138
139
140
141
142
“BA” exists in the table at index [129]
“BAA” does NOT exist in the table
Save Symbol “BA” as [129]
Add “BAA” to Dictionary
65
66
65
128
128
129
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
86
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135
136
137
138
139
140
141
142
“ABA” exists in the table at index [131]
“ABAA” does NOT exist in the table
Save Symbol “ABA” as [131]
Add “ABAA” to Dictionary
65
66
65
128
128
129
131
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
87
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136
137
138
139
140
141
142
“ABAA” exists in the table at index [134]
“ABAAA” does NOT exist in the table
Save Symbol “ABAA” as [134]
Add “ABAAA” to Dictionary
65
66
65
128
128
129
131
134
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
88
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137
138
139
140
141
142
“AA” exists in the table at index [130]
“AAB” does NOT exist in the table
Save Symbol “AA” as [130]
Add “AAB” to Dictionary
65
66
65
128
128
129
131
134
130
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
89
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138
139
140
141
142
“BA” exists in the table at index [129]
“BAB” does NOT exist in the table
Save Symbol “BA” as [129]
Add “BAB” to Dictionary
65
66
65
128
128
129
131
134
130
129
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
90
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139
140
141
142
“B” exists in the table at index [98]
“BB” does NOT exist in the table
Save Symbol “B” as [98]
Add “BB” to Dictionary
65
66
65
128
128
129
131
134
130
129
66
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
91
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140
141
142
“BB” exists in the table at index [138]
“BBB” does NOT exist in the table
Save Symbol “BB” as [138]
Add “BBB” to Dictionary
65
66
65
128
128
129
131
134
130
129
66
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
92
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140 BBBB
141
142
“BBB” exists in the table at index [139]
“BBBB” does NOT exist in the table
Save Symbol “BBB” as [139]
Add “BBBB” to Dictionary
65
66
65
128
128
129
131
134
130
129
66
138
139
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
93
LZW Compression
AB A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140 BBBB
141
142
“BB” exists in the table at index [138]
Save Symbol “BB” as [138]
Add NOTHING to Dictionary
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
94
LZW De-Compression
A
... ...
65 A
66 B
... ...
... ...
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbol at Index [97] from the Dictionary; “A”
Add NOTHING to Dictionary
(as this is the first symbol)
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
95
LZW De-Compression
A B
... ...
65 A
66 B
... ...
... ...
128 AB
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [98] from the Dictionary; “B”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
96
LZW De-Compression
A BA
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [97] from the Dictionary; “A”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
97
LZW De-Compression
A B A A B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [128] from the Dictionary; “AB”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
98
LZW De-Compression
A B A A B A B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [128] from the Dictionary; “AB”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
99
LZW De-Compression
A B A A B A B B A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133
134
135
136
137
138
139
140
141
142
Pick symbols at Index [129] from the Dictionary; “BA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
100
LZW De-Compression
A B A A B A B B A A B A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134
135
136
137
138
139
140
141
142
Pick symbols at Index [131] from the Dictionary; “ABA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
101
LZW De-Compression
A B AA B A B B A A B A ? ? ?
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ???
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary
Symbols at Index [134] are not constructed yet
Assume they are “???” for the time being
Continue the algorithm
65
66
65
128
128
129
131
134
130
129
66
138
139
138
PROBLEM
134 IS UNKNOWN
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
102
LZW De-Compression
A B A A B A B B A A B A ? ? ?
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABA?
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary; “???”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
???
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
103
LZW De-Compression
A B A A B A B B A A B A A B A A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary; “ABA?”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
ABA?
Still at 134
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
104
LZW De-Compression
A B A A B A B B A A B A A B A A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135
136
137
138
139
140
141
142
Pick symbols at Index [134] from the Dictionary; “ABAA”
65
66
65
128
128
129
131
134
130
129
66
138
139
138
ABAA
Construct Unknown Symbols by Concatenating
Symbols in Previous Step “ABA”
and First Symbol in Previous Step “A”
Still at 134
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
105
LZW De-Compression
A B A A B A B B A A B A A B A A A A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136
137
138
139
140
141
142
Pick symbols at Index [130] from the Dictionary; “AA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
106
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137
138
139
140
141
142
Pick symbols at Index [129] from the Dictionary; “BA”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
107
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138
139
140
141
142
Pick symbols at Index [98] from the Dictionary; “B”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
108
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 ???
139
140
141
142
Pick symbols at Index [138] from the Dictionary; “???”
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Construct Unknown Symbols by Concatenating
Symbols in Previous Step “B”
and First Symbol in Previous Step “B”
PROBLEM
138 IS UNKNOWN
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
109
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139
140
141
142
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
110
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 ???
140
141
142
65
66
65
128
128
129
131
134
130
129
66
138
139
138
PROBLEM
139 IS UNKNOWN
Pick symbols at Index [139] from the Dictionary; “???”
Construct Unknown Symbols by Concatenating
Symbols in Previous Step “BB”
and First Symbol in Previous Step “B”
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
111
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140
141
142
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
112
LZW De-Compression
A B A A B A B B A A B A A B A A A A B A B B B B B B B B
... ...
65 A
66 B
... ...
... ...
128 AB
129 BA
130 AA
131 ABA
132 ABB
133 BAA
134 ABAA
135 ABAAA
136 AAB
137 BAB
138 BB
139 BBB
140 BBBB
141
142
65
66
65
128
128
129
131
134
130
129
66
138
139
138
Pick symbols at Index [138] from the Dictionary; “BB”
Concatenate ALL Symbols picked from Previous step
and first Symbol picked from current step
(Add concatenated Symbols to Dictionary )
Prof. Khaled Mostafa
khaledms@fci-cu.edu.eg
‫الحاسبات‬ ‫كلية‬
‫المعـلومات‬ ‫و‬
113
LZW Compression Ratio
Original Size = Number of Symbols * Bits used to Store one Symbol
= 28 Symbols * 8 Bits / Symbol = 224 bits
(Store “Symbol” ASCII Code in 8 Bits)
Max “Index” Value = 139 Store “Index” Value in 8 Bits
Tag size = 8 Bits
Number of Tags = 14 Tags
Compressed Size=14*8=112 bits
65
66
65
128
128
129
131
134
130
129
66
138
139
138

Más contenido relacionado

Similar a 1- Intro, LZ77, LZ 78, LZW.pdf

Steganoid - A tool for steganography
Steganoid - A tool for steganographySteganoid - A tool for steganography
Steganoid - A tool for steganographyMrMoliya
 
Lecture 6 -_presentation_layer
Lecture 6 -_presentation_layerLecture 6 -_presentation_layer
Lecture 6 -_presentation_layerSerious_SamSoul
 
Image Processing in Android Environment AJCSE
Image Processing in Android Environment AJCSEImage Processing in Android Environment AJCSE
Image Processing in Android Environment AJCSEBRNSSPublicationHubI
 
Data compression using huffman coding
Data compression using huffman codingData compression using huffman coding
Data compression using huffman codingSATYENDRAKUMAR279
 
10lecture10datacompression-171023182241.pdf
10lecture10datacompression-171023182241.pdf10lecture10datacompression-171023182241.pdf
10lecture10datacompression-171023182241.pdfPUSHKAR ARYA
 
Ig2 task 1 work sheet
Ig2 task 1 work sheetIg2 task 1 work sheet
Ig2 task 1 work sheetLuke Summers
 
Ben ce sound recording glossary version 2
Ben ce sound recording glossary version 2Ben ce sound recording glossary version 2
Ben ce sound recording glossary version 2BenCom1
 
Presentation on Graphical password-technology to make system more secured
Presentation on Graphical password-technology to make system more securedPresentation on Graphical password-technology to make system more secured
Presentation on Graphical password-technology to make system more securedSanjeev Kumar Jaiswal
 
Introduction of DiscoGAN
Introduction of DiscoGANIntroduction of DiscoGAN
Introduction of DiscoGANSeongcheol Baek
 
Design and Implementation of EZW & SPIHT Image Coder for Virtual Images
Design and Implementation of EZW & SPIHT Image Coder for Virtual ImagesDesign and Implementation of EZW & SPIHT Image Coder for Virtual Images
Design and Implementation of EZW & SPIHT Image Coder for Virtual ImagesCSCJournals
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossaryKeatonBradley
 
Sound recording glossary 6
Sound recording glossary 6Sound recording glossary 6
Sound recording glossary 6ThomasDowson123
 
Improved sound recording glossary
Improved sound recording glossaryImproved sound recording glossary
Improved sound recording glossaryKeatonBradley
 
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSINGAN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSINGcscpconf
 
Adam Crittenden Sound Glossary
Adam Crittenden Sound GlossaryAdam Crittenden Sound Glossary
Adam Crittenden Sound GlossaryAdam Crittenden
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossarykieranowens1997
 

Similar a 1- Intro, LZ77, LZ 78, LZW.pdf (20)

Steganoid - A tool for steganography
Steganoid - A tool for steganographySteganoid - A tool for steganography
Steganoid - A tool for steganography
 
Lecture 6 -_presentation_layer
Lecture 6 -_presentation_layerLecture 6 -_presentation_layer
Lecture 6 -_presentation_layer
 
Image Processing in Android Environment AJCSE
Image Processing in Android Environment AJCSEImage Processing in Android Environment AJCSE
Image Processing in Android Environment AJCSE
 
Data compression using huffman coding
Data compression using huffman codingData compression using huffman coding
Data compression using huffman coding
 
lecture on data compression
lecture on data compressionlecture on data compression
lecture on data compression
 
10lecture10datacompression-171023182241.pdf
10lecture10datacompression-171023182241.pdf10lecture10datacompression-171023182241.pdf
10lecture10datacompression-171023182241.pdf
 
2014 toronto-torbug
2014 toronto-torbug2014 toronto-torbug
2014 toronto-torbug
 
Ig2 task 1 work sheet
Ig2 task 1 work sheetIg2 task 1 work sheet
Ig2 task 1 work sheet
 
Ben ce sound recording glossary version 2
Ben ce sound recording glossary version 2Ben ce sound recording glossary version 2
Ben ce sound recording glossary version 2
 
Presentation on Graphical password-technology to make system more secured
Presentation on Graphical password-technology to make system more securedPresentation on Graphical password-technology to make system more secured
Presentation on Graphical password-technology to make system more secured
 
myukm
myukmmyukm
myukm
 
Introduction of DiscoGAN
Introduction of DiscoGANIntroduction of DiscoGAN
Introduction of DiscoGAN
 
Design and Implementation of EZW & SPIHT Image Coder for Virtual Images
Design and Implementation of EZW & SPIHT Image Coder for Virtual ImagesDesign and Implementation of EZW & SPIHT Image Coder for Virtual Images
Design and Implementation of EZW & SPIHT Image Coder for Virtual Images
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
 
Sound recording glossary 6
Sound recording glossary 6Sound recording glossary 6
Sound recording glossary 6
 
Improved sound recording glossary
Improved sound recording glossaryImproved sound recording glossary
Improved sound recording glossary
 
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSINGAN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
 
Adam Crittenden Sound Glossary
Adam Crittenden Sound GlossaryAdam Crittenden Sound Glossary
Adam Crittenden Sound Glossary
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
 

Último

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

1- Intro, LZ77, LZ 78, LZW.pdf

  • 1. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 1 Introduction to Multimedia Data Compression Prof. Khaled Mostafa El- Sayed Prof. Khaled Mostafa El- Sayed khaledms@fci-cu.edu.eg Khaledms@gmail.com Faculty of Computers and Information Cairo University Feb 2015
  • 2. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 2 Course Reference “Introduction to Data Compression” By Khalid Sayood Fourth Edition , 2012 (The Morgan Kaufmann Series in Multimedia Information and Systems)
  • 3. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 3 Why Compress? ● To reduce the volume of data to be transmitted (text, fax, images) ● To reduce storage requirements (speech, audio, video) ● To reduce the bandwidth required for transmission
  • 4. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 4 Image Data Size Gray Image (one Byte / Pixel) ● For 1024*768 Pixel Gray Image ● Original Size = 1024*768 * 1 Byte = 768 K bytes Color Image (Three Bytes / Pixel {Red, Green, Blue}) ● For 1024*768 Pixel Color Image ● Original Size = 1024*768 * 3 Bytes = 2304 K bytes
  • 5. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 5 Video Data Size Video (25 Frame / Second) For 1 Minute 1024*768 Pixel Video clip ● Original Size (for 1 Sec) = 1024*768 * 3 Bytes * 25 Frames = 57600 K bytes ● Original Size (for 1 Min) = 1024*768 * 3 Bytes * 25 Frames / Sec * 60 Sec/Min = 57600 * 60 = 3456000 K bytes = 3.456 GB ● What About 2 Hours Movie ?? (3.456 * 120 Min = !!!!) ● What of using NTSC system (30 Frame / Sec) !!!
  • 6. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 6 How is compression possible? [1] Redundancy in digital audio, image, and video data [2] Properties of human perception Digital audio is a series of sample values; Image is a rectangular array of pixel values; Video is a sequence of images played out at a certain rate Neighboring sample values are correlated
  • 7. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 7 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, neighboring images in a video sequence may be similar (temporal redundancy)
  • 8. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 8 Human Perception Factors 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 lower frequencies
  • 9. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 9 Classification of Compression Techniques [1] Lossless compression lossless compression for legal and medical documents, computer programs exploit only data redundancy [2] Lossy compression digital audio, image, video where some errors or loss can be tolerated exploit both data redundancy and human perception properties [3] Near Lossless Compression It is a lossy compression with a predefined max accepted error
  • 10. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 10 Classification of Compression Techniques [4] Hybrid Techniques A compression algorithm that utilizes many lossy/lossless techniques to achieve high compression ratio with best quality. (.e.g. JPEG, MPEG, H264,..) Constant bit rate versus variable bit rate coding ??
  • 11. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 11 Image Quality Measure Subjective ● Evaluated by human observers ● Do not require the original copy as a reference ● Reliable, accurate yet impractical Objective ● Easy to operate (automatic) ● Often requires the original copy as the reference (measures fidelity rather than quality) ● Works better if taking HVS model into account
  • 12. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 12 Image Quality Gray Image 400 * 500 Pixels Image Size = 400 * 500 * 1 byte/pixel =200,000 byte =~ 200 Kbyte What will be the degradation in Quality if this image is compressed using lossy compression ? ● Degradation in smoothness ? ● Degradation in Eye details ? ● Degradation in Sharpness of finger edges?
  • 13. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 13 Image Quality Gray Image 400 * 500 Pixels Image Size = 400 * 500 * 1 byte/pixel =200,000 byte =~ 200 Kbyte What will be the degradation in Quality if this image is compressed using lossy compression ? ● Degradation in smoothness ? ● Degradation in Eye details ? ● Degradation in Sharpness of finger edges? Sorry, this is the compressed version with size 38Kbyte Only Is this quality accepted for you ?? The compressed size is about 1/5 of the original size
  • 14. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 14 All These Images are Lossy Compressed images
  • 15. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 15 All These Images are Lossy Compressed images 670 * 527 Pixes Original 353K Compressed 91K 400 * 400 pixels Original 160K Compressed 80K
  • 16. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 16 Covered Compression Techniques for our course Compression Techniques Lossless Compression Lossy Compression Hybrid Compression JPEG MPEG
  • 17. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 17 Covered Compression Techniques for our course Lossless Compression Huffman Arithmetic Coding Dictionary Based LZ 77 LZ 78 LZW Floating Point Binary Standard Modified Adaptive
  • 18. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 18 Covered Compression Techniques for our course Lossy Compression Lossy Predictive Transform Coding Qunatization Uniform Optimal Vector DCT DPCM Linear Delta
  • 19. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 19 Dictionary Based Compression LZ 77 LZ78 LZW
  • 20. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 20 Lempel Ziv 77 Algorithm A B A A B A B A A B B B B B B B B B B B B A Search Window Look Ahead Window Sliding Window <Position , Length , Next Symbol > TAG
  • 21. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 21 Lempel Ziv 77 Algorithm Search Buffer: It contains a portion of the recently encoded sequence. Look-Ahead Buffer: It contains the next portion of the sequence to be encoded. Once the longest match has been found, the encoder encodes it with a triple <Position , Length , Next Symbol > Position :the offset or position of the longest match from the lookahead buffer Length :the length of the longest matching string Next Symbol :the codeword corresponding to the symbol in the look-ahead buffer that follows the match
  • 22. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 22 Lempel Ziv 77 Algorithm longest match is found and all the characters are compared searches the search buffer for the longest match Output <Position , Length , Next Symbol > Shift window “Length” characters Output <0 , 0 , Next Symbol > Shift window 1 character End Start Yes No
  • 23. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 23 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> ? There is no “A” in search buffer Position=0, Length =0, next Symbol=”A”
  • 24. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 24 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> ? There is no “B” in search buffer Position=0, Length =0, next Symbol=”B” <0,0,”B”>
  • 25. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 25 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> Only “A” exists in search buffer Go Back two Steps, Pick One Symbol Position=2, Length =1, next Symbol=”A” <0,0,”B”> <2,1,”A”>
  • 26. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 26 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> “BA” exists in search buffer Go Back three Steps, Pick Two Symbol Position=3, Length =2, next Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”>
  • 27. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 27 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> “AAB” exists in search buffer Go Back five Steps, Pick Three Symbol Position=5, Length =3, next Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”>
  • 28. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 28 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> “BB” exists in search buffer Go Back two Steps, Pick two Symbol Position=2, Length =2, next Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”>
  • 29. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 29 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> “BBBBB” exists in search buffer Go Back five Steps, Pick five Symbol Position=5, Length =5, next Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”>
  • 30. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 30 LZ 77 (Compression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> “B” exists in search buffer Go Back One Steps, Pick One Symbol Position=1, Length =1, next Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”>
  • 31. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 31 LZ77 (Compression Ratio) Remember 1 Bit can represent 2 Values (0,1) [0-1] 2 Bits can represent 4 values (00,01,10,11) [0-3] 3 Bits can represent 8 Values (000,001,010,011,100,101,110,111) [0-7] In General N Bits can be used to represent 2N Values [1 - 2N -1]
  • 32. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 32 LZ77 (Compression Ratio) <0,0,”A”> <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> Original Size = Number of Symbols * Bits used to Store one Symbol = 22 Symbols * 8 Bits / Symbol = 176 bits (Store “Symbol” ASCII Code in 8 Bits) Max “Position” Value = 5 Store “Position” Value in 3 Bits Max “Length” Value=5 Store “Length” Value in 3 Bits Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits Tag size = 3 + 3 + 8 =14 Bits Number of Tags = 8 Tags Compressed Size=8*14=112 bits Tag = < Position, Length ,Next Symbol Code>
  • 33. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 33 LZ77 (Compression Ratio) Effect of Increasing length of Search Window Higher Probability to find matched strings ( Decrease Number of Tags) Increase Number of Bits used to Store “Position” values Effect of Increasing length of Look Ahead Buffer Higher Probability to match longer strings( Decrease Number of Tags) Increase Number of Bits used to Store “Length” values Tag = < Position, Length ,Next Symbol Code>    
  • 34. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 34 LZ 77 (Decompression) A B <0,0,”A”> Don't pick any symbol from Search Window Add Symbol=”A” Add Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 35. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 35 LZ 77 (Decompression) A B A A <0,0,”A”> Go back Two Positions in search window pick One symbol from Search Window Add Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 36. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 36 LZ 77 (Decompression) A B A A B A B <0,0,”A”> Go back Three Positions in search window pick Two symbols from Search Window Add Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 37. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 37 LZ 77 (Decompression) A B A A B A B A A B B <0,0,”A”> Go back Five Positions in search window pick Three symbols from Search Window Add Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 38. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 38 LZ 77 (Decompression) A B A A B A B A A B B B B B <0,0,”A”> Go back Two Positions in search window pick Two symbols from Search Window Add Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 39. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 39 LZ 77 (Decompression) A B A A B A B A A B B B B B B B B B B B <0,0,”A”> Go back Five Positions in search window pick Five symbols from Search Window Add Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 40. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 40 LZ 77 (Decompression) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> Go back One Positions in search window pick One symbol from Search Window Add Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <2,2,”B”> <5,5,”B”> <1,1,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data
  • 41. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 41 LZ 77 (Compression) (Handling Repetitive Sequence) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> “AAB” exists in search buffer Go Back five Steps, Pick Three Symbol Position=5, Length =3, next Symbol=”B” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> Back to Previous Example Can We manipulate Consecutive “B”s more efficient ?
  • 42. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 42 LZ 77 (Compression) (Handling Repetitive Sequence) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> There are Ten Consecutive “B” in Look Ahead Buffer “B” exists in search buffer One position Backward Go Back One Steps, Pick Ten Symbols Position=1, Length =10, next Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”> YES, We Can
  • 43. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 43 LZ 77 (Decompression) (Handling Repetitive Sequence) A B A A B A B A A B B B <0,0,”A”> Go back One Position in search window pick Ten symbols from Search Window (in 10 Steps) Add Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data Pick ONE (out of Ten) Symbol
  • 44. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 44 LZ 77 (Decompression) (Handling Repetitive Sequence) A B A A B A B A A B B B B <0,0,”A”> Go back One Position in search window pick Ten symbols from Search Window (in 10 Steps) Add Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data Pick Two (out of Ten) Symbol
  • 45. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 45 LZ 77 (Decompression) (Handling Repetitive Sequence) A B A A B A B A A B B B B B <0,0,”A”> Go back One Position in search window pick Ten symbols from Search Window (in 10 Steps) Add Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data Pick Three (out of Ten) Symbol
  • 46. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 46 LZ 77 (Decompression) (Handling Repetitive Sequence) A B A A B A B A A B B B B B B <0,0,”A”> Go back One Position in search window pick Ten symbols from Search Window (in 10 Steps) Add Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data Pick Four (out of Ten) Symbol Repeat , Five, Six, Seven, Eight, Nine, and Ten
  • 47. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 47 LZ 77 (Decompression) (Handling Repetitive Sequence) A B A A B A B A A B B B B B B B B B B B B A <0,0,”A”> Go back One Position in search window pick Ten symbols from Search Window (in 10 Steps) Add Symbol=”A” <0,0,”B”> <2,1,”A”> <3,2,”B”> <5,3,”B”> <1,10,”A”> A B A A B A B A A B B B B B B B B B B B B A Original Data Pick Ten (out of Ten) Symbol
  • 48. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 48 LZ 77 (Compression) (Handling Repetitive Sequence) A B A A B A B A B A B A B A B A B A B A B A <0,0,”A”> <0,0,”B”> <2,1,”A”> <3,2,”B”> <2,10,”A”> Can We Apply the same Technique on Consecutive “Two Symbols” ? There are Ten Consecutive Symbols “AB” in Look Ahead Buffer “AB” exists in search buffer Adjacent to Look Ahead Buffer Go Back Two Steps, Pick Ten Symbols Position=2, Length =10, next Symbol=”A” End of Look Ahead Buffer
  • 49. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 49 LZ 77 (Compression) (Handling Repetitive Sequence) A B A A B A B A B A B A B A B A B A B A B A <0,0,”A”> <0,0,”B”> <2,1,”A”> <3,2,”B”> <2,10,”A”> There are Four Consecutive Symbols “BA” in Look Ahead Buffer “BA” exists in search buffer Adjacent to Look Ahead Buffer Go Back Two Steps, Pick Four Symbols Position=2, Length =4, next Symbol=NULL <2,4,NULL>
  • 50. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 50 LZ 77 A B A A B A B A B A B A B A B A B A B A B A <0,0,”A”> <0,0,”B”> <2,1,”A”> <3,2,”B”> <2,14,”A”> What if we use BIGGER look Ahead Buffer ? There are 14 Consecutive Symbols “AB” in Look Ahead Buffer “AB” exists in search buffer Adjacent to Look Ahead Buffer Go Back Two Steps, Pick Ten Symbols Position=2, Length =14, next Symbol=”A” End of Look Ahead Buffer
  • 51. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 51 LZ 77 (Compression) (Handling Repetitive Overlapped Sequence) C A B R A C A D A B R A R R A R R A D <0,0,”C”> C A B R A C A D A B R A R R A R R A D <0,0,”A”> C A B R A C A D A B R A R R A R R A D <0,0,”B”> C A B R A C A D A B R A R R A R R A D <0,0,”R”>
  • 52. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 52 LZ 77 (Compression) (Handling Repetitive Overlapped Sequence) C A B R A C A D A B R A R R A R R A D <3,1,”C”> C A B R A C A D A B R A R R A R R A D <2,1,”D”> C A B R A C A D A B R A R R A R R A D <7,4,”R”> C A B R A C A D A B R A R R A R R A D <3,5,”D”>
  • 53. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 53 Compression Ratio <0,0,”C”> <0,0,”A”> <0,0,”B”> <0,0,”R”> <3,1,”C”> <2,1,”D”> <7,4,”R”> <3,5,”D”> Original Size = Number of Symbols * Bits used to Store one Symbol = 19 Symbols * 8 Bits / Symbol = 152 bits (Store “Symbol” ASCII Code in 8 Bits) Max “Position” Value = 7 Store “Position” Value in 3 Bits Max “Length” Value=5 Store “Length” Value in 3 Bits Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits Tag size = 3 + 3 + 8 =14 Bits Number of Tags = 8 Tags Compressed Size=8*14=112 bits
  • 54. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 54 Advantages and Disadvantage of LZ77 Advantages of LZ77 ● Probabilities of symbols is not required to be known a priori. (suitable for Real time Compression). ● That is, the longer the size of the sliding window, the better the performance of data compression ● No coding table Required for Decompression. Disadvantage of LZ77 A straightforward implementation would require up to [Look Ahead Buffer Size] * [Search Window Size] Symbol comparisons per Tag produced. Complexity of comparison is very large
  • 55. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 55 LZ 78 (Compression) Start Read Symbol in S { T && S } is in Dictionary ? Save Tag < N ,S> Store {T && S } in Dictionary T=S T={T && S } Last Symbol End Yes (at Index N) No No Yes Set Store T=”” S Buffer to Ready Symbol T Temporary Storage buffer N Index (pointer) in Dictionary { T && S } Concatenation (T,S) Tag = < iNdex in Dict , Next Symbol>
  • 56. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 56 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 2 3 4 5 6 7 8 9 10 11 Compress the Following Text (22 Characters) Custom Dictionary (first Word is reserved as Empty) <Index in dictionary , Next Symbol > TAG
  • 57. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 57 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 3 4 5 6 7 8 9 10 11 “A” is not in the dictionary Save “A” as < 0,”A”> Add Symbol=”A” to Dictionary < 0 , “A” >
  • 58. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 58 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 4 5 6 7 8 9 10 11 “B” is not in the dictionary Save “B” as < 0,”B”> Add Symbol=”B” to Dictionary < 0 , “B” > < 0 , “A” >
  • 59. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 59 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 5 6 7 8 9 10 11 “A” is in the dictionary BUT “AA” is NOT Save “AA” as < 1,”A”> Add Symbols=”AA” to Dictionary < 0 , “B” > < 1 , “A” > < 0 , “A” >
  • 60. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 60 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 6 7 8 9 10 11 “B” is in the dictionary BUT “BA” is NOT Save “BA” as < 2,”A”> Add Symbols=”BA” to Dictionary < 1 , “A” > < 2 , “A” > < 1 , “A” > < 0 , “B” > < 0 , “A” >
  • 61. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 61 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 7 8 9 10 11 “BA” is in the dictionary BUT “BAA” is NOT Save “BAA” as < 4,”A”> Add Symbols=”BAA” to Dictionary < 0 , “A” > < 1 , “A” > < 4 , “A” > < 0 , “B” > < 1 , “A” > < 2 , “A” >
  • 62. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 62 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 8 9 10 11 “BA” is in the dictionary BUT “BAB” is NOT Save “BAA” as < 4,”B”> Add Symbols=”BAB” to Dictionary < 0 , “A” > < 1 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” >
  • 63. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 63 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 9 10 11 “B” is in the dictionary BUT “BB” is NOT Save “BB” as < 2,”B”> Add Symbols=”BB” to Dictionary < 0 , “A” > < 1 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” >
  • 64. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 64 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 BBB 9 10 11 “BB” is in the dictionary BUT “BBB” is NOT Save “BBB” as < 7,”B”> Add Symbols=”BBB” to Dictionary < 0 , “A” > < 1 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” >
  • 65. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 65 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 BBB 9 BBBB 10 11 “BBB” is in the dictionary BUT “BBBB” is NOT Save “BBBB” as < 8,”B”> Add Symbols=”BBBB” to Dictionary < 0 , “A” > < 1 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” >
  • 66. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 66 LZ 78 (Compression) A B A A B A B A A B A B B B B B B B B B B A 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 BBB 9 BBBB 10 11 “A” is in the dictionary Save “A” as <1 ,NULL> or < 0,”A”> Add NOTHING to Dictionary < 0 , “A” > < 1 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <7 , “B” > <0 , “A” > or <1, NULL>
  • 67. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 67 LZ 78 (De-Compression) 0 –----- 1 A 2 3 4 5 6 7 8 9 10 11 Get symbol at Index [0] in Dictionary {“”} Concatenate Symbol “A” , Obtain {“A”} Add {“A”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A
  • 68. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 68 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 4 5 6 7 8 9 10 11 Get symbol at Index [0] in Dictionary {“”} Concatenate Symbol “B” , Obtain {“B”} Add {“B”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B
  • 69. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 69 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 5 6 7 8 9 10 11 Get symbol at Index [1] in Dictionary {“A”} Concatenate Symbol “B” , Obtain {“AA”} Add {“AA”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A
  • 70. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 70 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 6 7 8 9 10 11 Get symbol at Index [2] in Dictionary {“B”} Concatenate Symbol “A” , Obtain {“BA”} Add {“BA”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A
  • 71. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 71 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 7 8 9 10 11 Get symbol at Index [4] in Dictionary {“BA”} Concatenate Symbol “A” , Obtain {“BAA”} Add {“BAA”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A B A A
  • 72. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 72 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 8 9 10 11 Get symbol at Index [4] in Dictionary {“BA”} Concatenate Symbol “B” , Obtain {“BAB”} Add {“BAB”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A B A A B A B
  • 73. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 73 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 9 10 11 Get symbol at Index [2] in Dictionary {“B”} Concatenate Symbol “B” , Obtain {“BB”} Add {“BB”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A B A A B A B B B
  • 74. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 74 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 BBB 9 10 11 Get symbol at Index [7] in Dictionary {“BB”} Concatenate Symbol “B” , Obtain {“BBB”} Add {“BBB”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A B A A B A B B B B B B
  • 75. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 75 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 BBB 9 BBBB 10 11 Get symbol at Index [8] in Dictionary {“BBB”} Concatenate Symbol “B” , Obtain {“BBBB”} Add {“BBBB”} to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A B A A B A B B B B B B B B B B
  • 76. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 76 LZ 78 (De-Compression) 0 –----- 1 A 2 B 3 AA 4 BA 5 BAA 6 BAB 7 BB 8 BBB 9 BBBB 10 11 Get symbol at Index [1] in Dictionary {“A”} Concatenate Symbol “NULL” , Obtain {“A”} Add NOTHING to Dictionary < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL> A B A A B A B A A B A B B B B B B B B B B A
  • 77. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 77 LZ 78 Compression Ratio Original Size = Number of Symbols * Bits used to Store one Symbol = 22 Symbols * 8 Bits / Symbol = 176 bits (Store “Symbol” ASCII Code in 8 Bits) Max “Index” Value = 8 Store “Index” Value in 4 Bits Max Symbols = 256 Symbol Store “Symbol” ASCII Code in 8 Bits Tag size = 4 + 8 =12 Bits Number of Tags = 10 Tags Compressed Size=10*12=120 bits < 0 , “A” > <4 , “B” > < 0 , “B” > < 1 , “A” > < 2 , “A” > < 4 , “A” > <2 , “B” > <7 , “B” > <8 , “B” > <0 , “A” > or <1, NULL>
  • 78. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 78 LZ 78: Main Features ● No use of the sliding window. ● Instead of the triples used in the LZ77, only pairs are used in the LZ78. Specifically, only the Position (index in the list) of the matched string and the Next Symbol following the matched string need to be encoded (in the Tag). ● Use encoded text as a dictionary which, potentially, does not have a fixed size. ● Each time a Tag is issued, the encoded string is included in the dictionary. ● Once a preset limit to the dictionary size has been reached, it is reset to zero, i.e., it must be restarted. ●
  • 79. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 79 LZW (Compression) Start Read Symbol in S { T && S } is in Dictionary ? Save Tag < N > Store {T && S } in Dictionary T=S N= Index of T in Dictionary T={T && S } N= Index in Dictionary Last Symbol End Yes No No Yes Read Symbol in T N= Index of T in Dictionary S Buffer to Ready Symbol T Temporary Storage buffer N Index (pointer) in Dictionary { T && S } Concatenation (T,S) Tag = < iNdex in Dict >
  • 80. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 80 LZW Compression A B A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 130 131 132 133 134 135 136 137 138 139 140 141 142 “A” exists in the table at index [97] “AB” does NOT exist in the table Save Symbol “A” as [97] Add “AB” to Dictionary 65
  • 81. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 81 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 131 132 133 134 135 136 137 138 139 140 141 142 “B” exists in the table at index [98] “BA” does NOT exist in the table Save Symbol “B” as [98] Add “BA” to Dictionary 65 66
  • 82. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 82 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 132 133 134 135 136 137 138 139 140 141 142 “A” exists in the table at index [97] “AA” does NOT exist in the table Save Symbol “A” as [97] Add “AA” to Dictionary 65 66 65
  • 83. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 83 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 133 134 135 136 137 138 139 140 141 142 “AB” exists in the table at index [128] “ABA” does NOT exist in the table Save Symbol “AB” as [128] Add “ABA” to Dictionary 65 66 65 128
  • 84. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 84 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 134 135 136 137 138 139 140 141 142 “AB” exists in the table at index [128] “ABB” does NOT exist in the table Save Symbol “AB” as [128] Add “ABB” to Dictionary 65 66 65 128 128
  • 85. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 85 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 135 136 137 138 139 140 141 142 “BA” exists in the table at index [129] “BAA” does NOT exist in the table Save Symbol “BA” as [129] Add “BAA” to Dictionary 65 66 65 128 128 129
  • 86. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 86 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 136 137 138 139 140 141 142 “ABA” exists in the table at index [131] “ABAA” does NOT exist in the table Save Symbol “ABA” as [131] Add “ABAA” to Dictionary 65 66 65 128 128 129 131
  • 87. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 87 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 137 138 139 140 141 142 “ABAA” exists in the table at index [134] “ABAAA” does NOT exist in the table Save Symbol “ABAA” as [134] Add “ABAAA” to Dictionary 65 66 65 128 128 129 131 134
  • 88. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 88 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 138 139 140 141 142 “AA” exists in the table at index [130] “AAB” does NOT exist in the table Save Symbol “AA” as [130] Add “AAB” to Dictionary 65 66 65 128 128 129 131 134 130
  • 89. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 89 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 139 140 141 142 “BA” exists in the table at index [129] “BAB” does NOT exist in the table Save Symbol “BA” as [129] Add “BAB” to Dictionary 65 66 65 128 128 129 131 134 130 129
  • 90. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 90 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 140 141 142 “B” exists in the table at index [98] “BB” does NOT exist in the table Save Symbol “B” as [98] Add “BB” to Dictionary 65 66 65 128 128 129 131 134 130 129 66
  • 91. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 91 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 BBB 140 141 142 “BB” exists in the table at index [138] “BBB” does NOT exist in the table Save Symbol “BB” as [138] Add “BBB” to Dictionary 65 66 65 128 128 129 131 134 130 129 66 138
  • 92. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 92 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 BBB 140 BBBB 141 142 “BBB” exists in the table at index [139] “BBBB” does NOT exist in the table Save Symbol “BBB” as [139] Add “BBBB” to Dictionary 65 66 65 128 128 129 131 134 130 129 66 138 139
  • 93. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 93 LZW Compression AB A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 BBB 140 BBBB 141 142 “BB” exists in the table at index [138] Save Symbol “BB” as [138] Add NOTHING to Dictionary 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 94. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 94 LZW De-Compression A ... ... 65 A 66 B ... ... ... ... 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 Pick symbol at Index [97] from the Dictionary; “A” Add NOTHING to Dictionary (as this is the first symbol) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 95. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 95 LZW De-Compression A B ... ... 65 A 66 B ... ... ... ... 128 AB 129 130 131 132 133 134 135 136 137 138 139 140 141 142 Pick symbols at Index [98] from the Dictionary; “B” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 96. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 96 LZW De-Compression A BA ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 131 132 133 134 135 136 137 138 139 140 141 142 Pick symbols at Index [97] from the Dictionary; “A” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 97. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 97 LZW De-Compression A B A A B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 132 133 134 135 136 137 138 139 140 141 142 Pick symbols at Index [128] from the Dictionary; “AB” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 98. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 98 LZW De-Compression A B A A B A B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 133 134 135 136 137 138 139 140 141 142 Pick symbols at Index [128] from the Dictionary; “AB” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 99. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 99 LZW De-Compression A B A A B A B B A ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 134 135 136 137 138 139 140 141 142 Pick symbols at Index [129] from the Dictionary; “BA” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 100. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 100 LZW De-Compression A B A A B A B B A A B A ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 135 136 137 138 139 140 141 142 Pick symbols at Index [131] from the Dictionary; “ABA” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 101. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 101 LZW De-Compression A B AA B A B B A A B A ? ? ? ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ??? 135 136 137 138 139 140 141 142 Pick symbols at Index [134] from the Dictionary Symbols at Index [134] are not constructed yet Assume they are “???” for the time being Continue the algorithm 65 66 65 128 128 129 131 134 130 129 66 138 139 138 PROBLEM 134 IS UNKNOWN
  • 102. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 102 LZW De-Compression A B A A B A B B A A B A ? ? ? ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABA? 135 136 137 138 139 140 141 142 Pick symbols at Index [134] from the Dictionary; “???” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138 ???
  • 103. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 103 LZW De-Compression A B A A B A B B A A B A A B A A ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 136 137 138 139 140 141 142 Pick symbols at Index [134] from the Dictionary; “ABA?” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138 ABA? Still at 134
  • 104. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 104 LZW De-Compression A B A A B A B B A A B A A B A A ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 136 137 138 139 140 141 142 Pick symbols at Index [134] from the Dictionary; “ABAA” 65 66 65 128 128 129 131 134 130 129 66 138 139 138 ABAA Construct Unknown Symbols by Concatenating Symbols in Previous Step “ABA” and First Symbol in Previous Step “A” Still at 134
  • 105. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 105 LZW De-Compression A B A A B A B B A A B A A B A A A A ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 137 138 139 140 141 142 Pick symbols at Index [130] from the Dictionary; “AA” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 106. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 106 LZW De-Compression A B A A B A B B A A B A A B A A A A B A ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 138 139 140 141 142 Pick symbols at Index [129] from the Dictionary; “BA” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 107. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 107 LZW De-Compression A B A A B A B B A A B A A B A A A A B A B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 139 140 141 142 Pick symbols at Index [98] from the Dictionary; “B” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 108. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 108 LZW De-Compression A B A A B A B B A A B A A B A A A A B A B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 ??? 139 140 141 142 Pick symbols at Index [138] from the Dictionary; “???” 65 66 65 128 128 129 131 134 130 129 66 138 139 138 Construct Unknown Symbols by Concatenating Symbols in Previous Step “B” and First Symbol in Previous Step “B” PROBLEM 138 IS UNKNOWN
  • 109. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 109 LZW De-Compression A B A A B A B B A A B A A B A A A A B A B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 140 141 142 Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary ) 65 66 65 128 128 129 131 134 130 129 66 138 139 138
  • 110. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 110 LZW De-Compression A B A A B A B B A A B A A B A A A A B A B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 ??? 140 141 142 65 66 65 128 128 129 131 134 130 129 66 138 139 138 PROBLEM 139 IS UNKNOWN Pick symbols at Index [139] from the Dictionary; “???” Construct Unknown Symbols by Concatenating Symbols in Previous Step “BB” and First Symbol in Previous Step “B”
  • 111. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 111 LZW De-Compression A B A A B A B B A A B A A B A A A A B A B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 BBB 140 141 142 65 66 65 128 128 129 131 134 130 129 66 138 139 138 Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary )
  • 112. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 112 LZW De-Compression A B A A B A B B A A B A A B A A A A B A B B B B B B B B ... ... 65 A 66 B ... ... ... ... 128 AB 129 BA 130 AA 131 ABA 132 ABB 133 BAA 134 ABAA 135 ABAAA 136 AAB 137 BAB 138 BB 139 BBB 140 BBBB 141 142 65 66 65 128 128 129 131 134 130 129 66 138 139 138 Pick symbols at Index [138] from the Dictionary; “BB” Concatenate ALL Symbols picked from Previous step and first Symbol picked from current step (Add concatenated Symbols to Dictionary )
  • 113. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 113 LZW Compression Ratio Original Size = Number of Symbols * Bits used to Store one Symbol = 28 Symbols * 8 Bits / Symbol = 224 bits (Store “Symbol” ASCII Code in 8 Bits) Max “Index” Value = 139 Store “Index” Value in 8 Bits Tag size = 8 Bits Number of Tags = 14 Tags Compressed Size=14*8=112 bits 65 66 65 128 128 129 131 134 130 129 66 138 139 138