Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Максимова.doc
Скачиваний:
11
Добавлен:
01.04.2025
Размер:
20.86 Mб
Скачать
  1. Красильников Н.Н. Цифровая обработка изображений – М.: Вузовская книга, 2001. –320 с.

  2. Вельтмандер п.В.Учебное пособие "Архитектуры графических систем. Машинная графика" Книга 2

  3. Роуз а. Зрение человека и электронное зрение./ Перевод с английского под редакцией в.С.Вавилова. - м.: Мир, 1977

  4. Телевизионная техника. Справочник/Под общей редакцией Ю.Б.Зубарева и Г.Л.Глориозова. - М.: Радио и связь, 1994

  5. Netravali A.M., Haskell B.G. Digital pictures: Representation and Compression.:

  6. Plenuij Press, N.Y.,1991

  7. Ивенс P.M. Введение в теорию цвета. — М.: Мир, 1964. — 442 с.

  8. Айриг С., Айриг Э. Подготовка цифровых изображений для печати. -Минск: По­пурри, 1997.— 176 с.

Frame38

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

Frame39

Предлагается пройти тест для самоконтроля (Тест 8) на усвоение материала. А также ознакомится с программой (Программа 5 «Цветовая модель RGB») и выполнить предложенное в ней задание. Программа, написанная в среде Delphi, предназначена для получения навыков в создании программного кода по работе с графическими файлами и содержит исходный код с комментариями.

Frame40

9. Сжатие изображений

9.1. Основы сжатия изображений

Статистическая и визуальная избыточность изображений

Основные методы сжатия

9.2. Методы сжатия изображений без потерь

Информационная теорема

Статистическое кодирование

Словарное кодирование

Кодирование с предсказанием

9.3. Методы сжатия изображений с потерями

Дискретные ортогональные преобразования

Квантование коэффициентов преобразования

Кодирование коэффициентов преобразования

Другие методы интерполяционного и блочного кодирования

Стандарт JPEG

9.4. Фрактальное и вейвлетное сжатие изображений

Фрактальные методы кодирования изображений

Вейвлетное сжатие изображений

9.5. Краткое содержание темы (слайды)

9.6. Ссылки и литература для дальнейшего изучения

9.7. Курсовое проектирование

9.8. Задание

9.1. Основы сжатия изображений

Объём данных имеет большое значение не только для хранения, но также непосредственно влияет на скорость передачи данных по каналам вычислительных сетей. Поэтому были разработаны специальные методы (алгоритмы сжатия данных [data compression]), с помощью которых можно существенно уменьшить объём данных. Существуют как универсальные алгоритмы, которые рассматривают данные как простую последовательность битов, так и специализированные, которые предназначены для сжатия данных определённого типа (изображений, текста, звука и видео). Эффективность сжатия характеризуется коэффициентом сжатия, который определяется как отношение размера исходных данных к размеру сжатых. В некоторых случаях этот коэффициент достигает значения 10.

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

Коэффициент сжатия или степень сжатия (Compression Ratio) – это отноше­ние объема несжатых данных к объему сжатых данных.

, (9.1)

если , то сжатие считается эффективным.

Алгоритмы сжатия можно разделить на две категории: симметричные и асим­метричные. При симметричном сжатии время, затрачиваемое на кодирование и де­кодирование данных, примерно одинаково, а алгоритмы, применяемые при этом, дос­таточно близки. При асимметричном сжатии в одном направлении (обычно при коди­ровании) расходуется значительно больший объем машинного времени, чем в другом.

Сжатие без потерь (lossless) подразумевает, что восстановленные после сжа­тия данные будут полностью (с точностью до бита) идентичны исходным. Сжатие с потерями (lossy) применяется только для сжатия мультимедийной инфор­мации (в основном, изображений и звуковых файлов) и означает, что восстановленные после сжатия данные не будут соответствовать исходным. Обычно такое сжатие под­разумевает устранение невоспринимаемой человеком информации, но также исполь­зуется и визуальное загрубление изображения (внесение видимых артефактов) с це­лью получения максимального коэффициента сжатия.

Статистическая и визуальная избыточность изображений

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

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

визуальная (субъективная) избыточность, которую можно устранить с частичной потерей данных, мало влияющих на качество воспроизводимых изображений; это – информация, которую можно изъять из изображения, не нарушая визуально восприни­маемое качество изображений.

Основные методы сжатия

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

В последнем случае кодирование производится кодами переменной длины в зависимости от текущей статистики пикселей.

