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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
6.1. Неравномерное побуквенное кодирование с помощью префиксных кодов
X={x,p(x)}. Ограничимся рассмотрением двоичного кода, то есть A={0,1}, как наиболее интересного с практической точки зрения. Тем более, что распространение рассмо­тренных моделей на более широкий класс не содержит принципиальных трудностей.
Обозначим A* множество всех слов в алфавите A. Неравномерным кодом над алфавитом A называется
подмножество С множества A*, объемом или мощностью кода С называется величина С.
Если алфавит A состоит из двух символов: «точ-
ка»и «тире», то подмножество С множества A* представ­ляет собой множество комбинаций «точек»и «тире», что мы имеем в азбуке Морзе. Например, в азбуке Морзе ча­сто встречающейся букве «е»соответствует «⋅»(«точка»), а более редко встречающейся букве «ч» соответствует комбинация «- - - ⋅». Однако если заменить, например, «точки»нулями, а «тире»единицами, то хороший код не будет получен. Азбука Морзе не сводится к двоичному коду, так как использует кроме этих символов временные паузы для разделения символов, букв в словах и самих слов. После указанной замены нулями и единицами без учета временные пауз разделение сообщения на буквы и слова может выполняться неоднозначно. То есть нару­шается важнейшее необходимое свойство кода, называе­мое однозначной декодируемостью.
Код С называется однозначно декодируемым, если любая порождаемая им последовательность символов из A единственным способом разбивается на отдельные кодовые слова из множества С.
Пример 6.1.
1) С
= {00, 01, 10, 11};
1
2) С
= {1, 01, 001, 000};
2
3) С
= {1, 10, 100, 000};
3
4) С
= {0, 1, 10, 01}.
4
— 91 —
Глава 6. Теоретические основы неравномерного кодирования
Из четырех примеров кодов однозначно декодируе-
мые только первые три.
Первый код однозначно декодируемый, так как
он является равномерным.
Для декодирования второго кода достаточно, что­бы декодер, считывая символ за символом, каждый раз проверял, не является ли данное слово элементом кода С. Если не является, то считывается следующий символ и выполняется указанная проверка слова и т.д. Если яв­ляется, то декодер приступает к считыванию символов следующего слова. Заметим, что в случае кода С
неодно-
2
значного декодирования быть не может в силу того, что ни одно слово не является продолжением другого.
Код называется префиксным, если ни одно его слово не является началом другого его слова. Префиксность кода гарантирует его однозначную декодируемость.
Код С
не префиксный. Вместе с тем, он однозначно
3
декодируемый. Каждое его слово может быть получено записыванием в обратном порядке соответствующего слова кода С слово в обратном порядке, использовать код С
. Значит, декодер может, записав принятое
2
для одно-
2
значного декодирования. Следовательно, префиксность кода является достаточным, но не необходимым условием его однозначной декодируемости.
Префиксные коды удобно изображать графически в виде кодовых корневых деревьев, помеченных двоичны­ми символами и кодовыми словами. Например, кодовое дерево кода С
имеет следующий вид (рисунок 6.1).
2
Все вершины дерева разделяются по ярусам, коли­чество ярусов h называется высотой дерева. На нулевом ярусе размещена вершина, которая называется корнем дерева. Каждая вершина x следующего яруса соединена ребром с одной из вершин x′ предыдущего яруса, вершину
— 92 —
6.1. Неравномерное побуквенное кодирование с помощью префиксных кодов
Рисунок 6.1. Кодовое дерево кода
С
2
x называют потомком вершины x′. В случае двоичного дерева (оно соответствует двоичному коду) из каждой вершины исходит не более двух ребер, отсюда на i-м яру­се размещены от одной до 2
i
вершин, i=0,…,h. Вершины, из которых ребра не исходят, называются концевыми вер­шинами или листьями.
Все вершины дерева за исключением листьев сим­волами не помечаются. Символы двоичного алфавита помечают ребра дерева, где идущее вверх ребро помечено нулем и идущее вниз ребро помечено единицей. Таким образом, в каждую вершину i-го яруса дерева имеется единственный путь длины i из корня дерева, помеченный последовательностью i двоичных символов, i=0,…,h. Ли­стья дерева помечены кодовыми словами данного кода. Длина кодового слова, которым помечен лист x, равна номеру яруса (высоте h(x) листа x в дереве), на котором расположен лист x. Высота h(D) кодового дерева D равна длине самого длинного слова данного кода.
Двоичное дерево называется псевдополным, если из каждой вершины исходит ровно 2 ребра за исключени­ем листьев. Двоичное псевдополное дерево высоты h на­зывается полным, если длина пути от корня до любого ли­ста равна h. На i-м ярусе псевдополного дерева размещены
— 93 —
Глава 6. Теоретические основы неравномерного кодирования
l
1
ii
∑
не более 2i вершин, на i-м ярусе полного дерева размещены
i
ровно 2 h имеет 2
вершин, i=0,…,h. Полное двоичное дерево высоты
h+1
–1 вершин и 2h листьев.
Код называется древовидным, если множество его кодовых слов совпадает с множеством меток всех листьев. Код является древовидным тогда и только тогда, когда он префиксный.
Далее рассматриваются только префиксные коды. Так как цель экономного кодирования — это минимиза­ция затрат на передачу информации, то важной харак­теристикой префиксного кода является средняя длина кодового слова в коде. Определим эту величину.
Пусть ДИОС X={1,…,M}, то есть X порождает буквы 1,…,M с вероятностями p кодирования букв источника используется код C={c
}, где длина кодового слова ci равна li, i=1,…,M, то сред-
c
M
,…,pM соответственно. Если для
1
,…,
1
ней длиной кодовых слов кода C называется величина
= M[li] =
iM
≤≤
pl
.
Важными характеристиками кода являются также сложности кодирования и декодирования информации, определяемые требуемым количеством вычислительных операций и объемом необходимой памяти вычислитель­ного устройства. При практической реализации кодиро­вания и декодирования информации эти характеристики необходимо сопоставить с возможностями вычислитель­ного устройства в части производительности и объема необходимой памяти.
Таким образом задача побуквенного неравномерного кодирования может быть сформулирована как построение префиксного кода с наименьшей средней длиной кодовых слов при определенных ограничениях на сложность коди­рования.
— 94 —
6.2. Неравенство Крафта
−
∑
( )
1
2
6.2. Неравенство Крафта
При рассмотрении конкретного кода возникает во­прос: нельзя ли выбрать более короткие слова для коди­рования и тем самым уменьшить среднюю длину кодовых слов? На примере кода С фиксности кода С
нельзя уменьшить длину какого-либо
2
слова, не увеличив длину другого слова этого же кода.
Длины кодовых слов ограничиваются неравенством Крафта.
Теорема 6.1 (неравенство Крафта).
Префиксный код порядка M с длинами кодовых слов
,…,lM существует ⇔
l
1
Доказательство. Псевдополное бинарное дерево D высоты h с n листьями можно достроить до полного би­нарного дерева высоты h, в котором пути от корня до всех листьев имеют длину h. Это выполняется с помощью присоединения к каждому листу x высоты h(x) дерева D полного бинарного дерева высоты h–h(x). В результате такого построения число листьев в полном бинарном де­реве высоты h равно 2 n в дереве D. Значит, n≤2 туральное число, получаем: h ≥ log
Так как при указанном построении полного дерева к каждому листу x высоты h(x) дерева D присоединяется полное бинарное дерево высоты h–h(x), то вместо листа
h–h(x)
x образуется 2
листьев. Отсюда для общего числа ли­стьев в полном бинарном дереве высоты h выполнено ра­венство:
Сокращаем обе части равенства на 2
видно, что при сохранении пре-
2
l
i
2
≤ 1. (6.1)
1
≤≤
iM
h
, что не меньше, чем число листьев
h
. Отсюда, учитывая, что h — на-
n.
2
h hx
−
∑
x XD
∈
( )
2
= 2h.
h
и получаем:
∑
x XD∈
— 95 —
( )
= 1. (6.2)
hx
( )
Глава 6. Теоретические основы неравномерного кодирования
1
2
l
2
2
l
21
2
ll−
2
2
l
21
2
ll−
2
2
l
3
2
l
32
2
ll−
31
2
ll−
3
2
l
32
2
ll−
31
2
ll−
3
2
l
2
l
M
1
2
ll
MM−−
2
2
ll
MM−−
1
2
llM−
2
l
M
2
l
M
1
2
ll
MM−−
2
2
ll
MM−−
1
2
llM−
Между множеством листьев бинарного кодового де­рева и множеством кодовых слов имеется биекция, при которой высота h(x) листа x в дереве совпадает с дли­ной кодовой комбинации, помечающей лист x. Отсюда и из равенства (6.2) получаем неравенство (6.1).
Докажем достаточность, построив код с множе­ством слов, длины которых удовлетворяют неравенству (6.1). Без существенного ущерба для общности положим
<…< l
l
1
берем на ярусе l словом длины l
≤lM.
M–1
Возьмем полное бинарное дерево D высоты l
любую вершину и пометим ее кодовым
1
. Остальные
1
–1 вершин яруса l1 продол-
. Вы-
1
жим с помощью построения полных поддеревьев высоты
, то есть до яруса l2. Общее число вершин на ярусе l2
l
2–l1
равно
после деления его на
довым словом длины l
–
, где неравенство
Выберем на ярусе l
–
≥ 1
следует из (6.1). любую вершину и пометим ее ко-
2
. Остальные вершины яруса l2
2
продолжим с помощью построения полных поддеревьев высоты l равно
после деления его на
Продолжая построение, на ярусе l
, то есть до яруса l3. Число вершин на ярусе l3
3-l2
–
–
, где неравенство
–
–
≥ 1
следует из (6.1).
получаем число
M
вершин, равное
–
это число не меньше 1, так как после деления на
–
– … –
,
не-
равенства
–
–
– … –
≥ 1
получаем неравенство, которое следует из (6.1).
Выбрав на ярусе l
, завершим построение кодового дерева.
ны l
M
вершину для кодового слова дли-
M
— 96 —
6.3. Прямая и обратная теоремы побуквенного неравномерного кодирования
1
2
l
2
2
l
21
2
ll−
3
2
l
31
2
ll−
31
2
ll−
l
Таким образом, неравенство Крафта определяет огра-
ничение снизу для длины кодовых слов.
Проиллюстрируем построение кодового дерева ри-
сунком 2 в случае l
=1, l2=2, l3=l4=3. Числа вершин в яру-
1
сах равны:
=2,
Рисунок 6.2. Построение кодового дерева согласно неравенству Крафта
–
=2;
–
–
=2.
Замечание. Неравенство Крафта распространено на множество всех однозначно декодируемых кодов. До­казательство имеется в [6].
6.3. Прямая и обратная теоремы побуквенного неравномерного кодирования
Теорема 6.2. Для ансамбля X={x,p(x)} с энтропией
H существует побуквенный неравномерный префиксный
код со средней длиной кодовых слов
< H+1.
Доказательство. Пусть вероятности сообщений 1, …, M источника равны p i, имеющей вероятность p вое слово длины l
= –logpi, i=1,…,M. Префиксный код
i
, …, pM соответственно. Букве
1
, поставим в соответствие кодо-
i
— 97 —
Глава 6. Теоретические основы неравномерного кодирования
−
∑
1

