Huffman Codes
Example
Otávio Braga
Example
• Say we want to encode a text with the characters a,
b,…, g occurring with the following frequencies:
a b c d e f g
Frequency 37 18 29 13 30 17 6
Fixed-Length Code
a b c d e f g
Frequency 37 18 29 13 30 17 6
Fixed-length 000 001 010 011 100 101 110
code
• Total size is:
(37 + 18 + 29 + 13 + 30 + 17 + 6) x 3= 450 bits
Variable-Length Code
a b c d e f g
Frequency 37 18 29 13 30 17 6
Variable- 10 011 111 1101 00 010 1100
length code
• Total size is:
37x2 + 18x3 + 29x3 + 13x4 + 30x2 + 17x3 + 6x4 = 402 bits
• A savings of approximately 11%
Constructing a Huffman Code
g,6 d,13 f,17 b,18 c,29 e,30 a,37
Constructing a Huffman Code
g,6 d,13 f,17 b,18 c,29 e,30 a,37
Constructing a Huffman Code
19 f,17 b,18 c,29 e,30 a,37
g,6 d,13
Constructing a Huffman Code
f,17 b,18 19 c,29 e,30 a,37
g,6 d,13
Constructing a Huffman Code
f,17 b,18 19 c,29 e,30 a,37
g,6 d,13
Constructing a Huffman Code
35 19 c,29 e,30 a,37
f,17 b,18 g,6 d,13
Constructing a Huffman Code
19 c,29 e,30 35 a,37
g,6 d,13 f,17 b,18
Constructing a Huffman Code
19 c,29 e,30 35 a,37
g,6 d,13 f,17 b,18
Constructing a Huffman Code
48 e,30 35 a,37
19 c,29 f,17 b,18
g,6 d,13
Constructing a Huffman Code
e,30 35 a,37 48
f,17 b,18 19 c,29
g,6 d,13
Constructing a Huffman Code
e,30 35 a,37 48
f,17 b,18 19 c,29
g,6 d,13
Constructing a Huffman Code
65 a,37 48
e,30 35 19 c,29
f,17 b,18 g,6 d,13
Constructing a Huffman Code
a,37 48 65
19 c,29 e,30 35
g,6 d,13 f,17 b,18
Constructing a Huffman Code
a,37 48 65
19 c,29 e,30 35
g,6 d,13 f,17 b,18
Constructing a Huffman Code
85 65
e,30 35
a,37 48
19 c,29 f,17 b,18
g,6 d,13
Constructing a Huffman Code
65 85
e,30 35
a,37 48
f,17 b,18 19 c,29
g,6 d,13
Constructing a Huffman Code
150
65 85
e,30 35
a,37 48
f,17 b,18 19 c,29
g,6 d,13
Resulting Code
0 1
a 10
b 011
0 1 0 1
c 111
e a d 1101
0 1 0 1
e 00
f b c f 010
0 1 g 1100
g d