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

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

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

« . громадная волна обрушилась на берег . еѐ гребень вырвался за кромку пляжа . следующая волна была слабее . волны разрушили и смыли с берега , пляжа и прибрежной области легкие сооружения . поднялся ветер . под ногами заколыхалась земля ... . ». Результаты кодирования представлены в таблице 4.

 

 

 

 

 

 

 

 

 

 

 

Таблица 4

архив

Коди-

архив

Кодиро-

архив

 

Кодиро-

сооб

сооб-

ро

сооб-

сооб-

ванные

сооб-

сооб-

 

ванные

щений

щений

ванные

щений

щений

сообще-

ще-

щений

 

сообще-

в ар-

 

 

сооб-

в ар-

 

 

ния

ний в

 

 

 

ния

 

 

хиве

 

 

щения

хиве

 

 

 

ар-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

хиве

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

«

»

( 0, « »)

41

«а

к»

(23, «к»)

81

«иб»

 

(18,«б»)

2

«.»

( 0,«.»)

42

«ро»

(4, «о»)

82

«реж»

 

(25,«ж»)

3

«

г»

( 1, «г»)

43

«мк»

(6, «к»)

83

«но»

 

(9,«о»)

4

«р»

( 0, «р»)

44

«у»

( 0, «у»)

84

«й»

 

 

( 0, «й»)

5

«о»

( 0,«о»)

45

« п »

( 1, «п»)

85

« об»

 

( 14,«б»)

6

«м»

( 0, «м»)

46

«ля»

( 19,«я»)

86

«лас»

 

( 60,«с»)

7

«а»

( 0, «а»)

47

«ж»

( 0, «ж»)

87

«т»

 

 

( 0, «т»)

8

«д»

( 0, «д»)

48

«а

(23, «.»)

88

«и л»

 

(69,«л»)

9

«н»

( 0, «н»)

49

«

с »

( 1, «с»)

89

«ѐг»

 

(29,«г»)

10

«ая »

( 7, «я»)

50

«ле»

( 19,«е»)

90

«к»

 

 

(0,«к»)

11

«

в»

( 1, «в»)

51

«ду»

(8, «у»)

91

«ие»

 

(18,«е»)

12

«ол»

( 5, «л»)

52

«ю»

( 0, «ю»)

92

« со»

 

( 49,«о»)

13

«на»

( 9, «а»)

53

«щ»

( 0, «щ»)

94

«руж»

 

(16,«ж»)

14

«

о»

( 1, «о»)

54

«ая

»

(10,« »)

95

«ен»

 

(31,« н»)

15

«б»

( 0, «б»)

55

«во»

( 34,«о»)

96

«ия»

 

(18,«я»)

16

«ру»

( 4, «у»)

56

«лн»

(19, «н»)

97

« . п»

 

(62, «п»)

17

«ш»

( 0, «ш»)

57

«а

б»

(23, «б»)

98

«од»

 

( 5,«д»)

18

«и»

( 0, «и»)

58

«ыл»

(35, «л»)

99

«ня»

 

( 9,«я»)

19

«л»

( 0, «л»)

59

«а

с»

(23, «с»)

100

«лс»

 

( 19,«с»)

20

«ас»

( 7, «с»)

60

«ла»

(19, «а»)

101

«я »

 

(39,«

»)

21

«ь»

( 0, «ь»)

61

«бее»

(24, «е»)

102

«ве»

 

(34,«е»)

22

«

н»

( 1, «н»)

62

« . »

(27, « »)

103

«те»

 

(87, «е»)

23

«а

»

( 7, « »)

63

«вол»

(55, «л»)

104

«р

»

 

( 4,

«

»)

24

«бе»

( 15,«е»)

64

«ны»

(9, «ы»)

105

«. »

 

 

( 2,

«

»)

25

«ре»

( 4, «е»)

65

« р»

(1, «р»)

106

«п»

 

 

( 0, «п»)

26

«г»

( 0, «г»)

