Лабораторная работа “Исследование эффективности алгоритмов сжатия цифрового факсимильного сигнала”

# Лабораторная работа

## “Исследование эффективности алгоритмов сжатия цифрового факсимильного сигнала”

1. Цель работы

На примере сжатия двух строк двухградационного изображения оценить эффективность следующих алгоритмов:
1. Кодирование длин серий (КДС);
2. Адресно-позиционное кодирование (АПК);
3. Оптимальный неравномерный код Хаффмана (ОНК).

2. Задание на лабораторную работу

2.1. Подготовка к работе

Закодировать в соответствии с заданным вариантом две строки двухградационного изображения, используя алгоритмы КДС, АПК и ОНК.

2.2. Задание по расчетной части.

Оценить эффективность алгоритмов сжатия.
Для оценки алгоритмов сжатия используется коэффициент сжатия, вычисляемый по формуле k=N/Nсж, где N - число элементов на тестовом изображении, а Nсж - число двоичных разрядов для представления сжатого изображения (с учетом служебных кодовых комбинаций).

3. Методические указания к выполнению
расчетной части

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

## Алгоритм кодирования длин серий

При кодировании по этому методу двухуровневый факсимильный сигнал от каждой строки развертки разбивается на отдельные элементы - дискретизируется. Элементам белого приписывается значение логического нуля, а черного единицы. Для метода КДС назначаются mб и mч - длины равномерных кодов, используемых для кодирования длин серий белого и черного соответственно. При этом учитывается, что, как правило, длины черных участков изображения короче белых.

Рассмотрим пример. Пусть длины белых участков кодируются пятиэлементными кодовыми комбинациями, т.е. mб = 5 и одной кодовой комбинацией можно представить до 31 элементов сигнала, а отрезки черного – трехэлементными, т.е. mч = 3 и одной кодовой комбинацией можно представить до семи элементов сигнала.

Считается, что все строки изображения начинаются с белой серии. Если строка изображения начинается с черной серии, то передаваемая строка должна начинаться белой серией с длиной 0.

Для определения начала закодированной строки передается служебная комбинация (код начала строки - КНС). Эта кодовая комбинация должна быть уникальной, т.е. такая комбинация не должна присутствовать внутри закодированной строки и быть минимально избыточной. Для данного примера это может быть комбинация из восьми нулей.

При кодировании белого различают отрезки: меньше 31 элемента изображения; больше, но не кратные 31 элементу; равные или кратные 31 элементу. В первом случае отрезки кодируются пятиэлементными кодовыми комбинациями. Во втором случае длина отрезка кодируется несколькими пятиэлементными комбинациями, причем все они, кроме последней, состоят из одних единиц. В третьем случае длина отрезка кодируется одной или несколькими пятиэлементными комбинациями, состоящими из одних единиц, и для определения окончания белого передается служебная кодовая комбинация из пяти нулей.

При кодировании черного различают отрезки: меньше 7 элементов изображения; больше, но не кратные 7 элементам; равные или кратные 7 элементам. Они кодируются так же, как и отрезки белого, но при этом используются не пяти, а трехэлементные кодовые комбинации.

## Алгоритм адресно-позиционного кодирования

При кодировании двухградационных изображений возможны новые значения двух типов: переход из белого в чёрное и переход из чёрного в белое. Координата элемента с новым значением яркости отсчитывается относительно начала строки изображения и представляется двоичным числом (код нового значения, КНЗ). Для безошибочного восстановления изображения по сжатым данным необходимо в начале закодированной строки указать признак (код) её начала (код начала строки, КНС) и значение яркости первого элемента строки (код яркости первого элемента, КЯПЭ):

[КНС] [КЯПЭ] [КНЗ] [КНЗ] . . . [КНЗ]

При равномерном кодировании длина кода для кодирования КНЗ будет определяться из условия, что элемент с новым значением яркости может находиться в конце строки. Таким образом, длина двоичного кода k = log2N, где N - число элементов изображения на строке.

Кодовая комбинация для обозначения КНС должна быть уникальной, т.е. такая комбинация не должна присутствовать среди возможных комбинация для кодирования новых значений яркости (КНЗ). КЯПЭ может быть представлен одним двоичным разрядом: 0, если строка начинается с белой серии; 1, если строка начинается с черной серии.

## Алгоритм оптимального неравномерного кодирования

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

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

В таблицах 1/T.4 и 2/T.4 , приведенных ниже, заданы два вида кодов:
• Завершающие коды — заданы с 0 до 63 с шагом 1 (табл. 1/Т4);
• Начальные коды — заданы с 64 до 1728 с шагом 64, они используются, если длина серии превышает 63 (табл. 2/Т4).

Приведенные таблицы построены с помощью классического алгоритма Хаффмана (отдельно для длин черных и белых серий). Значения вероятностей появления для конкретных длин серий были получены путем анализа большого количества факсимильных изображений.

Каждая строка изображения сжимается независимо. Считается, что все строки изображения начинаются с белой серии. Если строка изображения начинается с черной серии, то такая строка передается, начиная с белой серии длиной 0. Каждая строка завершается кодом EOL – 000000000001. Это – специальное кодовое слово, которое никогда не появляется в действительной строке изображения. Кроме того, эта кодовая комбинация передается перед первой строкой страницы документа.

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

Длина серий в диапазоне от 0 до 63 элементов изображения кодируется соответствующим завершающим кодовым словом (таблица 1/T.4).

Длина серий в диапазоне от 64 до 1728 элементов изображения кодируется сперва начальным кодовым словом (таблица 2/T.4), представляющим длину серии, которая равна или короче требуемой. Затем следует завершающее кодовое слово (таблица 1/T.4), представляющее разность между реальной длиной серии и длиной серии, представленной начальным кодом.

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

Поскольку черные и белые серии чередуются, то реально код для белой и код для черной серии будут работать попеременно.

4. Содержание отчета

1. Результаты обработки двух тестовых строк алгоритмами КДС, АПК и ОНК и коэффициенты сжатия. Сравнительная оценка эффективности алгоритмов.

2. Выводы о степени разрушения информации при воздействии помех на сжатые данные.

Литература

Щелованов Л.Н. Системы факсимильной связи. Учеб. пособие / ЛЭИС. - Л., 1991.