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

Энтропийное кодирование сообщений

.pdf
Скачиваний:
44
Добавлен:
03.05.2015
Размер:
640.79 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

Московский технический университет связи и информатики

_____________________________________________________

В.Н. Безруков

Энтропийное кодирование сообщений

Учебное пособие

Москва 2009 г.

УДК 621.37/.39 Безруков В.Н. «Энтропийное кодирование сообщений»

Учебное пособие/МТУСИ.-М., 2009-с.

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

Издание утверждено методическим советом университета в качестве учебного пособия.

Протокол № от . .2009 г.

© Московский технический университет связи и

информатики, 2009

Рецензенты:

д.т.н., профессор, заведующий кафедрой «Телекоммуникационные системы» МИЭТ Баринов В.В.,

к.т.н., заместитель директора филиала «РТРС» «МРЦ» по телевизионному и радиовещанию Комаров П.Ю.

2

1. Информация и энтропия

1.1.Общие сведения

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

Цифровая система связи, использующая набор символов размера М называется М-арной. Алфавит-совокупность возможных символов сообщений ( в двоичном представлении ). Поток символов (bit - stream)-поток групп двоичных символовнизкочастотный сигнал, так как его спектр распределѐн в области относительно низких частот.

Коэффициент сжатия (K), реализованный при кодировании, определяется отношением:

K

размер входного файла (binari digit-bit )

.

размер выходного файла (binari digit-bit )

 

 

Наиболее простым из известных вариантов, реализующих увеличение эффективности одномерного кодирования последовательностей исходных сообщений со сжатием числа бит, передаваемых ( в среднем ) на одно сообщение, является, так называемое, кодирование по длинам серий. Корректное применение данного метода, например, возможно в случаях наличия в источнике чередующихся серий одного и того же и сообщения, которые могут прерываться другими сообщениями определѐнного и конечного, по числу элементов, алфавита. В таком случае передают последовательности пар “серия ” - “сообщение,” в которых серия отражает протяжѐнность одного и того же, часто повторяющего сообщения, а новое сообщение определяется своим индивидуальным символом. Полученные пары подвергают последующему кодированию с учѐтом вероятности их появления.

1.2. Информация и совместная информация сообщений

Информация в символе сообщения о каком-то событии, которое осуществляется в текущем времени с вероятностью p, определяется как

I ( p)

log 2 p

бит .

 

Напомним:

 

 

 

 

logb (x)

 

 

(x) loga (b) .

loga (x)

logb (a)

log

b

 

 

 

Аксиомы.

1.Информация, содержащаяся в одиночном событии, происходящем с

вероятностью pi из числа событий определѐнного алфавита событий

xi

X , имеет положительное значение I ( p ) 0 .

 

i

2.Совместная информация, например, двух независимых событий ( xi , x j

с вероятностями pi , pj и с совместной вероятностью pij ( pi , pj ) pi pj ) определяется суммой информаций

3

I ( pi, j ) I ( pi ) I ( p j ) .

3.Информация является непрерывной функцией от вероятности события.

Из соотношения и аксиом следует, что несущественные изменения вероятности события приводят к несущественным изменениям еѐ информации.

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

С другой стороны известное вероятностное распределение отдельных сообщений позволяет сразу же вычислять средний объѐм информации на сообщение для данного их алфавита. Предположим, что существует идеализированный алфавит сообщений s,d,f,g,h,j.k,l с соответствующими вероятностями появления указанных сообщений pi (0,5 ; 0,125; 0,125; 0,0625;

0.0625; 0.0625; 0.03125; 0.03125 ), которые отражаются числами p0 (0,5) , где

1 и является целым числом. Реализация архивированного набора сообщений в таком случае может, к примеру, иметь вид : g, d, s, f , s, s ,s, d, s, f , h, s, j s, s, k, s, g, d, f , s, s, j, s, l, d, s, s, s, f, h, s . С приходом каждого следующего сообщения объѐм принятой (архивированной) информации возрастает в зависимости от соответствующей вероятности. При этом усреднѐнный объем полученной информации на одно сообщение может быть определѐн как частное от деления общего объѐма на число полученных в данный момент сообщений. Весовой вклад в общий объѐм информации отдельных из независимых сообщений алфавита определяется произведением числа поступивших сообщений такого

типа

на

соответствующее

данному событию количество информации. Если

1, 2 ,

3,

