Составители:
28
11
()
i i i i
G low L L P
,
11
()
i i i i
G high L H P
,
где
i
H
верхняя граница
i
символа на шкале [0, 1),
i
L
нижняя граница
i
символа на шкале
[0,1),
i
P
вероятность
i
символа . С каждым новым следующим символом переменные
()G low
и
()G high
, пересчитываются .
В качестве примера рассмотрим кодирование блока данных, в который входят информа-
ционные символы
,wu
и
v
с вероятностями
0,2, 0,35, 0,2
w u v
P P P
. Эти символы пере-
даются в виде последовательности:
wuvw
. В этот же блок входят служебные символы:
,,x y z
,
которые не кодируются. В соответствии с приведенным формулами рассчитывается верхняя и
нижняя границы интервалов кодируемых символов на отрезке [0, 1), которые приведены на
рис.23 . Результатом кодирования является интервал от 0,5822 до 0,5850, в котором произволь-
но можно выбрать любое число. Примем среднее значение интервала 0,5836, ему соответствует
двоичное значение 1011011001100. Среднюю длину кода можно найти, разделив размер вы-
хода (в битах) на размер входа (в символах). Отметим, что вероятности, которые использо-
вались в процессе кодирования, могут меняться от блока к блоку, это используется в адап-
тивной стратегии арифметического кодирования.
Декодирование осуществляется также достаточно просто в соответствии с алгоритмом оп-
ределяемом равенством
11
1
()
ii
i
i
N G low
N
P
Пусть кодовое значение сжатого блока равно 0,58 (в десятичной форме.). На интервале
[0, 1) это кодовое значение попадает в подынтервал [ 0.3, 0.8 ), который соответствует сим-
вол
w
, значит он является первым в кодовой последовательности. По этой формуле рассчиты-
ваем, что следующий символ является числом 0,44, которое также попадает в подынтервал
[ 0.3, 0.8 ), и, следовательно, вторым символом будет также
w
. Таким образом декодирование
происходит до тех пор, пока не будут определены все символы блока. Декодирование кончает-
Рис.23. Алгоритм арифметического кодирования
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »