SlideShare a Scribd company logo
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

More Related Content

Similar to 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 steganography
MrMoliya
 
Lecture 6 -_presentation_layer
Lecture 6 -_presentation_layerLecture 6 -_presentation_layer
Lecture 6 -_presentation_layer
Serious_SamSoul
 
Image Processing in Android Environment AJCSE
Image Processing in Android Environment AJCSEImage Processing in Android Environment AJCSE
Image Processing in Android Environment AJCSE
BRNSSPublicationHubI
 
Data compression using huffman coding
Data compression using huffman codingData compression using huffman coding
Data compression using huffman coding
SATYENDRAKUMAR279
 
lecture on data compression
lecture on data compressionlecture on data compression
lecture on data compression
Dr Rajiv Srivastava
 
10lecture10datacompression-171023182241.pdf
10lecture10datacompression-171023182241.pdf10lecture10datacompression-171023182241.pdf
10lecture10datacompression-171023182241.pdf
PUSHKAR ARYA
 
2014 toronto-torbug
2014 toronto-torbug2014 toronto-torbug
2014 toronto-torbug
c.titus.brown
 
Ig2 task 1 work sheet
Ig2 task 1 work sheetIg2 task 1 work sheet
Ig2 task 1 work sheet
Luke 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 2
BenCom1
 
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
Sanjeev Kumar Jaiswal
 
myukm
myukmmyukm
myukm
Joshgrey16
 
Introduction of DiscoGAN
Introduction of DiscoGANIntroduction of DiscoGAN
Introduction of DiscoGAN
Seongcheol 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 Images
CSCJournals
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
KeatonBradley
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
Colinjason Dockerty
 
Sound recording glossary 6
Sound recording glossary 6Sound recording glossary 6
Sound recording glossary 6
ThomasDowson123
 
Improved sound recording glossary
Improved sound recording glossaryImproved sound recording glossary
Improved sound recording glossary
KeatonBradley
 
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
cscpconf
 
Adam Crittenden Sound Glossary
Adam Crittenden Sound GlossaryAdam Crittenden Sound Glossary
Adam Crittenden Sound Glossary
Adam Crittenden
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
kieranowens1997
 

Similar to 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
 

Recently uploaded

Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 

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