4 , 5 , 6 , 7,

8

определяют конкретные числа, отражающие

количество появлений

каждого сообщения ( из восьми событий алфавита ) в

представленной выше реализации, которая состоит из общего числа событий

8

 

 

 

 

 

 

 

 

 

 

 

N=

i , то общий объѐм информации данной реализации может быть определѐн

 

i 1

 

 

 

 

 

 

 

 

 

 

соотношением:

 

 

 

 

 

 

 

 

I0 ( p)

 

1I1 ( p1 )

2 I2 ( p2 )

3 I3 ( p3 )

4 I4 ( p4 )

5 I5 ( p5 )

6 I6 ( p6 )

7 I7 ( p7 )

8 I8 ( p8 ) .

Тогда

средний

объѐм информации, приходящийся на одно

сообщение,

определяется результатом деления:

 

 

 

 

 

I0 ( p)

 

 

1

1I1 ( p1 )

2 I2 ( p2 )

3 I3 ( p3 )

4 I4 ( p4 )

5 I5 ( p5 )

6 I6 ( p6 )

7 I7 ( p7 )

8 I8 ( p8 ) .

 

N

 

N

 

 

 

 

 

 

 

 

 

 

При возрастании протяженности рассмотренной реализации всѐ в большей степени может уточняться, в последнем из соотношений, относительная частота

появления каждого из возможных сообщений

ni

(1 i 8), значения которой

N

определяют “вес” каждой их составляющих в соотношении для среднего объѐма

4

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

относительная

частота фактически совпадает

с вероятностью

появления

сообщений.

Соответственно

понятие

среднего

объѐма

реализации

трансформируется в понятие энтропия 1, 2 .

 

 

 

 

1.3.Энтропия сообщений

Таким образом, энтропия (Shannon S.E. Mathematical Theory of Communication. BSTJ, vol. 27, 1948, pp.379-423, 623-657.) определяется как средний объѐм информации на одно сообщение. Чем больше неопределѐнности в сообщении, тем больше оно содержит информации. При числе возможных сообщений n энтропия выражается следующим образом:

 

 

 

 

 

 

n

 

бит / сообщение .

 

 

 

 

 

H

pi log 2 pi

 

 

 

 

 

i

1

 

 

 

n

Здесь pi -

вероятность i-го из возможного конечного числа n сообщений и

pi

1.

Если сообщение двоичное, т.е. источник сообщений имеет только

i 1

 

 

 

 

 

 

 

 

 

два возможных значения соответственно,

вероятность первого из которых p1 , а

второго p2

1 p1 , то энтропия имеет следующий вид:

 

H

( p1 log 2 p1

p2 log 2 p2)

p1 log 2 p1

(1 p1) log 2(1 p1)

бит / сообщение .

На рис. 1

представлена зависимость энтропии от величины вероятности одного

из двух возможных значений сообщения ( p

p1 ) 2 .

При равновероятных

( p1

p2

0,5 )

событиях

потенциальная

неопределѐнность решения (рис.1)

увеличивается и энтропия достигает величины

 

 

 

H

 

p1 log 2 p1 (1 p1) log 2 (1

p1)

2 0,5

log 2 0,5

1 бит / сообщение .

Вобщем случае наличия равновероятных сообщений энтропия максимальна

иопределяется логарифмом числа событий. Если, например, число

равновероятных

сообщений

составляет

величину

N

2k ,

то

H0 log2 N

log2 2k

k . При, например, N 2k

256 необходимое число бит кода

для передачи каждого сообщения H0

log2 28

k 8 , а

при

N 2k

7

энтропия H0

2,80735 бит.

 

 

 

 

 

 

5

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H(p)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0.2

0.4

0.6

 

0.8

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

p

 

 

 

1

 

 

 

Рис. 1. Зависимость энтропии от величины вероятности одного из двух

 

 

 

 

возможных значений сообщения (

p

p1 )

При резко отличающихся вероятностях сообщений существенно падает

энтропия. Пусть,

например, вероятности семи сообщений s1, s2, s3, s4, s5, s6, s7

имеют значения:

P

 

0,75; P

 

P

0,05, P

P

 

P

P

0,0375. Тогда:

 

 

1

 

 

 

2

3

 

 

4

5

6

7

H

7 Pi log2 Pi

 

0,75 log2 0,75

2 0,05 log2 0,05

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 0,0375 log2 0,0375

