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

В честь Hutter Prize, каковы основные алгоритмы (и краткое 9X_text-compression описание каждого) для сжатия текста?

Примечание. Задача 9X_compression этого вопроса - получить описание алгоритмов 9X_lossless-compression сжатия, а не программ сжатия.

31
1

  • Однажды я видел (фиктивную) статью, в которой предлагалось сжатие текста с потерями и с отличной производительностью ...
3
Общее количество ответов: 3

Ответ #1

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

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

  • Burrows-Wheeler Transform и here - перемешивают символы (или другие битовые блоки) с предсказуемым алгоритмом для увеличения повторяющихся блоков, что упрощает сжатие исходного кода. Декомпрессия происходит как обычно, а результат не перемешивается с помощью обратного преобразования. Примечание. Сам по себе BWT ничего не сжимает. Это просто упрощает сжатие исходного кода.
  • Prediction by Partial Matching (PPM) - эволюция arithmetic coding, где модель прогнозирования (контекст) создается путем обработки статистики об источнике по сравнению с использованием статических вероятностей. Несмотря на то, что его корни лежат в арифметическом кодировании, результат может быть представлен с помощью кодирования Хаффмана или словаря, а также арифметического кодирования.
  • Смешение контекста - арифметическое кодирование использует статический контекст для прогнозирования, PPM динамически выбирает один контекст, смешение контекста использует множество контекстов и взвешивает их результаты. PAQ использует смешение контекста. Here's общий обзор.
  • Dynamic Markov Compression - относится к PPM, но использует контексты битового уровня вместо байтов или длиннее.
  • Кроме того, участники приза Hutter могут заменить общий текст мелкими записями из внешних словарей и различать текст в верхнем и нижнем регистре с помощью специального символа вместо использования двух отдельных записей. Вот почему они так хороши при сжатии текста (особенно текста ASCII) и не так ценны для общего сжатия.

Maximum Compression - это довольно интересный 9X_decompression сайт с тестами на текст и общее сжатие. Мэтт 9X_compressed Махони публикует еще один benchmark. "Махони" может 9X_compressed представлять особый интерес, поскольку в 9X_compress нем перечислены основные алгоритмы, используемые 9X_data-compression для каждой записи.

30
1

  • Сжатие Pied Piper не было обнаружено при создании этого списка!< ...

Ответ #2

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

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

Без шуток:

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

9X_compress

8
2

  • @ BrianR.Bondy: вы правы, zpaq сжал на порядок меньше, чем ...

Ответ #3

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

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

zpaq c archivename.zpaq file1 file2 file3

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

2
0