JPEG-подобный алгоритм сжатия изображений с адаптивным выбором локальных областей

JPEG-ПОДОБНЫЙ АЛГОРИТМ СЖАТИЯ ИЗОБРАЖЕНИЙ С АДАПТИВНЫМ ВЫБОРОМ ЛОКАЛЬНЫХ ОБЛАСТЕЙ

Ю.В. Лужков

Научный руководитель - д.т.н., профессор А.Ю. Тропченко

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

Введение

Несмотря на наблюдающуюся в последние годы ярко выраженную моду на использование вейвлет-преобразований для сжатия изображений, ДКП по-прежнему остается актуальным инструментом, используемым в схемах сжатия, основанных на дискретных ортогональных преобразованиях. Термин «JPEG-подобная» в применении к схеме компрессии будем понимать в смысле классического варианта схемы, когда при кодировании изображение разбивается на фрагменты, которые обрабатываются по отдельности друг от друга по схеме, обязательными элементами которой являются: ортогональное преобразование, квантование преобразованных данных и их последующее статистическое кодирование.

За последние годы было предложено множество модификаций стандартной схемы JPEG. Так, в работе [1] рассматривается вопрос использования контекстного арифметического кодирования, в исследовании [2] предлагается подход, учитывающий особенности пространственно-коррелированных элементов изображения.

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

Адаптивная сегментация изображения

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

Однако недостаток «большого окна» является несущественным, если конкретная область не содержит резких перепадов амплитуд сигнала и выраженных деталей, т.е. является однотонной.

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

Однотонный участок может быть условно отнесен к фону, и дискретное преобразование, примененное к нему, будет вполне эффективным. Соответственно, детализи-

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

Сформулируем требования к сегментации исходного изображения.

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

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

3. Информация о разбиении блоков должна быть представлена в компактном виде.

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

Центроидное связывание

Данный подход описан в [3, С. 69] и представляет собой наращивание областей от выбранных заранее стартовых точек. Он требует некоторого априорного знания о расположении объектов в пределах данного изображения для задания стартовых позиций наращивания. Однако в качестве таких позиций допустимо взять несколько точек с наибольшей для данного изображения яркостью.

Не будем подробно останавливаться на описании этого алгоритма, но отметим некоторые его особенности.

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

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

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

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

Рис. 1. Пример «невыгодной» однородной области с точки зрения ее последующей

обработки

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

Отметим также, что практическую реализацию алгоритма усложняют следующие его особенности:

1. необходимость определения порога слияния;

2. необходимость повторного сканирования изображения при слиянии областей.

Последовательное слияние четырех областей

Данный алгоритм относится к группе алгоритмов слияния-расщепления и предусматривает разбиение исходного изображения на непересекающиеся прямоугольные области [3, С. 72]. Приведем его краткое описание и предложим модификации данного алгоритма.

Пусть дана область Б размерности т х т, причем т = 2к. Пусть каждая точка на начальном этапе (уровне) разбиения представляет собой самостоятельную область -

, /, ] = 1,2к . Далее рассматриваются четверки смежных областей, таких, что координаты правой нижней области кратны 2 р, где р - уровень разбиения. Если модуль разницы яркостей для каждой пары из четырех областей не превосходит значения заданного порога, области объединяются в одну. Проход по изображению осуществляется до тех пор, пока не будут объединены все удовлетворяющие условию области. Крайний случай - когда исходное изображение будет представлять собой одну область. Пример разбиения приведен на рис. 2.

Область нулевого уровня

/

Рис. 2. Пример сегментации исходного изображения по алгоритму слияния четырех

областей

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

Однако для нашей задачи критичными недостатками этого алгоритма являются:

1. ограничение на размерность исходного изображения;

2. недостаточная гибкость данного алгоритма к разбиению на области. Так, если однородный объект будет находиться в центре изображения, он может и не быть локализован одной областью.

С целью частичного устранения указанных недостатков произведем последовательную модификацию данного алгоритма.

Алгоритм половинного расщепления области

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

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

