|
Сжатие на ATMega, Хаффман с фиксированой таблицей CCITT Group 3 |
|
|
|
Sep 4 2006, 10:32
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 4-09-06
Пользователь №: 20 058

|
Кто-то делал, и какие соображения по этому поводу...главный вопрос побыстрее и функция записи во внешнюю SPI память значений не выыровненых по границе байта длиной от 2 до 13 бит
|
|
|
|
|
 |
Ответов
|
Sep 4 2006, 22:25
|
Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 26-01-06
Пользователь №: 13 668

|
Цитата(SasaVitebsk @ Sep 4 2006, 21:15)  Необходимо около 8К озу только на это. Думаю и так всё на пределе. Распаковку сделать - ещё успеешь, а со сжатием ??? А зачем для Хафмана с фиксированой таблицей 8К ОЗУ? Там вроде сдвиговый регистр на 8+13байт нужен, и все. Несколько десятков тактов на бит должно получиться без ухищрений.
|
|
|
|
|
Sep 5 2006, 11:10
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(sz36 @ Sep 5 2006, 01:25)  Цитата(SasaVitebsk @ Sep 4 2006, 21:15)  Необходимо около 8К озу только на это. Думаю и так всё на пределе. Распаковку сделать - ещё успеешь, а со сжатием ???
А зачем для Хафмана с фиксированой таблицей 8К ОЗУ? Там вроде сдвиговый регистр на 8+13байт нужен, и все. Несколько десятков тактов на бит должно получиться без ухищрений. Не буду утверждать, но по-моему, фиксированная таблица - это только начало. А потом она точно также пополняется-модифицируется. Насколько я понимаю, это сделано чтобы изначально не формировать таблицу и этим сэкономить на первоначальном этапе. Можно конечно и с полностью не модифицируемой таблицой, но это если данные передаются практически одни и теже. Сначала формируется таблица, потом устанавливается на оба конца и только потом работает. Для произвольных данных такой метод не даст желаемого коэффициента сжатия. Если таблица будет модифицируема, то средний коэффициен сжатия - 2. Я проверял на файлах.
|
|
|
|
|
Sep 5 2006, 12:29
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 4-09-06
Пользователь №: 20 058

|
Цитата(SasaVitebsk @ Sep 5 2006, 14:10)  Цитата(sz36 @ Sep 5 2006, 01:25)  Цитата(SasaVitebsk @ Sep 4 2006, 21:15)  Необходимо около 8К озу только на это. Думаю и так всё на пределе. Распаковку сделать - ещё успеешь, а со сжатием ???
Да не тут ОЗУ нуно порядка двух длин строки если стараться быстро а если не спешить то и вообще проблемма не рассматривается А зачем для Хафмана с фиксированой таблицей 8К ОЗУ? Там вроде сдвиговый регистр на 8+13байт нужен, и все. Несколько десятков тактов на бит должно получиться без ухищрений. Так порядка 40-50 получается...а хотеться меньше вот и думаю Не буду утверждать, но по-моему, фиксированная таблица - это только начало. А потом она точно также пополняется-модифицируется. Фиксированая таблица она и есть фиксированая не дополняется ее составили на основе експерументов с факсовыми изображениями и там каждой длине подряд идущих одинаковых бит отвечает код длиной от 2 до 13 бит  дело в том что сжиматься будут только черно-белые изображения текстовых документов
Сообщение отредактировал crunch - Sep 5 2006, 12:41
|
|
|
|
|
Sep 6 2006, 19:28
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(crunch @ Sep 5 2006, 15:29)  Фиксированая таблица она и есть фиксированая не дополняется ее составили на основе експерументов с факсовыми изображениями и там каждой длине подряд идущих одинаковых бит отвечает код длиной от 2 до 13 бит  дело в том что сжиматься будут только черно-белые изображения текстовых документов Просмотрел что я делал. Метод Хаффмана. Т.е. всё правильно. Правда для модема, а не для факса. Возможно в Вашем CCIT... есть отличия. Привожу выдержку из "Руководства ..." по модему USRobotics Courier. "Если модемы успешно уст. соедин., то они договариваются о сжатии (V.42bis). .... Они договариваются о размере словаря ... 9бит - 512, 10 - 1024, 11 - 2048 .... Сжатие V.42bis более эффективно, т.к. этот протокол динамически удаляет неиспользуемые более строки. Кроме этого, он работает лучше с файлами, которые заранее сжаты." В принципе я это макетировал. (Писал на Паскале) По-моему это у меня где-то есть. Это также есть в книге которую я отправлял на FTP. Да, кстати, сжатие обеспечивается не за счёт "там каждой длине подряд идущих одинаковых бит отвечает код длиной от 2 до 13 бит". Метод словарей немного интересней работает. И ещё: Все модемы идут с предустановленными словарями. Найти его мне не удалось. Без этого совместимости не будет. Начинать надо с одинаковыми словарями.
|
|
|
|
Сообщений в этой теме
crunch Сжатие на ATMega Sep 4 2006, 10:32    defunct Цитата(crunch @ Sep 5 2006, 15:29) Фиксир... Sep 5 2006, 14:51     crunch Хм.. А обязательно Хаффманом кодировать?
IMHO есл... Sep 6 2006, 06:51     singlskv Цитата(SasaVitebsk @ Sep 6 2006, 23:28) Д... Sep 6 2006, 20:09      SasaVitebsk Цитата(singlskv @ Sep 6 2006, 23:09) Цита... Sep 7 2006, 17:13       singlskv [quote name='SasaVitebsk' date='Sep 7 ... Sep 7 2006, 19:48       crunch Я вот тоже думаю что спор и емоции ни о чем.
По по... Sep 8 2006, 09:11        SasaVitebsk Цитата(crunch @ Sep 8 2006, 12:11) Я вот ... Sep 8 2006, 23:03        SasaVitebsk Цитата(crunch @ Sep 8 2006, 12:11) Я вот ... Sep 8 2006, 23:14        SasaVitebsk Цитата(crunch @ Sep 8 2006, 12:11) Я вот ... Sep 8 2006, 23:16         singlskv Цитата(SasaVitebsk @ Sep 9 2006, 03:16) В... Sep 9 2006, 10:57    sz36 Цитата(crunch @ Sep 5 2006, 16:29) Так по... Sep 8 2006, 13:26
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|