SlideShare a Scribd company logo
A Review of  Data  Compression Techniques Presented  by  Sudeepta Mishra  Roll# CS200117052 At NIST,Berhampur Under the guidance of   Mr. Rowdra Ghatak
Introduction Data compression is the process of encoding data so that it takes less storage space or less transmission time than it would if it were not compressed. Compression is possible because most real-world data is very redundant
Different Compression Techniques   Mainly two types of data Compression techniques are there. Loss less Compression. Useful in  spreadsheets, text, executable program Compression.   Lossy less Compression. Compression of images, movies and sounds .
Types of Loss less data Compression Dictionary coders. Zip (file format). Lempel Ziv. Entropy encoding. Huffman coding (simple entropy coding). Run-length encoding.
Dictionary-Based Compression Dictionary-based algorithms do not encode single symbols as variable-length bit strings; they encode variable-length strings of symbols as single tokens. The tokens form an index into a phrase dictionary. If the tokens are smaller than the phrases they replace, compression occurs.
Types of Dictionary Static Dictionary. Semi-Adaptive Dictionary . Adaptive Dictionary . Lempel Ziv algorithms belong to this category of dictionary coders. The dictionary is being built in a single pass, while at the same time encoding the data.  The decoder can build up the dictionary in the same way as the encoder while decompressing the data.
Using a English Dictionary the string: “ A good example of how dictionary based compression works” Gives : 1/1 822/3 674/4 1343/60 928/75 550/32 173/46 421/2 Using the dictionary as lookup table, each word is coded as x/y, where, x gives the page no. and y gives the number of the word on that page.  If the dictionary has 2,200 pages with less than 256 entries per page: Therefore x requires 12 bits and y requires 8 bits, i.e., 20 bits per word (2.5 bytes per word).  Using ASCII coding the above string requires 48 bytes, whereas our encoding requires only 20 (<-2.5 * 8) bytes: 50% compression. Dictionary-Based Compression: Example
Lempel Ziv It is a family of algorithms, stemming from the two algorithms proposed by Jacob Ziv and Abraham Lempel in their landmark papers in 1977 and 1978. LZ77 LZ78 LZR LZH LZSS LZB LZFG LZC LZT LZMW LZW LZJ
LZW Algorithm It is An improved version of LZ78 algorithm . Published by Terry Welch in 1984 . A dictionary that is indexed by “codes” is used. The dictionary is assumed to be initialized with 256 entries (indexed with ASCII codes 0 through 255) representing the ASCII table.
The LZW Algorithm (Compression) W = NIL; while (there is input){ K = next symbol from input; if (WK exists in the dictionary) { W = WK; } else { output (index(W)); add WK to the dictionary; W = K; } }
The LZW Algorithm (Compression) Flow Chart START W= NULL IS EOF ? K=NEXT INPUT IS WK FOUND? W=WK OUTPUT INDEX OF W ADD WK TO DICTIONARY STOP W=K YES NO YES NO
The LZW Algorithm (Compression) Example Input string is  The Initial Dictionary contains symbols like  a, b, c, d with their index values as 1, 2, 3, 4 respectively. Now the input string is read from left to right. Starting from a. a b d c a d a c a 1 b 2 c 3 d 4
The LZW Algorithm (Compression) Example W = Null K = a WK = a In the dictionary . K a b d c a d a c a 1 b 2 c 3 d 4
The LZW Algorithm (Compression) Example K = b. WK = ab  is not in the dictionary. Add WK to dictionary Output code for a.  Set W = b K a b d c a d a c 1 ab 5 a 1 b 2 c 3 d 4
The LZW Algorithm (Compression) Example K = d WK = bd Not in the dictionary. Add bd to dictionary. Output code b Set W = d K a b d c a d a c 1 2 ab 5 a 1 b 2 c 3 d 4 bd 6
The LZW Algorithm (Compression) Example K = a WK = da  not in the dictionary. Add it to dictionary. Output code d Set W = a K a b d a b d a c 1 2 4 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7
The LZW Algorithm (Compression) Example K = b WK = ab  It is in the dictionary. K a b d a b d a c 1 2 4 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7
The LZW Algorithm (Compression) Example K = d WK = abd  Not in the dictionary. Add W to the dictionary. Output code for W. Set W = d K a b d a b d a c 1 2 4 5 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7 abd 8
The LZW Algorithm (Compression) Example K = a WK = da  In the dictionary. K a b d a b d a c 1 2 4 5 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7 abd 8
The LZW Algorithm (Compression) Example K = c WK = dac  Not in the dictionary. Add WK to the dictionary. Output code for W. Set W = c No input left so output code for W. K a b d a b d a c 1 2 4 5 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7 abd 8 7 dac 9
The LZW Algorithm (Compression) Example The final output string is 1 2 4 5 7 3 Stop. K c a d b a d b a 1 2 4 5 5 ab 4 d 3 c 2 b 1 a 6 bd 7 da 8 abd 7 9 dac 3
LZW Decompression Algorithm read a character k; output k; w = k; while ( read a character k ) /* k could be a character or a code. */ { entry = dictionary entry for k; output entry; add w + entry[0] to dictionary; w = entry; }
LZW Decompression Algorithm   Flow Chart START Output K IS EOF ? K=NEXT INPUT ENTRY=DICTIONARY INDEX (K) ADD W+ENTRY[0] TO DICTIONARY STOP W=ENTRY K=INPUT W=K YES NO Output ENTRY
The LZW Algorithm (Decompression) Example K = 1 Out put K (i.e. a) W = K K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a
The LZW Algorithm (Decompression) Example K = 2 entry = b Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. b) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab
The LZW Algorithm (Decompression) Example K = 4 entry = d Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. d) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d
The LZW Algorithm (Decompression) Example K = 5 entry = ab Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. a) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d a b 7 da
The LZW Algorithm (Decompression) Example K = 7 entry = da Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. d) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d a b 7 da d a 8 abd
The LZW Algorithm (Decompression) Example K = 3 entry = c Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. c) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d a b 7 da d a 8 abd c 9 dac
Advantages As LZW is adaptive dictionary coding no need to transfer the dictionary explicitly. It will be created at the decoder side. LZW can be made really fast, it grabs a fixed number of bits from input, so bit parsing is very easy, and table look up is automatic.
Problems with the encoder What if we run out of space? Keep track of unused entries and use LRU (Last Recently Used). Monitor compression performance and flush dictionary when performance is poor.
Conclusion LZW has given new dimensions for the development of new compression techniques. It has been implemented in well known compression format like Acrobat PDF and many other types of compression packages. In combination with other compression techniques many other different compression techniques are developed like LZMS.
REFERENCES [1] http://www.bambooweb.com/articles/d/a/Data_Compression.html [2] http://tuxtina.de/files/seminar/LempelZivReport.pdf [3] BELL, T. C., CLEARY, J. G., AND WITTEN, I. H. Text Compression .  Prentice Hall, Upper Sadle River, NJ, 1990. [4] http://www.cs.cf.ac.uk/Dave/Multimedia/node214.html [5] http://download.cdsoft.co.uk/tutorials/rlecompression/Run-Length Encoding (RLE) Tutorial.htm [6] David Salomon, Data Compression The Complete Reference,   Second Edition .  Springer-Verlac, New York, Inc, 2001 reprint. [7] http://www.programmersheaven.com/2/Art_Huffman_p1.htm [8] http://www.programmersheaven.com/2/Art_Huffman_p2.htm [9] Khalid Sayood, Introduction to Data Compression Second Edition, Chapter 5, pp. 137-157, Harcourt India Private Limited.
Thank You

