Принцип построения алфавитного кода по методу Хаффмана заключается в том, что, зная вероятности символов в сообщении, можно описать процедуру построения кодов переменной длины, состоящих из целого количества битов. planetcalc.ru ru.wikipedia.org Символам с большей вероятностью ставятся в соответствие более короткие коды. planetcalc.ru
Метод состоит из двух основных этапов: planetcalc.ru
- Построение оптимального кодового дерева. planetcalc.ru На входе алгоритм получает таблицу частот встречаемости символов в сообщении. planetcalc.ru Далее на основании этой таблицы строится дерево кодирования Хаффмана (Н-дерево). planetcalc.ru
- Построение отображения код-символ на основе построенного дерева. planetcalc.ru Чтобы определить код для каждого из символов, входящих в сообщение, нужно пройти путь от корня до листа дерева, соответствующего текущему символу, накапливая биты при перемещении по ветвям дерева (первая ветвь в пути соответствует младшему биту). planetcalc.ru Полученная таким образом последовательность битов является кодом данного символа, записанным в обратном порядке. planetcalc.ru
Коды Хаффмана обладают свойством префиксности (то есть ни одно кодовое слово не является префиксом другого), что позволяет однозначно их декодировать. planetcalc.ru ru.wikipedia.org