Страница 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
http://www.compression.ru/ (http://compression.ru/arctest/descript/dyn-comp.htm)
Конкретно такой таблицы я к сожалению не видел.

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 ножек . А также чего-то там шифрование и какие-то -корялиционные хеш таблицы криптографии . А вообще схему подключения тут выкладывать можно , санкций не будет ?