6.3.
Кодирование
Лемпеля
Зива
явления
некоторой особенности текста. Последующие «1» и символ
указывают на то, что символ повторяется. Во втором флаге указы-
вается число повторений и последующий символ.
Затраты на кодирование определяются длиной окна, содержаще-
го словарь фраз ш
р
, длиной Look ahead буфера u>i и затратами на
двоичное представление указателя
Кг
— =
log
2
UJ
P
+
log
2
u
L
+ 8. (6.2)
бит
Кодирование
Лемпеля - Зива приводит к сжатию данных в т,ом
случае, если затраты на кодирование, т.е. длина указателя в двоич-
ном
исчислении в среднем оказывается меньше, чем при непосред-
ственном
кодировании, например, кодом ASCII, что
соответствует
8
битам на один символ.
В типичном
случае
LJ
V
= 2
12
=
4096
и u>i = 2
4
= 16 и затраты на
двоичное представление указателя составляют 24 бита. Для фразы,
состоящей
из
четырех
букв, которая уже содержится в словаре фраз,
экономия,
но сравнению с прямым кодированием кодом ASCII(32
бита),
составляет 25 %.
Для кодирования Лемпеля - Зива установлено, что:
• Часто появляющиеся цепочки символов кодируются очень эф-
фективно;
• Редко появляющиеся символы и последовательности символов
с
течением времени удаляются из словаря фраз;
• Повторяющиеся символы также кодируются эффективно;
• На кодирование нулевых фраз затрачивается относительно боль-
шое число бит;
• Методы теории информации позволяют доказать, что кодиро-
вание
методом Лемпеля - Зива асимптотически оптимально.
Это означает, что для очень длинного текста избыточность ис-
чезает, то есть среднее число бит, необходимое для кодирования
одного символа, стремится к энтропии текста;
• Практически достижимая степень сжатия для длинных тек-
стов составляет 50 60%.