СООБЩЕНИЕ И ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИИ О ПОЗИЦИИ ВЫБОРКИ НАСЫЩЕННОСТИ ЦВЕТА
REPORTING AND USING CHROMA SAMPLE POSITION INFORMATION

СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Кратко, подробное описание предназначено для аспектов кодирования и декодирования данных цифровых носителей, и, в частности, кодирования и декодирования данных цифровых носителей в кодерах цифровых носителей и декодерах.
Например, описаны правила для сообщения и интерпретации позиции насыщенности цвета. Одно правило, названное коротким правилом, определяет пятнадцать дискретных позиций центрирования насыщенности цвета и соответствующий 4-битовый элемент синтаксиса. Другое правило, названное расширенным правилом, определяет 81 дискретную позицию центрирования насыщенности цвета и соответствующие 7-битовые элементы синтаксиса. Изменения этих правил и другие аспекты также описаны.
В одном аспекте, способ содержит получение данных цифровых носителей в кодере цифровых носителей; определение позиции насыщенности цвета для полученных данных цифровых носителей; представление информации о позиции насыщенности цвета одним или более элементами синтаксиса в кодированном битовом потоке, причем элемент синтаксиса способен сообщить информацию о позиции насыщенности цвета на декодер цифровых носителей, и причем информация о позиции насыщенности цвета облегчает вращение изображения или зеркальное отражение; и вывод кодированного битового потока. В другом аспекте, декодирована информация о позиции насыщенности цвета.
Это краткое описание предназначено для введения выбора понятий в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Это резюме не предназначено для идентификации ключевых признаков или существенных признаков требуемого предмета, и не предназначено для ограничения области охвата требуемого предмета.
Предшествующие и другие объекты, признаки и преимущества станут более очевидными из последующего подробного описания, которое продолжится со ссылками на сопровождающие чертежи.
КРАТКОЕ ОПИСАНИЕ ФИГУР ЧЕРТЕЖЕЙ
Фиг.1 - блок-схема соответствующей вычислительной среды для реализации методики и инструментальные средства для сообщения и использования информации о позиции насыщенности цвета в одной или более описанных реализаций.
Фиг.2 - схема, показывающая первый пример правила позиции выборки насыщенности цвета.
Фиг.3 - схема, показывающая второй пример правила позиции выборки насыщенности цвета.
Фиг.4 - схема, показывающая уменьшение дискретизации насыщенности цвета данных развертки.
Фиг.5 - блок-схема основанного на блочном преобразовании кодека.
Фиг.6 - схема алгоритма операций типичного кодера.
Фиг.7 - схема алгоритма операций типичного декодера.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящее изобретение имеет отношение к методикам и инструментальным средствам для эффективного сжатия и распаковки данных цифровых носителей. В различных описанных вариантах воплощения до сих пор кодер изображения и/или декодер содержат методики для сжатия и/или распаковки данных изображения.
Различные альтернативы к реализациям, описанным здесь, возможны. Например, методики, описанные со ссылкой на чертежи блок-схемы, могут быть изменены, посредством изменения стадий, показанных на блок-схемах, повторяя или опуская определенные стадии, и т.д. Как другой пример, хотя некоторые реализации описаны со ссылкой на конкретные форматы цифровых носителей, также могут использоваться другие форматы.
Различные методики и инструментальные средства могут использоваться в комбинации или независимо. Различные варианты воплощения реализуют одну или более из описанных методик и инструментальных средств. Некоторые методики и инструментальные средства, описанные здесь, могут использоваться до сих пор в кодерах изображения или декодерах, или в некоторой другой системе, не ограниченной только кодированием изображения или декодированием.
I. Вычислительные среды
Фиг.1 поясняет обобщенный пример соответствующей вычислительной среды 100, в которой могут быть реализованы несколько из описанных вариантов воплощения. Вычислительная среда 100 не предназначена для наложения любых ограничений охвата использования или функциональности, поскольку методики и инструментальные средства могут быть реализованы в различных вычислительных средах общего или специального назначения.
В отношении фиг.1, вычислительная среда 100 включает в себя, по меньшей мере, один процессор 110 и память 120. На фиг.1 эта базовая конфигурация 130 находится в пределах пунктирной линии. Процессор 110 выполняет исполняемые компьютером команды и может быть реальным или виртуальным микропроцессором. В многопроцессорной системе набор процессоров выполняют исполняемые компьютером команды для увеличения мощности обработки. Памятью 120 может быть кратковременная память (например, регистры, кэш, оперативная память), долговременная память (например, ROM, EEPROM, флэш-память и т.д.) или некоторая комбинация этих двух.
Память 120 хранит программное обеспечение 180, реализующее кодер цифровых носителей или декодер с одной или более из описанных методик и инструментальных средств.
У вычислительной среды могут быть дополнительные признаки. Например, вычислительная среда 100 включает в себя устройство хранения 140, одно или более устройства ввода данных 150, одно или более устройства вывода 160, и одно или более соединений связи 170. Механизм соединения (не показанный), такой как шина, контроллер, или сеть связывает компоненты вычислительной среды 100. Как правило, программное обеспечение операционной системы (не показанное) предоставляет среду для другого программного обеспечения, выполняющегося в вычислительной среде 100, и координирует действия компонентов вычислительной среды 100.
Устройство хранения 140 может быть сменным или фиксированным и включает в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD (включая высококачественные DVD), или любую другую среду, которая может использоваться для хранения информации и к которой можно обратиться в пределах вычислительной среды 100. Устройство хранения 140 хранит команды для программного обеспечения 180, реализующие кодер цифровых носителей или декодер.
Устройство(а) ввода данных 150 может быть сенсорным устройством ввода данных, таким как клавиатура, мышь, перо или шаровой указатель, голосовое устройство ввода данных, сканирующее устройство, а также прибор ввода изображения (например, цифровая камера), или другой прибор, который обеспечивает ввод для вычислительной среды 100. Для звукового или видеокодирования, устройство(а) ввода данных 150 может быть звуковой платой, видеоплатой, платой телевизионного блока настройки, или подобным прибором, который принимает звуковой или видеоввод в аналоговой или цифровой форме, или CD-ROM или CD-RW, который читает звуковые или видеовыборки для вычислительной среды 100. Устройство(а) вывода 160 может быть дисплеем, принтером, динамиком, CD или DWD записывающим устройством, или другим прибором, который обеспечивает вывод для вычислительной среды 100.
Соединение(я) связи 170 делает возможной связь через среду связи к другому вычислительному объекту. Среда связи передает информацию, такую как исполнимые компьютером команды, ввод для цифровых носителей или вывод, или другие данные в модулированном информационном сигнале. Модулированный информационный сигнал - это сигнал, который имеет один или более из наборов характеристик или измененный таким образом, чтобы кодировать информацию в сигнале. Для примера, но не для ограничения, среды связи включают в себя проводные или беспроводные методики, реализованные посредством электрического, оптического, RF, инфракрасного, звукового или другого носителя.
Методики и инструментальные средства могут быть описаны в общем контексте читаемых компьютером носителей. Читаемые компьютером носители - это любые доступные носители, к которым можно обратиться в пределах вычислительной среды.
Для примера, но не для ограничения, с вычислительной средой 100, читаемые компьютером носители включают в себя память 120, устройства хранения 140, среду связи, и комбинации любого из вышеупомянутых.
Методики и инструментальные средства могут быть описаны в общем контексте исполняемых компьютером команд, таких как содержащихся в программных модулях, выполняемых в вычислительной среде на целевом реальном или виртуальном процессоре. В общем, программные модули включают в себя подпрограммы, программы, библиотеки, объекты, классы, компоненты, структуры данных и т.д., которые выполняют отдельные задачи или реализуют отдельные абстрактные типы данных. Функциональность программных модулей может быть комбинирована или разделена между программными модулями по предпочтению в различных вариантах воплощения. Исполняемые компьютером команды для программных модулей могут выполняться в локальной или распределенной вычислительной среде.
Ради пояснения, подробное описание использует такие термины как "выбирать" и "принимать", чтобы описать компьютерные операции в вычислительной среде. Эти термины являются высокоуровневыми абстракциями для операций, исполняемых компьютером, и не должны быть спутаны с действиями, совершаемыми человеком. Фактические компьютерные операции, соответствующие этим терминам, изменяются в зависимости от реализации.
II. Сообщение и использование информации о позиции выборки насыщенности цвета
Описанные варианты воплощения обеспечивают улучшенные признаки битового потока изображения для кодека, включая возможность выполнять основные вращения и зеркальные отображения изображения без полного декодирования и повторного кодирования. Этот признак может быть поддержан многими методиками разработки, включающими в себя:
1. Биортогональное преобразование с перекрытием (LBT)-
a) Симметрия базисных функций LBT позволяет зеркальное отображение пространственных данных в пределах блока преобразования, просто изменяя знак нечетно-симметричных коэффициентов преобразования. Это верно для обоих пространственных направлений X и Y.
b) Изотропная природа базисных функций LBT позволяет переставлять пространственные данные в пределах блока преобразования, просто переставляя коэффициенты преобразования. Основные вращения могут быть реализованы как комбинации перестановок и зеркальных отображений.
2. Блок, макроблок и элемент мозаики пространственных иерархий
a) Чтобы выполнить зеркальное отображение в пределах макроблока данных, измененные блоки преобразования просматриваются в поперечно обратной последовательности (в X и/или Y в зависимости от требования). Аналогично, в пределах элемента мозаики, измененные макроблоки просматриваются в поперечно обратном порядке, и в пределах изображения измененные элементы мозаики просматриваются в поперечно обратном порядке.
b) Чтобы выполнить перестановку, измененные блоки, макроблоки и элементы мозаики переставляются. Основные вращения могут быть реализованы как комбинации перестановок и зеркальных отображений.
3. Сообщение вписанной области в пределах расширенной области кадра - это позволяет свободно зеркально отражать или вращать не выровненные по макроблокам изображения и ненулевое смещение изображения в сетке макроблоков допускается в любом направлении, а не только вправо и вниз.
4. Сообщение позиции выборки насыщенности цвета - это позволяет вращение таких форматов подвыборки насыщенности цвета, как YUV4:2:0 и YUV4:2:2, разрешая независимое определение локализации выборки насыщенности цвета. Это также позволяет сообщение относительных расположений позиций выборки яркости/насыщенности цвета декодеру, таким образом фильтр повышения дискретизации с подходящей фазой может быть выбран.
Сообщение позиций выборок насыщенности цвета описывается подробно ниже. Описанные методики сообщения позволяют вращать изображения в пределах сжатого домена без потери информации и без существенного изменения сжатого размера. Это является желательным признаком битового потока и имеет преимущества в сложности алгоритма.
А. Центрирование насыщенности цвета
Изображение состоит из многих плоскостей данных. В исходном пространстве, изображение обычно составляется из 3 цветовых плоскостей, соответствующих соответственно красному, зеленому и синему (R, G и B) каналам. Во внутреннем цветовом пространстве, используемом в большинстве популярных кодеков, изображение составляется из 3 переделанных цветовых плоскостей, часто называемых Y, U и V. Компонент Y называют яркостью или плоскостью яркости, которая примерно соответствует полутоновому отображению изображения. U и V компоненты упоминаются как насыщенность цвета, информация о цвете или плоскости различия цветов. Терминология Y, U, V используется здесь в общем смысле с пониманием того, что описанные методики и инструментальные средства применимы ко множеству "YUV типов" форматов цветов, таких как YCbCr, YCoCg и т.д.
У цветного формата под названием YUV 4:4:4 есть одна U и одна V выборка для каждой выборки Y.
Человеческий глаз очень чувствителен к изменению интенсивности и разрешающей способности канала яркости. Он относительно менее чувствителен к насыщенности цвета. Это позволяет простое средство сокращения числа пикселей изображения в данных посредством подвыборки или понижением разрешения компонент насыщенности цвета (U и V).
Две методики подвыборки насыщенности цвета популярны.
1. YUV 4:2:2 - здесь пространственная разрешающая способность U и V в направлении X уменьшена вдвое (обычно с некоторым фильтром сглаживания).
2. YUV 4:2:0 - здесь пространственная разрешающая способность U и V и в X и в Y направлениях уменьшена вдвое.
Для YUV 4:2:2 случая, каждая выборка насыщенности цвета соответствует двум выборкам яркости. Аналогично, для YUV 4:2:0 случая каждая выборка насыщенности цвета соответствует четырем выборкам яркости. Подвыборка насыщенности цвета обычно выполняется после фильтрации выборок с фильтром сглаживания.
Фаза этого фильтра определяет относительную позицию выборок яркости и насыщенности цвета.
При обратном преобразовании из этих форматов к YUV 4:4:4 для целей показа или печати, знание относительных позиций выборок должно быть доступным так, чтобы подходящий фильтр повышения дискретизации мог использоваться.
Один из подходов к этой задаче состоит в том, чтобы или делегировать выбор или сообщить точный фильтр повышения дискретизации, который должен использоваться. Но, этот подход налагает дополнительные требования на систему, и может быть не совместим с остальными стандартами промышленности.
Более простое и более гибкое решение сообщения, как реконструировать полные данные разрешения из выбранного варианта подвыборки, это сообщение информации о "позиции" относительного выравнивания выборок яркости и насыщенности цвета. Этот подход позволяет декодеру использовать любой фильтр повышения дискретизации, фаза которого согласована с информацией о позиции.
В то время как этот подход не определяет уникальное правило восстановления (то есть уникальный фильтр повышения дискретизации), он имеет достаточно хорошую производительность и имеет широкую распространенность.
"Позиция" точки подвыборки - это расположение или фаза этой величины в пределах сетки полного разрешения. Информация о позиции используется для выбора между фильтрами повышения дискретизации, которые совместимы с фазовым ограничением. Информация о позиции, вообще, имеет две размерности - сдвиг определен и в горизонтальном, и в вертикальном направлениях.
Фиг.2 и 3 показывают примеры двух обычных правил позиции насыщенности цвета, используемых для YUV 4:2:0. На фиг.2, фаза = (0,0), и на фиг.3, фаза=(0,5, 0,5) в пикселях яркости.
B. Насыщенность цвета, центрированная с вращением/отображением изображения
Два примера, показанные на фиг.2 и 3, является наиболее общими случаями для YUV 4:2:0 подвыборки насыщенности цвета. Эти два правила центрирования обычно достаточны для видеоданных, но обычно недостаточны для данных изображения. Различие между видео и изображениями заключается в том, что видео редко вращается, или зеркально отображается, тогда как изображения очень часто вращаются и/или зеркально отображаются.
Чтобы понять, почему два правила центрирования обычно недостаточны для данных изображения, рассмотрим следующие случаи.
Случай 1
: Рассмотрим зеркальное отображение вдоль горизонтального направления для примера центрирования 1. Теперь выборка насыщенности цвета совмещена не с левой верхней позицией выборки яркости, а с правой верхней позицией выборки яркости. Соответствующая фаза насыщенности цвета равна (1,0) в пикселях яркости, которая не определена правилами, показанными на фиг.2 и 3.
Случай 2:
Аналогично, зеркальное отображение изображения вдоль вертикального направления с позицией насыщенности цвета, показанной в примере 1, приведет к позиции насыщенности цвета равной (0,1) фазы в пикселях яркости, которая не определена правилами, показанными на фиг.2 и 3.
Вышеупомянутые случаи показывают полезность определения дополнительных правил центрирования насыщенности цвета, как побочной информации к битовому потоку, чтобы помочь процессу правильного восстановления, когда изображение подвергается базовым операциям основных вращений и зеркальным отображениям.
C. Насыщенность цвета, центрированная с чередованием данных.
Другое осложнение введено чересстрочным видео. Кадр чересстрочного видео содержит два поля - верхнее поле и нижнее поле. Поле видео может быть сохранено с его полным разрешением без уменьшения дискретизации выборки насыщенности цвета. Более типично, это проводится в форме уменьшения дискретизации выборки насыщенности цвета, такой как YUV 4:2:2, где насыщенность цвета субдискретизована в направлении X вдвое, и соответствует разрешению яркости в направлении Y. В последних видеокодеках, однако, поле чересстрочного видео определено в YUV 4:2:0 пространстве таким образом, что насыщенность цвета субдискретизована вдвое и в X и в Y направлениях.
Эта операция часто приводит к центрированию насыщенности цвета с фазовым сдвигом 0,25 или 0,75 (в пикселях яркости) в вертикальном направлении в зависимости от того, является ли это верхним или нижним полем, соответственно. Такое центрирование может использоваться, чтобы гарантировать следующее.
1. Переменные линии насыщенности цвета в кадре производятся переменными полями. Центрирование насыщенности цвета является однородным сквозь последовательные линии кадра.
Уменьшение дискретизации выборки насыщенности цвета чередующихся данных показано на фиг.4. Ось X уменьшения дискретизации может иметь любую фазу, и не существенна для этого обсуждения. Поэтому чертеж показывает только центрирование и смещение по оси Y.
D. Позиции насыщенности цвета
Помня вышеупомянутое, определяем два правила для позиции насыщенности цвета. Первое правило, названное коротким правилом, определяет 15 фаз центрирования насыщенности цвета. Об этом правиле сообщают, используя 4-битовое слово в пределах битового потока изображения. Таблица 1 перечисляет значения и соответствующие фазы элемента синтаксиса CHROMA_CENTERING_SHORT в одной из реализаций. В примере, показанном в Таблице 1, CHROMA_CENTERING_SHORT может иметь значения между 0 и 15, но значение 14 зарезервировано и не используется.
CHROMA_CENTERING_SHORT можно сообщить, например, в заголовке изображения или заголовке плоскости изображения.
<b>Таблица 1:</b><b>Перечисление значений CHROMA_centerING_SHORT и соответствующих фаз</b>
<b>CHROMA_centerING_SHORT</b>
<b>X фаза = 0</b>
<b>X фаза = 0.5</b>
<b>X фаза = 1</b>
Y фаза = 0
0
10
1
Y фаза=0,25
6
12
7
Y фаза=0,5
4
15
5
Y фаза=0,75
8
13
9
Y фаза=1
2
11
3
Второе и более полное правило центрирования насыщенности цвета, названное расширенным правилом, также описано. Это правило имеет преимущество в том, что разрешает изображению быть отображенным, без потери данных, любым целым числом пикселей. Это в добавление к вращению и зеркальному отображению.
В одной из реализаций, о расширенном правиле сообщают семи битовым словом (CHROMA_CENTERING_LONG) в пределах битового потока изображения, и перечисление фаз, соответствующих элементу синтаксиса CHROMA_CENTERING_LONG, следующее.
CHROMA_CENTERING_LONG=CHROMA_CENTERING_X+CHROMA_CENTERING_Y*9, где CHROMA_CENTERING_X и CHROMA_CENTERING_Y - элементы синтаксиса, определяющие фазу в X и Y направлениях как показано ниже в Таблице 2. CHROMA_CENTERING_X и CHROMA_CENTERING_Y имеют значения между 0 и 8. Поэтому CHROMA_CENTERING_LONG может иметь значения между 0 и 80. Значения вне этого интервала зарезервированы. CHROMA_CENTERING_LONG, CHROMA_CENTERING_X и/или CHROMA_CENTERING_Y могут быть сообщены, например, в заголовке изображения или заголовке плоскости изображения.
<b>Таблица 2:</b><b>Перечисление значений CHROMA_centerING_X и CHROMA_centerING_Y и соответствующие фазы</b>
<b>CHROMA_centerING_X или Y</b>
<b>Фаза X или Y</b>
8
-0,5
7
-0,25
0
0
1
0,25
2
0,5
3
0,75
4
1,0
5
1,25
6
1,5
Возможно использование других отображений вместо Таблиц 1 и 2. Также возможно использовать другое кодирование элементов CHROMA_CENTERING, такое как коды переменной длины.
III. Кодирование, основанное на блочных преобразованиях.
Кодирование, основанное на преобразованиях? - это методика сжатия, используемая во многих системах сжатия цифровых носителей (например, аудио, изображение и видео). Распакованное цифровое изображение и видео обычно представлены или зафиксированы как выборки элементов изображения или цветов в позициях в кадре изображения или видео, расположенных в двумерной (2D) сетке. Это упоминается как представление пространственных областей изображения или видео.
Например, типичный формат для изображений состоит из потока 24-битовых выборок элементов цветного изображения, расположенных как сетка. Каждая выборка - это номер, представляющий цветовые компоненты в позиции пикселя в сетке в пределах цветового пространства, такого как RGB, или YIQ, среди прочих. Различные системы изображений и видео могут использовать различное цветовое, пространственное и временное разрешение выборки. Точно также цифровая звукозапись обычно представляет временную выборку потока звукового сигнала. Например, типичные звуковые форматы состоят из потока 16-битовых амплитудных выборок звукового сигнала, взятые через регулярные интервалы времени.
Распакованная цифровая звукозапись, изображение и видеосигналы могут потреблять значительные ресурсы памяти и передачи. Кодирование преобразования уменьшает размер цифровой звукозаписи, изображений и видео, преобразовывая представление пространственной области сигнала в частотный интервал (или другую схожую область преобразования) представления, и затем уменьшая разрешение определенных, в целом менее воспринимаемых, частотных составляющих представления области преобразования. Это в целом производит намного менее заметное ухудшение цифрового сигнала по сравнению с уменьшением цветового или пространственного разрешения изображений или видео в пространственной области, или аудио во временной области.
Более определенно, типичная, основанная на блочных преобразованиях, система кодера/декодера 500 (также называемая "кодеком"), показанная на фиг.5 разделяет пиксели распакованного цифрового изображения на двумерные блоки фиксированного размера (X1,..., XN), каждый блок, возможно, перекрывается с другими блоками. В кодере 510, линейное преобразование 520-521, которое осуществляет пространственный частотный анализ, применяется к каждому блоку, что преобразовывает пространственные выборки в блоке в ряд частотных (или преобразования) коэффициентов, в целом представляющие интенсивность цифрового сигнала в соответствующих полосах частот по интервалу блока. Для сжатия коэффициенты преобразования могут быть выборочно квантованы 530 (то есть уменьшены в разрешении посредством пропуска наименее значащих битов значений коэффициентов, или, иначе, отображая значения набора высокого разрешения в набор с более низким разрешением), и также энтропия или длины переменных кодируются 530 в сжатый поток данных. При декодировании, коэффициенты преобразования инверсно преобразуют 570-571, чтобы приблизительно реконструировать исходные цветовые/пространственные выборки сигнала изображения/видео (реконструированные блоки X1, …, XN).
Блочное преобразование 520-521 может быть определено как математическое действие на векторе x размера N. Чаще всего, эта операция является линейным произведением, производя вывод области преобразования y=Mx, M - матрица преобразования. Когда входные данные произвольно длинны, осуществляется сегментирование на вектора размера N и блочное преобразование применяется к каждому сегменту.
С целью сжатия данных выбраны обратимые блочные преобразования. Другими словами, матрицы М обратимы. Для многих размерностей (например, для изображения и видео), блочные преобразования обычно реализуются как отдельные операции. Матричное умножение применяется отдельно для каждой размерности данных (то есть для строк и столбцов).
Для сжатия коэффициенты преобразования (компоненты вектора y) могут быть выборочно квантованы (то есть уменьшены в разрешении, пропуская наименее значащие биты значений коэффициентов, или, иначе, отображая значения набора высокого разрешения на набор более низкого разрешения), и также энтропия или длины переменных кодируются в сжатый поток данных.
При декодировании в декодере 550 инверсия этих операций (обратное квантование/декодирование энтропии 560 и обратное блочное преобразование 570-571) применяются в декодере 550, как показано на фиг.5. При восстановлении данных обратная матрица М' (обратное преобразование 570-571) применяется как множитель к данным области преобразования. При применении к данным области преобразования обратное преобразование приблизительно реконструирует исходную временную область или пространственную область цифрового носителя.
Во многих основанных на блочных преобразовании приложениях кодирования желательно, чтобы преобразование было обратимым для поддержки сжатия без потерь и с потерями в зависимости от коэффициента квантования. Без квантования (в общем, представленное как коэффициент квантования 1), например, кодек, использующий обратимое преобразование, может точно воспроизвести входные данные при декодировании. Но, требование обратимости в этих приложениях ограничивает выбор преобразований, для которых может быть разработан кодек.
Многие системы сжатия изображения и видео, такие как MPEG и Windows Media, среди других, используют преобразования, основанные на Дискретном Косинусном Преобразовании (DCT). DCT, как известно, имеет благоприятные энергетические свойства уплотнения, которые приводят к почти оптимальному сжатию данных. В этих системах сжатия, обратный DCT (IDCT) используется в циклах восстановления и в кодере и в декодере системы сжатия для реконструкции отдельных блоков изображения.
IV. Типичная реализация кодера/декодера
Фиг.6 и 7 - это обобщенные схемы процессов, используемых в типичном кодере 2-мерных (2D) данных 600 и декодере 700. Фигуры представляют обобщенный или упрощенный пример системы сжатия/распаковки, которая может использоваться для реализации описанных методик и инструментальных средств. В альтернативных системах сжатия/распаковки, дополнительные, или только некоторые процессы из показанных, в этих типичных кодере и декодере, могут использоваться для сжатия 2D данных. Например, некоторые кодеры/декодеры могут также включать в себя преобразование цветов, форматы цветов, масштабируемое кодирование, кодирование без потерь, макроблочные режимы и т.д. Система сжатия (кодер и декодер) может обеспечить сжатие без потерь и/или с потерями 2D данных, в зависимости от квантования, которое может быть основано на параметре квантования, изменяющемся от режима без потерь до режима с потерями.
Кодер 2D данных 600 производит сжатый битовый поток 620, который является более компактным представлением (для типичного ввода) 2D данных 610, представленных как ввод для кодера. Например, ввод 2D данных может быть изображением, кадром видеопоследовательности, или другими данными, имеющими две размерности. Кодер 2D данных делит кадр входных данных на блоки (поясняемое в целом на фиг.6 как разделение 630), которые в поясняемой реализации являются неперекрывающимися блоками 4×4 пикселя, формирующими регулярную структуру через плоскость кадра. Эти блоки сгруппированы в кластеры, называемые макроблоками, размерами 16×16 пикселей в этом типичном кодере. В свою очередь, макроблоки сгруппированы в регулярные структуры, называемые элементами мозаики. Элементы мозаики также формируют регулярную структуру через изображение, таким образом, что элементы мозаики в горизонтальной строке имеют одинаковую высоту и выровнены, а элементы мозаики в вертикальном столбце имеют одинаковую ширину и выровнены. В типичном кодере элементы мозаики могут быть произвольного размера, который является множителем 16 в горизонтальном и/или вертикальном направлениях. Альтернативные реализации кодера могут разделять изображение на блок, макроблок, элементы мозаики или другие блоки иного размера и структуры.
Оператор 640 "прямого перекрытия" применяется к каждому краю между блоками, после которого каждый 4x4 блок преобразуется с использованием блочного преобразования 650. Это блочное преобразование 650 может быть обратимым, 2D масштабно независимым преобразованием, описанным Srinivasan, патент США номер заявки 11/015707, озаглавленный "Обратимое преобразование для сжатия 2D данных без потерь и с потерями", зарегистрированный 17 декабря 2004. Оператор 640 перекрытия может быть обратимым оператором перекрытия, описанным Tu и др., патент США номер заявки 11/015148, озаглавленный "Обратимый оператор перекрытия для эффективного сжатия данных без потерь", зарегистрированный 17 декабря 2004; и Tu и др., патент США номер заявки 11/035991, озаглавленный "Обратимая 2-мерная до/после фильтрация для перекрывающихся биортогональных преобразований", зарегистрированный 14 января 2005. Альтернативно, дискретное косинусное преобразование или другие блочные преобразования и операторы перекрытия могут использоваться. Следующий за преобразованием, коэффициент DC 660 каждого 4×4 блока преобразования является предметом схожей цепочки обработки (фрагментация изображения, прямое перекрытие с последующим 4х4 блочным преобразованием). Результирующие коэффициенты преобразования DC и коэффициенты преобразования AC 662 квантованы 670, энтропия кодирована 680 и разбита на пакеты 690.
Декодер выполняет обратный процесс. На стороне декодера биты коэффициентов преобразования извлекаются 710 из их соответствующих пакетов, из которых коэффициенты сами декодируются 720 и обратно квантуются 730. Коэффициенты DC 740 восстанавливаются посредством обратного преобразования и плоскость коэффициентов DC "перекрывается в обратном порядке" с использованием подходящих операторов сглаживания, применяемых ко всем краям блока DC. Затем все данные восстанавливаются с помощью 4×4 обратного преобразования 750 к коэффициентам DC и коэффициентам AC 742, декодированным из битового потока. Наконец, края блоков в результирующей плоскости изображения, перекрытые в обратном порядке, фильтруются 760. Это порождает реконструированный вывод 790 2D данных.
В типичной реализации кодер 600 (фиг.6) сжимает входное изображение в сжатый битовый поток 620 (например, файл), и декодер 700 (фиг.7) реконструирует первоначальный ввод или его приближение, на основании с или без потерь кодирование используется. Процесс кодирования включает в себя использование преобразования с прямым перекрытием (LT), обсуждаемое ниже, которое реализовано с обратимой 2-мерной до/после фильтрацией, также описанной более полно ниже. Процесс декодирования включает в себя использование обратного преобразования с перекрытием (ILT) с использованием обратимой 2-мерной до/после фильтрацией.
Поясняемый LT и ILT - инверсии друг друга в точном смысле, и поэтому могут вместе упоминаться как обратимое преобразование с перекрытием. Как обратимое преобразование, пара LT/ILT может использоваться для сжатия изображения без потерь.
Входные данные 610, сжатые поясняемыми кодером 600/декодером 700, могут быть изображениями различных цветовых форматов (например, RGB/YUV4:4:4, YUV4:2:2 или YUV4:2:0 форматы цветных изображений). Как правило, у входного изображения всегда есть компонент яркости (Y). Если это RGB/YUV4:4:4, YUV4:2:2 или изображение YUV4:2:0, у изображения также есть компоненты насыщенности цвета, такие как компонент U и компонент V. Отдельные цветовые плоскости или компоненты изображения могут иметь различные пространственные разрешения. В случае входного изображения в YUV 4:2:0 цветовом формате, например, U и V компоненты имеют половину ширины и высоты компонента Y.
Как обсуждалось выше, кодер 600 делит входной образ или изображение на макроблоки. В типичной реализации кодер 600 делит входной образ на области по 16×16 пикселей (называемые "макроблоками") в канале Y (которые могут быть 16×16, 16×8 или 8×8 областями в каналах U и V в зависимости от цветового формата).
Каждая цветовая плоскость макроблока разделена на области по 4×4 пикселя или блоки. Поэтому макроблок составлен для различных цветовых форматов следующим образом для данной типичной реализации кодера.
• Для полутонового изображения каждый макроблок содержит в себе 16 4×4 блоков яркости (Y).
• Для YUV4:2:0 цветового формата изображения каждый макроблок содержит в себе 16 4×4 Y блоков и 4 каждый по 4×4 (U и V) блока насыщенности цвета.
• Для YUV4:2:2 цветового формата изображения каждый макроблок содержит в себе 16 4×4 Y блоков, и 8 каждый по 4×4 (U и V) блоков насыщенности цвета.
• Для RGB или YUV4:4:4 цветового формата изображения, каждый макроблок содержит 16 блоков каждого из Y, U и V каналов.
Соответственно, после преобразования макроблок в данном типичном кодере 600/декодере 700 имеет три частотные субполосы: DC субполоса (макроблок DC), субполоса нижних частот (макроблок нижних частот) и субполоса высоких частот (макроблок высоких частот). В типичной системе субполосы нижних/высоких частот являются опциональными в битовом потоке - эти субполосы могут быть полностью пропущены.
Дополнительно сжатые данные могут быть упакованы в битовый поток в одном из двух порядков: пространственный порядок и частотный порядок. Для пространственного порядка различные субполосы одного и того же макроблока в пределах элемента мозаики упорядочены вместе и результирующий битовый поток каждого элемента мозаики записывается в один пакет. Для частотного порядка одна и та же субполоса от различных макроблоков в пределах элемента мозаики группируется вместе, и таким образом битовый поток элемента мозаики записывается в три пакета: DC пакет элемента мозаики, пакет нижних частот элемента мозаики и пакет высоких частот элемента мозаики. В добавление могут быть другие уровни данных.
Таким образом, для типичной системы изображение организовано в следующих "размерностях":
• Пространственная размерность: Кадр → Элемент мозаики → Макроблок;
• Частотная размерность: DC|Нижние частоты|Высокие частоты; и
• Размерность канала: яркость | насыщенность цвета_0 | насыщенность цвета_l... (например, как Y|U|V).
Стрелки выше обозначают иерархию, тогда как вертикальные штрихи обозначают разделение.
Хотя типичная система организовывает сжатые данные цифровых носителей в пространственных, частотных размерностях и размерностях каналов, гибкий подход квантования, описанный здесь, может быть применен в альтернативных кодер/декодер системах, которые организовывают свои данные по меньшим, дополнительным или другим размерностям.
Например, гибкий подход квантования может быть применен к кодированию с использованием большего числа полос частот, других форматов цветовых каналов (например, YIQ, RGB и т.д.), дополнительных каналов изображения (например, для системы стерео видения или других многочисленных матриц камер).
Имея описания и пояснения принципов нашего изобретения в отношении различных вариантов воплощения, можно оценить, что различные варианты воплощения могут быть изменены в расположении и в деталях, не отступая от данных принципов. Необходимо понимать, что программы, процессы или способы, описанные здесь, не связаны или ограничены любым конкретным типом вычислительной среды, если не обозначено иначе. Различные типы универсальных или специализированных вычислительных сред могут использоваться или выполнять операции в соответствии с идеей, описанной здесь. Элементы вариантов воплощения, показанных в программном обеспечении, могут быть реализованы в аппаратных средствах и наоборот.
В перспективе многих возможных вариантов воплощения, к которым могут быть применены принципы раскрытого изобретения, необходимо понимать, что показанные варианты воплощения являются только предпочтительными примерами изобретения и не должны быть использованы как ограничение области охвата изобретения. Вместо этого, область охвата изобретения определяется в соответствии с последующей формулой изобретения.