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

Березкин Основы теории информации и кодирования 2010

.pdf
Скачиваний:
1365
Добавлен:
16.08.2013
Размер:
3.57 Mб
Скачать

7. КОДИРОВАНИЕ СООБЩЕНИЙ ДИСКРЕТНОГО МНОЖЕСТВА

Перейдем к задаче кодирования, т.е. представления сообщений из заданного дискретного множества последовательностью символов, принадлежащих заданному алфавиту. Цель при этом состоит в конструировании таких последовательностей символов, которые минимизируют среднее число символов, приходящихся на одно сообщение. Усреднение ведется по множеству сообщений. При решении поставленной задачи предполагается, что распределение вероятностей сообщений известно.

Рассмотрим множество сообщений U {uk }, k 1, M , на котором задано распределение вероятностей p(uk ) . Каждое сообщение может быть представлено кодовым словом длиной nk (рис. 7.1).

Слово состоит из последовательности символов некоторого алфавита A кодирования. Число различных символов этого алфавита обозначим через D A .

При этих обозначениях среднее число символов, приходящихся

M

на одно сообщение, есть n nk p(uk ) . Информационная пропу-

k 1

скная способность алфавита A равна log2 D .

u

p(u )

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

1

 

 

 

 

 

 

 

u2

p(u2 )

 

 

 

 

 

 

n2

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

uk

p(uk )

 

 

 

 

 

nk

n

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

uM

p(uM )

 

 

 

nM

Рис. 7.1. Процесс кодирования

Энтропия H (U ) – это среднее количество информации, необходимое для однозначного определения, идентификации сообщения

161

из данного множества. Каждое сообщение содержит в среднем n символов, а каждый символ не может нести более чем log2 D ин-

формации. Тогда энтропию множества сообщений U можно оценить следующим образом:

M

H (U ) p(uk ) log2 p(uk ) n log2 D .

k 1

Следовательно, n H (U ) , т.е. среднее число символов на со- log2 D

общение не может быть меньше энтропии множества сообщений, деленной на пропускную способность алфавита, используемого для кодирования.

7.1. МЕТОД КОДИРОВАНИЯ ШЕННОНА–ФАНО

Данный метод кодирования кодовых слов со средней длиной,

достаточно близкой к нижней границе H (U ) , базируется на выlog2 D

полнении двух требований:

1.В каждой позиции кодового слова символы алфавита должны использоваться с равными вероятностями, что дает возможность максимизировать среднее количество информации на символ.

2.Вероятности появления символов в каждой позиции не должны зависеть от расположения всех предыдущих символов.

Если удастся построить код в точном соответствии с этими требованиями, то средняя длина кодовых слов будет в точности равна нижней границе.

Для реализации кодов с вышеописанными свойствами необходимо иметь соответствующие процедуры построения кодов. Рассмотрим ряд примеров. Имеется множество равновероятных сооб-

щений U {uk }, k 1,8 и алфавит D 2 . Предлагается следующая процедура кодирования:

первоначальное множество сообщений разбивается на две равновероятные группы;

первым символом кодовых слов для сообщений первой группы выбираем "0", а первым символом кодов для сообщений второй группы выбираем "1";

162

– далее процесс половинного деления с соответствующей кодировкой продолжается до логического конца, т.е. до тех пор, пока это возможно.

В результате получается двоичный код для всех сообщений. В табл. 7.1 показан описанный процесс.

 

 

 

 

 

 

Таблица 7.1

Сообщения

Вероятности

Символы разрядов

Код

uk

p(uk )

кодовых слов

 

1

2

 

3

Шеннона–Фано

 

 

 

 

 

 

 

u1

1/8

 

0

 

0

000

u2

1/8

0

 

1

001

 

 

u3

1/8

1

 

0

010

 

 

u4

1/8

 

 

1

011

 

 

 

u5

1/8

 

0

 

0

100

u6

1/8

1

 

1

101

 

 

u7

1/8

1

 

0

110

 

 

u8

1/8

 

 

1

111

 

 

 

Для построенного кода среднее число символов алфавита в коде

равно

n

3.

Энтропия

множества сообщений равна

H (U ) 8

1 log2

8 3 бит.

Пропускная способность двоичного

 

 

8

 

 

алфавита равна log2 2 1 бит. В результате применения этой про-

цедуры кодирования удалось достичь нижней границы

n H (U ) 3. log2 D

В дальнейшем под эффективностью кодирования будем по-

