Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
text4.doc
Скачиваний:
6
Добавлен:
03.08.2019
Размер:
2.27 Mб
Скачать

4.3. Кодирование для стационарных источников с памятью

Для источника с памятью вероятность появления сообщения зависит от того, какие сообщения были перед этим. Для повышения эффективности кодирования применим метод укрупнения алфавита. Статистические связи между символами укрупненного алфавита источника слабее, чем между символами исходного алфавита. Пренебрегая статистической взаимосвязью символов укрупненного алфавита, для кодирования в этом алфавите можно применить методы п. 4.2. Энтропию блока из символов от стационарного источника найдем, используя (2.13). С увеличением числа символов степень неопределенности сообщения (количество информации в расчете на символ ) не возрастает. Последовательность символов кодируем префиксным кодом Хаффмена переменной длины. Среднее число кодовых символов на блок из символов . Разделив обе части этого неравенства на , получим границы для среднего числа кодовых символов на символ исходного алфавита источника: . В пределе можно приблизить как угодно близко к :

(4.6)

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

4.4. Алгоритм Лемпела-Зива

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

Алгоритм кодирования Лемпела-Зива относится к классу универсальных алгоритмов кодирования источника. Этот алгоритм переменно-фиксированной длины не зависит от статистики источника. В алгоритме Лемпела-Зива последовательность символов источника делится на блоки переменой длины - фразы. Каждая новая фраза - последовательность символов источника, отличная от предыдущей фразы в последнем символе. Фразы перечислены в словаре, сохраняющем расположение существующих фраз. Кодируя новую фразу, находят адрес существующей фразы в словаре, и в конец добавляют новый символ.

Пример 4.4.1. Рассмотрим бинарную последовательность источника , деление которой дает фразы . Каждая фраза последовательности – соединение одной из предыдущих фраз с новым выходным символом источника. Для кодирования фраз формируют словарь (см. табл. 4.2 ). Ячейки памяти словаря пронумерованы последовательно, начиная с и далее. В данном случае – до (числа фраз в последовательности). Номера ячеек записаны в двоичной системе счисления. Фразы источника по мере поступления последовательно размещаются в ячейки словаря. Кодовые слова отдельных фраз состоят из х частей:

1) двоичный номер ячейки словаря, где помещена предыдущая закодированная фраза, отличная от кодируемой лишь в последнем символе;

2) новый символ источника, добавляемый в конец к первой части. Начальный номер ячейки нужен для кодирования пустой фразы. Декодер источника создает такую же таблицу в приемнике для декодирования принятой последовательности.

Таблица 4.2. Словарь для алгоритма Лемпела-Зива

№ ячейки

Двоичный адрес ячейки

Фразы (в порядке поступления)

Кодовое слово

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

1

0

10

11

01

00

100

111

010

1000

011

001

110

101

10001

1011

00001

00000

00010

00011

00101

00100

00110

01001

01010

01110

01011

01101

01000

00111

10101

11101

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

Алгоритм Лемпела-Зева широко применяется при сжатии компьютерных файлов. Сжимающие и разжимающие программы (утилиты) в операционных системах и являются реализацией различных версий этого алгоритма.

40

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