Оптимальное кодирование
Пишу архиватор...
Если кому тема интересна, то на inf-os.ho.com.ua есть моя релизация алгоритма Зива-Лемпела 78го года и прелюбопытнейшая книга по архивированию без потерь...
Нет ли у кого красивой реализации оптимального кодирования Хаффмена? Мат. база елементарна, а вот красиво закодировать не получается...
Пишу архиватор...
Если кому тема интересна, то на inf-os.ho.com.ua есть моя релизация алгоритма Зива-Лемпела 78го года и прелюбопытнейшая книга по архивированию без потерь...
Я в свое время занималься архиваторами. Хаффмана писал еще на паскале. Но все мои паскалевские наработки пропали. От Хаффмана осталась только бумажная распечатка моего кода.
Скажи что именно красиво не выходит? Построение дерева? Запись/чтение кодов символов?
Скажи что именно красиво не выходит? Построение дерева? Запись/чтение кодов символов?
Дерево... Как красиво дописывать 0\1 к кодам слов? Точнее как определить слова к кодам которых на данном этапе необходимо дописать очередной бит.Создать массив в котором будут храниться
номера слов связанных с каждым узлом графа? Это создает немеряно проблем...
И действительно меня интересует не столько код (разбираться в чужих исходниках -- мутное дело) а, скажем, подробный алгоритм, опускающий непринципиальные детали...
Дерево... Как красиво дописывать 0\1 к кодам слов? Точнее как определить слова к кодам которых на данном этапе необходимо дописать очередной бит.Создать массив в котором будут храниться
номера слов связанных с каждым узлом графа? Это создает немеряно проблем...
И действительно меня интересует не столько код (разбираться в чужих исходниках -- мутное дело) а, скажем, подробный алгоритм, опускающий непринципиальные детали...
http://www.compression.ru/download/huff.html
вот тут поищи.
Дерево... Как красиво дописывать 0\1 к кодам слов? Точнее как определить слова к кодам которых на данном этапе необходимо дописать очередной бит.Создать массив в котором будут храниться
номера слов связанных с каждым узлом графа? Это создает немеряно проблем...
И действительно меня интересует не столько код (разбираться в чужих исходниках -- мутное дело) а, скажем, подробный алгоритм, опускающий непринципиальные детали...
О, я где-то давно встречал такую реализацию, но навряд щас найду. Вообще я Динамическре Сжатие Маркова писал в свое время. Ужастно медлено работало :)
Данке шон...