Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции в текстовом формате / 2_3 Статистическое кодирование.doc
Скачиваний:
5
Добавлен:
28.12.2023
Размер:
139.78 Кб
Скачать

Статистическое эффективное кодирование. (Использование при передаче и хранении).

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

Кодирование, учитывающее статистические особенности источника сообщений называется статистическим (эффективным) кодированием.

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

  1. при заданной статистике сообщений {Pi}формировать кодовые комбинации, допускающие V(X)  C

  2. возможность однозначного декодирования сигналов на приемной стороне

Для двоичного канала с отсутствием статистических связей между символами этим требованиям удовлетворяет код Шеннона-Фано.

Известно, что V  C выполняется при равной вероятности появления различных сообщений.

В соответствии с этим, построение кода выполняется по следующей последовательности:

А) все буквы алфавита выписывают столбцом в порядке убывания вероятности;

Б) столбец последовательно делят на группы с приблизительно равной суммарной вероятностью.

При этом:

  • верхней половине  «0»;

  • нижней половине  «1»;

В качестве примера рассмотрим алфавит сообщений из 8 букв (для С = 3000 дв.ед./с)

Pi

Эффективное кодирование

Равномерное кодирование

1

2

3

4

5

6

7

8

1

2

3

Z1

½

0

0

0

0

Z2

¼

1

0

0

0

1

Z3

1

1

0

0

1

0

Z4

1⁄₁₆

1

1

1

0

0

1

1

Z5

1⁄₃₂

1

1

1

1

0

1

0

0

Z6

1⁄₆₄

1

1

1

1

1

0

1

0

1

Z7

1⁄₁₂₈

1

1

1

1

1

1

0

1

1

0

Z8

1⁄₁₂₈

1

1

1

1

1

1

1

1

1

1

Особенности

В) Полученный код является неравномерным, т.к. длина кодовых комбинаций находится в обратной зависимости от их вероятности.

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

Оценим скорость передачи информации для методов:

а) статистического кодирования;

V = C *I /ср.

На передачу каждого сообщения в среднем требуется V = C/  1500 сообщ./с

8

ср. = Pi *i = 163/64 дв.разр. ср.= H(X)

i=1

8

H(X) = - Pi *log2Pi =163/64 бит/символ. Для C = 3000 дв.ед./с  V(Z) = 3000 бит/с;

i=1

б) равномерного кодирования;

Каждому сообщению требуется 3 двоичных разряда равн.= log2N, а каждое сообщение Zi содержит:

8

I(Z) = H(Z) = - Pi*log2Pi = 163/64 бит/сообщ.

i=1

Поэтому, при C = 3000 дв.ед./с имеем: V = 1000сообщ./с V(Z) = 1*1000 = 1984 бит/с

В рассмотренном примере получено:

V(Z) = C и Kотн. =1 -идеальный случай.

Это удалось получить благодаря тому, что в рассмотренном примере значения P(Zi) были заданы такие, что подгруппы точно делились пополам.

2. Введение в криптографию.

  1. Приближение V к C было осуществлено за счет:

“качественно” – наиболее часто передаваемые сообщения кодировались наиболее короткой длиной двоичных разрядов, и наоборот.

“количественно” – (более строго) за счет нового кодирования получено равномерное распределение i.

После кодирования сообщения, буквы алфавита Zi были заменены на значения двоичных разрядов j.

Рассмотрим вероятность появления значений j (двоичных разрядов) для статистического и равномерного методов кодирования.

Статистическое Равномерное

j 1 0 P0 = 15/16

1 P1= 1/16

Pj = 0  0,5 j   равенство  2 0 P0 = 51/64

Pj = 1  0,5 стремится к = 1 P1= 13/64

3 0 P0 = 87/128

1 P1= 41/128

1 231 2 3

явно неравномерное распределение

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

Рассмотрим следующий пример.

Источник вырабатывает сообщения, формируемые из трех независимых символов с вероятностями:

x1 P1= 0,65; x2 P2= 0,23; x3 P3= 0,12

  1. оценить эффективность применения равномерного и статистического способа кодирования

  2. каким образом можно добиться V = 0,99 *C, C = 1000 дв.ед./с

а) дв.равн.= [log2N] = [log23] = 2 дв.ед.

3

H(X) = Pi *log2Pi = 1,26 бит

i=1

V(X) = H(X)/ дв.равн.* C = 630 бит/с ; K = H(X)/ дв.равн.= 1,26/2 = 0,63

что соответствует 63% от С.

б) применим эффективное кодирование

Pi 12

X1 0,65  0

X 2 0,23  1 0

X3 0,12  1 1

3

При этом: дв.=Pi *дв.i= 1* 0,65 + 2* 0,23 + 0,12 *2 = 1,35 дв.ед.

i=1

Kотн.коэф.= 0,933

Причиной C > V(X) и Kотн. эфф. 1 при использовании эффективного способа кодирования является невозможность разбиения сообщений { Xi } на подгруппы с достаточно близкой вероятностью.