This action might not be possible to undo. Are you sure you want to continue?

Welcome to Scribd! Start your free trial and access books, documents and more.Find out more

TOPIC:HUFFMAN CODES

SUBMITTED TO:MR.VIJAY GARG

SUBMITTED BY:KARANBIR SINGH B.TECH CSE 10804631 RK1R08B39

Last but not the least.” I am hearty thankful to college library for providing the books. my roommates and classmates for helping me in assembling the notes related to this topic.ACKNOWLEDGEMENT First and foremost I. I am very thankful to my parents who give me financial support to complete my term paper. KARANBIR SINGH is very thankful to Lect. KARANBIR SINGH .VIJAY GARG who assigned me this term paper “HUFFMAN CODES.

Contents 1) Introduction 2) Types of Huffman coding a)N-ray Huffman coding b)Adaptive Huffman coding c)Huffman template algorithm d)Length limited Huffman coding e)Huffman coding with unequal letter costs f)Hu-tucker coding g)Canonical Huffman code 3) Properties 4) Advantages 5) Disadvantages 6) Applications 7) References .

INTRODUCTION Huffman coding is an entropy encoding algorithm used for lossless data compression.. Huffman coding is equivalent to simple binary block encoding. In all cases the code book plus encoded data must be transmitted to enable decoding. Codes are stored in a Code Book which may be constructed for each image or a set of images.Huffman coding is based on the frequency of occurrence of a data item (pixel in images). Huffman was able to design the most efficient compression method of this type . The principle is to use a lower number of bits to encode the data that occurs more frequently. resulting in a prefix code sometimes called "prefix-free codes". It was developed by David A.Huffman coding uses a specific method for choosing the representation for each symbol. the bit string representing some particular symbol is never a prefix of the bit string representing any other symbol that expresses the most common source symbols using shorter strings of bits than are used for less common source symbols. that is. student at MIT.no other mapping of individual source symbols to unique strings of bits will produce a smaller average output size when the actual symbol frequencies agree with those used to create the code. . and published in the 1952 ".g.D. ASCII coding. e. A method was later found to design a Huffman code in linear time if input probabilities (also known as weights) are sorted. Huffman while he was a Ph. Huffman coding is such a widespread method for creating prefix codes that the term "Huffman code" is widely used as a synonym for "prefix code" even when such a code is not produced by Huffman's algorithm.