0,3113

 

0,432

0,7105

1,4538.

Следовательно, среднее число бит на сообщение для данного примера составляет величину, приблизительно, 1,5 бита. Присвоим сообщению s1 кодовое слово 1; сообщению s2 -01; сообщению s3 -001; сообщению s4 -0001; сообщению s5 - 00001; сообщению s6 -000001; сообщению s6 -0000001; сообщению s7 -0000000.

Перечисленные слова составляют префиксный код. Соответственно последовательность событий может быть передана без специального разделения кодовых слов.

Рассмотрим сообщение в виде последовательности тридцати кодовых слов:

s2s1s1s1s1s3s1s7s1s1s4s1s1s1s5s1s1s3s1s1s1s1s1s2s6s1s1s2s1s1 .

Этому сообщению соответствует сигнал цифровой последовательности:

01111100110000000110001111000011100111111010000001110111, которая состоит из пятидесяти шести бит. Следовательно, при кодировании данного сообщения используется, в среднем, 1.8 бит на один элемент. Это не слишком существенно отличается от вычисленной ранее величины H 1, 4363 . С

6

3, 4,5,6,7

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

В идеале на сообщение s1 следует выделить кодовое слово протяжѐнностью

l1

log2 p1

log2 0,75

0, 415 бит, на s2 и s3 соответственно по l2

l3 4,32 бит, на

сообщения s4

s 7 по l4

l5 l6

l7 4,74 бит.

 

 

 

 

 

 

 

1.4. Избыточность источника сообщений

 

Разность между

энтропией

источника

равновероятных сообщений H0

и

энтропией H

данного, например, реального источника

сообщений

при

фиксированном их числе часто определяется как избыточность R источника:

 

 

 

 

 

R

H0

H .

 

 

Относительную

избыточность находят делением избыточности на энтропию

источника равновероятных сообщений H0

:

 

 

 

 

 

 

 

 

R

1

H

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

H0

 

 

 

 

 

 

 

 

 

 

 

Для рассмотренного примера из семи сообщений величина относительной избыточности сравнительно велика.

R0 1

1, 4363

0, 48838 .

 

2,80735

 

 

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

кодирования с кодовыми словами переменной длины является азбука Морзе. Здесь буква «E» имеет наибольшую вероятность в английских текстах (0,1669) и кодируется элементом минимальной протяжѐнности « · », буква «I» имеет значение вероятности 0,0782 и кодируется « ·· », буква «T» имеет значение вероятности 0,0678 и кодируется одним «­», а буква «X», например, имеет значение вероятности лишь 0,0002 и кодируется уже четырьмя элементами

«­··­ ».

2.Кодирование Хаффмана

2.1.Правила кодирования

Д. Хаффман предложил в 1952 г. эффективную процедуру кодирования с использованием символов с переменным числом бит. Процедура включает следующие операции:

1. Распределения (упорядочивания) сообщений в порядке убывания их вероятностей,

7

2.Определенная последовательность этапов объединения сообщений с минимальными для каждого этапа значениями вероятностей ( с получением соответствующих узлов на дереве кодирования) до полного еѐ завершения ( с получением последнего узла).

3.Кодирование, которое реализуют с узла последнего этапа, завершающего объединение.

При этом верхней (по величине вероятности ) упорядоченной компоненте последнего этапа объединения может быть присвоена двоичная цифра «1» , а нижней «0». Аналогичным образом присвоения могут осуществляться в узлах, полученных на предшествующих этапах. С учетом префиксного ( имеется возможность разделения комбинаций по первым двоичным цифрам ) типа кода соответственно процесс кодирования сообщений реализуют в обратном (по отношению к этапам создания узлов объединений) порядке.

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

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

Для использованного ранее распределения вероятностей pi (0,5; 0,125; 0,125;

0,0625;

 

0.0625;

0.0625;

0.03125; 0.03125 )

восьми сообщений (

s1, s2 , s3, s4 , s5 , s6 , s7 , s8 ) найдѐм

 

H

8

Pi log2 Pi

0,5 log2 0,5 2 0,125 log2 0,125

 

1

 

 

 

 

 

3

0,0625 log2 0,0625

2 0.03125 log2 0,03125

2,3125.

Как было отмечено, относительную

избыточность находят

делением

избыточности на энтропию источника равновероятных сообщений H0

:

R 1

 

H

