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

Теория передачи сигналов (2 часть)

.pdf
Скачиваний:
18
Добавлен:
17.02.2021
Размер:
4.75 Mб
Скачать

Статистическое кодирование источника при группировании символов

При кодировании блоков, содержащих по две буквы, получим коды:

 

 

 

Кодовые

 

 

 

 

комбинации

 

Блоки

Вероятности

 

 

 

 

 

номер разбиения

 

 

 

 

 

 

 

 

 

 

1

 

2

 

3

 

 

 

 

 

 

 

b11а1

0.81

0

 

 

 

 

 

 

 

 

 

 

 

b21а2

0.09

1

 

0

 

 

 

 

 

 

 

 

 

b32а1

0.09

1

 

1

 

0

 

 

 

 

 

 

 

b42а2

0.01

1

 

1

 

1

 

 

 

 

 

 

 

31

Статистическое кодирование источника при группировании символов

Так как буквы первичного алфавита статистически не связаны, вероятности блоков определяют как произведение вероятностей. Среднее число двоичных символов на блок:

ср = 1 1 + 2 2 + 3 3 + 4 4

ср = 0.81 ∙ 1 + 0.09 ∙ 2 + 0.09 ∙ 3 + 0.01 ∙ 3 = 1.29 бит/блок

На букву первичного алфавита приходится 1.29/2 = 0.645 бит. Остаточная избыточность после кодирования :

 

=

ср

=

0.645 − 0.47

= 0.27 − или 27%.

 

 

ост

 

ср

0.645

 

 

 

 

Эффективность кодирования повысилась.

32

Статистическое кодирование источника при

группировании символов

Кодирование блоков, содержащих по три знака, даёт ещё больший эффект:

 

Вероятно

 

кодовые комбинации

 

Блоки

сть

 

 

номер разбиения

 

 

 

Pi

1

2

 

3

 

4

5

b11а1а1

0.729

0

 

 

 

 

 

 

b22а1а1

0.081

1

0

 

0

 

 

 

b31а2а1

0.081

1

0

 

1

 

 

 

b41а1а2

0.081

1

1

 

0

 

0

 

b52а2а1

0.009

1

1

 

0

 

1

 

b62а1а2

0.009

1

1

 

1

 

0

 

b71а2а2

0.009

1

1

 

1

 

1

0

b82а2а2

0.001

1

1

 

1

 

1

1

8

ср = = 1.66 бит/блок

=1

33

Статистическое кодирование источника при группировании символов

Среднее число двоичных символов на букву первичного алфавита: 1.66/3=0.55.

Остаточная избыточность после кодирования с группировкой по три символа в блоке:

 

=

ср

=

0.55 − 0.47

= 0.14 − или 14%.

 

 

ост

 

ср

0.55

 

 

 

 

Эффективность кодирования в два раза лучше, чем после группировки по два символа в блоке.

34

Префиксные коды

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

Более целесообразно обеспечить однозначное декодирование без введения дополнительных символов.

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

35

Префиксные коды

Код

a1

a2

a3

a4

00

01

101

100

 

 

 

 

декодируется однозначно:

100

00

01

101

101

101

00

 

 

 

 

 

 

 

a4

a1

a2

a3

a3

a3

a1

36

Префиксные коды

Последовательность комбинаций не префиксного кода имеет вид:

a1

a2

a3

a4

00

01

101

010

 

 

 

 

(комбинация 01 является началом комбинации 010). Может быть декодирована по-разному:

00

01

01

01

010

101

 

 

 

 

 

 

a1

a2

a2

a2

a4

a3

37

Префиксные коды

00

010

101

010

101

 

 

 

 

 

a1

a4

a3

a4

a3

или

00

01

010

101

01

01

 

 

 

 

 

 

a1

a2

a4

a3

a2

a2

38

НЕРАВЕНСТВО КРАФТА

Теорема. Если целые числа q1 ..., qi, ..., qn удовлетворяют неравенству:

2≤ 1,

=1

то существует код, обладающий свойством префикса с двоичным алфавитом, длины кодовых слов в котором равны этим числам.

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

39

НЕРАВЕНСТВО КРАФТА

С помощью неравенства Крафта определяется число двоичных символов, приходящихся на букву алфавита для того, чтобы код был префиксным.

A X

1/2

B

XX

1/4

2−1 + 2−2 + 2−3 + 2−4 + 2−4

 

 

 

C

XXX

1/8

 

D

XXXX

1/16

 

E

XXXX

1/16 Сумма даёт 1.

Т.е. количество символов для кодирования 5 букв выбрано правильно.

40