66

«аз»

(7, «з»)

107

«од

»

 

(98,«

»)

27

« .»

( 1, «.»)

67

«руш»

(16,«ш»)

108

«ног»

 

(83,«г»)

28

« Е»

( 1, «е»)

68

«ил»

(18,«л»)

109

«ам»

 

(7, «м»)

29

«ѐ»

( 0, «ѐ»)

69

«и

»

(18,« »)

110

« и

з»

 

(69,«з»)

30

«

гр»

( 3, «р»)

70

«и

с»

(69,«с»)

111

«ак»

 

( 7, «к»)

31

«е»

( 0, «е»)

71

«мы»

(6,«ы»)

112

«олы»

 

(12,«ы»)

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

32

«бен»

(24 ,«н»)

72

«ли »

(19,«и»)

115

«х»

( 0, «х»)

33

«ь »

(21, « »)

73

«

с »

(49,« »)

116

«ала»

(37, «а»)

34

«в»

( 0, «в»)

74

«бер»

(2 4,«р»)

117

«сь»

(38, «ь»)

35

«ы»

( 0, «ы»)

75

«ег»

(31,«г»)

119

« з »

(1, «з»)

36

«рв»

( 4, «в»)

76

« а

(23,«,»)

120

«е м»

(31,«м»)

37

«ал»

( 7, «л»)

77

«

пл»

(45,«л »)

121

«ля»

(19,«_ »)

38

«с»

( 0, «с»)

78

«яж»

(39,«ж»)

122

«..»

( 2,«.»)

39

«я»

( 0, «я»)

79

«а и»

(23,«и»)

123

« ._.»

(105,«.»)

40

« з»

( 1, «з»)

80

«

пр»

( 45,«р»)

124

«eot»

(0,«eot»)

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

текста ( NT ) и заполненных позиций архива ( N A ) совпадают, т. е.

 

NT

1. Однако

 

NA

 

 

 

 

 

 

с увеличением объѐма закодированного текста

значение

возрастает. После

кодирования первого предложения, например,

1, 44 , после кодирования второго

-

1, 625 , после кодирования третьего -

1, 74 ,

после кодирования четвѐртого-

 

1, 96 . Для упрощения сравнительной оценки при кодировании словарь обычно

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

(одинарного типа) архива: 1 ( «_» ), 2 («.»), 4 (« р »),5 (« о »),6 (« м »),7 (« а »), 8 (« д »), 9 (« н »), 15 (« б »), 17(« ш »), 18(« и »), 19(« л »), 21(« ь »), 26(« г »), 29 «

ѐ », 34(« в»),

35(« ы »), 38(« с »), 39 (« я »), 44 ( « у »), 47 (« ж ») , 52 ( « ю » ),

53 (« щ »), 84 (« й »), 87 (« т »),

106 (« п »), 115 (« х »). Потомками каждого из

перечисленных (

с нулевой

позицией

в словаре

) являются

сообщения,

представляющие

уже цепочку из двух

одинарного

типа сообщений. Каждое

одинарного типа сообщение, таким образом. является корнем нового поддерева. Потомками, например, одинарного сообщения (узла) 7 (« а ») в структуре дерева являются, согласно таблице кодирования 4, позиции в архиве 10 (« ая »), 20 (« ас

»), 23 («а_ »), 37 («ал »), 66 (« аз »), 109(«ам »), 111 («ак »). В свою очередь сообщения, представляющих цепочку из двух одинарного типа сообщений, являются корнями сообщений, имеющих вид цепочек из трѐх одинарного типа сообщений. В частности, потомками позиции 10 (« ая ») является в таблице 4

позиция

54 (« ая_ »); потомками позиции 23 ( «а_ ») являются 41 (« а_к »), 48

(« а_. »), 57 (« а_б »),

59 (« а_с »), 76 (« а_, »), 79 («а_и »); потомком позиции

37 («ал ») является позиция 116(«ала »). С увеличением объѐма словаря возрастает