but the algorithm given above does not require this. non-numerical weights) and one of many combining methods (not just addition). 1. then the set of source words will form a proper Huffman tree. additional 0-probability place holders must be added. In this case. this is a 2 to 1 contractor. Adaptive Huffman coding A variation called adaptive Huffman coding involves calculating the probabilities dynamically based on recent actual frequencies in the sequence of source symbols. instead of just the 2 least probable. This approach was considered by Huffman in his original paper. n − 1} alphabet to encode message and build an n-ary tree. The same algorithm applies as for binary (n equals 2) codes. not all sets of source words can properly form an n-ary tree for Huffman coding. the weights used in implementations of Huffman coding represent numeric probabilities.TYPES OF HUFFMAN CODING N-ary Huffman coding The n-ary Huffman algorithm uses the {0. frequencies.. and any sized set can form such a contractor. The Huffman template algorithm enables one to use any kind of weights (costs.. except that the n least probable symbols are taken together. If the number of source words is congruent to 1 modulo n-1. pairs of weights. for binary coding. meaning a way to order weights and to add them. . Note that for n greater than 2. Huffman template algorithm Most often. it requires only that the weights form a totally ordered commutative monoid. . and changing the coding tree structure to match the updated probability estimates. This is because the tree must form an n to 1 contractor. .

a problem first applied to circuit Length-limited Huffman coding limited Length-limited Huffman coding is a variant where the goal is still to limited achieve a minimum weighted path length. N. where is the maximum length of a codeword. When working under this assumption. minimizing the total cost of the message and minimizing the total number of digits are the same thing. how many are 1s. unlike the pre-sorted and unsorted conventional Huffman problems. such as minimizing design. .Such algorithms can solve other minimization problems. respectively. but it is no longer sufficient just to minimize the number of symbols used by the message. due to non-uniform characteristics of the transmission medium. No algorithm is known to solve this in . etc. Its time complexity is . The package-merge algorithm solves this problem with a simple greedy approach very similar to that used by Huffman's algorithm. than a 'dot'. Huffman coding with unequal letter costs is the generalization in ization which this assumption is no longer assumed true: the letters of the encoding alphabet may have non uniform lengths. The goal is still to minimize the weighted average codeword length. Huffman coding with unequal letter costs ng In the standard Huffman coding problem. and therefore the cost of a dash in transmission time is higher. An example is the encoding alphabet of Morse code. No algorithm is known to solve this problem to in linear or linearithmic time. but there is an additional restriction that the length of each codeword must be less than a given constant. it is assumed that each symbol in the set that the code words are constructed from has an equal cost to transmit: a code word whose length is N digits will always have a cost of N no matter how many of those digits are 0s. where a 'dash' takes longer to send code.

rendering Hu-Tucker coding unnecessary. Thus. These optimal alphabetic binary trees are often used as binary search trees trees. Huffman coding.the same manner or with the same efficiency as conventional Huffman coding. Canonical Huffman code ical If weights corresponding to the alphabetically ordered inputs are in numerical order. The Huffman . the alphabetic order of inputs and outputs must be identical. is also optimal. the Huffman code has the same lengths as the optimal alphabetic code. The technique for finding this code is sometimes called Huffman-Shannon Shannon-Fano coding. which has some similarities to Huffman algorithm. it is assumed that any codeword can correspond to any input symbol. but instead should be assigned either or . which. having the same codeword lengths as the original solution. but is not a variation of this algorithm. Huffman-Shannon-Fano code corresponding to the Fano example is . This is also known as the Hu-Tucker problem. due to ease of encoding/decoding. since it is optimal like . but alphabetic in weight probability. after the authors of the paper Tucker presenting the first linearithmic solution to this optimal binary alphabetic problem. In the alphabetic version. like ShannonFano coding. . The code resulting from numerically (re-)ordered input is sometimes called the canonical )ordered Huffman code and is often the code used in practice. for example. which can be found from calculating these lengths. Optimal alphabetic binary trees (Hu Tucker coding) (Hu-Tucker In the standard Huffman coding problem. could not be assigned code .

The worst case for Huffman coding can happen when the probability of a symbol 6 cedes 2-1 = 0. Huffman coding is optimal when the probability of each input symbol is a negative power of two. 4. The frequencies used can be generic ones for the application domain that are based on average experience. unambiguous. These situations often respond well to a form of blocking called run-length encoding. or they can be the actual frequencies found in the text being compressed. ADVANTAGES • Algorithm is easy to implement • Produce a lossless compression of images DISADVANTAGES • Efficiency depends on the accuracy of the statistical model used and type of image. making the upper limit of inefficiency unbounded. If prior statistics are available and accurate. . 5. 2.PROPERTIES 1. Unique Prefix Property: no code is a prefix to any other code (all symbols are at the leaf nodes) -> great for decoder.5. then Huffman coding is very good 3.

all codes of the encoded data are of different sizes (not of fixed length).• Algorithm varies with different formats. then whatever that is decoded will be wrong values. From here we can see that Huffman encoding is a relatively slow process as time is required to build the statistical model in order to archive an efficient compression rate. but few get any better than 8:1 compression. and the only way for it to know is by following the paths of the up-side down tree and coming to an end of it (one of the branch). • Another disadvantage of Huffman is that. During the first pass. a statistical model is built. . This causes overhead. • The Huffman encoding process is usually done in two passes. if the encoded data is corrupted with additional bits added or bits missing. Therefore it is very difficult for the decoder to know that it has reached the last bit of a code. • It is required to send Huffman table at the beginning of the compressed file . • Compression of image files that contain long runs of identical pixels by Huffman is not as efficient when compared to RLE. Thus. and then in the second pass the image data is encoded based on the generated model. and the final image displayed will be garbage.otherwise the decompressor will not be able to decode it.

L. Stein.com/Huffman 2. DEFLATE (PKZIP's algorithm) and multimedia codecs such as JPEG and MP3 have a front-end model and quantization followed by Huffman coding.D. Arithmetic coding can be viewed as a generalization of Huffman coding.google.Ullman. high speed and lack of encumbrance by patents. R. C.APPLICATIONS 1. 2007 4.H. The Design and Analysis Of Computer Algorithms.. 3. Hopcroft and J. Pearson Education Asia. Rivest and C.E. 2. http://en. Ltd. A.Aho. J. Cormen.wikipedia. indeed.www. in practice arithmetic coding is often preceded by Huffman coding. Introduction to Algorithms. 2007 . Huffman coding is in wide use because of its simplicity. T. Leiserson. REFERENCES 1.V. as it is easier to find an arithmetic code for a binary input than for a nonbinary input. PHI Pvt.E.org/huffman_codes 3. Huffman coding today is often used as a "back-end" to some other compression method.

- Report Characteristics for ES Students Final
- ITECH1006 5006 Tutorial02 S214 SampleSolns Students
- Itech1400 Sample Mid-term Test
- Itech1400-Foundations of Programming
- Itech1006-Database Management Systems
- Road_to_solo_driving_Part_3_Managing_risk_English.pdf
- Road_to_solo_driving_Part_1_The_challenges_of_driving_English.pdf
- Road_to_solo_driving_introduction_How_to_use_this_book_English.pdf
- 16435_mitra

- Crypto 3
- Configure Kernel Parameters - How To.docx
- OOAD
- popl02
- Cryptography - RAS Suggestion to Random Number Generation in Software
- RSA
- ddbms
- The Application State Machine Concept in Programming Mobile Robot Motion
- H32 Optimization
- 00379762
- Introduction to Video Compression
- Simple and Fast Implementation of Segmented Matrix Algorithm for Haar DWT on a Low Cost GPU
- Performance and Scalability Class Ppt
- FPGA Implementation of 8, 16 and 32 Bit LFSR With Maximum Length Feedback Polynomial Using VHDL
- gis_dbms
- Appendix l
- Original_1402895303_4_Content a - Operators and Variables in Java
- Overview of C# 3
- FPGA-Based Vector PI Regulator for Electrical Drives Control
- Share Script v1.2 Reference
- Hidden Surface Removal1
- 31_ JCIT_JUNE_Binder1-31
- XML Schema.pptx
- sssss
- matlab optimization
- 1 Introduction to ANSYS
- VHDL
- C Notes
- 04-LinkedLists

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue listening from where you left off, or restart the preview.

scribd