Различные варианты ДИКМ – кодирования с предсказанием – обеспечивают более эффективное сжатие изображений. Кодирование с предсказанием также может осуществляться неадаптивным (фиксированным) и адаптивным образом. При этом возможно повышение коэффициента сжатия изображения за счет использования условного замещения кодов, при котором, если ошибка предсказания меньше некоторой заданной величины, то она не передается. Более точно предсказание осуществляется с использованием задержанного кодирования, когда предсказанные значения определяются не только предыдущими, но и последующими пикселями.

Кодирование с преобразованием в настоящее время наиболее распространено. При этом используются различные унитарные преобразования – Фурье, Уолша-Адамара, Хаара, косинусное, синусное др. Для оценки возможностей использования унитарных преобразований при кодировании конкретных изображений применяется кодирование Карунена-Лоэва.

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

Статистическое кодирование обеспечивает сжатие изображений без потери информации. И, наконец, в классификационной таблице имеется колонка другие методы кодирования, в которой обозначены некоторые используемые методы обработки изображе­ний.

9.2. Методы сжатия изображений без потерь

Информационная теорема

Пусть имеется дискретизированное на MxN пикселей и квантованное с точно­стью К бит монохромное изображение. Следовательно, при импульсно-кодовой моду­ляции необходимо передать MNK бит информации.

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

Пусть квантованный уровень яркости b имеет вероятность Р(b) и ему присваивает­ся слово – код длины L(b) бит. Тогда средняя длина кода для всего изображения соста­вит

бит/пиксель

Нижняя граница величины определяется информационной теоремой и называется энтропией случайной величины:

бит/пиксель .

Таким образом, энтропия – это мера количества информации, которую несет случайная величина. H(B) 0, поскольку Р(b) [0,1]. Из формулы Н(В) вытекает, что чем более неравно­мерно распределение Р(b), тем меньше энтропия и тем эффективнее энтропийное ко­дирование.

Статистическое кодирование

Кодирование Шеннона-Фано

Первый известный метод эффективного кодирования символов известен как кодирование Шеннона-Фано. Он основан на знании вероятности каждого символа, присутствующего в сообщении. Зная эти вероятности, строят таблицу кодов, обладающую следующими свойствами:

  • различные коды имеют различное количество бит;

  • коды символов, обладающих меньшей вероятностью, имеют больше бит, чем коды символов с большей вероятностью;

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

Кодирование Хаффмана

Вышеперечисленными свойствами обладает алгоритм Хаффмана, основанный на элегантной и простой процедуре построения дерева вероятностей. Средняя длина слов находится в диапазоне: бит/пиксель и бит/пиксель, т.е. средняя длина слов не более чем на 1 бит/пиксель больше энтропии, но не менее 1 бит/пиксель (в предельном случае, когда энтропия равна нулю).

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

P(b0) = P(b5) = P(b6) = P(b7) = 0.06

P(b1)=0.23

P(b2)=0.30

P(b3)=0.15

P(b4)=0.08.

Дерево строится справа налево следующим образом (рис. 9.1, верхняя диаграмма):

  • в секции I уровни пикселей сортируются по вероятности от наибольшей к наименьшей сверху вниз; при равенстве Р(bi) = Р(bj) выше ставится уровень bi < bj;

  • в секции II две самые нижние ветви объединяются в узел, их вероятности складываются, и узел образует новую ветвь; общее количество ветвей уменьшается на одну и они вновь сортируются по вероятности от наибольшей к наименьшей;

  • в секциях III и IV и т.д. производятся операции, аналогичные проводимым в секции II до тех пор, пока не останется одна ветвь с вероятностью, равной 1.

Все это дерево можно перестроить (рис. 9.1, нижняя диаграмма), убрав пересечения. Кодирование осуществляется движением слева направо по дереву к каждому коди­руемому уровню bi. При этом на каждом узле коду приписывается, например, двоич­ный "0", если осуществляется шаг вверх и "1", если осуществляется шаг вниз.

Таким образом, для данного случая наиболее вероятные значения b1 и b2 кодируются двухбитовым кодом, величины b3 и b4 -трехбитовым кодом, а наименее вероятные значения b0,b5,b6 и b7 - четырехбитовым кодом (на рис. 9.1, нижняя диа­грамма, - указаны справа). Не трудно понять, что эти коды легко различимы:

- если второй бит кода является двоичным нулем, то код - двухбитовый; в противном случае количество бит в коде более двух;

- если третий бит кода является двоичным нулем, то код трехбитовый; в противном случае количество бит в коде равно четырем. Приемник декодирует информацию, используя то же самое дерево, двигаясь вверх при получении "0" и вниз при получе­нии "1". Средняя битовая скорость в данном случае бит/пиксель при энтро­пии Н = 2,68 бит/пиксель (т.е. практически совпадает с Н).

