Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 Эфф.код рус.docx
Скачиваний:
2
Добавлен:
09.09.2019
Размер:
45.37 Кб
Скачать

Лабораторная работа 2.3 исследование алгоритмов эффективного кодирования дискретных источников сообщений

1 Цель работы

1.1 Изучение информационных характеристик источника дискретных сообщений и принципов эффективного кодирования сообщений.

1.2 Изучение алгоритмов и исследование особенностей эффективного кодирования Хаффмана и Шеннона-Фано.

2 Ключевые положения

2.1 Информационные характеристики источника дискретных сообщений.

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

Таким образом, количество информации I(a) в сообщении a с вероятностью его появления P(a) определяется как

Логарифмическая мера обладает свойством аддитивности (количество информации, которое содержится в нескольких независимых сообщениях равно сумме количества информации каждого сообщения). Т.к. 0 < P(a) 1, то величина I(a) является неотрицательной и конечной. Если P(a) = 1, то количество информации равно нулю (сообщение об известном событии никакой информации не несет).

Единицы измерения количества информации зависят от выбора основания логарифма. Обычно используют основание логарифма k = 2. В этом случае информация измеряется в двоичных единицах (дв. ед.), или битах (1 бит определяется как количество информации в сообщении, вероятность которого P(a) = 0,5).

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

Энтропия источника H(A) – это среднее количество информации в одном знаке (измеряется в бит/знак). Таким образом, среднее количество информации определяется как математическое ожидание для MA независимых знаков

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

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

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

. (3)

В общем случае для энтропии справедливо выражение .

Очень часто . Тогда дв. ед. /знак. Следовательно, при передаче информации двоичными символами, каждый символ не может переносить более чем 1 дв. ед.

Избыточность источника характеризует уменьшение энтропии источника по сравнению с максимальной энтропией. Основные причины избыточности:

- различные вероятности отдельных знаков;

- наличие статистических связей между знаками источника.

Количественно избыточность источника оценивается коэффициентом избыточности

Производительность источника Rи, бит/с – это среднее количество информации, которое выдает источник в единицу времени

где Tср – средняя длительность одного знака и определяется как

где Ti – длительность i-го знака.

2.2 Алгоритмы эффективного кодирования сообщений.

Согласно с теоремой кодирования Шеннона для канала без помех дискретный источник сообщений с алфавитом A = {a1, a2,…, ak,} и вероятностями сообщений P(a1), P(a2),…, P(ak) может быть закодирован эффективным префиксным кодом таким образом, что

(7)

где – средняя длина кодовых комбинаций и определяется как

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

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

Для оценки эффективности выбранного метода кодирования вводится понятие эффективность кодирования

Также можно рассчитать коэффициент сжатия по сравнению с равномерным кодом

где – минимальное целое число, при котором выполняется равенство-неравенство.

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

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

Алгоритм Хаффмана. Используется для кодирования независимых знаков. В начале алгоритма Хаффмана должна быть таблица частот (вероятностей) знаков в сообщении. На основании этой таблицы строится дерево кодирования Хаффмана по следующему алгоритму:

1. Все знаки располагаются в порядке убывания их вероятностей сверху-вниз (каждому соответствует свой узел дерева).

2. Два знака с наименьшими вероятностями ветками объединяются в составной знак с суммарной вероятностью объединяемых знаков (далее два участвовавших в объединении знака не рассматриваются, а составной знак рассматривается наравне с остальными).

3. Одной ветке, например верхней, присваивается символ “1”, другой ветке – “0” (или наоборот).

4. Шаги, начиная со второго, повторяются до тех пор, пока в списке знаков не останется только один. Он и будет считаться корнем дерева.

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

Пример 1. Задан источник дискретных сообщений с объемом алфавита MA = 6 с вероятностями знаков: P(А)=0,3; P(Е)=0,25; P(В)=0,22; P(Г)=0,1; P(Д)=0,08; P(Б)=0,05. Построить дерево кодирования Хаффмана и определить кодовые комбинации знаков сообщения.

Построим дерево кодирования Хаффмана

Рисунок 1 – Дерево кодирования Хаффмана

На основании кодового дерева запишем соотствующие знакам кодовые комбинации: А – 11; Е – 10; В – 00; Г – 010; Д – 0111; Б – 0110.

Алгоритм Шеннона-Фано. Также используется для кодирования независимых знаков. В начале алгоритма Шеннона-Фано должна быть таблица частот (вероятностей) знаков в сообщении.

1. Все знаки располагаются в порядке убывания их вероятностей сверху-вниз.

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

3. Всем знакам верхней подгруппы присваивается “0”, нижней – “1”.

4. Шаги, начиная со второго (применительно к образовавшимся подгруппам), повторяются до тех пор, пока в подгруппах останется по одному знаку.

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

Пример 2. Задан источник дискретных сообщений с объемом алфавита MA = 6 с вероятностями знаков: P(А)=0,3; P(Е)=0,25; P(В)=0,22; P(Г)=0,1; P(Д)=0,08; P(Б)=0,05. Построить таблицу разбиений на подгруппы по алгоритму Шеннона-Фано и определить кодовые комбинации знаков сообщения.

В таблице 1 проиллюстрируем принцип алгоритма Шеннона-Фано.

Таблица 1 – алгоритм Шеннона-Фано

Знак

ai

Вероятность P(ai)

Подгруппы

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

I

II

III

IV

А

0,3

0

0

00

Е

0,25

1

01

В

0,22

1

0

10

Г

0,1

1

0

110

Д

0,08

1

0

1110

Б

0,05

1

1111

Недостатки алгоритмов Хаффмана и Шеннона-Фано:

- если до начала кодирования сообщений не известны вероятности знаков, то требуется два прохождения по передаваемой последовательности: одно для составления таблицы вероятностей и кода, второе для кодирования;

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

- для двоичного источника сообщений с энтропией меньше 1 непосредственное применение кода Хаффмана/Шеннона-Фано не дает эффекта;

- избыточность закодированного сообщения равна нулю только в случае, когда вероятности кодируемых знаков являются целыми отрицательными степенями двойки (1/2; 1/4; 1/8 и т.д).

В большинстве случаев, средняя длина кодовой комбинации при сжатии методом Шеннона-Фано такая же, как и при сжатии методом Хаффмана. Но существуют случаи, когда в отличие от метода Хаффмана, кодирование методом Шеннона-Фано не будет оптимальным.