Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Всегда lzip.

Все шутки в сторону:

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