Изменения

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

Алгоритм LZSS

647 байт добавлено, 20:05, 3 ноября 2014
Модель данных
Проблема отсутствия совпадений в словаре решается путем введения дополнительного служебного бита, значение которого определяет, является ли следующая за ним кодовая комбинация кодовой парой или она представляет собой незакодированный символ в его исходном представлении.
== Модель данных ==
Как и в [[Алгоритмы LZ77 и LZ78|алгоритме LZ77]], в этом алгоритме используется обычный символьный буфер для хранения содержимого окна. В целях повышения эффективности «скольжения» окна по содержимому сообщения доступ используется циклический буфер, размер которогоидентичен размеру скользящего окна. Скольжение окна в таком буфере сводится к нему организован как к кольцевому, циклическому перемещению границы между его задней и размер передней частями (текущей обрабатываемой позиции) в пределах буфера. При этом добавление новой порции информации в переднюю частьокна автоматически означает удаление идентичной по длине порции из его задней части. Размер окна кратен степени двойки. 
Дерево поиска представляет собой двоичное лексикографически упорядоченное дерево. Каждый узел в дереве соответствует одной подстроке словаря и содержит ссылки на родителя и двух потомков: «большего» и «меньшего» в смысле лексикографического сравнения символьных строк.
 
== Кодер LZSS ==
===Инициализация===
142
правки

Навигация