Каково текущее состояние алгоритмов сжатия только текста?
В честь Hutter Prize, каковы основные алгоритмы (и краткое 9X_text-compression описание каждого) для сжатия текста?
Примечание. Задача 9X_compression этого вопроса - получить описание алгоритмов 9X_lossless-compression сжатия, а не программ сжатия.
- Однажды я видел (фиктивную) статью, в которой предлагалось сжатие текста с потерями и с отличной производительностью ...
Ответ #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 для каждой записи.
- Сжатие Pied Piper не было обнаружено при создании этого списка!< ...
Ответ #2
Ответ на вопрос: Каково текущее состояние алгоритмов сжатия только текста?
Всегда есть lzip.
Без шуток:
- Там, где проблема совместимости, PKZIP (алгоритм
DEFLATE
) по-прежнему выигрывает. - bzip2 - лучший компромисс между относительно широкой базой установки и довольно хорошей степенью сжатия, но требует отдельного архиватора.
- 7-Zip (алгоритм
LZMA
) сжимается очень хорошо и доступен в рамках LGPL. Однако некоторые операционные системы поставляются со встроенной поддержкой. - rzip - вариант bzip2, который, на мой взгляд, заслуживает большего внимания. Это может быть особенно интересно для больших файлов журналов, нуждающихся в долгосрочном архивировании. Также требуется отдельный архиватор.
9X_compress
- @ 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 млн)
-
6
-
2
-
3
-
8
-
7
-
3
-
1
-
4
-
13
-
4
-
11
-
6
-
9
-
7
-
7
-
14
-
6
-
9
-
2
-
11
-
7
-
5
-
11
-
5
-
6
-
6
-
9
-
3
-
8
-
8
-
3
-
8
-
17
-
8
-
5
-
9
-
5
-
2
-
5
-
2
-
4
-
7
-
12
-
5
-
5
-
6
-
2
-
2
-
7
-
15