2. Разбиение осуществляется на 2 части, а не на 4. При этом оно может проводиться как по горизонтали, так и по вертикали.

Итак, изначально картинка рассматривается как единое целое, как одна большая область. Необходимо определить, является ли данная область Н однотонной. Для этого

вычисляется значение критерия однотонности Ph для этой области. Если оно превышает заданный порог расщепления Pmax, то принимается решение - разбить область по

вертикали или по горизонтали. Для этого для каждой из предполагаемых половинок вертикальной и горизонтальной пары областей вычисляется значение критерия однородности Pjh. Одна из двух пар с минимальной общей суммой критериев однородности выбирается как результат разбиения области.

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

Пример сегментации изображения методом половинного расщепления приведен на рис. 4.

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

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

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

2. Если однотонный объект находится посередине рассматриваемой в данной момент области, то он может и не быть локализован.

3. Несмотря на возможность задания минимальных размерностей окрестности xmjn и

ymin , де-факто они устанавливаются из диапазона xmjn < xmm < 2xmjn и Утш < Уmin < 2ymin , причем этой вариации нет только для изображений, исходные размерности которых удовлетворяют условиям Lx = xmm 2k и Ly = ymin2k, где k - целое положительное число.

Алгоритм N-кратного расщепления области

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

При рассмотрении очередной области принимается решение, на какую из 2R пар разбить данную область в случае ее неоднородности, где R - число возможных линий деления по горизонтальному или вертикальному направлению. При этом предполагается, что шаг разбиения должен быть равномерным, см. рис. 3.

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

На рис. 4 представлено изображение, сегментированное по алгоритму N-кратного расщепления для R = 7 . Как видно, при выделении границ локальные особенности изображения учитываются в большей степени, нежели при использовании алгоритма половинного расщепления, рельефные области и области с резкими границами локализуются в малых прямоугольных сегментах. В рамках проводимого исследования данный алгоритм был реализован в среде программирования Visual C++ 6.

Я+1 областей

Рис. 3. Деление областей в алгоритме Ы-кратного расщепления

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

Рис. 4. Примеры сегментации изображений. Изображение слева сегментировано методом половинного расщепления, справа - Ы-кратного расщепления

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

Наряду с этим достоинством можно выделить и следующие недостатки.

1. Чем больше Я, тем больше значений критериев однородности необходимо вычислить.

2. Чем больше Я, тем больше байт данных потребуется для сохранения результата разбиения.

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

Кодирование информации о сегментированной области

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

2 - разбиение по горизонтали;

3 - завершение разбиения при условии однородности данной области. Очевидно, что в этом случае для кодирования одного шага разбиения будет вполне достаточно двух бит информации.

Отметим также, что завершение разбиения при условии достижения минимальных границ области можно вообще не фиксировать, так как данный факт может быть предсказан на основании априорных знаний размеров исходного изображения Lx и Ly и

минимальных размеров локальной окрестности х^д и y^д . В этом случае даже при

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

Nэбластейх2,

где Л^ластей - максимально возможное число областей для данной картинки. Это значение, как показывает эксперимент, составляет порядка 1-3 % от общего объема файла рисунка, сжатого по стандартному алгоритму JPEG.

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

