УДК 004.932
А.А. Полетаев, О.Н. Корелин
ОПТИМИЗАЦИЯ ПРОЦЕССА АРИФМЕТИЧЕСКОГО КОДИРОВАНИЯ АЛГОРИТМА СЖАТИЯ ИЗОБРАЖЕНИЙ JPEG2000 НА ОСНОВЕ ЗАВИСИМОСТЕЙ МЕЖДУ ЗНАЧЕНИЯМИ ВЕЙВЛЕТ-КОЭФФИЦИЕНТОВ
И ПАРАМЕТРАМИ R-D КРИВЫХ
Нижегородский государственный университет им. Р.Е. Алексеева
Рассмотрены особенности алгоритма сжатия изображений JPEG2000, исследованы возможности оптимизации алгоритма, исследованы зависимости длины R-D кривых для разных блоков вейвлет-коэффициентов на примере отдельно взятого класса изображений.
Ключевые слова: арифметическое кодирование, битовые плоскости, подбор длины R-D кривых, вейвлет-коэффициенты, JPEG2000.
В области цифровой обработки изображений, специализирующейся на уменьшении объема данных, наряду с классическими алгоритмами значительное применение получили алгоритмы, основанные на стандартах JPEG и JPEG2000. Достоинством таких алгоритмов является высокая степень сжатия, которая достигается за счет представления данных в форме, наиболее удобной для сжатия. Применение таких алгоритмов позволяет значительно сократить затраты на хранение информации и время, требуемое на ее передачу по сети.
Более современные алгоритмы стандарта JPEG2000 обладают определенными достоинствами перед нашедшими широкое распространение на практике алгоритмами JPEG - они более приспособлены для быстрой передачи данных по сети, обеспечивают лучшее качество сжатия при той же степени уменьшения размера данных, применяя в своей основе вейвлет-преобразование данных. Важной чертой алгоритмов является то, что они реализуют сжатие с потерями, так что отбрасывается часть незначительных для восприятия человека данных, значительно определяющая размер изображения. Варьирование количества отбрасываемых данных позволяет достичь практически любой требуемой степени сжатия.
Несмотря на все преимущества алгоритмов стандарта JPEG2000, сжатие требует значительных затрат времени, которые приходятся на стадию преобразования данных и стадию кодирования преобразованных данных. Поскольку стадия кодирования отнимает большую часть времени, особый интерес представляет найти способы уменьшения временных затрат на нее.
Стандарт JPEG2000 нацелен как на обеспечение максимально многогранного и в то же время оптимального подхода к сжатию изображений, так и на обеспечение больших возможностей, скорости и удобства передачи данных по сети. Важной особенностью стандарта является возможность масштабирования потока данных по разрешению и по качеству [1]. Масштабируемость позволяет разбить процесс декодирования потока данных на этапы, каждый из которых будет улучшать качество или увеличивать разрешение промежуточного изображения. Это свойство является очень полезным при передаче данных по сети, поскольку пользователь может получить и увидеть промежуточный результат при передаче только части данных. Второй важной особенностью стандарта является то, что он может эффективно кодировать как изображения с индексированными цветами, так и с непрерывными спектром, обеспечивая, в зависимости от выбора, сжатие с потерями или без потерь.
Процесс кодирования состоит из пяти последовательных этапов, представленных на рис. 1. Сдвиг яркости в паре с этапом преобразования цветового пространства позволяют повысить степень сжатия исходного изображения. В ходе этапа преобразования цветового пространства осуществляется переход к пространству YCbCr, наиболее подходящему для вейвлет-преобразования.
© Полетаев А.А., Корелин О.Н., 2012.
Рис. 1. Схема процесса кодирования
Данные, полученные в результате вейвлет-преобразования, обладают значительно меньшей энтропией и потому поддаются сжатию гораздо лучше. Дискретное вейвлет-преобразование изображения представляет из себя двумерную фильтрацию данных при помощи низкочастотного (Ь-фильтр) и высокочастотного фильтров (Н-фильтр). К столбцам и строкам изображения при фильтрации применяются четыре варианта сочетаний низкочастотного и высокочастотного фильтров, что дает в итоге четыре блока вейвлет-коэффициентов (ЬЬ, ЬН, НЬ, НН), размер каждого из которых в два раза меньше исходного набора данных1 (рис. 2). Блок данных, полученный в результате низкочастотной фильтрации и строк и столбцов, представляет сглаженную копию исходного изображения, уменьшенную вдвое (блок ЬЬ). Следующий уровень преобразования всегда применяется к этому блоку. Три остальных блока (ЬН, НЬ, НН) содержат детали, которые дополняют уменьшенную копию изображения при ее восстановлении. Такими деталями могут быть, например, резкие перепады яркости на исходном изображении. На основании того факта, что выбранные для преобразования вейвлеты выделяют определенные детали, для кодирования можно подобрать наиболее эффективный кодер. Аналогично для определенного класса изображений можно подобрать наилучший набор вейвлетов. Все этапы, следующие за этапом вейвлет-преобразования, реализуют сжатие и кодирование данных. Поскольку на них приходится большая часть времени, то они и являются наиболее интересными с точки зрения оптимизации скорости сжатия и степени сжатия.
-* L 1 ] -► LL EIL
I Ш Ü 1 НН
Рис. 2. Блоки коэффициентов, получаемые в ходе вейвлет-преобразования
При "сжатии с потерями" может быть задействован этап квантования вейвлет-коэффициентов. Этот этап позволяет увеличить степень сжатия за счет уменьшения точности данных. Известны две реализации, различающиеся по сложности: скалярное квантование и квантование с решетчатым кодированием. Скалярное квантование более быстрое, заключается в усечении битов младших разрядов, но обладает определенным недостатком - наличием мертвой зоны [3]. Если шаг квантования равен Д, а само значение q после квантования коэффициента s, вычисляется по формуле:
q = sign(s)'
А
s
1 После фильтрации частотный диапазон сокращается в два раза.
Я ' д 1- Р .
s
1 2Д
Рис. 3. Скалярное квантование
График значений можно представить аналогично рис. 3. На графике явно видно, что вблизи нуля зона квантования в два раза больше шага Д. Этого недостатка лишен метод квантования с решетчатым кодированием, но он более сложен и требует больше вычислительных затрат. Следует отметить, что для корректной реализации квантования потребуется ввести соответствующий шаг обратного преобразования в декодере, что потребует дополнительных временных затрат. Таким образом, трудно сделать однозначный выбор между соотношением скорости к качеству сжатия на данном этапе.
Этап энтропийного или арифметического кодирования наиболее значим с точки зрения уменьшения длины кода. Метод кодирования определяет скорость всего процесса, а также соотношение качества изображения к степени сжатия. На данном этапе формируется выходной поток закодированных коэффициентов, который является составляющей частью конечного потока данных. Коэффициенты вейвлет-преобразования кодируются арифметическим методом, с помощью вероятностной модели. Вероятностная модель строится на наличии связей, которые существуют не только между соседними коэффициентами одного уровня преобразования, но и между коэффициентами различных уровней.
Процесс кодирования оказывает основное влияние на масштабируемость конечного потока данных. Зависимости между данными, вносимые на этом этапе, могут свести на нет любые возможности масштабирования данных, включая масштабируемость по разрешению и масштабируемость по качеству [4]. Следует отметить, что данные, полученные в ходе более ранних этапов стандарта, обладают максимальной способностью к масштабированию. Следовательно, выбор метода арифметического кодирования зависит не только от требований к скорости, качеству и степени сжатия, но и от необходимых требований к масштабируемости потока данных.
Для сжатия по стандарту JPEG2000 используется несколько методов арифметического кодирования, среди которых можно выделить кодирование этажей битов и кодирование с применением нуль-деревьев. Оба метода обеспечивают наилучшие свойства масштабируемости и степени сжатия изображения, а также позволяют ввести области повышенного качества.
Принцип кодирования этажей битов состоит в построении ряда битовых плоскостей для группы вейвлет-коэффициентов. Для этого определяется разрядность максимального коэффициента Nmax = ceil (log2(Cmax)), где Cmax - значение максимального вейвлет-коэффициента. Количество битовых плоскостей равно значению Nmax . Для каждой битовой плоскости c номером n = [1..Nmax] записываются биты вейвлет-коэффициентов, соответствующие разряду п. Кроме этого, каждая битовая плоскость кодируется тремя блоками данных, которые формируются на одном из этапов кодирования: significant propagation, magnitude refinement, normalization pass. Они основаны на использовании зависимостей, поскольку большие и малые коэффициенты не перемешаны равномерно, а концентрируются в отдельных областях. Каждый из битов кодируется в ходе только одного этапа в соответствии с его вкладом, вносимым в значение коэффициентов. Отбросив блоки с наименьшими номерами, мы можем уменьшить количество градации данных, что эквивалентно квантованию.
Данный метод позволяет достичь масштабируемости по качеству и при декодировании. С учетом того, что на декодирование плоскости требуется определенное время, пользователь может задать требуемую степень качества декодирования, уменьшив количество восстанавливаемых битовых плоскостей и время вместе с количеством пересылаемых по каналу связи данных.
С другой стороны, есть возможность достичь лучшей степени сжатия, отбрасывая незначимые блоки данных в ходе кодирования. Данная идея реализована в алгоритме оптимизации длины кода. Задача данного алгоритма - найти для заданной степени сжатия наилучшее соотношение длины кода к качеству восстанавливаемого изображения. В кодируемом потоке данных определяются точки усечения, для которых составляется две оценки: величина уменьшения длины кода и величина ошибки, вносимой в изображение. При заданной степени сжатия задача сводится к определению наилучшего множества данных точек [3]. Есть несколько способов решения данной задачи, один из которых - применение R-D кривых (rate-distortion curves).
R-D кривые показывают отношение величины уменьшения среднеквадратической ошибки к количеству данных, вносимых точкой усечения. Для каждой точки определяются величины среднеквадратической ошибки - ADIST и длины кода ARATE. Отношение ADIST к
Arate дает характеристику оптимальности использования любой из точек усечения. На основании этой характеристики выбирается наилучшая точка усечения. Процесс выбора точки заключается в определении для всех частотных блоков количества блоков данных, суммарный размер которых удовлетворяет заданной степени сжатия, и имеет наименьшую средне-квадратическую ошибку. На практике выполняется поиск уровня L = ADIST/ АШТЕ, общего для всех блоков вейвлет-коэффициентов, при котором достигается наилучшее соотношение качества к количеству кодируемой информации (рис. 4).
1,2
1 3 5 7 9 12 15 1В
Количество этапов кодирования
Рис. 4. Определение количества кодируемых этапов при помощи уровня Ь
Очевидно, что время и точность поиска определяется алгоритмом поиска уровня. В ходе исследования был выбран подход, предлагающий использование бинарного поиска уровня, который изображен на рис. 5. При таком подходе можно достигнуть меньшего времени поиска при большей точности.
Алгоритм определения точки усечения, описанный ранее, имеет недостаток - необходимость проведения всех этапов кодирования для каждой битовой плоскости перед началом поиска точки. С учетом того, что основная часть времени уходит на кодирование каждой битовой плоскости, представляет интерес критерий, по которому можно так подобрать точку усечения, чтобы был известен этап кодирования для каждого блока вейвлет-коэффициентов, на котором можно приостановить процесс. В ходе исследований [5] был найден подходящий критерий для определенного вида изображений при жестком задании степени сжатия и количества уровней вейвлет-преобразования. Тем не менее, опираясь на исследования и выво-
ды, сделанные в [5] и учитывая статистику, можно предположить, что есть некоторая зависимость между процентным соотношением размера блока вейвлет-коэффициентов ЬЬ, включенного в изображение, и размерами блоков вейвлет-коэффициентов в изображении, полученных на каждом уровне вейвлет-преобразования вне зависимости от степени сжатия. Следовательно, можно получить более универсальный критерий, который должен удовлетворять следующим требованиям:
1) подходить для одного или нескольких классов изображений;
2) его применимость не должна зависеть от варьирования степени сжатия;
3) его применимость не должна зависеть от размера изображения.
Рис. 5. Алгоритм бинарного поиска наилучшего значения уровня Ь
Для исследования был выбран класс текстовых изображений, являющийся одним из наиболее распространенных классов. Поскольку текстовые изображения имеют большое количество схожих деталей, было сделано предположение о том, что именно у них будут наиболее четко проявляться определенные сходства при кодировании данных. Исследование данных изображений является более наглядным, поскольку большинство из них черно-белые, а значит, они имеют только одну цветовую компоненту в пространстве УСЬСг.
В ходе экспериментов были получены и проанализированы аналогично методике, предложенной в [5], графики Я-О кривых для различных текстовых изображений, но для различных уровней фильтрации при помощи вейвлетов. На рис. 5 приведены типичные графики Я-О кривых, а также графики увеличения длины кода, вносимого каждым блоком вейвлет-коэффициентов на различных этапах кодирования. Для графиков Я-О кривых на оси абсцисс отмечено количество этапов кодирования для каждого из блоков вейвлет-коэффициентов (ЬЬ, НЬ, ЬН, НН), а по оси ординат отмечены значения величин / АттЕ . Для графиков роста длины кода отмечены этапы кодирования и общая длина кода для каждого блока вейвлет-коэффициентов (ЬЬ, НЬ, ЬН, НН).
На графиках Я-О кривых опущены этапы, не увеличивающие длину потока закодированных данных, так как они не несут полезной информации и всегда исключаются из процесса кодирования. Тем не менее, они отмечены на графиках увеличения длин кода для наглядности.
На графиках Я-Б кривых видно, что формы кривых соответствующих блоков вейвлет-коэффициентов схожи. Кроме того, заметны сходства расположения точек кривых для блоков ЬН, НЬ и НН относительно блока ЬЬ. Данный факт позволяет судить о том, что есть зависимости между коэффициентами ЬЬ и ЬН, НЬ, НН, которые могут быть использованы для определения окончательного количества этапов кодирования для каждого блока вейвлет-коэффициентов.
3000 2500 2000 1500 1000 500 0
г —д 1 ■—Г*
и . i-- ... »' >J |—1 • г |
т. * . у Г*" с-1 Л А r^f ==3 1-\ X—г
г'' *" * 1 1 .Л * * -- -
Г I . ? ■ И г М
LL LH HL НН
-- LL суммарный
1 2 3 4 5 6 7 8 О 10 11 12 13 14 15 16 17 18 19 20 21
700000 600000 500000 400000 ЗООООО 200000 100000 О
К.
-1 ■-■
t—i— '— --- ■ > --' ■ 1 — ■—__
■—< .; CT ' ■-- И-< ♦-1 f — Г:
- 11 —— LH —HL —•— НН
О 1 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 22 23
Рис. 6. Графики R-D кривых и длин кода для двух разных изображений текста
Еще одна особенность исследованных изображений показана на графиках длин кода для различного количества этапов. Увеличение длины происходит линейно, причем происходит постепенный переход функции увеличения длины кода от второго этапа к третьему.
Кодирование каждой битовой плоскости происходит в три этапа (significant propaga-
tion, magnitude refinement, normalization pass), для иллюстрации общего увеличения длины кода каждой битовой плоскостью был введен еще один график " LL-суммарный", на котором очень четко проявляется эффект линейности. Данная особенность позволяет при кодировании определить точку усечения в два шага:
1) грубая оценка длины кода, на которой определяется последняя кодируемая битовая плоскость;
2) более точная оценка, на которой для данной битовой плоскости определяется последний этап кодирования.
На основании полученных данных был проведен более точный анализ схожести расположения вейвлет-коэффициентов для изображений. Ряд испытаний с кодированием изображений с разностью степень сжатия позволил составить усредненную функцию зависимости процентного количества данных блоков LL, LH, HL, HH в закодированном потоке от процента количества данных в конечном потоке по отношению к максимально возможному количеству данных (когда в поток полностью включены все блоки данных).
Данная функция зависимости очень хорошо иллюстрируется на следующем графике.
100 J h к 90
I* 80 з g 3 1 7Л . - . -
—•— и
A fyj If 60 а 1 | 50 ' о
-т- LH
| ^ Is 30 1 is 20..... f * 1 J 10 • HI
9 НИ
11 10 ± SO Г л 1 А.
100 90 80 70 60 50 40 JO 20 10 Отношение количества веек декодированным данных по достижению требуемой степени сжатии к максимальному количеству длины.». % 1
Рис. 7. Функция зависимости количества закодированных данных каждого блока от общего количества закодированных данных
С учетом того, что существует небольшой разброс данных, определяющий точность достижения заданной степени сжатия, был предложен следующий алгоритм поиска, который позволяет провести определение точки усечения в процессе кодирования, тем самым уменьшая его время. В алгоритме задействована особенность линейного увеличения длины кода при кодировании каждой битовой плоскости для предсказания максимального размера блока данных (суммарный размер с учетом кодирования всех битовых плоскостей). Для определения этой величины выполняется кодирование двух-трех битовых плоскостей каждого блока, а затем на основании размера каждой битовой плоскости определяется предполагаемый размер всего блока.
Алгоритм работает в два этапа. На первом этапе преимущественно кодируется блок ЬЬ, до тех пор, пока не достигнута требуемая степень сжатия. Параллельно каждому этапу кодирования блока ЬЬ кодируется такое количество этапов блоков ЬН, НЬ, НН, которое установлено приведенной ранее зависимостью относительно блока ЬЬ. Закодированные данные каждого блока записываются в раздельные потоки, которые в конце работы алгоритма объединяются в один. Если заданная степень сжатия не достигнута, а блок ЬЬ закодирован полностью, то алгоритм переходит на второй этап. Сначала определяется максимальный размер для каждого из оставшихся блоков на основе линейности увеличения длины данных, а затем кодирование продолжается уже относительно общего прироста длины данных для
всех блоков. Такой двухэтапный подход позволяет сократить время при определении максимальной длины данных, так как к концу кодирования блока ЬЬ обычно выполняется кодирование нескольких этапов для блоков ЬН, НЬ, НН, что позволяет практически сразу оценить
максимальный размер этих блоков.
✓-<
Начало иодирования
^-—-
Кодирована
сл&дуюцего =тапа Блока 1Л_
I
Кодирование
соответствующего функции швнишпи числа этапов для БлоковШ, Н1_, НН.
Предсказание нанснналнюго рэане-ра блоков LH, HL, НН
+
Кодирование соответствующего функции зависимости числа =та п ов 6л dkdb LH, Н L, НН
—
Конец кодирование
запись данных в файл
._
Рис. 8. Предложенный алгоритм кодирования
Данный алгоритм позволяет сократить время при кодировании на 5-10%. Преимуществом является то, что он учитывает и кодирует детали изображения: блоки ЬН, НЬ, НН именно в тех пропорциях, которые требуются для достижения хорошего качества при кодировании. Кроме того, алгоритм хорошо ведет себя и в нестандартных случаях, когда между вейвлет-коэффициентами отсутствуют зависимости, на которых построен предложенный ал-
горитм, но при этом незначительно снижается качество кодирования.
Можно сделать вывод о том, что между вейвлет-коэффициентами для определенных классов изображений, несомненно, существуют зависимости. Используя данные зависимости можно выдвинуть более совершенный подход к сжатию изображений. Предложенный алгоритм базируется на некоторых из них, и дает хорошие результаты, тем не менее, существует еще множество нерассмотренных аспектов, которые в значительной степени могли бы улучшить его эффективность.
Поскольку данный алгоритм предназначен для работы с классом текстовых изображений, то существует необходимость интеграции, а также разработки методов и способов классификации изображений. Кроме того, стандарт JPEG2000 позволяет выделить в изображении "области повышенного интереса", которые должны быть сохранены при сжатии с максимально возможным качеством, вне зависимости от степени сжатия. Применение таких областей в совокупности с данным алгоритмом позволило бы сохранить в изображении детали, представляющие наибольший интерес.
Библиографический список
1. Pennebaker, W.B. The jpeg still image data compression standard / W.B. Pennebaker and J.L.Mitchell. - New York: Van Nostrand Reinhold, 1993. - 638 c.
2. Battiato, S. A color reindexing algorithm for lossless compressionof digital images / S. Battiato, G. Gallo, G. Impoco, and F. Stanco // SCCG '01 Proceedings of the 17th Spring conference on Computer graphics. 2001.
3. Impoco, G. JPEG2000 - A Short Tutorial / G. Impoco, Tech. Report, Visual Computing Lab. 2004.
4. Taubman, D. Embedded block coding in JPEG 2000 / D. Taubman, E.Ordentlich, M.Weinberg // ICIP00, page TA02.02. 2002.
5. Сокол, А.В. Оптимизация алгоритма сжатия изображений JPEG-2000 с помощью подбора длины R-D кривых // Исследовано в России. 2005. C. 625-634.
Дата поступления в редакцию 06. 04.2012
A. Poletaev, O. Korelin
ARITHMETIC CODING PROCESS OPTIMIZATION BASED ON CORRELATION BETWEEN WAVELET COEFFICIENTS MAGNITUDE AND PARAMETERS OF R-D CURVES FOR JPEG2000 COMPRESSION ALGORITHM
Nizhny Novgorod State Technical University n.a. R.Y. Alekseev
Purpose: The finding of reliable criterion for code run-length optimization problem is considered. Approach: It is possible to make a preliminary decision to predict the optimal truncation points set for the optimization problem at the beginning of the arithmetic coding process. The correlation between wavelet coefficients and R-D parameters has a determined statistical distribution within the class of images. Thus, the analysis of the R-D curves at each coding stage allows beneficial manipulating and adjusting the set of truncation points to achieve the closest to the optimal value of compression rate/quality ratio.
Findings: As a result of study, the suitable criterion found and appropriate coding process guiding algorithm developed for text image class. Moreover, the work shows the basic approach for finding the beneficial algorithm for solving the optimization problem for any other image class.
Research implications: The present study provides a starting-point for further research on the optimization problem. For example, the neuron network could be involved for making more precise prediction of optimal truncation point set. Value: Moreover, it is worth stressing that the criterion does not depend on demanded compression rate, image dimensions and input image quality. Additionally, this criterion is reliable within the defined image class. These factors make it suitable for using in automated text image processing systems.
Key words: arithmetic coding, bit-planes, R-D curves code run-length optimization, wavelet coefficients, JPEG2000.