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