Изменения

Перейти к: навигация, поиск

Алгоритм LZSS

153 байта добавлено, 23:01, 2 ноября 2014
Нет описания правки
== Оптимизации==
LZSS помимо окна с содержимым сообщения поддерживает двоичное дерево для ускорения поиска совпадения. Каждая подстрока, покидающая буфер, добавляется в дерево поиска, а подстрока, покидающая словарьбуфер поиска, удаляется из дерева. Такая организация модели данных позволяет добиться существенного увеличения скорости поиска совпадения, которая, в отличие от [[Алгоритмы LZ77 и LZ78|алгоритма LZ77]], становится пропорциональна не произведению размеров окна и подстроки, а его двоичному логарифму. Это позволяет экспериментировать с большими окнами, не теряя скорости сжатия.
Кодер LZSS использует однобитовый префиксПроблема отсутствия совпадений в словаре решается путем введения дополнительного служебного бита, для того чтобы отличать незакодированные символы от пар <смещениезначение которого определяет, длина>. Такие коды позволяют получить существенный выигрыш является ли следующая за ним кодовая комбинация кодовой парой или она представляет собой незакодированный символ в размере сжатого сообщенияего исходном представлении.
== Модель данных ==
Как и в [[Алгоритмы LZ77 и LZ78|алгоритме LZ77]], в этом алгоритме используется обычный символьный буфер для хранения содержимого окна. В целях повышения эффективности «скольжения» окна по содержимому сообщения доступ к нему организован как к кольцевому, и размер окна кратен степени двойки.
142
правки

Навигация