Повторное сопряжение
-
Основы повторного сопряжения
- Повторное сопряжение — это алгоритм сжатия, который строит контекстно-свободную грамматику из текста.
- Алгоритм потребляет память, в пять раз превышающую размер входных данных, для сжатия за линейное время.
- Грамматика строится путем замены наиболее часто встречающихся пар символов.
-
История и реализация
- Алгоритм был представлен в 1999 году NJ. Ларссоном и А. Моффатом.
- Эксперименты показали высокую степень сжатия и хорошую производительность декомпрессии.
- Основным недостатком является потребление памяти, что делает алгоритм непрактичным для больших файлов.
-
Процесс сжатия
- На первой итерации пара символов заменяется новым символом.
- На последующих итерациях заменяются другие пары, пока не останется строка без повторяющихся пар.
-
Структуры данных
- Используются последовательность, позиция, приоритетная очередь и хэш-таблица для эффективного сжатия.
- ПАРА — это структура данных, которая объединяет хэш-таблицу и приоритетную очередь.
-
Кодирование грамматики
- Грамматика кодируется неявно, где правила кодируются по мере их изучения.
- Другой метод кодирования — разделение правил на поколения для последовательного кодирования.
-
Версии и рекомендации
- Существуют различные реализации повторного сопряжения, направленные на улучшение определенных аспектов алгоритма.
- Статья также упоминает другие алгоритмы сжатия и рекомендации по сжатию пар байтов.
Полный текст статьи: