Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.148.124] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Подскажите, плиз, кто шарит в сжатии, наиболее простой, но в то же время, достаточно эффективный, алгоритм сжатия и распаковки (простым должен быть именно алгоритм распаковки), не требующий дополнительной памяти (в крайнем случае, требующего очень-очень небольшого кол-ва памяти) для распаковки. Интересует название, ну и по возможности описание алгоритма... p.s. Для универсальных данных: более или менее однородных массивов чисел, изображений, шаблонов (типа музыкальных XM-модулей), текста, кода и т.д. |
Сообщ.
#2
,
|
|
|
LZW. Придуман спецом для GIF, но какая разница. Очень прост и быстр, проще, пожалуй, лишь RLE. Эффективность компрессии, по сравнению с классическим LZ, невелика, однако.
|
Сообщ.
#3
,
|
|
|
Цитата ... Размер кода распаковки LZMA составляет порядка 5 Кб; расход динамической памяти зависит от размера словарей. Эти возможности позволяют реализовать распаковку на встраиваемых системах. ... LZMA Specification (Draft) LZMA SDK C, C++, C#, Java x86/x64 binaries for Windows |
Сообщ.
#4
,
|
|
|
Qraizer, спасибо, гляну.
JoeUser, 5 Кб - это очень много. Надо байт на 100, ну может 200. Например, типа того, что юзает UPX для .com-файлов Добавлено UPX сжимает 1Кб .com (состоящий из нулей) до 134 байт (вместе с распаковщиком), 10 Кб - до 138 байт. |
Сообщ.
#5
,
|
|
|
Цитата наиболее простой, но в то же время, достаточно эффективный, алгоритм сжатия и распаковки Цитата Для универсальных данных: более или менее однородных массивов чисел, изображений, шаблонов (типа музыкальных XM-модулей), текста, кода и т.д. Цитата 5 Кб - это очень много. Надо байт на 100, ну может 200 Гм, эффективный универсальный алгоритм сжатия, не требующий дополнительной памяти и с распаковщиком на 200 байт максимум? Посмотри здесь, может, найдешь что-нибудь полезное >:) В принципе, можно сочинить алгоритм на тему LZ*, для килобайтов нулей добавить RLE, но жать в общем случае он будет хреновенько. Надо бы уменьшить требования и сузить область применения. |
Сообщ.
#6
,
|
|
|
LZO не требует доп. памяти при распаковке, насчет размера кода распаковщика не знаю...
|
Сообщ.
#7
,
|
|
|
LZ4 тут ещё советуют, надо глянуть: https://github.com/lz4/lz4/wiki/LZ4-Versions
Ну и LZO тоже: http://www.infradead.org/~mchehab/kernel_d...sorted/lzo.html NRV, который UPX используют ещё поискать можно... |