Каково текущее состояние алгоритмов сжатия только текста?

StackOverflow https://stackoverflow.com/questions/236456

Вопрос

В честь Премия Хаттера, каковы лучшие алгоритмы (и краткое описание каждого) для сжатия текста?

Примечание:Цель этого вопроса — получить описание алгоритмов сжатия, а не программ сжатия.

Это было полезно?

Решение

Компрессоры, расширяющие границы, объединяют алгоритмы для достижения безумных результатов.Общие алгоритмы включают в себя:

  • В Преобразование Берроуза-Уиллера и здесь - перемешивать символы (или другие битовые блоки) с помощью предсказуемого алгоритма для увеличения повторяющихся блоков, что упрощает сжатие источника.Распаковка происходит как обычно, и результат не перемешивается с помощью обратного преобразования.Примечание:BWT сам по себе ничего не сжимает.Это просто упрощает сжатие источника.
  • Прогнозирование по частичному совпадению (PPM) - эволюция арифметическое кодирование где модель прогнозирования (контекст) создается путем обработки статистики об источнике, а не использования статических вероятностей.Несмотря на то, что его корни лежат в арифметическом кодировании, результат может быть представлен с помощью кодирования Хаффмана или словаря, а также арифметического кодирования.
  • Смешение контекстов. Арифметическое кодирование использует статический контекст для прогнозирования, PPM динамически выбирает один контекст, смешивание контекстов использует множество контекстов и взвешивает их результаты.PAQ использует смешивание контекстов. Вот обзор высокого уровня.
  • Динамическое марковское сжатие - связано с PPM, но использует контексты битового уровня, а не байтовые или более длинные.
  • Кроме того, участники премии Хаттера могут заменять общий текст мелкобайтовыми записями из внешних словарей и различать текст в верхнем и нижнем регистре специальным символом вместо использования двух отдельных записей.Вот почему они так хороши при сжатии текста (особенно текста ASCII) и не столь полезны для общего сжатия.

Максимальное сжатие Это довольно крутой сайт для тестирования текста и общего сжатия.Мэтт Махони публикует еще один эталон.Особый интерес может представлять Махони, поскольку в нем указан основной алгоритм, используемый для каждой записи.

Другие советы

всегда есть lzip.

Кроме шуток:

  • Если совместимость вызывает беспокойство, PKZIP (DEFLATE алгоритм) по-прежнему побеждает.
  • bzip2 — лучший компромисс между относительно широкой базой установки и довольно хорошей степенью сжатия, но требует отдельного архиватора.
  • 7-Zip (LZMA алгоритм) очень хорошо сжимается и доступен по лицензии LGPL.Однако немногие операционные системы поставляются со встроенной поддержкой.
  • Rzip это вариант bzip2, который, на мой взгляд, заслуживает большего внимания.Это может быть особенно интересно для огромных файлов журналов, требующих длительного архивирования.Также требуется отдельный архиватор.

Если вы хотите использовать PAQ в качестве программы, вы можете установить пакет zpaq в системах на основе debian. Использование (см. Также man zpaq )

zpaq c archivename.zpaq file1 file2 file3

Сжатие составило 1/10 размера файла zip . (1,9 млн против 15 млн)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top