реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Сжатие на ATMega, Хаффман с фиксированой таблицей CCITT Group 3
SasaVitebsk
сообщение Sep 8 2006, 23:16
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(crunch @ Sep 8 2006, 12:11) *
Я вот тоже думаю что спор и емоции ни о чем.
По поводу словаря: Суть CCIT Group 3 сжатия такова:

На основе метода Хаффмана для конкретного вида изображений(отсканированые документы с печатным текстом и глубиной цвета 1 бит) на основе обработки огромного количества таких изображений был сформирован словарь(таблица), которая есть в стандарте.
Каждая строка кодируется отдельно для начала она преобразовывается в длины серий(RLE), а после этого длины серий сжимаються по готовой таблице(словарю) методом замены.
допустим последовательность из 8 белых бит встречается чаще всего и ей отвечает - 10 и т.д. коды готовы для значений от 0 до 63 и далее кратно 64 до 2363 бит.
Действительно применимо к данному типу документов сжатие вероятно будет наилутшим.
НО вопрос был в том не делал ли кто-то подобных вещей и КАКИЕ идеи по организации данного алгоритма, конкретно по побитной записи в память значений с переменной длиной(2-13 бит)


Алгоритм (тот что я делал) могу привести. Я полностью согласен с Вами. Повторяю на глаз словарь не составишь и придётся передавать большое колличество инфы. Определённой инфы. Действительно если она однотипна, то после формирования словаря будет сжимать хорошо именно эти данные. В инете предустановленный словарь не нашёл. Написано что надо купить лицензию на метод.

Помню когда реализовывал проблем с хранением разнобитных данных не было. Поясню почему. Там всё байтами делается (тот что я реализовывал). Пример:
Идёт 50 нулей.
Слово 1 - 8 нулей
Слово 2 - Слово 1 + 8 нулей (16)
Слово 3 - Слово 2 + 8 нулей (24)
... 32
... 40
... 48
Слово 7 - Слово 6 + 2нуля и там 1хххх

Я конечно утрировано, но принцип такой. (В двух словах не объяснишь)

При реализации возникают другие проблемы.
И сжатие и расжимание связано с поиском в словаре и "обратном раскручивании спирали" (в приведённом примере при расжимании извлекаешь Слово7,6...1) В примере я подряд пустил, а на самом деле структура древовидная (50 нулей и 5 единиц, 50нулей и 10100 ... и т.д). Короче возникают проблемы поиска в словаре. Иногда применяют хотябы первое вычисление по ключу. Тогда словарь близкий к симметричному. Но в этом случае он не полностью заполнен. Короче проблемы связаны с формированием и поиском. А сам алгоритм достаточно прост. Реализовать - день работы.

Я долго экспериментировал со словарём. Добился сжатия в два раза на голом словаре. Естественно с предустановленном или на графике получается до 4-5. Смотря какие данные. Короче совсем немного до ARJ не дотягивает. smile.gif Но уже на этапе экспериментов понял что на меге не потяну. Мне надо было на лету (115200). Ну и забросил это дело.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 9 2006, 10:57
Сообщение #17


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(SasaVitebsk @ Sep 9 2006, 03:16) *
В инете предустановленный словарь не нашёл. Написано что надо купить лицензию на метод.


NetPBM

Посмотрите файлы g3.h и pmbtog3.c , может быть поможет.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th August 2025 - 22:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01738 секунд с 7
ELECTRONIX ©2004-2016