0
6.2kviews
Explain Huffman encoding with an example.
1 Answer
0
581views

• Huffman coding is a lossless data compression algorithm. The idea is to assign variable-length codes to input characters, lengths of the assigned codes are based on the frequencies of corresponding characters.

• The most frequent character gets the smallest code and the least frequent character gets the largest code.

• The variable-length codes assigned to input characters are Prefix Codes, means the codes (bit sequences) are assigned in such a way that the code assigned to one character is not prefix of code assigned to any other character. This is how Huffman Coding makes sure that there is no ambiguity when decoding the generated bit stream.

• Let us understand prefix codes with a counter example. Let there be four characters a, b, c and d, and their corresponding variable length codes be 00, 01, 0 and 1. This coding leads to ambiguity because code assigned to c is prefix of codes assigned to a and b. If the compressed bit stream is 0001, the de-compressed output may be “cccd” or “ccb” or “acd” or “ab”.

Decoding:

• Decoding is an exact reverse procedure of encoding. In Huffman's tree the leaves represent the character and from the given code word we can find out the original characters.

• In above example, if we decode bits,

• 0111111111110

• The resulting string would be “aeed”

• Example

enter image description here

Please log in to add an answer.