Ответ 1
Похоже, LZO был разработан в соответствии с вашими требованиями:
- Декомпрессия проста и очень быстра.
- Требуется память для декомпрессии.
- Сжатие выполняется довольно быстро.
Какой самый простой, но эффективный алгоритм сжатия?
Deflate, lzma и т.д. являются недопустимыми. Мне нужно что-то, что компилируется очень мало, например: RLE, LZX, Huffman и т.д.
Примечание. Данные составляют 95% текста ASCII
Изменить: данные на данный момент составляют ~ 20kb, но я ожидаю, что он вырастет до 1mb
Edit2:
Другие интересные варианты
smaz https://github.com/antirez/smaz
FastLZ http://fastlz.org/
Похоже, LZO был разработан в соответствии с вашими требованиями:
- Декомпрессия проста и очень быстра.
- Требуется память для декомпрессии.
- Сжатие выполняется довольно быстро.
вы можете попробовать http://scz-compress.sourceforge.net/
Что-то вроде BWT-based, вероятно, было бы хорошо для этого случая.
http://en.wikipedia.org/wiki/Burrows%E2%80%93Wheeler_transform
Он сжимает текст намного лучше, чем LZ, и его легко реализовать с нуля,
и есть хорошие библиотеки.
http://libbsc.com
http://encode.ru/threads/104-libBWT?p=22903&viewfull=1#post22903
http://code.google.com/p/libdivsufsort/
Или, альтернативно, там ppmd, который используется для сжатия текста в
rar/winzip/7-zip и т.д., но его сложнее.
http://www.compression.ru/ds/ppmdj1.rar
http://www.compression.ru/ds/ppmsj.rar (использование быстрой/небольшой памяти)
http://www.ctxmodel.net/files/PPMd/ppmd_Jr1_sh8.rar (альтернативный порт)
Большинство схем словаря будут хорошо. Любой из ЛЗ. Мы используем переменную LZ77 для встроенных систем для многих наших простых приложений сжатия, и она прекрасно работает, практически без накладных расходов на память. Какая система сжимает и что декомпрессирует? Это определит тип компрессора, с которым вы можете избавиться.