Используются неадаптивный и адаптивный варианты хаффмановского кодирования. В первом случае перед передачей сообщения передается таблица плотностей вероят­ностей, если она заранее неизвестна на приемной стороне. При адаптивном – таблица плотностей вероятностей вычисляется на передающей и на приемной стороне по мере поступления данных, при этом до начала кодирования предполагается равновероятное распределение уровней пикселей.

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

По этой причине при использовании, например, 8-ми битовой исходной информации об изображении, хаффмановское кодирование не позволит сжать информацию более 8-и раз.

В связи с этим применяются различные модификации неравномерного кодирования, позволяющие обеспечить более эффективное сокращение объема передаваемой ин­формации.

Рис. 3.1. Кодирование Хаффмана

Например, дальнейшее снижение битового потока возможно, если использовать блочное кодирование, т.е. если кодировать и передавать информацию блоками из N пикселей, которые можно представить как компоненты вектора

При достаточно больших N возможно (хотя и не всегда практично из-за большого объёма вычислений), кодировать поблочно и получать битовый поток, максимально отличающийся от энтропии первого порядка Н(b) на малую величину 1/N. Существенным недостатком блочного кодирования является необходимость создания таблицы кодирования (или дерева), содержащей 2NK кодовых слов. При этом часто получаются весьма длинные коды.

Арифметическое кодирование

Во многих отношениях превосходит хаффмановский метод и теоретически обеспечивает среднюю битовую скорость передачи данных равной энтропии.

Арифметическое кодирование позволяет представить информацию более компакт­но, не требует ее разбиения на блоки для оптимизации сжатия, легко и эффективно использовать адаптивную модель кодирования.

Основная концепция арифметического кодирования принадлежит Элиасу и от­носится к началу 60-х годов, практическая реализация была осуществлена Ризененом и Паско. Дальнейшие исследования были направлены на практическую реали­зацию алгоритма.

Принцип арифметического кодирования можно пояснить следующим образом. До начала кодирования сообщению ставится в соответствие интервал [0,1]. Каждому символу из множества N, присутствующих в сообщении, на интервале [0,1] отводится интервал, ширина которого равна вероятности появления символа.

При неадаптивной модели квантования разбиение интервала [0,1] на диапазоны, соответствующие различным символам, происходит до начала кодирования, и инфор­мация передается декодеру. При адаптивном кодировании после кодирования каждого символа уточняется таблица вероятности символов и корректируются соответствую­щие им интервалы как на передающей, так и на приемной сторонах.

Словарное кодирование

При компьютерной архивации изображений, в. особенности, когда его пикселы кван­тованы небольшим числом уровней, применяются словарно ориентированные методы кодирования, называемые также методами универсального кодирования (напри­мер, алгоритм LZW - Лемпела-Зива-Уолша) [14 -16].

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

Универсальные методы кодирования эффективны при архивации текстовой инфор­мации.

Кодирование с предсказанием

Широкое применение имеют методы кодирования с предсказанием (так назы­ваемая дифференциальная импульсно-кодовая модуляция, ДИКМ).

ДИКМ очень близко связана с условным кодированием. Однако в данном случае вместо кодирования и передачи значения N-ого пиксела bN, передается величина , где величина, являющаяся фиксированной функцией ранее переданных пикселей (рис.9.2). Это означает, что предсказываемое значение N-го пиксела вычисляется на передаче с использованием формулы, включающей линейную комбинацию значений нескольких предыдущих пикселей.

Результатом вычисления является некая оценка ("предсказание") значения N-го пиксела, которое, естественно, отличается от его истинного значения. Таким образом, на передаче известно и истинное значение пиксела, и рассчитанное по формуле предсказание его значения. Остается вычесть одно из другого и передать по каналу связи.

На приемной стороне известно, по какой формуле рассчитывалось на передаче предсказание значения N-го пиксела. Поэтому приемник также рассчитывает предска­занное значение N-го пиксела , используя значения нескольких предыдущих пикселей.

Когда предсказание получено, приемнику остается лишь прибавить к нему значение разности между предсказанным и истинным значением N-го пиксела , полученное им из канала от передатчика, и сформировать таким образом истинное значение N-го пиксела.

Рис.9.2. Структура системы кодирования с предсказанием

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

При этом коэффициенты i могут быть получены путем решения системы уравне­ний: , где dj = E(bN,bj), rij = E(bi,bj), j = 1,…,N – 1.

– корреляционная матрица, определяющая статистическую взаимосвязь между пикселами bi и bj.

9.3. Методы сжатия изображений с потерями

