Страница 1 из 1
Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Пн май 03, 2010 12:32:20
FUZZY_
Расшифровка ошибок - русские строки занимают 17кБ
#include Ttype.h
ERROR errors[]={0,"255 символов",
1,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
..............
10099,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
как выбрать алгоритм оптимального сжатия - декомпресси вернее сжатую информацию запишем в контроллер- нужно из архива выбрать строку отвечающую за ошибку и разархивировать ее.
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Пн май 03, 2010 13:56:24
Murav
Наиболее простой способ - все повторяющиеся группы символов(это скорее всего будут не слова а более большие куски) в разных строках вынести в отдельный словать, а на их место записать адрес в этом словаре. Чтобы отличать символы от адреса перед адресом поставить символ из диапазона \x01 - \x19.
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Пн май 03, 2010 15:00:36
pyzhman
Штудируйте метод Хафмана, параллельно выйдите и на другие. Будет с чем сравнить и, соответственно, выбрать.
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Вт май 04, 2010 14:38:06
Maxxon
Код Шэннона-Фэно, например. Почитайте вот эту методичку, возможно, пригодится.
http://window.edu.ru/window_catalog/fil ... 4/1302.pdf
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Вт май 04, 2010 18:56:01
FUZZY_
метод Хафмана - работа с бинарным деревом - в моем случае сжатие 8 кБ + 2кБ кода = 10 кб (было 17кб ) как и писали - хорошее сжатие на больших кусках.
Где-то бы найти сранительную характеристику - размер кода распаковщика + сжатие
ибо к этому все и придет
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Вт май 04, 2010 19:21:51
Maxxon
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Вт май 04, 2010 19:52:59
ARV
FUZZY_ писал(а):метод Хафмана - работа с бинарным деревом - в моем случае сжатие 8 кБ + 2кБ кода = 10 кб (было 17кб ) как и писали - хорошее сжатие на больших кусках.
а требования к ОЗУ?
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Ср май 05, 2010 16:57:40
Neekeetos
FUZZY_ писал(а):метод Хафмана - работа с бинарным деревом - в моем случае сжатие 8 кБ + 2кБ кода = 10 кб (было 17кб ) как и писали - хорошее сжатие на больших кусках.
Я думаю по (размеру кода+качество упаковки) самым оптимальным будет арифметический кодер. У него что упаковка что распаковка распадается на простые сравнения.
http://en.wikipedia.org/wiki/Arithmetic_coding , в тырнете полно примеров таких упаковщиков размером в пару строк кода, а сжатие лучше хафмана. Вот пример
http://www.arturocampos.com/ac_arithmetic.html
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Ср май 05, 2010 18:15:34
simpleX
хммм... а як камень ваш работаеть? Автономно или общается с компом?
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Ср май 05, 2010 23:52:00
FUZZY_
Все это жрет сравнительно много ОЗУ все идет к увеличению мускул по ОЗУ и производительности проца - опять проблема оставить как есть и добавить память программ или увеличить обем ОЗУ
где же компромис
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Чт май 06, 2010 08:28:07
ARV
имхо, компромисс в
24C16 или чем-то аналогичном. все строки туда, остальное - понятно без слов

при разумной организации возможна элементарная "локализация" девайса к другому языку путем перетыкания микросхемы в панельке.
Re: Сжатие(архивация) строк - оптимальный алгоритм?
Добавлено: Сб май 08, 2010 23:02:45
FUZZY_
В банкоматах архивация/разархивация данных с помощю PLL 36 ножек . А также чего-то там шифрование и какие-то -корялиционные хеш таблицы криптографии . А вообще схему подключения тут выкладывать можно , санкций не будет ?