.

 

 

 

 

0

 

H0

 

 

 

 

Для варианта равновероятных восьми сообщений H0 log2 8 3 . При этом величина относительная избыточность имеет величину:

R0

1

2,3125

1

0, 77083

0, 22917 .

 

3

 

 

 

 

 

2.2. Относительная оценка вариантов кодирования и построение дерева по Хаффману

На рис.2 графически представлен вариант кодирования, где операция поэтапного объединение выполнено с нарушением требования последовательного получения узлов за счѐт объединения ветвей дерева кодирования с наименьшими значениями вероятности сообщений.

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

P2÷8=0,5

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

S1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2,3,4,5=0,375

P1=0,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2,3=0,25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

P6,7,8=0,125

 

 

 

 

P4,5=0,125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

0

 

1

 

S3

S2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P7,8=0,0625

 

 

 

 

 

 

 

P3=0,125

P2=0,125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

S6

 

S5

S4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P6=0,0625

P5=0,0625

P4=0,0625

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S8

 

S7

 

 

 

 

 

 

 

 

 

 

P8=0,03125

P7=0,03125

 

 

 

 

 

 

 

 

 

 

Рис.2. Первый вариант кодирования

 

 

Таблица 1

 

 

 

 

 

Сообщ.

Pi

код

бит/сообщ.

S1

0,5

1

1

S2

0,125

0111

4

S3

0,125

0110

4

S4

0,0625

0101

4

S5

0,0625

0100

4

S6

0,0625

001

3

S7

0,03125

0001

4

S8

0,03125

0000

4

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

ns 1 0,5

2 4 0,125 3 0,0625 2 4 0,0625 2 4 0,03125 0,5 1 0,1875

0,5

0, 25

2, 4375.

Кодирование, как можно видеть, избыточность в данном случае уменьшает. Может быть построено несколько вариантов кодирования для данного алфавита. Однако наиболее лучшим вариантом будет код с наименьшей дисперсией. Дисперсию кодирования d оценивают по отношению к ns .

9

 

7

 

 

 

 

 

 

 

 

 

d

p

(n

n )2

0, 5 (1 2, 4375)2 2

0,125

(4 2, 4375)2 1 0, 0625 (3 2, 4375)2

 

i

i

 

s

 

 

 

 

 

г

 

i 1

 

 

 

 

 

 

 

 

 

2

0, 0625

(4

2, 4375)2

2

0, 03125

(4

2, 4375)2

2,121,

где ni - число бит на конкретный символ алфавита.

Можно заметить, что данный вариант кодирования имеет высокую дисперсию. На рис.3 графически представлен второй вариант кодирования по Хаффману, где распределение вероятностей сообщений при формировании узлов выполнено (снизу вверх и слева направо) в соответствии с правилами, т.е. с соединением ветвей с наименьшими вероятностями.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2÷8=0,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

S1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P4,5,6,7,8=0,25

 

 

 

 

 

 

P2,3=0,25

P1=0,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

P6,7,8=0,125

 

 

P4,5=0,125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

0

1

 

 

S3

 

S2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P7,8=0,0625

 

 

 

 

 

 

P3=0,125

 

P2=0,125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

S6

S5

 

S4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P6=0,0625

P5=0,0625

P4=0,0625

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S8

 

S7

 

 

 

 

 

 

 

 

 

 

 

 

P8=0,03125

P7=0,03125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.3. Второй вариант кодирования Хаффмана

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сообщ.

 

 

 

Pi

 

код

 

 

 

бит/сообщ.

 

 

 

 

 

 

 

S1

 

 

 

 

0,5

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

S2

 

 

 

 

0,125

 

011

 

 

 

3

 

 

 

 

 

 

 

 

S3

 

 

 

 

0,125

 

010

 

 

 

3

 

 

 

 

 

 

 

 

S4

 

 

 

 

0,0625

 

0011

 

 

 

4

 

 

 

 

 

 

 

 

S5

 

 

 

 

0,0625

 

0010

 

 

 

4

 

 

 

 

 

 

 

 

S6

 

 

 

 

0,0625

 

0001

 

 

 

4

 

 

 

 

 

 

 

 

S7

 

 

 

 

0,03125

 

00001

 

 

 

5

 

 

 

 

 

 

 

 

S8

 

 

 

 

0,03125

 

00000

 

 

 

5

 

 

 

 

 

 

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

10