<< ПредыдущаяОглавлениеСледующая >>


17. Стандарт JPEG2000

Стандарт JPEG2000 разработан той же группой экспертов в области фотографии, что и JPEG. Формирование JPEG как международного стандарта было закончено в 1992 году. В 1997 стало ясно, что необходим новый, более гибкий и мощный стандарт, который и был доработан к зиме 2000 года. Основные отличия алгоритма JPEG2000 от JPEG заключаются в следующем:

1. Лучшее качество изображения при сильной степени сжатия.

2. Поддержка кодирования отдельных областей с лучшим качеством. Здесь предполагается, что имеется возможность человеку «на глаз» определить: какие области можно сжать с меньшим качеством, а для каких оставить прежнее. В результате при одинаковом субъективном качестве изображения могут быть достигнуты более высокие степени сжатия.

3. Алгоритм основан на вейвлет-преобразовании. Появилась возможность постепенного проявления изображения при его загрузке по сетям связи.

4. Бит-ориентированное арифметическое кодирование. Арифметическое кодирование предполагалось использовать еще в стандарте JPEG, но тогда оно было защищено патентами. Сейчас срок действия основного патента истек и стало возможным его применение в JPEG2000.

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

6. Поддержка сжатия однобитных (2-цветных) изображений.

Рассмотрим алгоритм JPEG2000 по шагам.

Шаг 1. В JPEG2000 выполняется центрирование яркости каждой компоненты RGB изображения перед преобразованием в цветовое пространство YUV. Это делается для выравнивания динамического диапазона, что приводит к увеличению степени сжатия. Формулу преобразования можно записать так:

,

где  - число бит/пиксел для кодируемого сигнала. Соответственно, обратное восстановление имеет вид

.

Шаг 2. Переводим изображение из пространства RGB в пространство YUV. Этот перевод делается аналогично алгоритму JPEG в случае сжатия с потерями. При сжатии без потерь пространство переводится с помощью выражения:

,

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

.

Шаг 3. Дискретное ВП может быть двух видов – для сжатия с потерями и без. Его коэффициенты задаются таблицами, приведенными ниже.

 

В случае сжатия без потерь прямое ВП в одномерном случае будет иметь вид

,

,

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

,

.

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

Пусть мы преобразуем строку из 10 пикселов. Расширим ее значения вправо и влево и применим ДВП:

Получившаяся строка 1, 0, 1, 11, 4, 13, -2, 8, -5 и является цепочкой, однозначно задающей исходные данные.

Формулы для восстановления будут иметь вид

Применение этих формул даст

В результате получили исходную цепочку чисел.

После ДВП вектор  переупорядочивается так, чтобы элементы с четными индексами записывались в начало вектора, а с нечетными – в конец. В результате получится разделение на низко- и высокочастотную составляющую.

ДВП с последующим переупорядочиванием элементов в случае изображения применяется сначала к строкам, а затем к столбцам. В результате получается двумерное разделимое ВП. В результате изображение делится на 4 квадранта. После чего преобразование повторно применяется уже только к первому квадранту – 2-й этап декомпозиции.

Пример одного шага ВП

При сохранении результатов под данные 2 и 3 квадрантов выделяется на 1 бит больше, а под данные 4 квадранта – на 2 бита больше. То есть, если исходные данные были 8 битные, то на 2 и 3 квадранты нужно 9 бит, а на 4 – 10, независимо от уровня ДВП. При записи коэффициентов в файл можно использовать иерархическую структуру ДВП, помещая коэффициенты преобразований с большего уровня в начало файла. Это позволяет получить «изображение для предварительного просмотра», прочитав небольшой участок из начала файла, не распаковывая весь файл, как это приходилось делать в стандарте JPEG.

Шаг 4. Квантование. Коэффициенты квадрантов делятся на заранее заданное число. При увеличении этого числа снижается динамический диапазон коэффициентов, они становятся ближе к 0, и мы получаем большую степень сжатия. Варьируя эти числа для разных уровней преобразования, для разных цветовых компонент и разных квадрантов, можно получать разные степени сжатия при разных потерях. Формула прямого преобразования при квантовании имеет вид:

,

где  - шаг квантования;  - знак округления до наименьшего целого. Обратное преобразование записывается как

,

где  - некоторый коэффициент не определенный строго стандартом, но во многих практических случаях он устанавливается равный 0,5. В результате получается скалярное квантование с «мертвой зоной» в нуле.

Шаг 5. Для сжатия получающихся массивов данных в JPEG2000 используется вариант арифметического сжатия, называемый MQ-кодер.

На первом этапе квантованные в-к на каждом этапе декомпозиции разделяются в кодовые блоки. Кодовые блоки – это прямоугольники с произвольной шириной и длиной, которые должны удовлетворять двум условиям: 1 – длина и ширина должны принимать значения ,  - целое положительное число; 2 – произведение ширины на длину не должно превышать значения 4096. Типичный размер кодовых блоков 64х64 отсчета. После разделения коэффициентов в кодовые блоки они независимо кодируются, используя битовый кодер. Для этих целей используется контекстно-зависимый адаптивный бинарный арифметический кодер, известный как MQ-кодер. После разложения каждого блока на битовые плоскости они кодируются независимо. При этом контекст определяется на основе ближайших отсчетов, как показано на рис. 9.

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

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

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

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

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

2. Изображение сжимается один раз, а разжимается множество раз.

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

Интересным примером являются WWW-сервера. Для них тоже, как правило, выполняются оба изложенных выше условия. При этом совершенно не обязательно индивидуально подходить к каждому изображению поскольку по статистике 10% изображений будут запрашиваться 90% раз. То есть для крупных справочных или игровых серверов появляется возможность уменьшать время загрузки изображений и степень загруженности каналов связи адаптивно.

В JPEG2000 используется однобитное изображение-маска, задающее повышение качества в данной области изображения. Поскольку за качество областей у нас отвечают коэффициенты ДВП преобразования во 2, 3 и 4 квадрантах, то маска преобразуется т.о., чтобы указывать на все коэффициенты, соответствующие областям повышения качества:

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



<< ПредыдущаяОглавлениеСледующая >>