4) для кодирования могут не использоваться узлы более высокого порядка.
При укрупнении сообщения, т.е. при переходе от улов порядка i к i – 1 количество символов, закодированных в узлах более высокого порядка, уменьшается. Однако в узлах самого высокого порядка количество закодированных символов m0 должно лежать в пределах [2,k], где k – основание кода.
При выборе k используют следующую формулу:
M = 1 +
(k – 1) + (m0 – 1) (5.9)где М – общее количество символов в алфавите
m0 – количество закодированных символов
– целое число, которое подбирается таким образом, чтобы выполнялось условие: (5.9)
где k – основание кода
Если найдено m0, то оно определяет количество закодированных символов в узлах само высокого порядка. Все остальные узлы низких порядков полностью заполняются.
Требуется построить двоичный код Хаффмана.
k = 2
m0 = 2Следовательно, в узлах самого высокого порядка количество закодированных символов равно 2.
Необходимо построить вспомогательную таблицу:
Таблица 5.3
Буква | аi | Pi | аi | n | |
0.579 |
0.421 | ||||
0.319 | ||||
пауза | а1 | P1 = 0.26 | а1 10 | 2 |
0.23 | ||||
0.191 | ||||
_ |