
МИНИСТЕРСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ
ПО СВЯЗИ И ИНФОРМАТИЗАЦИИ
Московский технический университет связи и информатизации
Кафедра Мультимедийных Сетей и Услуг Связи
Лабораторная работа №
Эффективное кодирование и цифровое представление изображений
Москва 2010
_____________________________
Лабораторная работа №
Эффективное кодирование и цифровое представление изображений
Составители: А.В. Гузеев, старший преподаватель
В.В. Морозов, ассистент
Разработчик программного обеспечения: А.В. Гузеев
______________________________________________
______________________________________________
______________________________________________
Рецензент:_____________________________________
Цель работы
Изучение основ цифрового представления полутоновых и бинарных изображений;
Изучение алгоритма построения эффективных кодов Хаффмана по длинам кодов, использующегося в современных стандартах кодирования изображений (T.81,T.800);
Изучение методов оценки эффективности алгоритмов сжатия;
Исследование упрощенного алгоритма эффективного кодирования полутоновых и бинарных изображений.
Домашнее задание
Изучить алгоритм построения кодов Хаффмана по длинам кодов;
Найти длины кодов для всех символов алфавита генерируемого источником, который содержит, последовательно записанные через пробел, Ваши фамилию, имя и отчество;
Построить список счетчиков длин кодов;
Сформировать кодовые комбинации по изученному алгоритму для найденного списка длин кодов;
Определить значение средней длины кодовой комбинации
, энтропии
и максимальной энтропии
;
Определить значения коэффициентов относительной эффективности
и сжатия
;
Закодировать свои фамилию, имя и отчество, записанные через пробел, сформированными кодовыми последовательностями. Объяснить использование свойства префиксности при декодировании полученной кодовой последовательности.
Краткая теория Цифровое представление изображений
Все цифровые изображения можно разбить на два больших класса: векторные цифровые изображения и растровые цифровые изображения.
Для векторного представления изображения характерно разбиение графического образа, содержащегося в этом изображении, на графические примитивы (линии, окружности, эллипсы, многоугольники и т.д.). Графические примитивы задаются координатой некоторой точки, принадлежащей этому примитиву и характеризующей его положение на плоскости изображения, и параметрами графического примитива, характеризующими его форму, размер и ориентацию (например, для квадрата это может быть координата любого угла, размер стороны и угол поворота). По этой причине, при сильном увеличении изображения при просмотре, векторные изображения остаются предельно четкими.
Для растровых цифровых изображений последнее утверждение не справедливо. Если у векторных изображений задаются параметры для каждого графического примитива, то у растровых изображений задаются параметры для каждой точки на плоскости изображения. Такая точка называется единичный элемент изображения или пиксель (от английского pictureelement). На первый взгляд, кажется, что задать каждую точку на изображении это гораздо более сложная задача, чем задание графических примитивов, но это совсем не так. Во-первых, графические примитивы отличаются большим разнообразием видов и различным количеством параметров для каждого вида, что вызывает определенные трудности для их описания некоторым двоичным кодом (т.е. для представления в цифровой форме). Во-вторых, разбить изображение на совокупность графических примитивов – далеко не тривиальная задача, поэтому область применения векторной графики сильно ограничена, в основном это искусственно созданные изображения (например, деловая графика). Изображения реального мира (фотографии и др.) являются растровыми. Конечно, можно нарисовать лицо человека в виде эллипса с глазами – кругами внутри и ртом – линией, но это будет очень грубое приближение. Растровое изображение дает настолько точное приближение, что человек может не заметить разницы, если не будет специально искать её.
Растровые изображения получаются в результате процесса АЦП (аналого-цифровое преобразование). Сначала оригинал сканируется или фотографируется, количество светочувствительных датчиков в устройстве определяет разрешающую способность системы (измеряется вdpi,dot-per-inchили в точках на дюйм), на этом этапе происходит дискретизация образа оригинала. Затем происходит квантование каждой точки-отсчета; количество уровней квантования зависит от характеристик и назначения системы; остановимся на 3 основных вариантах: 2 уровня, 256 уровней и 16777216 уровней. Так как каждая точка изображения может принимать значение одного из возможных уровней квантования, то для возможности отличать один уровень от другого, соответственно, будем иметь 1 бит, 8 бит или 24 двоичных разряда (бита) на точку. Эта величина называется глубиной цветопередачи изображения и, в зависимости от её значения, будем различать черно-белые, полутоновые и цветные растровые изображения соответственно.
Итак, для черно-белых изображений, каждая точка кодируется одним битом, который может принимать значение «0», если точка белая и значение «1», если точка черная.
Для полутоновых изображений, каждая точка может принимать одно из 256 различных значений, которым соответствуют оттенки серого цвета (полутона или уровни) от полностью черного (значение «0»), до полностью белого (значение «255»). Так, как каждая точка полутонового изображения кодируется 8 битами, а каждая точка черно-белого изображения – 1 битом, то можно представить полутоновое изображение совокупностью восьми черно-белых изображений, которые будут называться плоскостями. Чем меньше номер плоскости, тем старше биты полутонового изображения, которые она представляет. Если изменить значение пиксела на плоскости с номером 1, то значение пиксела полутонового изображения изменится на 128 полутонов, если изменить значение пиксела на плоскости с номером 2, то на 64 полутона и т.д. Изменение одного пиксела на 8 плоскости поменяет значение пиксела полутонового изображения только на 1 полутон, иными словами на соседний. Однако для человеческого глаза такое различие является крайне не существенным. Убедится в этом, можно, проведя несложный эксперимент в любом современном графическом редакторе.
Наконец, цветные изображения кодируются 24 битами на пиксел, однако это значение нельзя воспринимать как номер одного из 16777216 различных уровней. Это значение разделяется на 3 подряд записанных числа, на каждое из которых отводится по 8 бит. Первое число кодирует красную компоненту (Red), второе – зелёную (Green) и третье – синюю (Blue), это, так называемая,RGBмодель представления цветов, когда любой цвет можно представить тремя перечисленными цветами, «смешанными» в нужной пропорции. Существуют и другие модели представления цветов, а также формулы пересчета значений для перехода из одной модели в другую. Таким образом, цветное изображение в модели представления цветовRGB, состоит из трех цветовых плоскостей, каждая из которых кодируется как полутоновое изображение, т.е. по 8 бит на один пиксель.
В настоящей лабораторной работе используется разложение полутонового изображения на 8 черно-белых плоскостей, которые, затем, сжимаются отдельно друг от друга. Исследуются зависимости коэффициента сжатия и энтропии от характера черно-белого изображения.