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