Для алгоритма N-кратного расщепления число бит, необходимое для представления одного шага разбиения, определяется из выражения ]log2 2 R +1[,

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

Критерии однородности локальной окрестности

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

Очевидным решением является использование модификаций способов оценки качества восстановленного изображения, которые рассмотрены, например, в [4]. Модификация заключается в том, что в качестве эталонного значения берется средняя амплитуда пикселей A данной области (размерностью M х N ).

Тогда можно выделить следующие способы вычисления критерия P .

1. Квадратическое отклонение: P =

M, N,

'¿((у - А) . Деление на число пикселей не

X, у

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

2. Отношение, аналогичное PSNR: P = 10 lg-

2552

M, N

1

x, y

3. Максимальное отклонение от среднего: P = max

X, y

Ax, y A

4. Среднее отклонение от среднего значения: P =

MN

M, N

I

x, y

Ax, y A

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

5. Градиентный критерий: P =

1

MN

M-1,N-1

I

x, y

Ax+1,y+1 Ax,y

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

Очевидной проблемой является необходимость задания порога Pmax — максимального значения критерия P, при котором область считается однородной. Он может быть получен в результате статистического анализа большого числа изображений, а также вычисляться на основе априорных данных о данном конкретном изображении.

Если необходимо учитывать значения амплитуд всех цветовых плоскостей изображения, то практическое вычисление, например, квадратического отклонения для цветовой модели RGB будет иметь вид:

P =

M, N

I (Rx,y - R)2

+

x, y

M , N

I (Gx,y - G )2

+

x , y

M , N

I (Bx,y - B )2

x, y

где Ях у, Ох у и Вх у - значения амплитуд цветовых компонент, а Я , G и В - их

средние значения для оцениваемой окрестности. Для критерия максимального отклонения от среднего

P = max R - R + max G - G + max B - B .

x, y x, y x, y

1

Практическое использование алгоритмов сегментации области

Стандартная схема JPEG предусматривает перевод изображения из цветового пространства RGB в YUV. При этом информация о цвете и светимости распределяется между новыми плоскостями неравномерно. Это позволяет сделать предположение о том, что каждую плоскость необходимо сегментировать независимо от других. Эксперименты показали, что при одинаковом пороге Pmax число областей, получаемых в результате разбиения плоскостей цветности U или V, как правило, в несколько раз меньше, чем при сегментации плоскости светимости Y. Это говорит о том, что компоненты цветности в среднем являются более однотонными. Соответственно, при их сегментации полученные фрагменты будут в среднем большего размера, чем при сегментации по формулам (1) и (2), что в итоге даст выигрыш при сжатии.

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

В предлагаемой реализации алгоритма сжатия коэффициенты результата дискретного преобразования масштабируются с тем расчетом, чтобы они по модулю не превышали 210. Это позволяет использовать набор предлагаемых стандартом JPEG таблиц Хаффмана при проведении этапа вторичного сжатия.

Кодировать разницу DC-коэффициентов не имеет смысла (ввиду порядка следования сегментированных участков на изображении), поэтому они обрабатываются вместе с AC-коэффициентами. В остальных аспектах этап вторичного сжатия аналогичен стандартной схеме JPEG.

Схема реализации конвейера разработанного алгоритма представлена на рис. 5.

Рис. 5. Схема реализации иРБО-подобного алгоритма сжатия изображений с адаптивным выбором локальных областей

Отметим, что эффективность предлагаемой схемы выше стандартной в среднем на 5-7 %, т.е. показатель качества (PSNR) для восстановленного изображения доминирует при том же значении коэффициента сжатия K на данную величину процента. Однако такой результат не является предельным, и в дальнейшем возможно создание более эффективной схемы сжатия на основе адаптивного разбиения исходного изображения.

Заключение

Нами был рассмотрен JPEG-подобный алгоритм сжатия изображений на основе адаптивного выделения локальных областей. Ключевой особенностью предложенной в работе схемы сжатия является использование алгоритма N-кратного расщепления для сегментации рисунка. Было показано, что его использование эффективно для сжатия неподвижных изображений. Отметим, что эффективность разработанной схемы выше стандартной в среднем на 5-7 %.

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

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

Литература

1. Умняшкин С.В. Использование контекстного арифметического кодирования для повышения сжатия данных по схеме JPEG. // Известия вузов. Электроника. 2001. № 3. С. 96-98.

2. Andrew B. Watson. A standard model for foveal detection of spatial contrast. // Journal of Vision. 2005. №5. Р. 717-740. http://journalofvision.org/5/9/6/

3. Тропченко А.Ю., Тропченко А.А. Методы сжатия и вторичной обработки изображений. Распознавание объектов на изображении.

4. Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. М.: ДИАЛОГ-МИФИ, 2002. 384 с.