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