Страницы

Поиск по вопросам

среда, 3 октября 2018 г.

Лучшие алгоритмы сжатия текста

С каждым годом алгоритмы сжатия совершенствуются, появляется что-то новое, или модификация существующих.
Вопрос:
Какие из ныне существующих, на 2016 год, алгоритмов сжатия текстовой информации дают лучший результат (естественно, без потерь)?
Дополнительно:
текст будет представлять себя наборы символов латиницы, кириллицы, знаков препинания - из ASCII (cp866 или win-1251), возможно еще псевдографика будет те же наборы символов, но представленные в кодировке ru_RU.UTF-8
Пока на слуху, но это уже относительно давно, алгоритм PPMd, PPMz. Есть что-то более совершенное?


Ответ

Лучший ответ на этот вопрос - спросите на форуме encode.ru. Я лично не слежу за этим совсем уж пристально, поэтому навскидку: paq8px, emma, cmix (у каждого есть своя ветка на форуме). Кроме этого, препроцессинг - словарная замена (xml-wrt), трюки Grabowski. Имейте в виду, что тексты должны быть достаточно велики (ну хотя бы сотни килобайт) и скорость сжатия/распаковки может быть в районе нескольких кб/с, а многопоточность невозможна без ухудшения сжатия.
Собственно приведённая вами же ссылка http://mattmahoney.net/dc/text.html даёт достаточно исчерпывающий ответ на ваш вопрос. Все алгоритмы такого уровня получают ветки на форуме encode.ru и тестируются Маттом на тексте английской википедии.
Да, язык/кодировка (при условии что она 8-битная) имеют значение только для словарных препроцессоров - они обычно работают только с латиницей. Остальные алгоритмы хорошо работают с любыми языками.
Если же вам на самом деле нужно не максимальное сжатие, а оптимальное сочетание скорости и степени сжатия, то для текстов я предпочитаю bsc, тем более что это единственная библиотека сжатия общего назначения, способная использовать GPU.

Комментариев нет:

Отправить комментарий