Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / ВСЕ ВОПРОСЫ.DOC
Скачиваний:
95
Добавлен:
13.02.2014
Размер:
276.48 Кб
Скачать

4. Основные принципы эффективного кодирования.

Задачей эффективного кодирования является передача макс-но возможного количества информации в единицу времени путем минимизации числа элементов кода, приходящихся на одну кодовую комбинацию. Как следует из теории Шеннона к величине минимальной средней длинны слова lср.min можно приблизится сколь угодно близко.Средняя длинна кодовых слов может быть выражена с учетом вероятностей использования элементов данного алфавита: Iср=i=1NΣpi(Ai)ni, где рi – вероятность использования соответствующего Аi элемента, ni – число элементов в i-ой кодовой комбинации, N – объем алфавита.

В случае использования равновероятных кодов (когда вероятности всех элементов кода одинаковы) и при использовании комплектных (равномерных) вариантов кода (когда число символов в комбинации одинаково) lср=n, где n–кодовая комбинация.

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

1) длину кодовых комбинаций n: необходимо выбрать обратно пропорциональной вероятности использования соответствующего элемента алфавита Аi: ni ~ 1/Pi(Ai)

2) Начало более длинного слова не должно совпадать с более коротким – чтобы исключить разделительные знаки;

3) В длинной последовательности символов элементы кода должны быть независимыми и равновероятны.

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

5. Эффективное кодирование по алгоритму Шеннона-Фана

Методику получения бинарного кода близкого к эффективному впервые разработали независимо друг от друга два американских ученых.

Этот код построен по следующему алгоритму:

  1. все символы используемого алфавита записывают (располагают) в порядке их вероятностей;

  2. полученную последовательность разбивают на две группы таким образом, чтобы суммы вероятностей элементов в каждой группе были приблизительно равны;

  3. всем знакам первой группы в качестве первого цифрового символа присваивается значение 0(1), а всем элементам второй группы 1(0);

  4. полученные группы знаков снова разбивают каждую на две подгруппы по указанному выше принципу;

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

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

Этот алгоритм применим также и для небинарных кодов (при q2). В этом случае используемый алфавит разбивают на q частей примерно равной суммарной вероятности.

Сущность алгоритма можно проиллюстрировать с помощью графокодирования. Построить самостоятельно. Важным свойством кода является отсутствие трудностей в определении границ кодовых комбинаций. Коды, обладающие таким свойством, называют неприводимыми. Код Шеннона – Фано неприводимый, т.к. он префиксный.

Соседние файлы в папке лекции