iM
∑
∑
l
1
ii
∑
1
∑
1
∑
1iiM
∑
l
l
l
l
с таким набором длин кодовых слов существует в силу теоремы 6.1, так как
1
≤≤
iM
l
i
2
=

2

pilog
≤
log
p
i
2
=
1
iM≤≤
1
iM
≤≤
p
= 1.
i
Оценим среднюю длину кодовых слов:
=
iM
≤≤
pl
=
iM
≤≤
p
–logpi <
i
iM
≤≤
p
i
(–logpi+1) =
=H+
p
≤≤
= H+1.
Теорема доказана.
При больших значениях энтропии полученную оцен­ку следует считать точной, при малых значениях, напри­мер, при H=0,2 точность оценки не высока.
Для некоторых классов источников эта оценка не­улучшаема, что говорит о ее точности. Например, для двоичного источника X с вероятностями букв e и 1–e наименьшая достижимая длина кодовых слов равна 1. Так как H(X) стремится к 0 при e→0, то по теореме 6.2 величина двоичных кодов оценка величины
стремится к 1 при e→0. Значит, для многих
точна.
Заметим, что достижение затрат на передачу одной буквы источника, меньших 1, невозможно при побуквен­ном кодировании, ведь длина кодового слова не может быть меньше 1. Однако при кодировании блоков инфор­мации, как показано ниже, средняя длина кодовых слов может достигать величины, сколь угодно близкой к эн­тропии источника.
Обратная теорема устанавливает нижнюю границу средней длины кодовых слов любого однозначно декоди­руемого кода.
Теорема 6.3. Для любого однозначно декодируемого кода ДИОС X={x,p(x)} с энтропией H и со средней длиной
кодовых слов выполнено:
≥ H.
— 98 —
6.3. Прямая и обратная теоремы побуквенного неравномерного кодирования
l
( ) ( )
log
xX
px px
∈
∑
( ) ( )
xX
pxlx
∈
∑
( )
( )
l
( )
 
 
( )
2
lxxX−
∈
∑
( )
xX
px
∈
∑
l
( )
xX
px
∈
∑
l
l
Доказательство. Обозначив l(x) длину кодового сло-
ва сообщения x∈X, запишем разность: H –
= –
–
=
∑
xX
∈
=
px
( )
Применяя оценку lna≤a–1, получаем при
lx
−
2
a=
H –
px
( )
≤ loge
:
lx
−
2
∑
xX
∈
px
( )
px
( )
−
=
1
log
lx
−
2
px
( )
.
= loge(
–
).
Отсюда, используя неравенство Крафта, имеем:
H –
≤ loge(1–
) = 0.
Теорема доказана. Заметим, что для выполнения равенства
=H необ­ходимо и достаточно, судя по доказательству теоремы 6.3, чтобы существовал префиксный код источника сообще­ний 1,…,M с длинами кодовых слов l
=–logpi, i=1,…,M,
i
то есть верно следствие.
Следствие 6.4. Однозначно декодируемый код источ-
ника X с энтропией H имеет среднюю длину кодовых слов
=H ⇔ p(x)=2
–l(x)
для любого сообщения x∈X.
В условиях следствия средняя длина кодовых слов достигает наименьшего из возможных значений. Таким образом, в данной модели ДИОС достигаются экстремаль­ные свойства в части экономного кодирования информа­ции.
Однако математические модели источников со­общений, удовлетворяющие данным условиям, вряд ли на практике являются адекватными реальным объек­там.
— 99 —
Глава 6. Теоретические основы неравномерного кодирования
l
6.4. Задачи и упражнения
6.1. Является ли однозначно декодируемым код: а) С
= {001, 0101, 100, 1101};
1
б) С
= {01, 001, 0001, 0010}?
2
6.2. Изобразите полное или псевдополное двоичное
дерево с n вершинами, где n∈{7, 9, 12, 15}.
6.3. Существует ли префиксный побуквенный код
мощности M с длинами кодовых слов l
а) M=3; (l б) M=5; (l в) M=6; (l г) M=7; (l
)=(2,3,4);
1,l2,l3
,…,l5)=(1,2,3,4,5);
1
,…,l6)=(1,2,3,4,4,5);
1
,…,l7)=(1,2,4,4,5,6,6)?
1
6.4. Побуквенный код мощности M содержит кодо-
вые слова длины l
,…,lM. При какой длине l1 кодового сло-
1
ва возможна префиксность кода, если:
а) M=4; (l б) M=5; (l в) M=5; (l г) M=6; (l
)=(2,3,4);
2,l3,l4
,…,l5)=(2,3,3,4);
2
,…,l5)=(1,2,3,4);
2
,…,l6)=(2,3,3,4,5,6)?
2
6.5. Дан ансамбль независимых сообщений {1,…,М} с распределением вероятностей P ение однозначно декодируемого кода со средней длиной l кодовых слов:
а) M=4, P б) M=4, P в) M=5; P г) M=5; P
={0,14; 0,29; 0,36; 0,21}, l=1,9;
М
={0,12; 0,27; 0,36; 0,25}, l=2,2;
М
={0,11; 0,22; 0,31; 0,12; 0,24}, l=2,2;
М
={0,13; 0,22; 0,31; 0,14; 0,20}, l=2,5?
М
6.6. Существует ли для ансамбля {a,b,c} с вероятно­стями букв p
, pb, pc, побуквенный неравномерный пре-
a
фиксный код со средней длиной кодовых слов
а) (p б) (p
)=(1/3,1/3,1/3), l≤1,55;
a,pb,pc
)=(0,4;0,35;0,25), l≤2,56?
a,pb,pc
,…,lM:
1
. Возможно ли постро-
М
, где:
— 100 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]