22

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

4.4. Вариант кодирования LZW

Развитием кодирования текстов со сжатием объѐма передаваемых бит LZ78 является вариант LZW, который был разработан в 1984 г. (автор Terry Welch). В начале кодировании по LZW используют исходный фрагмент ( объѐмом, например, в 256 сообщений одинарного типа сообщений) архива (словаря), который вводят в соответствующую память до поступления текста, подвергаемого сжатию. Поэтому кодирование текущей последовательности сообщений в данном случае реализуют на первом этапе только на основе этого фрагмента. При этом по ходу текущего кодирования осуществляют последующее наращивание объѐма указанного (исходного) фрагмента словаря. Соответственно словарь заполняется всѐ более длинными цепочками сообщений, каждое из которых содержалось в исходном фрагменте архива или было добавлено в него на предшествующих этапах кодирования данного текста. Если, например, в ходе кодирования с использованием LZ78 одинарные сообщения получают свои позиции в архиве по ходу кодирования, то при использовании LZW позиции этих сообщений присутствуют в исходном фрагменте архива. В качестве примера осуществим LZW кодирование части следующей последовательности сообщений: «Падающий свет окутывал кусты сирени синим сиянием . ». Результат кодирования предствлен в таблице 5.

 

 

 

 

 

 

 

 

Таблица 5

Сооб

Поиск

№ ввода

Результат

Сооб

Поиск

№ ввода

Результат

щение

в

в архив

кодировани

щение

в архиве

в архив

кодировани

 

архиве

 

 

я

 

 

 

я

«П»

есть

 

 

 

«ку»

есть

 

 

«Па»

нет

256

143 (П)

«кус»

нет

279

271(ку)

«а»

есть

 

 

 

«с»

есть

 

 

«ад»

нет

257

160

(а)

«ст»

нет

280

225(с)

«д»

есть

 

 

 

«т»

есть

 

 

«да»

нет

258

164

(д)

«ты»

есть

 

 

«а»

есть

 

 

 

«ты »

нет

288

273( ты )

«аю»

нет

259

160

(а)

« »

есть

 

 

«ю»

есть

 

 

 

« с»

есть

 

 

«ющ»

нет

260

238

(ю)

« си»

нет

289

264( с)

«щ»

есть

 

 

 

«и»

есть

 

 

 

 

 

 

 

23

 

 

 

«щи»

нет

261

233(щ)

«ир»

нет

290

168(и)

«и»

есть

 

 

«р»

есть

 

 

«ий»

нет

262

168(и)

«ре»

нет

291

224(р)

«й»

есть

 

 

«е»

есть

 

 

«й »

нет

263

169(й)

«ен»

нет

292

165(е)

« »

есть

 

 

«н»

есть

 

 

« с»

нет

264

32 ( )

«ни»

нет

293

173(н)

«с»

есть

 

 

«и»

есть

 

 

«св»

нет

265

225(с)

«и »

нет

294

168(и)

«в»

есть

 

 

« »

есть

 

 

«ве»

нет

266

162(в)

« с»

есть

 

 

«е»

есть

 

 

« си»

есть

 

 

«ет»

нет

267

165(е)

« син»

нет

295

289( си)

«т»

есть

 

 

«н»

есть

 

 

«т »

нет

268

226(т)

«ни»

есть

 

 

« »

есть

 

 

«ним»

нет

296

293(ни)

« о»

нет

269

32( )

«м»

есть

 

 

«о»

есть

 

 

«м »

нет

297

172(м)

«ок»

нет

270

174(о)

« »

есть

 

 

«к»

есть

 

 

« с»

есть

 

 

«ку»

нет

271

170(к)

« си»

есть

 

 

«у»

есть

 

 

«сия»

нет

298

289( си)

«ут»

нет

272

227(у)

«я»

есть

 

 

«т»

есть

 

 

«ян»

нет

299

239(я)

«ты»

нет

273

226(т)

