Лекция 1 Алгоритмы сжатия изображений Медведева Елена Викторовна 25.12.2012 дисц. Цифровая обработка изображений 1 КЛАССИФИКАЦИЯ АЛГОРИТМОВ СЖАТИЯ ИЗОБРАЖЕНИЙ 1. Алгоритмы сжатия без потерь - кодирование длин серий (RLE); - словарные методы (LZW); - алгоритм Хаффмана; - Арифметическое кодирование. 2. Алгоритмы сжатия с потерями - Дискретное косинусное преобразование (DCT); - Вейвлет-преобразование; -Перспективные технологии сжатия: фрактальное кодирование; нейросетевые методы сжатия. 2 Требования к алгоритмам сжатия высокая степень компрессии; высокое качество изображений; высокая скорость компрессии и декомпрессии; симметричность по времени; небольшая стоимость аппаратной реализации. Эффективность программной реализации. 3 Оценка качества изображения Субъективная оценка качества (рекомендация ITU-R BT.500-11 ) 4 Объективные критерии качества 1. Пиковое соотношение сигнал/шум: ПОСШ 20 lg 255 , СКО 2 1 N СКО xi yi N i 1 - среднеквадратичная ошибка, пикселей в изображении, xi , yi - значения пикселей исходного и восстановленного изображений соответственно. 2. Среднеквадратичная ошибка. 3. Минимаксный критерий, или критерий максимального правдоподобия: ML max xi yi . i 1,, N N -число 5 АЛГОРИТМ RLE Групповое кодирование (Run Length Encoding). В данном алгоритме признаком счетчика служат единицы в двух верхних битах считанного файла. Строка из 64 повторяющихся байтов представляется с помощью счетчика двумя байтами, т.е. сжатие в 32 раза. 6 Пример алгоритма RLE 1. Если в изображении встречается цепочка 7,7,7,0,0,0,0,5,5, то она заменяется на пары (3,7), (4,0), (2,5). 2. Вычислить максимальный и минимальный коэффициент сжатия для метода RLE. - Кмах=64/2=32; - Kmin=8/16=0,5 – для однократной передачи. 7 ХАРАКТЕРИСТИКИ АЛГОРИТМА RLE Алгоритм рассчитан на изображения с большими областями повторяющегося цвета. Применяется как дополнение к другим методам. Различные модификации алгоритма реализованы в графических форматах: BMP, PCX, TIFF, GIF, JPEG. Характеристики алгоритма: - средний коэффициент сжатия 2-3; - максимальный коэффициент сжатия – 32-64; - возможно увеличение файла; - высокая скорость компрессии и декомпрессии; - симметричность алгоритма примерно единица; - не требует дополнительной памяти при архивации и разархивации. 8 Первоначальная таблица кода LZW (для 8-ми разрядных изображений) Индекс Значение Примечание 0 0 1 1 Всевозможные строки, состоящие из одного элемента изображения 2 2 … … 255 255 256 256 Код очистки 257 257 Код конца информации 258 Коды строк (9 бит) … 511 9 Конечная таблица. Пример. Пусть исходное содержит 8 бит/отсчет. изображение 7,7,5,5,0,0,0,0,0,0,5,5,0 Индекс Значение строк Выходной поток 256 256 256 258 7,7 7 259 7,5 7 260 5,5 5 261 5,0 5 262 0,0 0 263 0,0,0 262 264 0,0,0,5 263 265 5,5,0 260 K c 13 9 9 9 1,44 10 ХАРАКТЕРИСТИКИ АЛГОРИТМА LZW LZW ориентирован на 8-битные изображения. Сжимает за счет одинаковых подцепочек в потоке. Характеристики алгоритма: - минимальный коэффициент сжатия – 5/7; - средний коэффициент сжатия – 4; - максимальный коэффициент сжатия – 1000; - симметричность: 1,2-3; - для определения одного элемента изображений требуется некоторое количество сравнений. Требуется память для хранения таблицы кодов. - варианты LZW используются в архиваторах GIF, TIFF, WinRAR. 11 АЛГОРИТМ ХАФФМАНА Использует частоту появления одинаковых байт в изображении. Сопоставляет символам входного потока, которые встречаются большее число раз, цепочку бит меньшей длины. И, напротив, встречающимся редко — цепочку большей длины. Для сбора статистики требует двух проходов по изображению. Применяется для кодирования: 1. N – уровней квантования; 2. Векторов движения; 3. Коэффициентов преобразования в стандартах JPEG, MPEG. 4. Для сжатия бинарных изображений (при сжатии факсимильных изображений) 12 Алгоритм ХАФФМАНА Все имеющиеся K сообщений располагают в один столбик в порядке убывания вероятностей. 1. 2. Затем два самых маловероятных сообщения сообщение сообщения b, которое имеет вероятность a1 , a 2 ,..., a K 2 , b , a K 1 , a K p K 1 p K . вероятности которых объединяют в одно В результате получают p1 , p2 ,..., p K 2 , pK 1 pK . Эти сообщения вновь располагают в порядке убывания вероятностей. 3. Далее берут два сообщения, имеющие наименьшие вероятности, объединяют их в одно и вычисляют их общую вероятность. Шаги 2 и 3 повторяют до тех пор, пока не получат единственное сообщение, вероятность которого равна единице. 5. Проводя линии, объединяющие сообщения и образующие последовательные подмножества, получают дерево, в котором отдельные сообщения являются концевыми узлами. Соответствующие им кодовые слова можно построить, приписывая ветви, которые идут вниз - «0», а вверх - «1». 4. 13 Построение кода ХАФФМАНА 11 01 101 000 0011 0010 1001 1000 p (a1 ) 0,3 p(a2 ) 0,23 p (a3 ) 0,15 p(a4 ) 0,08 p(a5 ) 0,06 p(a6 ) 0,06 p(a7 ) 0,06 p (a8 ) 0,06 0,43 1 0,2 0,12 0,57 0,27 0,12 14 Модифицированный код Хаффмана (для сжатия факсимильных изображений) 1. Вычисляется вероятность появления разных длин элементов одного знака (серий). 2. Составляются таблицы кодов приближений (КП) и завершений (КЗ). Если длина серии элементов 63, то кодовое слово (КС) = КЗ; Если длина серии элементов > 63, то кодовое слово КС = КП+КЗ. 3. Передача всегда начинается с кодового слова для белого поля. 15 Таблицы кодирования Завершающие коды Коды приближения 16 ХАРАКТЕРИСТИКИ АЛГОРИТМА ХАФФМАНА - минимальный коэффициент сжатия – 1/5; - средний коэффициент сжатия – 2; - максимальный коэффициент сжатия – 213; - симметричность: близка к единице; - используются в формате JPEG; - ориентирован для двуцветных черно-белые изображения, с большими областями повторяющегося цвета; - алгоритм прост в реализации, быстр и может быть легко реализован аппаратно; - требуется память для хранения статистических словарей. 17 АРИФМЕТИЧЕСКИЙ КОД При арифметическом кодировании каждый символ исходного текста представляется отрезком на числовой оси с длиной, равной вероятности его появления, и началом, совпадающим с концом отрезка символа, предшествующего ему в алфавите. Результатом арифметического кодирования является некоторая двоичная дробь из интервала [0, 1). Пример. Закодировать сообщение «аава». 0,11 1 0 a 3/4 0,1001 b 0 9/16 a 0,011011 0,100100 0 a 27/64 b 36/64 0,01101100 108/256 b 12/16 0,10000111 a b 144/256 135/256 В качестве кода можно взять любое число из диапазона, полученного на шаге 4. Например, 0,510 0,12 . 18 ХАРАКТЕРИСТИКИ АРИФМЕТИЧЕСКОГО КОДИРОВАНИЯ - средний коэффициент сжатия 5-6; - требует больших вычислительных ресурсов; - используются в формате JPEG2000. 19 АЛГОРИТМ JPEG Основан на дискретном косинусоидальном преобразовании, применяемом к матрице изображения X (размерами NxN) для получения некоторой новой матрицы коэффициентов Y . 1) прямое дискретное косинус-преобразование (DCT) Y AXAT , где элементы матрицы A : 2 j 1i 1 2 , где Ci , i 0 , Ci , i 0 ; Aij Ci cos N N 2N X - матрица сэмплов. 2) В матрице Y заменяют все коэффициенты нулями, за исключением одного или нескольких самых значимых из них. 3) Дальнейшее свертывание коэффициентов производится с помощью RLE и метода Хаффмана. 4) При восстановление вычисляют обратное DCT X AYAT . 20 КОНВЕЙЕР ОПЕРАЦИЙ, ИСПОЛЬЗУЕМЫЙ В АЛГОРИТМЕ JPEG 21 ПРИМЕР АЛГОРИТМА JPEG 159 178 181 151 181 181 35.6 80 137 178 156 -42.7 46.5 10.3 -9.8 75 114 88 68 -20.2 12.9 3.9 -8.5 126 Исходный блок 134 134 178 134 181 134 134 151 134 181 134 181 134 134 80 137 134 178 134 181 134 156 75 134 114 151 134 181 88 134 68 181 134 Блок ограниченный 1 коэффициентом 537.2 -76.0 -54.8 -7.8 -12.7 -6.1 Коэффициенты FDCT 159 179 194 138 159 173 95 110 130 145 75 89 110 124 144 Блок ограниченный 3 коэффициентами 22 Блок после ДКП и квантования Наибольшие коэффициенты и, следовательно, большая часть энергии сосредоточена в верхнем левом углу и вблизи него. Коэффициенты округляют до целого числа. После зигзагсканирования длинная последовательност ь нулей заменяется кодом 23 ХАРАКТЕРИСТИКИ АЛГОРИТМА JPEG коэффициенты компрессии: 2-200, средний 20-25; класс изображений: полноцветные 24 битные изображения или изображения в градациях серого без резких переходов цветов; симметричен; искажения: 1)“ореол” вокруг резких горизонтальных и вертикальных границ в изображении; эффект блочности требует относительно больших вычислительных затрат. 24 Вейвлет-преобразование При вейвлетной схеме сжатия используется разложение сигнала по набору базисных функций: f x ci i x , i где i x - базисная функция, ci - весовой коэффициент. Широкобазисные функции позволяют исследовать большие области и точно описать НЧ детали (границы), а короткобазисные функции позволяют исследовать малоразмерные области (ВЧ детали). В связи с этим базисные функции формируются как множество i x с конечными носителями разной ширины. В этом случае все базисные функции получаются из одного прототипа i x (материнского вейвлета) путем его растяжения (или сжатия) и смещения по оси времени. 25 Быстрое вейвлет-преобразование (Алгоритм Малла) Основные этапы: 1. Подаем одномерный сигнал cn0 n0 (верхний индекс показывает уровень разложения, нижний – конкретную точку сигнала) на низкочастотный h и высокочастотный g фильтры разложения. N 1 2. Результат обработки фильтров подаем на блоки децимации или прореживания в 2 раза. 3. Результатом обработки п.1 и п.2 являются два набора вейвлет- 1 1 коэффициентов c n и d n . Высокочастотные коэффициенты d n1 оставляем без изменения, а низкочастотные аналогично преобразованию исходного сигнала. c 1 n преобразуем 26 Схема вейвлет - преобразования LL L h c11 c10 h Прореживание по горизонтали c12 LH Прореживание по вертикали g Прореживание по горизонтали d 22 HL g h Прореживание по вертикали Прореживание по горизонтали d 2 3 d 2 4 HH d n1 g Прореживание по горизонтали H 27 Математическое представление вейвлет-преобразования cnm hl 2 n clm1 l m m1 c g d n l l 2 n l , (1) где индекс m указывает на уровень разложения, а выражение (1) представляет собой свертку сигнала или его низкочастотных компонент с импульсными характеристиками НЧ и ВЧ фильтров. Для вейвлета Хаара коэффициенты фильтров h и g соответственно равны: 1 1 1 1 , . g , g , h , h и 0 0 1 1 2 2 2 2 28 Вычисление последовательностей коэффициентов c1m ci , j ci 1, j ci , j 1 ci1, j 1 / 4 ; d 2m ci , j ci 1, j ci , j 1 ci 1, j 1 / 4 ; d 3m ci , j ci 1, j ci , j 1 ci 1, j 1 / 4 ; d 4m ci , j ci 1, j ci , j 1 ci 1, j 1 / 4 29 Вейвлеты Добеши Для вейвлетов Добеши коэффициенты равны: g 0 h1 3 3 3 3 g h 0 , 1 4 2 , 4 2 1 3 1 3 g h g 2 h1 2 , 1 4 2 . 4 2 Разложение сигнала, децимация, формирование НЧ и ВЧ компонент выполняется по формулам: 2 c j hk c2 j k k 1 2 d g k c2 j k j k 1 30 Восстановление изображения При реконструкции НЧ- и ВЧ коэффициенты равны: g 0 h1 3 3 1 3 g h 2 , 1 , 4 2 4 2 3 3 1 3 g h g 2 h1 0 , 1 4 2 . 4 2 При одномерном ОДВП при реконструкции отсчетов сигнала необходимо: 1. увеличить входную последовательность коэффициентов в два раза, вставив нули между отсчетами; 2. выполнить свертку с соответствующими НЧ и ВЧ фильтрами 3. сложить полученные результаты. 31 АЛГОРИТМ JPEG 2000 Характеристики алгоритма JPEG 2000: степень сжатия: 2-200; класс изображений: полноцветные 24-битные изображения; изображения в градациях серого без резких переходов цветов; однобитные изображения; симметричность: 1-1,5; искажения: при большом сжатии –артефакты в виде окантовок и посторонних узоров; требует больших вычислительных затрат. 32 JPEG/JPEG2000: «Lena» 33 JPEG/JPEG2000 (Сжатие в 130 раз) 34 Принципы сжатия видео в стандартах H.261, H.263, H.264, MPEG-4 1. 2. 3. Устранение пространственной избыточности. Учет избыточности в цветовых плоскостях. Подобие между кадрами. 35 Типы кадров I-кадры - являются своеобразными входными точками в поток данных для декодера; сжаты независимо от других кадров (I - Intra pictures) по алгоритму JPEG. Р-кадры - сжаты с использованием ссылки на одно изображение (Р - Predicted); повышают степень сжатия видео в целом. В-кадры - сжаты с использованием ссылки на два изображения (В - Bidirection); декодирование В-кадров требует больше вычислительных мощностей, однако позволяет повысить степень сжатия 36 H.264/ Термины Изображение разбивается на макроблоки размера 16 x 16 по яркостной компоненте и размера 8x8 для цветовых компонент. I-кадры – состоят исключительно из intra-макроблоков. Макроблоки могут ссылаться только на уже закодированные макроблоки из той же плоскости. P,B-кадры – состоят из intrer-макроблоков. Intra – блоки – предсказание элементов в них осуществляется по предыдущим блокам текущего кадра. Inter – блоки – предсказание выполняется с использованием компенсации движения (т.е. по предыдущим или последующим кадрам) Макроблок A предсказывается макроблоком B, если из всевозможных макроблоков предшествующих кадров, разница между блоками B и А минимальна. Эта разница называется компенсацией движения (motion compensation) 37 Intra-предсказание 38 Intra-предсказание 39 Принципы компенсации движения 1. Кадры разбивают на блоки 4 4 элемента или блоки со сторонами кратными четырем ( 8 8 , 16 16 ). 2. Сравнивают блоки в k -м и k 1 -м кадрах возможной области поиска и выбирают блок, имеющий наименьшее количество отличительных элементов. 3. По направлению смещения блоков в k 1 -м кадре оценивают вектора движения Область поиска и получают преобразованный k 1 кадр. 4. Формируется разностный кадр k k (k 1) . 5. Преобразованный разностный кадр подвергают ДКП, зигзагсканированию, кодированию кодами переменной длины. Вектора движения кодируют кодами переменной длины. 40 Пример разностных кадров без компенсации и с компенсацией движения а) первый кадр б) второй кадр в) разностный без компенсации движения г) с компенсацией на основе блока 4x4 д) на основе блока 8x8 е) на основе блока 16x16 Рис. 41 Основа стандартов H.261, H.263, H.264, MPEG-4 I. Используя схожесть соседних кадров, получают разностный кадр. II. В разностном кадре энергия может быть уменьшена методом компенсации движения блоков. III. Удаляют статистическую и визуальную избыточность разностного кадра, используя дискретное косинусоидальное преобразование, квантование и кодирование кодами переменной длины (RLE, Хаффмана) 42 СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА СТАНДАРТОВ ВИДЕО 43