нимать отношение нижней границы к средней длине кодового слова

Эк

 

 

H (U )

.

 

 

 

 

 

 

n log2 D

163

Совершенно очевидно, что эффективность кодирования лежит в

диапазоне 0 Эк 1, а равенству

 

 

H (U )

соответствует эф-

n

log2 D

 

 

 

 

фективность Эк 1.

Рассмотрим случай, когда сообщения неравновероятны, но вероятности их появления пропорциональны отрицательным степеням двойки. При применении процедуры Шеннона–Фано целесообразно первоначальное множество расположить в порядке убывания вероятностей и именно в такой последовательности пытаться проводить разбиения на две примерно равновероятные группы. Как показывает практика построения кодов, это обеспечивает наибольшую эффективность кодирования, так как в каждой группе будут фигурировать сообщения с равновеликими вероятностями. Методика кодирования аналогична предыдущему примеру. Процесс кодирования сведен в табл. 7.2.

Из таблицы видно, что число символов в каждом слове кода равно собственной информации сообщения. Средняя длина кодо-

вых слов равна

 

1

1 2

1

3 4

 

1

 

4 2,25 , а энтропия ансамбля

n

8

16

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сообщений H (U ) 1

1

log 2

 

1

 

2

1

log 2

1

4

 

1

log 2

 

1

2,25 бит.

 

2

 

8

16

16

 

 

 

2

 

 

 

8

 

 

 

 

Для построенного кода среднее число двоичных символов равно энтропии ансамбля сообщений, т.е. код также оптимален в смысле

минимума средней длины ( Эк 1).

Метод кодирования Шеннона–Фано легко обобщить на случай произвольного алфавита из D символов путем последовательного и равновероятного разбиения множества сообщений на D групп, подгрупп и т.д. Ясно также, что метод будет успешно работать,

если p(uk ) D ( – целое число), т.е. вероятности являются

отрицательными степенями числа символов алфавита, что обеспечивает равновероятность появления символов.

Если p(uk ) D , то группы не будут точно равновероятны. В

этом случае метод Шеннона–Фано не обязательно привет к коду с наименьшей возможной средней длиной. Более того, описанный метод построения кода Шеннона–Фано не всегда приводит к одно-

164

значному построению кода. Ведь при разбиении на подгруппы можно сделать большей по вероятности как верхнюю, так и нижнюю подгруппу.

 

 

 

 

 

 

 

 

Таблица 7.2

Сообще-

Вероятности

 

Символы разрядов

 

 

 

 

кодовых слов

 

Код

ния uk

p(uk )

 

 

 

1

 

2

3

 

4

Шеннона–Фано

 

 

 

 

 

 

 

 

 

u1

1/2

0

 

 

 

 

 

0

u2

1/8

 

 

0

0

 

 

100

u3

1/8

 

 

1

 

 

101

 

 

 

 

 

u4

1/16

1

 

 

0

 

0

1100

u5

1/16

 

1

 

1

1101

 

 

 

 

u6

1/16

 

 

1

 

0

1110

 

 

 

 

u7

1/16

 

 

 

 

1

1111

 

 

 

 

 

Наглядное представление множества кодовых слов можно получить с использованием кодового дерева, метод образования которого для ранее приведенного примера ясен из рис. 7.2.

При построении кодового дерева устанавливается соответствие между сообщениями и концевыми узлами (вершинами). Требование, чтобы только концевые узлы дерева соответствовали сообщениям, эквивалентно выполнению свойства префикса.

Для того чтобы определить свойство префикса, допустим, что

k -е кодовое

слово представляется как

ak

(ak1 ,..., aknk ) , где

ak1 ,..., aknk

отдельные символы, составляющие кодовое слово.

Любая последовательность, составленная из начальной части ak , т.е. ak1 ,...,aki для некоторого i nk , называется i -м префиксом

ak .

ОПРЕДЕЛЕНИЕ 7.1. Код, обладающий свойством префикса,

определяется как код, в котором никакое кодовое слово не является i -м префиксом никакого другого кодового слова.

165

 

 

u1 u2

u3 u4

u5

u6

 

 

4

 

1100

1101

1110

1111

 

 

 

 

 

 

 

3

100

101

 

 

Конце-

 

 

 

 

 

 

 

 

 

 

 

вой узел

 

2

 

 

110

 

111

Порядок

1

0

10

11

 

 

узлов

 

 

 

 

 

 

 

 

 

 

Промежу-

 

 

 

 

 

 

 

 

 

 

 

 

