Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

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

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Compressionbasics
Compressionbasics
Wird geladen in …3
×

Hier ansehen

1 von 113 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie 1- Intro, LZ77, LZ 78, LZW.pdf (20)

Aktuellste (20)

Anzeige

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

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 14 All These Images are Lossy Compressed images
  15. 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. 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. 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. 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. 19. Prof. Khaled Mostafa khaledms@fci-cu.edu.eg ‫الحاسبات‬ ‫كلية‬ ‫المعـلومات‬ ‫و‬ 19 Dictionary Based Compression LZ 77 LZ78 LZW
  20. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×