Простое / эффективное сжатие текста - PullRequest
15 голосов
/ 09 июня 2010

Какой самый простой, но эффективный алгоритм сжатия?

Deflate, lzma и т. Д. Не являются допустимыми параметрами.Мне нужно что-то очень маленькое, например: RLE, LZX, Хаффман и т. Д.это увеличится до 1 МБ

Edit2:
Другие интересные варианты
smaz https://github.com/antirez/smaz
FastLZ http://fastlz.org/

Ответы [ 5 ]

6 голосов
/ 09 июня 2010

Похоже, что LZO был разработан для удовлетворения ваших требований:

  • Декомпрессия проста и очень быстрая
  • Не требует памяти для распаковки.
  • Сжатие довольно быстрое.
2 голосов
/ 17 февраля 2011

Что-то на основе BWT, вероятно, будет хорошо для этого случая. 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 (альтернативный порт)

2 голосов
/ 09 июня 2010

Этот тест имеет много сравнений. Проверьте это, поскольку он показывает вам также алгоритмы, используемые в процессе сжатия.

2 голосов
/ 09 июня 2010

вы можете попробовать http://scz -compress.sourceforge.net /

1 голос
/ 09 июня 2010

Большинство схем словаря подойдут. Любой из ЛЗ. Мы используем разновидность LZ77 во встроенных системах для многих наших простых операций сжатия, и она прекрасно работает практически без перегрузки памяти. Какая система сжимает, а какая распаковывает? Это определит тип компрессора, с которым вы можете сойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...