Академический Документы
Профессиональный Документы
Культура Документы
1
5. Одной дуге, выходящей из родителя, ставится в соответствие бит
1, другой — бит 0.
6. Шаги, начиная со второго, повторяются до тех пор, пока в спис-
ке свободных узлов не останется только один свободный узел. Он и будет
считаться корнем дерева.
Для примера рассмотрим кодирование фразы
2
и/6 л/3 п/2 к/2 /2 в/2 у/1 н/1 а/1 с/1 й/1 р/1 о/1 ч/1
0.24 0.12 0.08 0.08 0.08 0.08 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04
4 4 2 2 2 2
0.16 0.16 0.08 0.08 0.08 0.08
7 4 4
0.28 0.16 0.16
10 8
0.40 0.32
15
0.60
25
1.00
Рис. 1.1. Дерево кодирования Хаффмана
этом, ветвь, идущая выше, будет иметь код «0», а ветвь, идущая ниже —
«1». Упорядоченное дерево показано на рис. 1.2.
0 0 и 00
1
0 010
1 1
в 011
0 0 л 100
1
0 п 1010
1 1
к 1011
0 0 0 у 11000
1
1 н 11001
1 0 а 11010
1
с 11011
0 0 й 11100
1
1 р 11101
0 о 11110
1
11111 ч
Рис. 1.2. Упорядоченное дерево кодирования Хаффмана
3
Теперь можно закодировать исходную строку. Она будет иметь вид:
ï ó ï ê è í ¾ ¿ â à ñ è ë è é
1010 11000 1010ð 1011 00 11001 010 011 11010 11011 00 100 00 11100
¾ ¿ ê è è ë ë î â è ÷
010 1011 00 11101 00 100 100 11110 011 00 11111
Для декодирования кодовой строки достаточно идти по упорядочен-
ному дереву на рис. 1.2, до получения символа. Затем производится возврат
к корню и определяется следующий символ.
Рассчитаем коэффициент сжатия относительно использования коди-
ровки ASCII (8 бит/символ).
LASCII = 8 · 25 = 200 бит.
LHuff = 6 · 2 + 3 · 3 + 2 · 2 · 3 + 2 · 2 · 4 + 8 · 5 = 89 бит.
Следовательно, коэффициент сжатия будет равен
LASCII
Kсж = ≈ 2.247
LHuff
5 · 25 125
Kсж = = ≈ 1.404
LHuff 89
lср = ∑ ps · ls ,
s
δ = ∑ ps (ls − lср )2 .
s
4
Для полученного кода дисперсия будет равна