LCME Пятница, 28.07.2017, 16:02
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: anatoliy 
Форум » Домашние задания » Программирование » Домашнее задание от 03.03 (Арифметический кодер)
Домашнее задание от 03.03
freidomДата: Среда, 16.03.2011, 23:42 | Сообщение # 1
Главный тут
Группа: Администраторы
Сообщений: 273
Репутация: 20
Статус: Offline
На тексте Salinger's "The Catcher in the Rye" арифметический кодер показал результат в 212 149 байт, Хаффман - 213 509 байт. С учётом прилагаемого дерева у Хаффмана и таблицы частотности у кодера. Внимание, вопрос: а стоил ли этот геморрой полутора килобайт?

Правда, у кодера, в отличие от Хаффмана, есть простор для оптимизации - у меня таблица частотности выглядит как массив (символ Word8, граница в диапазоне Word32). Можно, например, сократить диапазон частотности до [0, 2^16) вместо [0, 2^31) - это позволит сэкономить до 512 байт. Но, согласитесь, звучит как-то мелко...

Здесь есть подробно прокомментированный код на Си. А здесь на пальцах описываются основные методы сжатия.

Устал уже делать комментарии насчёт е***утости неправильного подхода к синтаксису у разработчиков. Два дня у меня эта программа висла из-за по умолчанию рекурсивных определений.

Прикрепления: arithmetic.hs(7Kb)
 
Форум » Домашние задания » Программирование » Домашнее задание от 03.03 (Арифметический кодер)
Страница 1 из 11
Поиск:

Copyright Freidom © 2017 Хостинг от uCoz