Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Простенький архиватор.   Найти похожие ветки 

 
MegaVolt ©   (2004-04-05 12:52) [0]

Предложите простенький архиватор. Он нужен для сжатия файла и последующего его расжатия в микроконтроллере. Т.е. алгоритм по максимуму простой. Было бы хорошо если бы была реализация его на PC чтобы оценить результат :)

Заранее благодарен :)


 
MBo ©   (2004-04-05 13:04) [1]

Какого характера данные?


 
han_malign ©   (2004-04-05 13:13) [2]

Проще Хафмана еще ничего не придумали, если статистический характер данных известен, таблица может быть статической...
(Вроде не перепутал - Хеминг это контроль и коррекция с избыточностью, или наоборот?)
Реализация на PC - практически все архиваторы, за исключенем основанных на косинус преобразовании(mp3,jpeg)...


 
MegaVolt ©   (2004-04-05 13:15) [3]

Вот кусок: стандартные архиваторы жмут файл в 30-35 раз.

0003cb10h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE ; 0003cb20h: 6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0003cb30h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cb40h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cb50h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cb60h: F3 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cb70h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cb80h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cb90h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cba0h: FF 99 FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cbb0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cbc0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cbd0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cbe0h: FF F8 DF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cbf0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cc00h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cc10h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cc20h: FF FF E6 BF FA FF AF FA FF AF FA FF AF FA FF AF ;
0003cc30h: FA FF AF FE BF EB FE BF EB FE BF EB FE BF EB FE ;
0003cc40h: BF EB FF EB FE BF EB FE BF EB FE BF EB FE BF EB ;
0003cc50h: FE BF FA FF AF FA FF AF FA FF AF FA FF AF FA FF ;
0003cc60h: AF FF FD 37 FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cc70h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;
0003cc80h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;


 
MBo ©   (2004-04-05 13:20) [4]

Если весь файл будет такой, чистый хаффман раз в 5 сожмет, но с предварительным RLE или нуль-сериями(в данном случае FF-сериями) будет гораздо лучше.


 
MegaVolt ©   (2004-04-05 13:24) [5]

А где почитать алгоритм? И 5 раз как то маловато :( Я думал достаточно просто было бы раз в 15 :(


 
MBo ©   (2004-04-05 13:32) [6]

В интернете есть описание.
Хаффман основан на том, что часто встречающиеся символы заменяются короткой последовательностью битов (FF будет кодироваться одним нулевым битом, скорее всего) - т.е. максимум в 8 раз.
Однако длинные серии FF можно предварительно сжать Run-Length Encoding


 
MegaVolt ©   (2004-04-05 13:34) [7]

А в нормальных архиваторах заменяют нулём 4 байта? Т.е. FF FF FF FF заменяется но 0?


 
MBo ©   (2004-04-05 13:43) [8]

нет. LZ (ZIP)семейство вообще на других принципах основано (составление словаря повторяющихся строк разной длины), а хаффман/арифметическое кодирование работает обычно с байтами, чтобы дерево было неглубокое.

>заменяют нулём 4 байта
не нулем, а нулевым БИТОМ, который в дереве кодирования будет, скорее всего, соответствовать наиболее часто встречающемуся БАЙТУ.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
3-1080719173
russko
2004-03-31 11:46
2004.04.25
WordWrap в DBGridEh


6-1077195126
csr
2004-02-19 15:52
2004.04.25
Открытые порты! Трабл!!!


14-1080933735
Феликс
2004-04-02 23:22
2004.04.25
Траектория минометного снаряда?


3-1080648735
Алексей 2
2004-03-30 16:12
2004.04.25
TADoTable не сортирует по индексу


14-1080585174
Piter
2004-03-29 22:32
2004.04.25
А что с fido7.ru.delphi?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский