Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Элементы теории информации в защите информации. Учебное пособие для академического бакалавриата

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
ГЛАВА 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.
. Поэтому
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]