точный узел

0 1

Рис. 7.2. Кодовое дерево кода Шеннона–Фано

Особенностью такого кода является то, что ни одна из более коротких кодовых комбинаций не повторяет начала более длинной комбинации. Это позволяет при передаче длинных последовательностей не использовать разделяющих интервалов или синхронизирующих импульсов для фиксации конца и начала кодовых слов. Всякий раз, когда последовательность двоичных цифр образует кодовую комбинацию, декодер приемника декодирует ее как сообщение и воспринимает следующую цифру, как начало нового сообщения. Пусть для примера передана двоичная последовательность 0010111010100. По таблице кода легко находим, что переда-

ны сообщения u1 u1 u3 u5 u1 u2 .

ОПРЕДЕЛЕНИЕ 7.2. Полным кодовым деревом назовем такое конечное кодовое дерево, в котором из каждого промежуточного узла исходят D узлов следующего более высокого порядка.

УТВЕРЖДЕНИЕ 7.1. Наличие одного концевого узла порядка nk

исключает

D

n nk

узлов

порядка

n (nk n) ,

где

 

n max{n1 , n2 ,..., nM }.

Рассмотрим принцип исключения узлов на примере частного случая полного двоичного кодового дерева (рис. 7.3). Наличие

одного концевого узла второго порядка исключает 24 2 4 узлов четвертого порядка.

166

НЕОБХОДИМОСТЬ.

4

24

3

23

2

22

1

21

Рис. 7.3. Принцип исключения концевых узлов

7.2. ОСНОВОПОЛАГАЮЩИЕ ТЕОРЕМЫ ОПТИМАЛЬНОГО КОДИРОВАНИЯ

ТЕОРЕМА 7.1 (неравенство Крафта). Пусть D – число симво-

лов в кодовом алфавите, а {nk }, k

1, M

заданное множество

 

 

 

M

 

 

целых положительных чисел. Неравенство

D nk

1

является

k 1

необходимым и достаточным условием существования кодовых слов, соответствующих концевым узлам дерева, с длинами равны-

ми nk .

ДОКАЗАТЕЛЬСТВО

Построено кодовое дерево с узлами порядка n1 , n2 ,..., nM . Кодовый алфавит состоит из D символов. Поэтому из каждого промежуточного узла дерева исходит не более D ветвей. Отсюда следует, что не может быть более чем Dn узлов порядка n max{n1 , n2 ,..., nM }. Это максимальное число получается

тогда, когда D ветвей, разветвляются из каждого узла,

порядок

которых меньше n . Наличие концевого узла порядка nk

n ис-

ключает Dn nk

возможных узлов порядка

n .

Следовательно,

M

 

Dn

 

 

Dn nk Dn . Делим полученное равенство на

и приходим к

k 1

 

 

 

 

M

 

 

 

 

тому, что D nk

1.

 

 

 

k 1

167

M

ДОСТАТОЧНОСТЬ. Дано, что D nk 1. Необходимо пока-

k 1

зать, что можно построить кодовое дерево с заданными концевыми узлами, т.е. множество кодовых слов с заданными длинами

n1 , n2 ,..., nM . Пусть числа расположены в порядке возрастания, так что для любого k : nk nk 1 . Предположим, что нам удалось построить часть кодового дерева, содержащего все заданные концевые узлы порядков n1 , n2 ,..., n j , меньших m , и что дерево должно

содержать Nm

концевых узлов порядка m . Тогда из неравенства

M

 

j

 

M

 

 

Крафта D

nk 1 следует:

D nk

Nm D m

D

nk

1 .

k 1

 

k 1

 

k j Nm 1

 

 

Умножаем последнее выражение на Dm и получаем неравенство

j

 

M

 

 

 

 

 

Nm Dm nk

Dm nk Dm . Из него видно, что число дос-

k 1

 

k j Nm 1

 

 

 

 

тупных

узлов Dm j

Dm nk

порядка

m не

меньше заданного

 

 

k 1

 

 

 

 

 

числа

узлов

Nm

того

же

порядка,

т.е.

j

 

 

M

 

 

 

 

Dm Dm nk Nm

Dm nk , и поэтому все они могут быть

k 1

 

k j Nm 1

 

 

 

 

включены в дерево. Поскольку в доказательстве m выбрано произвольно, дерево с требуемыми концевыми узлами всегда может быть построено.

ТЕОРЕМА 7.2. Пусть D – число символов в кодовом алфавите, а {nk }, k 1, M – заданное множество целых положительных чисел.

