Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СДЭ / Описание работы.doc
Скачиваний:
48
Добавлен:
27.04.2015
Размер:
487.42 Кб
Скачать

Оценка эффективности кодирования

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

Для оценки эффективности неравномерных кодов используется коэффициент относительной эффективности , гдеэто энтропия источника с алфавитом, имеющим объемNзнаков, равная среднему количеству информации, приходящемуся на один знак на выходе источника и измеряющаяся в битах. Здесь- вероятность появленияi-го символа изNразличных символов алфавита источника, асредняя длина кодовой комбинации. Отношение среднего числа двоичных символов, приходящихся на один знак алфавита, при кодировании заданного источника неравномерным кодом к длине кодовой комбинации в случае кодирования источника равномерным кодом называется коэффициентом сжатия. Однако коды Хаффмана для своего декодирования используют некоторую служебную информацию, поэтому, рассчитывая коэффициент сжатия, необходимо учитывать это. Следующая формула иллюстрирует сказанное:, где- объем служебной информации;- объем полезной информации;V– объем исходных данных.

В качестве равномерного кода для цифрового представления текстовой информации используются коды ASCII. Таблицы кодов символовASCIIсодержат десятичные и шестнадцатеричные представления расширенногоASCII(AmericanStandardsCommitteeforInformationInterchange) набора символов. Расширенный наборASCIIсимволов включает в себя набор символовASCIIи 128 других символов, для представления графики и рисования линий, часто называемых набором символовIBM. Кроме того, существуют расширения кодовASCIIдля представления символов национальных алфавитов, называемые кодовыми страницами или кодировками. Для русского языка существует две кодовые страницы с номерами 866 (DOSкодировка) и 1251 (Windowsкодировка). Все названные таблицы приведены в приложении. Для представления каждого символаASCIIкодом необходимо 8 бит, т.е. длина кодовой комбинации в этом случае равна 8.

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

Кодирование изображения представленного совокупностью блоков размера w*hосуществляется сопоставлением каждому типу блока кодовой комбинации кода Хаффмана. Код Хаффмана построен для распределения вероятностей типов блоков встречающихся в кодируемом изображении. На рисунке 4 схематично показана структура файла для хранения изображения сжатого этим методом:

Рисунок 4 – Структура заголовка файла HFI

В верхней части рисунка указаны номера байтов начиная с 0. Для каждого байта номер поставлен в его начале и в конце. Первые 3 байта используются для кодирования формата файла (каждый байт содержит символ в ASCIIкоде), в данном случае это символы hfi. Следующие два поля содержат ширину и высоту кодируемого изображения, каждое поле занимает два байта, т.о. максимальная высота\ширина равняетсяпикселей. Затем два поля по одному байту для ширины и высоты блока (т.е. максимальное значение этих полей 255). Для декодирования изображения необходимо знать соответствие типа блока и кода Хаффмана, для этого предназначены полясписок блоковисписок счетчиков длин. Т.к. указанные поля имеют переменную величину, то необходимо сохранять размер для каждого из них – поляразмер списка блоковиразмер списка счетчиков длинсоответственно. Кроме того, размер блоков в списке может быть не кратен восьми, поэтому может присутствовать дополнительное поле в конце списка блоков для выравнивания на границу байта. Максимальный размер этого поля семь бит. Полезная нагрузка также выравнивается на границу байта.

Итак, служебная информация будет рассчитываться по следующей формуле:

, байт.

Здесь - длина списка счетчиков,- мощность алфавита источника, скобки обозначают округление до целого в большую сторону после деления.

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

, байт.

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