Сжатие(архивация) строк - оптимальный алгоритм?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Расшифровка ошибок - русские строки занимают 17кБ

#include Ttype.h
ERROR errors[]={0,"255 символов",
1,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
..............
10099,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};

как выбрать алгоритм оптимального сжатия - декомпресси вернее сжатую информацию запишем в контроллер- нужно из архива выбрать строку отвечающую за ошибку и разархивировать ее.
Реклама
Опытный кот
Сообщения: 877
Зарегистрирован: Чт фев 18, 2010 13:51:56

Сообщение Murav »

Наиболее простой способ - все повторяющиеся группы символов(это скорее всего будут не слова а более большие куски) в разных строках вынести в отдельный словать, а на их место записать адрес в этом словаре. Чтобы отличать символы от адреса перед адресом поставить символ из диапазона \x01 - \x19.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Штудируйте метод Хафмана, параллельно выйдите и на другие. Будет с чем сравнить и, соответственно, выбрать.
Docendo discimus
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

Сообщение Maxxon »

Код Шэннона-Фэно, например. Почитайте вот эту методичку, возможно, пригодится.

http://window.edu.ru/window_catalog/fil ... 4/1302.pdf
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

метод Хафмана - работа с бинарным деревом - в моем случае сжатие 8 кБ + 2кБ кода = 10 кб (было 17кб ) как и писали - хорошее сжатие на больших кусках.

Где-то бы найти сранительную характеристику - размер кода распаковщика + сжатие
ибо к этому все и придет
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

Сообщение Maxxon »

http://www.compression.ru/ (http://compression.ru/arctest/descript/dyn-comp.htm)
Конкретно такой таблицы я к сожалению не видел.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18862
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

FUZZY_ писал(а):метод Хафмана - работа с бинарным деревом - в моем случае сжатие 8 кБ + 2кБ кода = 10 кб (было 17кб ) как и писали - хорошее сжатие на больших кусках.
а требования к ОЗУ?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

FUZZY_ писал(а):метод Хафмана - работа с бинарным деревом - в моем случае сжатие 8 кБ + 2кБ кода = 10 кб (было 17кб ) как и писали - хорошее сжатие на больших кусках.
Я думаю по (размеру кода+качество упаковки) самым оптимальным будет арифметический кодер. У него что упаковка что распаковка распадается на простые сравнения. http://en.wikipedia.org/wiki/Arithmetic_coding , в тырнете полно примеров таких упаковщиков размером в пару строк кода, а сжатие лучше хафмана. Вот пример http://www.arturocampos.com/ac_arithmetic.html
Информация по RLC mini находится >тут<
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 39
Зарегистрирован: Сб май 30, 2009 00:51:42
Откуда: Россия, г. Курск

Сообщение simpleX »

хммм... а як камень ваш работаеть? Автономно или общается с компом?
"Никогда не опускайся чего б тебе ни стоило, как бы ни было плохо.
А если отступил и сдал немного, то, считай, душа продалась и сдохла!
Честь и кровь - сохрани свою совесть, свобода и любовь - вот она русская гордость"
Контактная информация:
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Все это жрет сравнительно много ОЗУ все идет к увеличению мускул по ОЗУ и производительности проца - опять проблема оставить как есть и добавить память программ или увеличить обем ОЗУ
где же компромис
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18862
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

имхо, компромисс в 24C16 или чем-то аналогичном. все строки туда, остальное - понятно без слов :))) при разумной организации возможна элементарная "локализация" девайса к другому языку путем перетыкания микросхемы в панельке.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

В банкоматах архивация/разархивация данных с помощю PLL 36 ножек . А также чего-то там шифрование и какие-то -корялиционные хеш таблицы криптографии . А вообще схему подключения тут выкладывать можно , санкций не будет ?
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»