M

Равенство D nk 1 является необходимым и достаточным ус-

k 1

ловием того, чтобы заданное множество концевым узлов дерева было полным.

ДОКАЗАТЕЛЬСТВО

НЕОБХОДИМОСТЬ. Построено кодовое дерево с узлами порядка n1 , n2 ,..., nM . Если множество концевых узлов полно, то они долж-

168

ны исключить все

узлы

порядка

n max{n1 , n2 ,..., nM }, т.е.

M

 

M

 

Dn nk Dn . Откуда следует: D nk

1.

k 1

 

k 1

 

 

 

M

 

ДОСТАТОЧНОСТЬ.

Дано,

что D nk 1. Любое множество

k 1

M

узлов, удовлетворяющее условию D nk 1, удовлетворяет и

k 1

M

неравенству D nk 1, т.е. существует, по крайней мере, одно

k 1

дерево с заданными концевыми узлами порядков n1 , n2 ,..., nM .

Предположим, что это дерево имеет, кроме заданных, еще узлы. Если бы это было так, то мы могли бы, не нарушая неравенства

M

 

M

 

D nk

1, добавить в сумму

D nk

члены, соответствующие

k 1

 

k 1

 

этим узлам. Очевидно, что это невозможно, так как дерево, удов-

M

летворяющее условию D nk 1, не может иметь дополнительных

k 1

узлов.

ТЕОРЕМА 7.3 (основная теорема кодирования). При заданном множестве сообщений {uk }, k 1, M с энтропией H(U) и алфави-

том, состоящим из D символов, существует такой способ кодирования сообщений множества посредством последовательностей символов, принадлежащих заданному алфавиту, что среднее число

 

 

 

 

 

 

 

 

 

 

M

 

 

символов на сообщение

 

nk p(uk )

будет удовлетворять нера-

n

 

 

 

H (U )

 

 

 

H (U )

k 1

 

 

венствам

 

 

 

1.

 

 

n

 

 

 

 

 

log2 D

log2 D

Докажем

неравенство

ДОКАЗАТЕЛЬСТВО.

H (U )

 

log2 D 0 . Пусть

p(u1 ),..., p(uM )

– вероятности сооб-

n

щений источника, а n1 ,..., nM – длины кодовых слов. Представим

 

 

 

M

1

M

H (U )

n

log2 D

в виде p(uk ) log2

p(uk )nk log2 D .

p(uk )

 

 

 

k 1

k 1

169

Поместим nk

под знак логарифма, объединим слагаемые и полу-

M

 

D

nk

 

 

 

 

 

 

чим p(uk ) log2

 

 

 

. Далее воспользуемся известным свойст-

p(uk )

k 1

 

 

ln a a 1 :

 

 

 

вом натурального логарифма

 

 

 

 

 

 

 

 

 

 

 

 

 

1

M

D

nk

 

H (U )

n

log2

D

p(uk )[

 

1]

 

p(uk )

 

 

 

 

 

 

 

 

 

 

ln 2 k 1

 

 

 

 

 

 

 

1

 

 

M

 

M

 

 

 

 

 

 

 

[ D nk p(uk )] 0.

 

 

 

 

 

 

 

 

 

 

ln 2

k 1

 

k 1

 

 

 

Последнее неравенство следует из неравенства Крафта, что и дока-

 

H (U )

 

 

.

 

зывает

n

Заметим, что равенство имеет место тогда и

log2 D

 

 

 

 

 

только тогда, когда

p(uk ) D nk . Это условие совпадает с ранее

полученным условием оптимального кодирования по Шеннону– Фано.

Докажем неравенство n H (U ) 1. Если бы длины кодовых log2 D

слов не обязательно были целыми числами, то можно было бы просто подобрать nk* , чтобы удовлетворить условию

p(uk ) D nk* , k 1, M . Однако удовлетворить это условие можно только приближенно, выбирая целые числа nk так, чтобы вы-

полнялись неравенства

 

D nk p(uk ) D nk 1,

k 1, M

(рис. 7.4). Суммирование по k превращает левое неравенство в неравенство Крафта, и, следовательно, существует префиксный код с этими длинами. Логарифмируя правое неравенство, получаем

log2 p(uk ) ( nk 1) log2 D или nk

 

log2 p(uk )

1. Далее

 

 

log2 D

 

полученное неравенство умножаем на

p(uk ) и суммируем по k

170

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]