0% found this document useful (0 votes)
77 views

Hauffman Coading

Huffman coding is a data compression technique that uses variable-length codes to encode characters based on their frequency of occurrence. It assigns shorter codes to more frequent characters and longer codes to less frequent characters to efficiently compress data. The encoding is done by constructing a Huffman tree from the character frequencies and assigning codes to each character based on their path from the root to their leaf node in the tree. Decoding simply reverses the process by traversing the Huffman tree based on the received code.

Uploaded by

Saket Anand
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

Hauffman Coading

Huffman coding is a data compression technique that uses variable-length codes to encode characters based on their frequency of occurrence. It assigns shorter codes to more frequent characters and longer codes to less frequent characters to efficiently compress data. The encoding is done by constructing a Huffman tree from the character frequencies and assigning codes to each character based on their path from the root to their leaf node in the tree. Decoding simply reverses the process by traversing the Huffman tree based on the received code.

Uploaded by

Saket Anand
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Huffman Coding

 Data can be encoded efficiently using Huffman Codes.


 It is a widely used and beneficial technique for data compression.
 Huffman coding is a greedy method which uses a table of the frequencies of
occurrences of each character to build up an optimal way of representing each
character as a binary string.

Huffman Coding Methodology

Suppose the string below is to be sent over a network.

Initial string

Each character occupies 8 bits. There are a total of 15 characters in the above string.
Thus, a total of 8 * 15 = 120 bits are required to send this string.
Using the Huffman Coding technique, we can compress the string to a smaller size.

Huffman coding first creates a tree using the frequencies of the character and then
generates code for each character.

Once the data is encoded, it has to be decoded. Decoding is done using the same tree.

Huffman Coding prevents any ambiguity in the decoding process using the concept
of prefix code ie. a code associated with a character should not be present in the
prefix of any other code. The tree created above helps in maintaining the property.
Huffman coding is done with the help of the following steps.
1. Calculate the frequency of each character in the string.

Frequency of string

2. Sort the characters in increasing order of the frequency. These


are stored in a priority queue Q .

Characters sorted according to the frequency

3. Make each unique character as a leaf node.


4. Create an empty node z . Assign the minimum frequency to the left
child of z and assign the second minimum frequency to the right
child of z . Set the value of the z as the sum of the above two
minimum frequencies.

Getting the sum of the least numbers


5. Remove these two minimum frequencies from Q and add the sum
into the list of frequencies (* denote the internal nodes in the
figure above).
6. Insert node z into the tree.
7. Repeat steps 3 to 5 for all the characters.

Repeat steps 3 to 5 for all the characters.


Repeat steps 3 to 5 for all the characters.

8. For each non-leaf node, assign 0 to the left edge and 1 to the right
edge.

Assign 0 to the left edge and 1 to the right edge


 For sending the above string over a network, we have to send the tree
as well as the above compressed-code. The total size is given by the
table below.

Character Frequency Code Size

A 5 11 5*2 = 10

B 1 100 1*3 = 3

C 6 0 6*1 = 6

D 3 101 3*3 = 9

4 * 8 = 32 bits 15 bits 28 bits

Without encoding, the total size of the string was 120 bits. After encoding the
size is reduced to 32 + 15 + 28 = 75 .

 Decoding the code


For decoding the code, we can take the code and traverse through the tree to
find the character.

Let 101 is to be decoded, we can traverse from the root as in the figure below.
Decoding

You might also like