«н»

есть

 

 

«ы»

есть

 

 

«ни»

есть

 

 

«ыв»

нет

274

235(ы)

«ние»

нет

300

293(ни)

«в»

есть

 

 

«е»

есть

 

 

«ва »

нет

275

162(в)

«ем»

нет

301

165(е)

«а»

есть

 

 

«м»

есть

 

 

«ал»

нет

276

160( а )

«м »

есть

 

 

«л»

есть

 

 

«м .»

нет

302

297 (м )

«л »

нет

277

171(л)

«.»

есть

 

 

« »

есть

 

 

«. »

нет

303

46(.)

« к»

нет

278

32 ( )

« »

есть

 

 

«к»

есть

 

 

«конец

нет

304

32( )

 

 

 

 

переда

 

 

 

 

 

 

 

чи(eot)»

 

 

 

 

 

 

 

«eot»

есть

 

4(eot)

Таким образом, на приѐмную сторону поступает следующая последовательность сообщений:

24

« П,а,д,а.ю,щ,и,й, ,с,в,е,т, ,о,к,у,т,ы,в,а,л, ,ку,с,ты, с,и,р,е,н,и, си,ни,м, си,я,ни,е,м ,., ,конец передачи», кодированная соответствующими числами:143,160,164,160, 238 ,233,168,169, 32,225,

162,165,226,32,174,170,227,226,235,162,160,171,32,271,225,273,264,168,224,165,17

3,168,289, 293, 172,289,239,293,165,297,46,32,4.

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

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

Аналогичным образом, например, в

ходе

последовательного

поступления

первых сообщений одинарного типа

в

виде цифр 143,

160,164,160

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

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

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

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

25

последовательности текстов, сохраняющих достаточно высокую степень корреляции.

ЛИТЕРАТУРА

1.Прэтт У. Цифровая обработка изображений / Перевод с английского под редакцией Д.С. Лебедева.-М: Мир,1982.-Кн.1.-

312с.

2.Бернард Скляр. Цифровая связь:Теоретические основы и практическое применение. 2-е изд., исправл. / Перевод с английского под редакцией А.В. Назаренко.- М-Спб-Киев: Изд. дом “Вильямс”,2003.-1104с.

3.Быков Р.Е., Фрайер Р., Иванов К.В., Манцветов А.А. Цифровое преобразование изображений:Учебное пособие для вузов/ Под ред. проф. Р.Е. Быкова.-М: Горячая линия –Телеком, 2003.-228с.

4.Вернер М. Основы кодирования: Учебник для ВУЗов / Перевод с немецкого Д.К. Зигангирова.-М:Техносфера,2004.-288с.

5.Сэломон Д. Сжатие данных, изображений и звука: Учебное пособие для ВУЗов/ Перевод с английского В.В. Чепыжева.- М:Техносфера,2004.-368с.

6.Ричардсон Ян. Видеокодирование. H.264 и MPEG-4-стандарты нового поколения/ Перевод с английского В.В. Чепыжева.- М:Техносфера,2005.-368с.

7.Морелос-Сарогоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы , применение/ Перевод с английского В.Б. Афанасьева.- М:Техносфера,2005.-320с.

26

 

Содержание

 

1

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

3

1.1.

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

3

1.2.

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

3

1.3.

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

5

1.4.

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

7

2.

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

7

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

7

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

 

по Хаффману

8

2.3.

Избыточность кодирования по Хаффману

11

3.

Арифметическое кодирование

12

3.1.

Особенности арифметического кодирования

12

3.2.

Реализация арифметического кодирования на передающей стороне 12

3.3.

Декодирование на приѐмной стороне

15

3.4.

Оценка эффективности арифметического кодирования

16

4.

Кодирование текстовых сообщений

17

4.1.

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

17

4.2.

Вариант кодирования LZ77

18

4.3.

Вариант кодирования LZ78

20

4.4.

Вариант кодирования LZW

23

5.

Литература

26

27