Вы находитесь на странице: 1из 20

HUFFMAN ENCODING AND DECODING

USING MATLAB
Internal Guide : SVMG Phani Kumar C
ECE-B Coordinator : Mrs. Neha Jain
S. Poojitha (14321A0474)
M. Rupa (14321A04A0)
B. Sai Sruthi (14321A04A6)
Contents
 Aim
 Block Diagram
 Huffman Coding
 Flow Chart of Huffman algorithm
 Nature of Huffman coding
 Matlab
 Specific Syntaxes
 Result
 Advantages and Applications
 Conclusion and Future scope
Aim

 The Main Aim of the project “HUFFMAN ENCODING AND


DECODING USING MATLAB” is to compress the data in lossless
manner in order to achieve better efficiency.
Block Diagram
Huffman Coding

 Huffman coding is a lossless data compression algorithm. The idea


is to assign variable-length codes to input characters, lengths of
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.
Why Huffman coding is preferred?

 The name Huffman code proper refers to optimal choice of code


given a distribution on the value of block.

 Huffman code satisfy optimal property.

 It is a fixed to variable code.


Flow chart of Huffman
algorithm
• All the symbol sources or message must be listed
in decreasing order of their probabilities.

• Now combine the probabilities of two source


symbols which are having the lowest
probabilities and rearrange them again in the
decreasing order.
• Repeat the above step until two ordered probabilities remain.

• Now start encoding with last reduction which contains two ordered
probabilities. Assign ‘0’ to higher probability and ‘1’ to the lower.

• Trace back and assign 0 & 1 in the second digit for the two
probabilities by which it was obtained in the previous reduction
process.

• Repeat this process until first column is reached.

• Write the code for each symbol.


Representation of a binary code

100 %

0 1

45 % 55 %
a = 0
0 1

25 % 30 %

0 1 0 1

12 % 13 % 14 % 16 %
c = 100 b = 101 d = 111
0 1

5% 9%
f = 1100 e = 1101
Nature of Huffman Coding

• Prefix Code:

A prefix code is a type of code system(typically a variable-length


code) distinguished by its possession of the “Prefix property”.

• Uniquely decodable code:

A Uniquely decodable code is a variable length code in which bit

strings can always be uniquely decomposed into its codewords.


• Entropy:

The average amount of information present in the symbol is known


as Entropy. Denoted by ‘H’.

• Efficiency:

It is defined as the ratio of amount of information present in the


symbol to the average code word length.
Matlab

• Matlab started developing in 1970’s.

• Matlab is a high performance language for technical computating.

• It integrates computation, visualization and programming in an


easy-to-use environment where problems and solutions are
expressed in familiar mathematical notation.
Specific Syntaxes used in the code

 [dict,avglen]= huffmandict(symbols,p)

It generates a binary huffman code dictionary using the maximum


variance algorithm.

 temp{i,2}=num2str(temp{I,2})

It converts numeric array into a character array that represents the


numbers.
 encod=huffmanenco(sym,dict)

This encodes signal system using the Huffman codes described by the
code dictionary dict.

 decod=huffmandeco(bits,dict)

This decodes the numeric Huffman code vector bits using the code
dictionary dict.
RESULT
Advantages

• Algorithm is easy to implement.

• Produce a lossless compression.

Applications

Huffman coding has various applications like.,

 Compressing text files in Windows Operating System.

 JPEG frame compression.

 Text compression in ZIP files.


Conclusion

 The result shows that higher code redundancy helps to achieve more
compression.

 The result also reveals that original data used for coding is almost
same as the decoded output.

 Hence, Huffman Coding is efficient technique for data compression


and decompression.
Future Scope

 Other methods of data compression can be carried out as Lempel-ziv


coding, Arithmetic coding, etc.
References

 D.A. Huffman, “A method for the construction of minimum


redundancy codes”, proceeding of the I.R.E, September 1952, pp
1098-1102, Huffman’s original article.

 Introduction of data compression, K. Sayood, Morgan Kauffman,


second edition. 2000

 http://www.prepressure.com/library/compression-
algorithms/huffman