Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Элементы теории информации в защите информации. Учебное пособие для академического бакалавриата
.pdf
ГЛАВА 7.
l
Неравномерное кодирование
упорядоченных ансамблей
Опишем ряд важных в теоретическом и практическом отношении методов неравномерного побуквенного
кодирования: коды Шеннона-Фано, коды Хаффмена
и коды Шеннона. Эти методы объединяет свойство математических моделей источников сообщений, определяющее, что буквы ансамбля X={1,…,M} упорядочены по вероятностям p
p
≤…≤pM.
1
Ранее было определено, что кодирование тем эффективнее, чем меньше битов требуется для передачи сообщений. В связи с этим показано, оптимальным для всех
ансамблей является кодирование методом Хаффмена.
Для частного класса ансамблей метод Хаффмена представляется как метод Шеннона-Фано.
,…,pM, то есть сделано предположение, что
1
7.1. Коды Шеннона-Фано
Ранее показано (следствие теоремы 6.3), что однозначно декодируемый код источника X с энтропией H имеет
среднюю длину кодовых слов
=H ⇔ p(x)=2
сообщения x∈X. Опишем метод построения таких кодов,
получивших название кодов Шеннона-Фано.
Метод кодирования Шеннона-Фано.
1. Разбиваем множество X сообщений источника
на два равновероятных подмножества X
образом), имеющих суммарную вероятность сообщений
— 101 —
–l(x)
для любого
и X0 (любым
1

Глава 7. Неравномерное кодирование упорядоченных ансамблей
( )
1
xX
px
∈
∑
( )
0
∑
( )
11
∑
( )
10
∑
по 1/2. Если X=X1∪X0, то
Для всех сообщений подмножества X
=
положим первый
1
xX
∈
px
=1/2.
символ кодового слова равным 1, для всех сообщений
подмножества X
положим первый символ кодового слова
0
равным 0.
2. Каждое из подмножеств X
и X0, содержащих
1
более одного сообщения, продолжаем делить на два равновероятных подмножества, имеющих суммарную вероятность сообщений по 1/4. Например, если X
то
подмножества X
xX
∈
px
=
11
px
xX
∈
=1/4. Для всех сообщений
(они имеют 1-й символ кодового слова
=X
∪X
,
«1») положим 2-й символ кодового слова равным «1», для
всех сообщений подмножества X
(также имеющих 1-й
10
символ кодового слова «1») положим 2-й символ кодового
слова равным «0»и т.д.
3. Действия над подмножеством X
слово длины l, завершены, если подмножество X
, где a — двоичное
a
содер-
a
жит единственное сообщение. Этому сообщению присваивается кодовое слово a.
Пример 7.2. Закодируем методом Шеннона-Фано
ансамбль из 9 сообщений с вероятностями 1/4, 1/8, 1/16,
1/16, 1/16, 1/16, 1/8, 1/8, 1/8. В таблице 7.1 отражена
4-шаговая последовательность разбиений множества сообщений ансамбля в соответствии с описанным алгоритмом.
Кодовое дерево построенного кода дано на рисунке 7.1.
Рисунок 7.1. Дерево кода Шеннона-Фано
— 102 —

7.2. Свойства оптимальных побуквенных кодов
Таблица 7.1
Последовательность разбиений
множества сообщений в соответствии
с методом Шеннона-Фано
сооб-
щения
а1 0,25
а2 0,125
а3 0,0625
а4 0,0625 II 0111
а5 0,0625
а6 0,0625 II 1001
а7 0,125 II 101
а8 0,125
а9 0,125 II 111
вероят-
ности
1-й
шаг
I
II
2-й
шаг
II
I
II
3-й
шаг
I 00
II
I
4-й
шаг
I 010
I 0110
I 1000
I 110
кодо-
вые
слова
Коды Шеннона-Фано не нашли широкого применения в силу жестких условий на вероятности сообщений
ансамбля. Вместе с тем, они показывают реальную достижимость оптимального значения средней длины кодовых
слов.
7.2. Свойства оптимальных побуквенных кодов
Идея построения кодов с минимально возможной
средней длиной кодовых слов была развита Дэвидом Хаффменом в 1952 г. в процессе выполнения своего студенческого домашнего задания.
— 103 —

Глава 7. Неравномерное кодирование упорядоченных ансамблей
l
l′–l
1
max
i
iM
l
≤≤
Оптимальным кодом источника X называется код
с наименьшей из возможных средней длиной кодовых
слов. Иначе, если код оптимальный, то не существует
другого кода с меньшей средней длиной кодовых слов.
Из определения можно предположить, что оптимальный
код источника X может быть не единственным.
Пусть источник X порождает буквы 1,…,M с вероятностями p
же двоичный код С={c
ствующих кодовых слов {l
,…,pM соответственно, где p1≤…≤pM. Пусть так-
1
,…,cM} с множеством длин соответ-
1
,…,lM} является оптимальным
1
для ансамбля X.
Выполнены следующие свойства оптимального
кода С.
1. Если p
Докажем от противного. Пусть i<j и l
код С′ с тем же множеством длин кодовых слов {l
}={l1,…,lМ}, где сообщению i соответствует кодовое сло-
l
М
во длины l
длины l
j=li
ний такие же, как в коде С. Обозначим
, то li≥lj.
i<pj
, сообщению j соответствует кодовое слово
i=lj
. Возьмем
i<lj
,…,
1
, а длины кодовых слов для остальных сообще-
′ среднюю длину
слов кода С′. Тогда для разности средних длин слов кодов
С′ и С выполнено:
= pi(li–li)+pj(lj–lj) = pi(lj–li)+pj(li–lj) = (lj–li)(pi–pj) < 0,
то есть наименьшая длина кодовых слов достигается тогда, когда сообщение с меньшей вероятностью кодируется
словом не меньшей длины.
2. Не менее двух кодовых слов имеют одинаковую
длину l
=
M
, при этом имеются два слова длины lM,
различающиеся лишь последней буквой.
Если единственное слово w имеет максимальную
длину l
или слово w отличается от любого другого слова
M
той же длины не только последней буквой, то соответствующее кодовое дерево не является полным. Значит,
— 104 —

7.2. Свойства оптимальных побуквенных кодов
li
iM
,,
,.
12
l
1iiiM
≤≤
∑
12
ii
iM
≤≤ −
∑
12
ii
iM
∑
12
ii
iM
∑
11
ii
iM
∑
l′–l
l
слово w можно укоротить на 1 символ. Тогда уменьшится
и средняя длина кодовых слов, что противоречит предположению об оптимальности кода.
Для ансамбля X={1,…,M} и кода С со свойствами 1
и 2 построим ансамбль X′={1,…,M–1}, сообщениям которого сопоставим вероятности p
′=p1, …, p
p
1
M–2
′=p
M–2
′,…,p
1
, p
M–1
M–1
′=p
′, где
M–1+pM
,
и код С′, где
′=с1, …, с
с
1
и кодовое слово с
. Такое построение корректно в силу свойства 2, со-
и с
M
′ есть общая часть кодовых слов с
M–1
гласно которому кодовые слова с
M–2
′=с
,
M–2
и сM различаются
M–1
M–1
лишь последним символом.
3. Если код С′ оптимален для ансамбля X′, то С опти-
мален для ансамбля X.
По построению длины кодовых слов связаны соотно-
шениями:
M
i
=
l
i
lM
1
M
11
Тогда для средних длин l и l′ кодовых слов кодов
С и С′ соответственно выполнено:
=
pl
=
pl
+p
M-1lM-1+pMlM
=
=
=
Отсюда разность
код, минимизирующий
≤≤ −
≤≤ −
pl
pl
+(p
+p
=
M-1+pM
M-1′lM-1
≤≤ −
pl
)(l
′+p
+p
′+1) =
M-1
M-1+pM
M-1+pM
не зависит от кода, поэтому
′, также минимизирует l.
— 105 —
=
= l′+p
M-1+pM
.

Глава 7. Неравномерное кодирование упорядоченных ансамблей
7.3. Коды Хаффмена, их избыточность
Доказанные свойства позволяют задачу построения
оптимального префиксного кода объема M свести к задаче построения оптимального префиксного кода объема
M–1. Значит, получен рекуррентный закон построения
кодового дерева оптимального префиксного кода:
• в ансамбле объема M найти два сообщения с наи-
меньшими вероятностями;
• исключив эти два сообщения, ввести новое сообще-
ние, приписав ему вероятность, равную сумме вероятностей двух исключенных сообщений;
• новое сообщение соединить ребрами с двумя ис-
ключенными сообщениями;
• перейти к построению кодового дерева ансамбля
объема M–1.
В результате выполнения алгоритма построено кодовое дерево с наименьшей из возможных средней длиной
кодовых слов.
Рисунок 7.2. Кодовое дерево, построенное методом Хаффмена
Пример 7.1. Для ансамбля X={a, b, c, d, e, f} с соот-
ветствующими вероятностями букв {0,35; 0,2; 0,15; 0,12;
0,1; 0,08} построим кодовое дерево (рисунок 7.2):
— 106 —

7.3. Коды Хаффмена, их избыточность
l
l
l
Энтропия источника H = 2,396. Средняя длина кодо-
вых слов
= 2,45.
В соответствии с доказанными свойствами для ансамбля не существует кода со средней длиной кодовых слов
меньшей 2,45.
Кодовое слово сообщения строится в ходе прохождения пути в кодовом дереве из узла, помеченного «1»,
в узел, помеченный сообщением. При повороте пути вверх
записываем знак «0», при повороте пути вниз записываем
знак «1».
Приведем таблицу кодовых слов (таблица 7.2):
Таблица 7.2
Кодовые слова в коде Хаффмена
буква
кодовое слово 00 10 010 011 110 111
a b c d e f
В соответствии с теоремой 6.2 средняя длина кодовых
слов, построенных по алгоритму Хаффмена, удовлетворяет условию
где H — энтропия ансамбля. Величина r =
< H+1, (7.1)
– H называется избыточностью неравномерного кода. Она характеризует степень отличия данного способа кодирования
от «идеального»способа кодирования (например, от способа Шеннона-Фано).
Из (7.1) следует, что r < 1. Однако во многих конкретных случаях избыточность значительно меньше 1
(в примере 7.1 r = 0,054). Более точная оценка получена
Р. Галлагером (1978), она выражена через наибольшую
вероятность сообщений ансамбля.
Теорема 7.1. Пусть p
— наибольшая из вероятностей
1
сообщений ансамбля, тогда для избыточности кода Хаффмена ансамбля верны оценки:
— 107 —

Глава 7. Неравномерное кодирование упорядоченных ансамблей
pp
11
1
2
,;
,,
r ≤
2
ppp
111
2
1
где h(x) = –xlogx – (1–x)log(1–x) — энтропия двоичного
ансамбля;
s= 1 – loge – logloge ≈0,08607.
Оценка Галлагера довольно точна в широком диапазо-
не значений p
. В частности, для ансамбля с вероятностями
1
сообщений {1/3, 1/3, 1/3, 0} оценка равна 0,419, в то время как точное значение избыточности для этого источника равно 0,417. Вместе с тем, для источника из примера
7.1оценка равна 0,4361, в то время как точное значение
избыточности для этого источника равно 0,054.
Дальнейшие исследования привели к получению
улучшенных (по сравнению с теоремой 7.1) оценок избыточности кодирования методом Хаффмена, однако существенно усложнилось их выражение с помощью различных формул.
7.4. Коды Шеннона
Несмотря на бесперспективность создания кодов
с меньшей избыточностью, чем в кодах Хаффмена, развитие способов кодирования было продолжено, что стимулировалось упрощением построения кодовых слов. Для
многих способов кодирования важна именно вычислительная сложность построения кодовых слов.
Пусть источник X порождает буквы 1,…,M с вероятностями p
по убыванию вероятностей: p
,…,pM соответственно, где буквы упорядочены
1
≥…≥pM.
1
Дополнительно букве i сопоставлена так называемая
кумулятивная вероятность q
, определяемая правилом:
i
— 108 —

7.4. Коды Шеннона
11
∑
q1=0, q2=p1, …, qM =
iM
≤≤ −
p
.
i
Кодовое слово кода Шеннона для буквы i определяется первыми l
числа q
, i=1,…,M, где
i
знаками после запятой в двоичной записи
i
= –logpi.
l
i
Итак, алгоритм построения кода Шеннона состоит
из следующих шагов:
1) сортировка букв источника по убыванию вероят-
ностей;
2) вычисление для всех букв (в порядке убывания ве-
роятностей):
• кумулятивных вероятностей,
• длин кодовых слов,
• двоичных кодовых слов определенной разрядно-
сти.
Таблица 7.3
Построение кода Шеннона
x p
a
i
0,35 0 2 0,00… 00
q
i
l
i
двоичная
запись q
i
кодовое
слово с
i
b
0,2 0,35 3 0,0101… 010
c
0,15 0,55 3 0,10001… 100
d
0,1 0,7 4 0,10110… 1011
e
0,1 0,8 4 0,11001… 1100
f
0,1 0,9 4 0,11100… 1110
Пример 7.2. Закодируем методом Шеннона ансамбль
X={a, b, c, d, e, f} с соответствующими вероятностями
— 109 —

Глава 7. Неравномерное кодирование упорядоченных ансамблей
l
l
1kkjp≤<
∑
1kkip≤<
∑
k
ikjp≤<
∑
букв {0,35; 0,2; 0,15; 0,1; 0,1; 0,1}. В таблице 7.3 приведены промежуточные вычисления и результат построения
кода Шеннона.
По таблице определяем: средняя длина кодовых слов
=2,95, энтропия источника H=2,4016, избыточность
кода r=
-H=0,5484. Кодовое дерево дано на рисунке 7.3.
Рисунок 7.3. Кодовое дерево кода Шеннона из примера 7.2
Из рисунка 7.2 следует, что данный код не оптимален. Кодовые слова для букв b, d, e, f можно укоротить
на 1 бит без потери свойства однозначной декодируемости.
Теорема 7.2. Код Шеннона однозначно декодируемый, префиксный.
Доказательство. Возьмем сообщения с номерами
i и j, где i<j. В силу упорядоченности вероятностей сооб-
щений источника по убыванию выполнено: l
i≤lj
для однозначной декодируемости достаточно, чтобы кодовые слова с
и сj различались в первых li символах после
i
запятой. Рассмотрим разность
q
– qi =
j
–
— 110 —
=
≥ pi.
. Поэтому
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