More Related Content

PPTX
Compression project presentation
PPT
Data compression tech cs
PPT
Data Compression Technique
PPTX
Text compression in LZW and Flate
PDF
Unit iii
PDF
regular expressions (Regex)
PDF
Lecture 3 RE NFA DFA
PPTX
Optimization of dfa
Compression project presentation
Data compression tech cs
Data Compression Technique
Text compression in LZW and Flate
Unit iii
regular expressions (Regex)
Lecture 3 RE NFA DFA
Optimization of dfa

What's hot (20)

PDF
Programming languages
PPT
Context free grammar
PPT
context free language
PDF
Cody Roux - Pure Type Systems - Boston Haskell Meetup
PDF
Minimizing DFA
PDF
Declarative Semantics Definition - Term Rewriting
PDF
Ch04
PPTX
Lzw compression
PDF
Introduction - Imperative and Object-Oriented Languages
PPT
Chapter 6 intermediate code generation
PDF
Automata
PPT
Chapter Two(1)
PDF
Temporal logic and functional reactive programming
ODP
Convention-Based Syntactic Descriptions
PDF
Pure and Declarative Syntax Definition: Paradise Lost and Regained
PDF
Ch03
PPTX
Register allocation and assignment
PDF
Ch06
PPT
Chapter Three(2)
PPT
Regular Languages
Programming languages
Context free grammar
context free language
Cody Roux - Pure Type Systems - Boston Haskell Meetup
Minimizing DFA
Declarative Semantics Definition - Term Rewriting
Ch04
Lzw compression
Introduction - Imperative and Object-Oriented Languages
Chapter 6 intermediate code generation
Automata
Chapter Two(1)
Temporal logic and functional reactive programming
Convention-Based Syntactic Descriptions
Pure and Declarative Syntax Definition: Paradise Lost and Regained
Ch03
Register allocation and assignment
Ch06
Chapter Three(2)
Regular Languages
Ad

