Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Эффективное кодирование, назначения, способы реализации, основные ограничения



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

Для кодирования символов исходного алфавита используют двоичные коды переменной длины: чем больше частота символа, тем короче его код. Эффективность кода определяется средним числом двоичных разрядов для кодирования одного символа – lср по формуле

где k – число символов исходного алфавита;

ns – число двоичных разрядов для кодирования символа s;

fs – частота символа s; причем

При эффективном кодировании существует предел сжатия, ниже которого не «спускается» ни один метод эффективного кодирования - иначе будет потеряна информация. Этот параметр определяется предельным значением двоичных разрядов возможного эффективного кода – lпр:

где n – мощность кодируемого алфавита,

fi – частота i-го символа кодируемого алфавита.

Существуют два классических метода эффективного кодирования: метод Шеннона-Фано и метод Хаффмена. Входными данными для обоих методов является заданное множество исходных символов для кодирования с их частотами; результат - эффективные коды.

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

1. Сворачивание кода.

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

2. Разворачивание кода.

Одному символу приписываем код 0, а другому 1. Каждый символ разбивается на две последовательности в порядке, обратном порядку сворачивания кода. Эту операцию повторяют итеративно для каждой из полученных двух последовательностей до тех пор, пока имеется последовательность, состоящая более чем из одного символа. При этом кодовая комбинация каждой дочерней последовательности получается путём приписывания к кодовой комбинации родительской последовательности символа 0 или 1 справа.


 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.