При групповом кодировании обычно используют преобразование исходных данных. В этом случае повышение эффективности кодирования связано в основном с тремя фак­торами:

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

- в процессе преобразования осуществляется декорреляция данных, обеспечивающая повышение эффективности статистического кодирования;

- различное нелинейное квантование коэффициентов преобразования позволяет существенно сократить объём передаваемой информации без заметного изменения ка­чества изображения при его восстановлении.

Дискретные ортогональные преобразования

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

Пусть прямоугольный участок изображения размером N1 N2 пикселей X(n1,n2), 1 n1 N1; 1 n2 N2, преобразуется линейным преобразованием в компоненты F(m1,m2):

где 1 m1 N1; 1 m2 N2; A(n1,n2, m1,m2) – ядро прямого преобразования. Исходный участок изображения можно получить с помощью обратного преобразования

B(n1,n2, m1,m2)- ядро обратного преобразования.

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

Возможны различные интерпретации унитарных преобразований.

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

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

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

Обычно при анализе изображений используют квадратные блоки изображений размером NN.

Дискретное преобразование Фурье

Дискретное двумерное преобразование Фурье матрицы отсчетов изображения опре­деляется в виде ряда:

а обратное преобразование имеет вид:

По аналогии с терминологией непрерывного преобразования Фурье переменные u и v называют пространственными частотами. Поскольку ядра преобразования симмет­ричны и разделимы, двумерное преобразование можно выполнить в виде последова­тельных одномерных преобразований по строкам и столбцам матрицы изображения. Базисными функциями преобразования являются экспоненты с комплексными пока­зателями, которые можно разложить на косинусную и синусную составляющие.

На рис. 9.3 слева и в центре приведены графики соответственно синусных и косинусных составляющих одномерных базисных функций преобразования Фурье для N=16. Из этого рисунка видно, что для низких частот эти функции являются грубыми аппроксимациями непрерывных синусоид. С повышением частоты сходство базисных функций с синусоидами теряется. Для наивысшей частоты базисная функция пред­ставляет собой меандр.

Можно заметить избыточность наборов синусных и косинусных составляющих: при преобразовании N чисел Х1,...,ХN формируется N комплексных коэффициентов состоящих из N действительных и N мнимых чисел.

Рис. 9.3. Одномерные базисные функции преобразования Фурье при N=16

По этой причине обычно используется так называемое действительное дискретное преобразование Фурье (ДДПФ), базисные функции которого с учетом нормирующего множителя определяются, например, следующим образом:

…………………………………

…………………………………

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

Действительное дискретное преобразование Фурье удобно для применения в связи с возможностью реализации быстрых алгоритмов расчета (так называемое быстрое преобразование Фурье – БПФ). Если для реализации ДПФ требуется выполнения примерно N2 комплексных умножений и сложений, то при БПФ необходимо обеспечить Nlog(N) таких операций.

Дискретное синусное преобразование

Двумерное синусное преобразование определяется соотношением:

u,v = 0,..,N-1

Обратное преобразование имеет такой же вид. Графики базисных функций синусно­го преобразования для N=8 приведены на рис. 9.4.

Рис. 9.4. Базисные функции синусного преобразования при N=8

На рис. 9.5. показаны три псевдотрехмерные матрицы: блока изображения, спектра синусного преобразования и ошибок восстановления значений пикселей исходного блока.

Очевидна концентрация энергии в областях низких частот синусного преобразования также. Ошибка восстановления в данном случае меньше, чем при использовании преобразований Уолша-Адамара и Хаара (см. далее), что говорит о большей эффектив­ности синусного преобразования.

Рис. 9.5. Блок изображения 88 пикселей и его синусное преобразование

Дискретные косинусные преобразования

Известно, что ряд Фурье для любой непрерывной действительной и симметричной (четной) функции содержит только действительные коэффициенты, соответствующие косинусным членам ряда. В соответствующей интерпретации этот результат можно распространить и на дискретное преобразование Фурье изображений.

Имеется несколько способов преобразования блоков изображений с целью создания симметричных дискретных функциональных соотношений.

Один из них заключается в том, что к изображению вплотную пристраивают его зеркальное отражение, как показано на рис.9.6(слева). Второй способ заключается в том, что оригинал и отражения пристраиваются, налагая кратные элементы (рис.9.6.спра­ва). Таким образом, из первоначального массива, содержащего NxN пикселей, в пер­вом случае, называемом четным косинусным преобразованием, получают массив 2N2N элементов, а во втором случае – нечетном косинусном преобразовании – массив (2N-1)(2N-1) элементов.

Рис. 9.6. Способы обработки блоков изображения при создании косинусных преобра­зований