Viewers also liked (8)

PPT
Lz77 (sliding window)
PDF
Dictionary Based Compression
PPT
Demo lzw
PDF
Lz77 / Lempel-Ziv Algorithm
PPTX
Cjb0912010 lz algorithms
PPTX
PPTX
Fano algorithm
PPTX
Lzw compression ppt
Lz77 (sliding window)
Dictionary Based Compression
Demo lzw
Lz77 / Lempel-Ziv Algorithm
Cjb0912010 lz algorithms
Fano algorithm
Lzw compression ppt
Ad

Similar to Dictor (20)

PPTX
LZW Data Compression: Efficient Compression Algorithm for Lossless Data Compr...
PPTX
LZW Presentation.pptx
PPTX
Lzw algorithm
PPTX
Data compression & Classification
PDF
Lossless LZW Data Compression Algorithm on CUDA
PDF
Design and Implementation of LZW Data Compression Algorithm
PDF
Design and Implementation of LZW Data Compression Algorithm
PPTX
PDF
lempel_ziv
PPT
111111111111111111111111111111111789.ppt
PPTX
Lzw compression dsa.pptx
DOCX
Topics:LZ77 & LZ78
PPTX
LZ77 and LZ78 Compression Algorithms
PDF
Data Communication & Computer Networks : LZW compression method
PDF
Comparision Of Various Lossless Image Compression Techniques
PDF
Improving data compression ratio by the use of optimality of lzw & adaptive h...
PPT
Lzw coding technique for image compression
PPTX
Chap54
PDF
FINAL PROJECT REPORT
PDF
2019188026 Data Compression (1) (1).pdf
LZW Data Compression: Efficient Compression Algorithm for Lossless Data Compr...
LZW Presentation.pptx
Lzw algorithm
Data compression & Classification
Lossless LZW Data Compression Algorithm on CUDA
Design and Implementation of LZW Data Compression Algorithm
Design and Implementation of LZW Data Compression Algorithm
lempel_ziv
111111111111111111111111111111111789.ppt
Lzw compression dsa.pptx
Topics:LZ77 & LZ78
LZ77 and LZ78 Compression Algorithms
Data Communication & Computer Networks : LZW compression method
Comparision Of Various Lossless Image Compression Techniques
Improving data compression ratio by the use of optimality of lzw & adaptive h...
Lzw coding technique for image compression
Chap54
FINAL PROJECT REPORT
2019188026 Data Compression (1) (1).pdf

More from anithabalaprabhu (20)

PPTX
Shannon Fano
PDF
Ch 04 Arithmetic Coding ( P P T)
PPT
Compression
PPT
Datacompression1
PPT
Speech Compression
PDF
Z24 4 Speech Compression
PDF
Module 4 Arithmetic Coding
PDF
Ch 04 Arithmetic Coding (Ppt)
PPT
Compression Ii
PDF
06 Arithmetic 1
PDF
Arithmetic Coding
PPT
Compression Ii
PPT
PPT
PPT
Losseless
PPT
Lec5 Compression
PPT
Huffman Student
Shannon Fano
Ch 04 Arithmetic Coding ( P P T)
Compression
Datacompression1
Speech Compression
Z24 4 Speech Compression
Module 4 Arithmetic Coding
Ch 04 Arithmetic Coding (Ppt)
Compression Ii
06 Arithmetic 1
Arithmetic Coding
Compression Ii
Losseless
Lec5 Compression
Huffman Student

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Electronic commerce courselecture one. Pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Cloud computing and distributed systems.
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Empathic Computing: Creating Shared Understanding
The AUB Centre for AI in Media Proposal.docx
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Encapsulation_ Review paper, used for researhc scholars
Electronic commerce courselecture one. Pdf
Network Security Unit 5.pdf for BCA BBA.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Cloud computing and distributed systems.
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Empathic Computing: Creating Shared Understanding

Dictor

  • 1. A Review of Data Compression Techniques Presented by Sudeepta Mishra Roll# CS200117052 At NIST,Berhampur Under the guidance of Mr. Rowdra Ghatak
  • 2. Introduction Data compression is the process of encoding data so that it takes less storage space or less transmission time than it would if it were not compressed. Compression is possible because most real-world data is very redundant
  • 3. Different Compression Techniques Mainly two types of data Compression techniques are there. Loss less Compression. Useful in spreadsheets, text, executable program Compression. Lossy less Compression. Compression of images, movies and sounds .
  • 4. Types of Loss less data Compression Dictionary coders. Zip (file format). Lempel Ziv. Entropy encoding. Huffman coding (simple entropy coding). Run-length encoding.
  • 5. Dictionary-Based Compression Dictionary-based algorithms do not encode single symbols as variable-length bit strings; they encode variable-length strings of symbols as single tokens. The tokens form an index into a phrase dictionary. If the tokens are smaller than the phrases they replace, compression occurs.
  • 6. Types of Dictionary Static Dictionary. Semi-Adaptive Dictionary . Adaptive Dictionary . Lempel Ziv algorithms belong to this category of dictionary coders. The dictionary is being built in a single pass, while at the same time encoding the data. The decoder can build up the dictionary in the same way as the encoder while decompressing the data.
  • 7. Using a English Dictionary the string: “ A good example of how dictionary based compression works” Gives : 1/1 822/3 674/4 1343/60 928/75 550/32 173/46 421/2 Using the dictionary as lookup table, each word is coded as x/y, where, x gives the page no. and y gives the number of the word on that page. If the dictionary has 2,200 pages with less than 256 entries per page: Therefore x requires 12 bits and y requires 8 bits, i.e., 20 bits per word (2.5 bytes per word). Using ASCII coding the above string requires 48 bytes, whereas our encoding requires only 20 (<-2.5 * 8) bytes: 50% compression. Dictionary-Based Compression: Example
  • 8. Lempel Ziv It is a family of algorithms, stemming from the two algorithms proposed by Jacob Ziv and Abraham Lempel in their landmark papers in 1977 and 1978. LZ77 LZ78 LZR LZH LZSS LZB LZFG LZC LZT LZMW LZW LZJ
  • 9. LZW Algorithm It is An improved version of LZ78 algorithm . Published by Terry Welch in 1984 . A dictionary that is indexed by “codes” is used. The dictionary is assumed to be initialized with 256 entries (indexed with ASCII codes 0 through 255) representing the ASCII table.
  • 10. The LZW Algorithm (Compression) W = NIL; while (there is input){ K = next symbol from input; if (WK exists in the dictionary) { W = WK; } else { output (index(W)); add WK to the dictionary; W = K; } }
  • 11. The LZW Algorithm (Compression) Flow Chart START W= NULL IS EOF ? K=NEXT INPUT IS WK FOUND? W=WK OUTPUT INDEX OF W ADD WK TO DICTIONARY STOP W=K YES NO YES NO
  • 12. The LZW Algorithm (Compression) Example Input string is The Initial Dictionary contains symbols like a, b, c, d with their index values as 1, 2, 3, 4 respectively. Now the input string is read from left to right. Starting from a. a b d c a d a c a 1 b 2 c 3 d 4
  • 13. The LZW Algorithm (Compression) Example W = Null K = a WK = a In the dictionary . K a b d c a d a c a 1 b 2 c 3 d 4
  • 14. The LZW Algorithm (Compression) Example K = b. WK = ab is not in the dictionary. Add WK to dictionary Output code for a. Set W = b K a b d c a d a c 1 ab 5 a 1 b 2 c 3 d 4
  • 15. The LZW Algorithm (Compression) Example K = d WK = bd Not in the dictionary. Add bd to dictionary. Output code b Set W = d K a b d c a d a c 1 2 ab 5 a 1 b 2 c 3 d 4 bd 6
  • 16. The LZW Algorithm (Compression) Example K = a WK = da not in the dictionary. Add it to dictionary. Output code d Set W = a K a b d a b d a c 1 2 4 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7
  • 17. The LZW Algorithm (Compression) Example K = b WK = ab It is in the dictionary. K a b d a b d a c 1 2 4 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7
  • 18. The LZW Algorithm (Compression) Example K = d WK = abd Not in the dictionary. Add W to the dictionary. Output code for W. Set W = d K a b d a b d a c 1 2 4 5 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7 abd 8
  • 19. The LZW Algorithm (Compression) Example K = a WK = da In the dictionary. K a b d a b d a c 1 2 4 5 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7 abd 8
  • 20. The LZW Algorithm (Compression) Example K = c WK = dac Not in the dictionary. Add WK to the dictionary. Output code for W. Set W = c No input left so output code for W. K a b d a b d a c 1 2 4 5 ab 5 a 1 b 2 c 3 d 4 bd 6 da 7 abd 8 7 dac 9
  • 21. The LZW Algorithm (Compression) Example The final output string is 1 2 4 5 7 3 Stop. K c a d b a d b a 1 2 4 5 5 ab 4 d 3 c 2 b 1 a 6 bd 7 da 8 abd 7 9 dac 3
  • 22. LZW Decompression Algorithm read a character k; output k; w = k; while ( read a character k ) /* k could be a character or a code. */ { entry = dictionary entry for k; output entry; add w + entry[0] to dictionary; w = entry; }
  • 23. LZW Decompression Algorithm Flow Chart START Output K IS EOF ? K=NEXT INPUT ENTRY=DICTIONARY INDEX (K) ADD W+ENTRY[0] TO DICTIONARY STOP W=ENTRY K=INPUT W=K YES NO Output ENTRY
  • 24. The LZW Algorithm (Decompression) Example K = 1 Out put K (i.e. a) W = K K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a
  • 25. The LZW Algorithm (Decompression) Example K = 2 entry = b Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. b) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab
  • 26. The LZW Algorithm (Decompression) Example K = 4 entry = d Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. d) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d
  • 27. The LZW Algorithm (Decompression) Example K = 5 entry = ab Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. a) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d a b 7 da
  • 28. The LZW Algorithm (Decompression) Example K = 7 entry = da Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. d) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d a b 7 da d a 8 abd
  • 29. The LZW Algorithm (Decompression) Example K = 3 entry = c Output entry Add W + entry[0] to dictionary W = entry[0] (i.e. c) K 1 2 4 5 4 d 3 c 2 b 1 a 7 3 a b 5 ab 6 bd d a b 7 da d a 8 abd c 9 dac
  • 30. Advantages As LZW is adaptive dictionary coding no need to transfer the dictionary explicitly. It will be created at the decoder side. LZW can be made really fast, it grabs a fixed number of bits from input, so bit parsing is very easy, and table look up is automatic.
  • 31. Problems with the encoder What if we run out of space? Keep track of unused entries and use LRU (Last Recently Used). Monitor compression performance and flush dictionary when performance is poor.
  • 32. Conclusion LZW has given new dimensions for the development of new compression techniques. It has been implemented in well known compression format like Acrobat PDF and many other types of compression packages. In combination with other compression techniques many other different compression techniques are developed like LZMS.
  • 33. REFERENCES [1] http://www.bambooweb.com/articles/d/a/Data_Compression.html [2] http://tuxtina.de/files/seminar/LempelZivReport.pdf [3] BELL, T. C., CLEARY, J. G., AND WITTEN, I. H. Text Compression . Prentice Hall, Upper Sadle River, NJ, 1990. [4] http://www.cs.cf.ac.uk/Dave/Multimedia/node214.html [5] http://download.cdsoft.co.uk/tutorials/rlecompression/Run-Length Encoding (RLE) Tutorial.htm [6] David Salomon, Data Compression The Complete Reference, Second Edition . Springer-Verlac, New York, Inc, 2001 reprint. [7] http://www.programmersheaven.com/2/Art_Huffman_p1.htm [8] http://www.programmersheaven.com/2/Art_Huffman_p2.htm [9] Khalid Sayood, Introduction to Data Compression Second Edition, Chapter 5, pp. 137-157, Harcourt India Private Limited.