Операции повторной дискретизации и изменения размера изображения для кодирования и декодирования видео с переменной разрешающей способностью
Иллюстрации
Показать всеИзобретение относится к области техники кодирования/декодирования цифрового видео. Техническим результатом является высокоточное вычисление позиции для изменения размеров изображения в приложениях пространственно масштабируемого видеокодирования и декодирования, что обеспечивает повышение эффективности кодирования/декодирования цифрового видео. Указанный технический результат достигается тем, что повторная дискретизация видеоизображения выполняется согласно масштабному коэффициенту повторной дискретизации. Повторная дискретизация включает в себя вычисление значения выборки в позиции i, j в массиве повторной дискретизации, причем вычисление включает вычисление выводимой горизонтальной или вертикальной позиции х или у подвыборки способом, который связан с аппроксимацией значения частично путем умножения значения 2n на инверсию (приближенную или точную) масштабного коэффициента повышающей дискретизации. Аппроксимация может быть округлением или некоторым другим видом аппроксимации, такой как функция ограничения сверху или снизу, которая аппроксимирует ближайшее целое число, а значение выборки интерполируется с использованием фильтра. 4 н. и 17 з.п. ф-лы, 17 ил., 1 табл.
Реферат
Область техники
Описаны способы и инструментальные средства для кодирования/декодирования цифрового видео.
Предпосылки
С увеличением популярности цифровых видеодисков доставки музыки по сети Интернет и цифровых камер цифровые медиа стали самым обычным делом. Инженеры используют разнообразные методы, чтобы эффективно обрабатывать цифровое аудио, видео и изображения при одновременной поддержке качества. Пониманию этих методов способствует понимание того, каким образом информация аудио, видео и изображения представляется и обрабатывается в компьютере.
I. Представление информации медиа в компьютере
Компьютер обрабатывает информацию медиа как ряд чисел, представляющих эту информацию. Например, отдельное число может представлять интенсивность яркости или интенсивность цветового компонента, такого как красный, зеленый или синий для каждой элементарной малой области изображения, так что цифровое представление изображения состоит из одного или более массивов таких чисел. Каждое такое число может упоминаться как выборка. Для цветного изображения обычно используется более чем одна выборка, чтобы представлять цвет каждой элементарной области, и в типовом случае используются три выборки. Набор этих выборок для элементарной области может упоминаться как пиксел, где слово "пиксел" - сокращение, относящееся к понятию "элемент изображения" (“picture element”). Например, один пиксел может состоять из трех выборок, которые представляют интенсивность красного, зеленого и синего цвета, необходимых для представления элементарной области. Такой тип пиксела упоминается как RGB-пиксел. Несколько факторов влияют на качество информации медиа, включая глубину выборки, разрешающую способность и скорость кадров (для видео).
Глубина выборки является свойством, обычно измеряемым в битах, которое указывает диапазон чисел, которые могут использоваться, чтобы представить выборку. Когда больше значений возможно для выборки, качество может быть выше, потому что число может фиксировать более тонкие изменения в интенсивности и/или больший диапазон значений. Разрешающая способность обычно относится к числу выборок на некоторой длительности времени (для аудио) или по пространству (для изображений или индивидуальных видеоизображений). Изображения с более высокой пространственной разрешающей способностью имеют тенденцию выглядеть более четкими, чем другие изображения, и содержат более различимых полезных деталей. Скорость кадров - это обычный термин для временной разрешающей способности для видео. Видео с более высокой скоростью кадров имеет тенденцию имитировать плавное движение естественных объектов лучше, чем другое видео, и может аналогичным образом рассматриваться как содержащее больше деталей во временном измерении. Для всех этих факторов имеет место компромисс между высоким качеством и затратами на сохранение и передачу информации в терминах битовой скорости, необходимой для представления глубины выборки, разрешающей способности и скорости кадров, как показано в Таблице.
Битовая скорость различных уровней качества необработанного видео | |||
Бит на пиксел (глубина выборки на выборки на пиксел) | Разрешение (в пикселах, ширина на высоту) | Скорость кадров (в кадрах в секунду) | Битовая скорость (в миллионах битов в секунду) |
8(значение 0-225, монохромное) | 160х120 | 7,5 | 1,2 |
24(значение 0-255,RGB) | 320х240 | 15 | 27,6 |
24(значение 0-255,RGB) | 640х480 | 30 | 221,2 |
24(значение 0-255,RGB) | 1280х720 | 60 | 1327,1 |
Несмотря на высокую битовую скорость, необходимую для сохранения и передачи высококачественного видео (такого как HDTV), компании и потребители все больше зависят от компьютеров, чтобы создавать, распределять и воспроизводить высококачественное содержание. По этой причине инженеры используют сжатие (также называемое кодированием источника), чтобы уменьшить битовую скорость в цифровом медиа. Сжатие уменьшает затраты на хранение и передачу информации путем преобразования информации в форму более низкой битовой скорости. Сжатие может быть без потерь, в котором качество видео не ухудшается, но снижения битовой скорости ограничены сложностью видео. Или, сжатие может быть с потерями, в котором качество видео ухудшается, но снижения битовой скорости являются более значительными. Декомпрессия (также называемая декодированием) восстанавливает версию первоначальной информации из сжатой формы. "Кодек" - это система кодера/декодера.
Вообще, методы сжатия видео включают в себя сжатие с внутренним (внутрикадровым) кодированием и сжатие с межкадровым кодированием или сжатие с предсказанием. Для видеоизображений методы внутрикадрового сжатия сжимают индивидуальные изображения. Методы межкадрового сжатия сжимают изображения с опорой на предыдущее и/или последующее изображения.
II. Видео с переменной разрешающей способностью и пространственное масштабирование
Стандартные видеокодеры испытывают значительное ухудшение в характеристиках, когда целевая битовая скорость падает ниже некоторого порога. Квантование и другие стадии обработки с потерями вводят искажение. При низких битовых скоростях высокочастотная информация может быть сильно искажена или полностью потеряна. В результате, могут возникать значительные артефакты, которые могут вызвать существенное снижение качества восстановленного видео. Хотя доступные битовые скорости возрастают с усовершенствованием технологии передачи и обработки, поддержание высокого визуального качества при ограниченных битовых скоростях остается главной целью проектирования кодека. Существующие кодеки используют различные методы для улучшения визуального качества при ограниченных битовых скоростях.
Кодирование с множеством разрешающих способностей позволяет кодировать видео при различных пространственных разрешающих способностях. Видео с уменьшенной разрешающей способностью может кодироваться при существенно более низкой битовой скорости ценой потери информации. Например, предшествующий видеокодер может дискретизировать с пониженной частотой (с использованием фильтра понижающей дискретизации) видео полной разрешающей способности и кодировать его с уменьшенной разрешающей способностью в вертикальном и/или горизонтальном направлениях. Сокращение разрешающей способности в каждом направлении наполовину уменьшает измерения размера кодированного изображения наполовину. Кодер сигнализирует о кодировании с уменьшенной разрешающей способностью в декодер. Декодер получает информацию, указывающую кодирование с уменьшенной разрешающей способностью, и устанавливает из полученной информации, каким образом видео с уменьшенной разрешающей способностью должно быть дискретизировано с повышенной частотой (с использованием фильтра повышающей дискретизации), чтобы увеличить размер изображения перед отображением. Однако информация, которая была потеряна, когда кодер дискретизировал с пониженной частотой и кодировал видеоизображения, все еще отсутствует в дискретизированных с повышенной частотой изображениях.
Пространственно масштабируемое видео использует многоуровневый подход, позволяя кодеру уменьшать пространственную разрешающую способность (и, таким образом, битовую скорость) на базовом уровне при сохранении информации более высокой разрешающей способности из исходного видео на одном или более улучшенных уровнях. Например, изображение внутреннего (внутрикадрового) кодирования базового уровня может быть кодировано при уменьшенной разрешающей способности, в то время как соответствующее изображение внутрикадрового кодирования улучшенного уровня может быть кодировано при более высокой разрешающей способности. Точно так же предсказанные изображения базового уровня могут сопровождаться предсказанными изображениями улучшенного уровня. Декодер может выбирать (основываясь на ограничениях битовой скорости и/или других критериях), чтобы декодировать только изображения базового уровня при более низкой разрешающей способности, чтобы получить восстановленные изображения более низкой разрешающей способности, или декодировать изображения базового уровня и изображения улучшенного уровня, чтобы получить восстановленные изображения с более высокой разрешающей способностью. Когда базовый уровень кодируется при более низкой разрешающей способности, чем отображаемое изображение (также упоминается как понижающая дискретизация), размер кодированного изображения фактически меньше, чем отображенное изображение. Декодер выполняет вычисления, чтобы изменить размеры восстановленного изображения и использует фильтры повышающей дискретизации, чтобы сформировать интерполированные значения выборок в соответствующих позициях в восстановленном изображении. Однако предшествующие кодеки, которые используют пространственно масштабируемое видео, имели недостатки вследствие негибких фильтров повышающей дискретизации и неточных или затратных (в терминах времени вычисления или битовой скорости) методов изменения размеров изображения.
Учитывая критическую важность сжатия и декомпрессии видео для цифрового видео, неудивительно, что сжатие и декомпрессия видео являются интенсивно развивающимися областями. Однако независимо от выгод предшествующих методов сжатия и декомпрессии видео они не имеют преимуществ следующих методов и инструментальных средств.
Сущность изобретения
Настоящий раздел «Сущность изобретения» обеспечен, чтобы ввести выбор понятий в упрощенной форме, которые далее описаны ниже в разделе «Детальное описание». Настоящий раздел «Сущность изобретения» не предназначен для того, чтобы идентифицировать ключевые признаки или существенные признаки заявленного изобретения, и при этом не предназначается для использования, чтобы ограничивать объем заявленного изобретения.
В итоге, раздел «Детальное описание» направлен на различные способы и инструментальные средства для использующего переменную разрешающую способность многоуровневого пространственно масштабируемого кодирования и декодирования видео.
Например, раздел «Детальное описание» направлен на различные способы и инструментальные средства для высокоточного вычисления позиции для изменения размеров изображения в приложениях типа пространственно масштабируемого кодирования и декодирования видео. Описаны способы и инструментальные средства для высокоточного вычисления позиции для изменения размеров изображения в приложениях типа пространственно-масштабируемого кодирования и декодирования видео. В одном аспекте повторная дискретизация видеоизображения выполняется согласно коэффициенту масштаба повторной дискретизации. Повторная дискретизация включает вычисление значения выборки в позиции i, j в повторно дискретизируемом массиве. Вычисление включает вычисление выводимой горизонтальной или вертикальной позиции x или y подвыборки способом, который связан с аппроксимацией значения частично путем умножения значения 2n на инверсию (приближенную или точную) масштабного коэффициента повышающей дискретизации (или деления значения 2n на масштабный коэффициент повышающей дискретизации, или аппроксимацию масштабного коэффициента повышающей дискретизации). Экспонента n может быть суммой двух целых чисел, включая целое число F, которое представляет множество битов в дробном компоненте. Аппроксимация может быть округлением или некоторым другим видом аппроксимации, такой как функция ограничения сверху или снизу, которая аппроксимирует ближайшее целое число. Значение выборки интерполируется с использованием фильтра.
Некоторые альтернативы для описанных способов обеспечивают измененное вычисление позиции выборки, которое в одном выполнении обеспечивает приблизительно один дополнительный бит точности в вычислениях, без значительного изменения процесса вычисления позиции выборки или его сложность. Некоторые дальнейшие альтернативы для описанных способов относятся к тому, как вычисление позиции выборки работает со структурами дискретизации 4:2:2 и 4:4:4. Эти альтернативные способы для таких структур дискретизации связывают вычисления позиции выборки сигнала яркости и сигнала цветности вместе, когда разрешающая способность сетки дискретизации сигнала цветности и сигнала яркости является той же самой в конкретном измерении.
Дополнительные признаки и преимущества будут очевидными из следующего детального описания различных воплощений, которое изложено со ссылками на иллюстрирующие чертежи.
Краткое описание чертежей
Фиг.1 - блок-схема подходящей вычислительной среды, во взаимосвязи с которой могут быть осуществлены некоторые описанные воплощения.
Фиг.2 - блок-схема обобщенной системы кодера видео, во взаимосвязи с которой могут быть осуществлены некоторые описанные воплощения.
Фиг.3 - блок-схема обобщенной системы декодера видео, во взаимосвязи с которой могут быть осуществлены некоторые описанные воплощения.
Фиг.4 - диаграмма формата макроблока, используемого в некоторых описанных воплощениях.
Фиг.5A - диаграмма части чересстрочного видеокадра, показывающая чередующиеся строки верхнего поля и нижнего поля.
Фиг.5B - диаграмма чересстрочного видеокадра, организованного для кодирования/декодирования как кадра.
Фиг.5C - диаграмма чересстрочного видеокадра, организованного для кодирования/ декодирования как полей.
Фиг.5D показывает шесть примерных пространственных выравниваний местоположений 4:2:0 выборки сигнала цветности относительно местоположений выборки сигнала яркости для каждого поля видеокадра.
Фиг.6 - блок-схема, показывающая обобщенный способ для кодирования видео с переменной разрешающей способностью.
Фиг.7 - блок-схема, показывающая обобщенный способ для декодирования видео с переменной разрешающей способностью.
Фиг.8 - блок-схема, показывающая способ для кодирования с переменной разрешающей способностью изображений с внутрикадровым кодированием и предсказанных изображений с межкадровым кодированием.
Фиг.9 - блок-схема, показывающая способ для декодирования с переменной разрешающей способностью изображений с внутрикадровым кодированием и предсказанных изображений с межкадровым кодированием.
Фиг.10 - блок-схема, показывающая способ для кодирования пространственно масштабируемых уровней битового потока для обеспечения возможности кодирования видео с различными разрешающими способностями.
Фиг.11 - блок-схема, показывающая способ для декодирования пространственно масштабируемых уровней битового потока для обеспечения возможности декодирования видео с различными разрешающими способностями.
Фиг.12 и 13 - диаграммы кода, показывающие псевдокод для примерного многоэтапного способа вычисления позиции.
Фиг.14 - диаграмма кода, показывающая псевдокод для примерного инкрементного способа вычисления позиции.
Детальное описание
Описанные воплощения направлены на способы и инструментальные средства для многоуровневого, с переменной разрешающей способностью пространственно масштабируемого видеокодирования и декодирования.
Различные способы и инструментальные средства, описанные здесь, могут использоваться независимо. Некоторые из способов и инструментальных средств могут использоваться в комбинации (например, на различных стадиях объединенного процесса кодирования и/или декодирования).
Различные способы описаны ниже со ссылкой на блок-схемы действий обработки. Различные действия обработки, показанные на блок-схемах, могут быть объединены в меньшее количество действий или разделены на большее количество действий. Ради простоты, отношение действий, показанных в конкретной блок-схеме, к действиям, описанным в другом месте, часто не показано. Во многих случаях действия в блок-схеме могут быть переупорядочены.
Большая часть детального описания относится к представлению, кодированию и декодированию видеоинформации. Способы и инструментальные средства, описанные здесь для представления, кодирования и декодирования видеоинформации, могут быть применены к аудиоинформации, информации неподвижного изображения или другой информации медиа.
I. Вычислительная среда
Фиг.1 иллюстрирует обобщенный пример подходящей вычислительной среды 100, в которой могут быть осуществлены несколько из описанных воплощений. Вычислительная среда 100 не предназначена для какого-либо ограничения объема использования или функциональных возможностей, поскольку способы и инструментальные средства могут быть осуществлены в разнообразных универсальных или специализированных вычислительных средах.
Согласно фиг.1, вычислительная среда 100 включает в себя, по меньшей мере, один процессор 110 и память 120. На фиг.1 эта наиболее базовая конфигурация 130 показана внутри пунктирного контура. Процессор 110 исполняет компьютерные команды и может представлять собой реальный или виртуальный процессор. В многопроцессорной системе множество модулей обработки исполняют компьютерные команды для увеличения производительности обработки. Память 120 может быть энергозависимой памятью (например, регистры, кэш, ОЗУ (RAM)), энергонезависимой памятью (например, ПЗУ (ROM), стираемое программируемое ПЗУ (СППЗУ, EEPROM), флэш-память и т.д.), или некоторой комбинацией указанного. Память 120 хранит программное обеспечение 180, реализующее кодер или декодер видео с одним или более описанных способов и инструментальных средств.
Вычислительная среда может иметь дополнительные признаки. Например, вычислительная среда 100 содержит ЗУ 140, одно или более устройств 150 ввода, одно или более устройств 160 вывода и одно или более коммуникационных соединений 170. Механизм межсоединений (не показан), такой как шина, контроллер или сеть, связывает компоненты вычислительной среды 100. Как правило, программное обеспечение операционной системы (не показано) обеспечивает операционную среду для другого программного обеспечения, выполняющегося в вычислительной среде 100, и координирует действия компонентов вычислительной среды 100.
ЗУ 140 может быть сменным или несменным и включает в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, цифровые видеодиски (DVD), флэш-память или любой другой носитель, который может использоваться, чтобы хранить информацию, и к которому можно обращаться в пределах вычислительной среды 100. ЗУ 140 хранит команды для программного обеспечения 180, реализующего кодер или декодер видео.
Устройство 150 ввода может быть сенсорным устройством ввода данных типа клавиатуры, мыши, пера, сенсорного экрана или шарового манипулятора (трекбола), устройства голосового ввода, сканирующего устройства или другого устройства, которое обеспечивает ввод в вычислительную среду 100. Для кодирования аудио или видеоустройство 150 ввода может быть звуковой платой, видеоплатой, платой ТВ блока настройки или подобным устройством, которое принимает аудио или видеоввод в аналоговой или цифровой форме, или CD-ROM, CD-RW или DVD, который считывает выборки аудио или видео в вычислительную среду 100. Устройство 160 вывода может быть дисплеем, принтером, динамиком, устройством записи на CD или DVD или другим устройством, которое обеспечивает вывод из вычислительной среды 100.
Коммуникационные соединения 170 обеспечивают связь по среде связи с другим вычислительным объектом. Среда связи передает информацию типа исполняемых компьютером команд, ввода или вывода аудио или видео или других данных в модулированном сигнале данных. Модулированный сигнал данных - это сигнал, в котором одна или более из его характеристик установлена или изменяется таким способом, чтобы кодировать информацию в сигнале. Для примера, но не в качестве ограничения, среда связи включают проводные или беспроводные методы, реализованные с электрической, оптической, радиочастотной, инфракрасной, акустической или другой несущей.
Способы и инструментальные средства могут быть описаны в общем контексте машиночитаемых носителей. Машиночитаемые носители - это любые доступные носители, к которым можно обращаться в пределах вычислительной среды. Для примера, но не в качестве ограничения, для вычислительной среды 100 машиночитаемые носители включают в себя память 120, ЗУ 140, коммуникационную среду и комбинации любых из вышеупомянутых средств.
Способы и инструментальные средства могут быть описаны в общем контексте исполняемых компьютером команд, таких как включенные в модули программы, исполняемые в вычислительной среде на одном или более целевых реальных процессорах или виртуальных процессорах. Вообще, модули программы включают подпрограммы, программы, библиотеки, объекты, классы, компоненты, структуры данных и т.д., которые исполняют конкретные задачи или осуществляют некоторые абстрактные типы данных. Функциональные возможности программных модулей могут быть объединены или разбиты между программными модулями, как желательно в различных воплощениях. Исполняемые компьютером команды для программных модулей могут исполняться в пределах локальной или распределенной вычислительной среде.
Для целей представления детальное описание использует термины, подобные "кодируют", "декодируют" и "выбирают" для описания компьютерных операций в вычислительной среде. Эти термины являются абстракциями высокого уровня для операций, выполняемых компьютером, и не должны смешиваться с действиями, выполняемыми человеком. Действительные компьютерные операции, соответствующие этим терминам, изменяются в зависимости от реализации.
II. Иллюстративные видеокодер и декодер
На фиг.2 показана блок-схема приведенного для примера видеокодера 200, во взаимосвязи с которым могут быть осуществлены некоторые описанные воплощения. На фиг.3 показана блок-схема обобщенного видеодекодера 300, во взаимосвязи с которым могут быть осуществлены некоторые описанные воплощения.
Взаимосвязи, показанные между модулями в пределах кодера 200 и декодера 300, указывают общие потоки информации в кодере и декодере; другие взаимосвязи не показаны ради наглядности представления. В частности, фиг.2 и 3 не показывают побочную информацию, указывающую настройки кодера, режимы, таблицы и т.д., используемые для видеопоследовательности, изображения, сектора, макроблока, блока и т.д. Такая побочная информация посылается в выходном битовом потоке обычно после энтропийного кодирования побочной информации. Формат выходного битового потока может изменяться в зависимости от реализации.
Кодер 200 и декодер 300 обрабатывают изображения, которые могут быть видеокадрами, видеополями или комбинациями кадров и полей. Синтаксис и семантика битового потока на уровне изображения и макроблока могут зависеть от того, каким образом используются кадры или поля. Могут иметь место изменения в организации макроблока и общей синхронизации. Кодер 200 и декодер 300 являются основанными на блоках и используют макроблочный формат 4:2:0 для кадров, причем каждый макроблок включает четыре 8х8 блока сигнала яркости (иногда обрабатываемые как один 16х16 макроблок) и два 8х8 блока сигнала цветности. Для полей могут использоваться те же или отличающиеся организация макроблока и формат. 8х8 блоки могут быть далее подразделены на различных этапах, например, на этапе частотного преобразования или энтропийного кодирования. Примерные организации видеокадра описаны более подробно ниже. Альтернативно, кодер 200 и декодер 300 являются основанными на объекте, используют отличающийся формат макроблока или блока или выполняют операции над наборами выборок с размером или конфигурацией иными, чем 8х8 блоки и 16х16 макроблоки.
В зависимости от выполнения и типа желательного сжатия, модули кодера или декодера могут добавляться, опускаться, разбиваться на множество модулей, объединяться с другими модулями и/или заменяться подобными модулями. В альтернативных воплощениях кодеры или декодеры с отличающимися модулями и/или другими конфигурациями модулей исполняют один или более из описанных способов.
A. Организации видеокадра
В некоторых реализациях кодер 200 и декодер 300 обрабатывают видеокадры, организованные следующим образом. Кадр содержит строки пространственной информации видеосигнала. Для прогрессивного (построчного) сканирования видео эти строки содержат выборки, представляющие снимок содержания сцены, дискретизированный в один и тот же момент времени и охватывающий полную сцену от верха до низа кадра. Прогрессивный видеокадр разделен на макроблоки типа макроблока 400, показанного на фиг.4. Макроблок 400 включает четыре 8х8 блока яркости (от Y1 до Y4) и два 8x8 блока цветности, которые расположены совместно с четырьмя блоками яркости, но с половинной разрешающей способностью по горизонтали и вертикали, следуя обычному 4:2:0 макроблочному формату. 8×8 блоки могут быть далее подразделены на различных этапах, например, на этапах частотного преобразования (например, 8×4, 4×8 или 4×4 DCT) и энтропийного кодирования. Прогрессивный I-кадр является интра- (внутри) кодированным строчным видеокадром, где термин "интра" относится к методам кодирования, которые не используют предсказание из содержания других ранее декодированных изображений (кадров). Прогрессивный P-кадр является прогрессивным видеокадром, кодированным с использованием предсказания из одного или более других изображений (кадров) в моменты времени, которые отличаются по времени от момента времени текущего изображения (иногда называется прямым предсказанием в некоторых контекстах), и прогрессивный B-кадр представляет собой прогрессивный видеокадр, кодированный с использованием межкадрового предсказания с использованием (возможно, взвешенного) усреднения множества значений предсказания в некоторых областях (иногда называется двойным предсказанием или двунаправленным предсказанием). Прогрессивные P- и B-кадры могут включать «внутрикодированные» (с внутрикадровым кодированием) макроблоки, а также различные типы макроблоков межкадрового предсказания.
Чересстрочная развертка видеокадра состоит из чередующейся последовательности двух типов разверток сцены - один, называемый верхним полем, включает в себя четные строки (строки, пронумерованные 0, 2, 4 и т.д.) кадра, и другой, называемый нижним полем, включает в себя нечетные строки (строки, пронумерованные 1, 3, 5 и т.д.) кадра. Эти два поля обычно представляют два различных момента времени снимка. Фиг.5A показывает часть чересстрочного видеокадра 500, включающую в себя чередующиеся строки верхнего поля и нижнего поля в верхней левой части чересстрочного видеокадра 500.
Фиг.5B показывает чересстрочный видеокадр 500 по фиг.5A, организованный для кодирования/декодирования как кадр 530. Чересстрочный видеокадр 500 был разделен на макроблоки или другие такие области типа макроблоков 531 и 532, которые используют формат 4:2:0, как показано на фиг.4. В плоскости яркости каждый макроблок 531, 532 включает в себя 8 строк из верхнего поля, чередующихся с 8 строками нижнего поля для общего количества 16 строк, и каждая строка имеет длину 16 выборок. (Действительная организация изображения в макроблоки или другие такие области и размещение блоков яркости и блоков цветности в пределах макроблоков 531, 532 не показана, и фактически может измениться для различных решений кодирования и для различных схем видеокодирования.) В пределах данного макроблока информация верхнего поля и информация нижнего поля может быть кодирована совместно или отдельно на любой из различных стадий.
Чересстрочный I-кадр является внутрикодированным чересстрочным видеокадром, содержащим два поля, где каждый макроблок включает в себя информацию для одного или обоих полей. Чересстрочный P-кадр является чересстрочным видеокадром, содержащим два поля, который кодирован с использованием межкадрового предсказания, где каждый макроблок включает в себя информацию для одного или обоих полей, как чересстрочный B-кадр. Чересстрочные P- и B-кадры могут включать в себя внутрикодированные макроблоки, а также различные типы макроблоков межкадрового предсказания.
Фиг.5C показывает чересстрочный видеокадр 500 по фиг.5A, организованный для кодирования/декодирования как поля 560. Каждое из двух полей чересстрочного видеокадра 500 разделено на макроблоки. Верхнее поле разделено на макроблоки, такие как макроблок 561, и нижнее поле разделено на макроблоки, такие как макроблок 562. (Вновь макроблоки используют формат 4:2:0, как показано на фиг.4, и организация изображения в макроблоки или другие такие области и размещение блоков яркости и блоков цветности в пределах макроблоков не показаны и могут варьироваться.) В плоскости яркости макроблок 561 включает в себя 16 строк из верхнего поля, и макроблок 562 включает в себя 16 строк из нижнего поля, и каждая строка имеет длину 16 выборок.
Чересстрочное I-поле является единым, отдельно представляемым полем чересстрочного видеокадра. Чересстрочное P-поле является единым, отдельно представляемым полем чересстрочного видеокадра, использующим межкадровое предсказание, как чересстрочное B-поле. Чересстрочные P-и B-поля могут включать в себя внутрикодированные макроблоки, а также различные типы макроблоков межкадрового предсказания.
Чересстрочные видеокадры, организованные для кодирования/декодирования как поля, могут включать в себя различные комбинации различных типов полей. Например, такой кадр может иметь тот же самый тип поля (I-поле, P-поле или B-поле) как в верхних, так и в нижних полях или различные типы полей в каждом поле.
Термин «изображение» в общем случае относится к кадру или полю источника, кодированных или восстановленных данных изображения. Для видеопрогрессивной развертки изображение в типовом случае является прогрессивным видеокадром. Для чересстрочного видео изображение может относиться к чересстрочному видеокадру, верхнему полю кадра или нижнему полю кадра, в зависимости от контекста.
Фиг.5D показывает шесть примерных пространственных выравниваний местоположений выборок сигнала цветности формата 4:2:0 относительно местоположений выборок сигнала яркости для каждого поля видеокадра.
Альтернативно, кодер 200 и декодер 300 являются основанными на объектах, использует различный формат макроблока (например, 4:2:2 или 4:4:4) или формат блока, или выполняют операции на наборах выборок с размером или конфигурацией иными, чем для 8x8 блоков и 16x16 макроблоков.
В. Видеокодер
На фиг.2 показана блок-схема иллюстративной системы 200 видеокодера. Система 200 кодера 200 получает последовательность видеоизображений, включая текущее изображение 205 (например, прогрессивный видеокадр, чересстрочный видеокадр или поле чересстрочного видеокадра), и формирует сжатую видеоинформацию 295 как вывод. Конкретные воплощения видеокодеров в типовом случае используют разновидность или дополненную версию приведенного для прима кодера 200.
Система 200 кодера использует процессы кодирования для внутри-(интра-)кодированных изображений (I-изображений) и предсказанных на меж-(интер-)кадровой основе изображений (P-или В-изображений). В целях представления фиг.2 показывает путь для I-изображений через систему 200 кодера и путь для предсказанных на межкадровой основе изображений. Многие из компонентов системы 200 кодера используются для сжатия как I-изображений, так и предсказанных на межкадровой основе изображений. Точные операции, выполняемые этими компонентами, могут измениться в зависимости от типа сжимаемой информации.
Предсказанное на межкадровой основе изображение представлено в терминах предсказания (или различия) из одного или более других изображений (кадров) (которые обычно упоминаются как опорные изображения). Остаток предсказания - это разность между тем, что было предсказано, и первоначальным изображением. Напротив, I-изображение сжимается без ссылки на другие изображения. I-изображения могут использовать пространственное предсказание или предсказание частотной области (то есть внутрикадровое предсказание), чтобы предсказать некоторые части I-изображения, используя данные из других частей самого I-изображения. Однако, ради краткости, такие I-изображения не упоминаются в этом описании как "предсказанные" изображения, так, чтобы фраза "предсказанное изображение" могла пониматься как предсказанное на межкадровой основе изображение (например, P- или В-изображение).
Если текущее изображение 205 является предсказанным изображением, то блок 210 оценки движения оценивает движение макроблоков или других наборов выборок текущего изображения 205 относительно одного или более опорных изображений, например, восстановленного предыдущего изображения 225, буферизированного в ЗУ 220 изображений. Блок 210 оценки может оценивать движение относительно одного или более предыдущих по времени опорных изображений и одного или более будущих по времени опорных изображений (например, в случае изображения двойного предсказания). Соответственно, система 200 кодера может использовать отдельные ЗУ 220 и 222 для множества опорных изображений.
Блок 210 оценки движения может оценивать движение посредством приращений на полную выборку, 1/2 выборки, 1/4 выборки или других приращений и может переключать разрешающую способность оценки движения на основе от изображения к изображению или на другой основе. Блок 210 оценки движения (и компенсатор 230) также может переключаться между типами интерполяции выборок опорного изображения (например, между интерполяцией кубической свертки и скручивания и билинейной интерполяцией) на покадровой или иной основе. Разрешающая способность оценки движения может быть той же самой или может различаться по горизонтали и вертикали. Блок 210 оценки движения выводит, в качестве побочной информации, информацию 215 движения, такую как дифференциальная информация вектора движения. Кодер 200 кодирует информацию 215 движения, например, вычисляя один или более прогнозирующих параметров для векторов движения, вычисляя различия между векторами движения и прогнозирующими параметрами, и энтропийного кодирования различий. Для восстановления вектора движения компенсатор 230 движения объединяет прогнозирующий параметр с информацией различия вектора движения.
Компенсатор 230 движения применяет восстановленный вектор движения к восстановленному(ым) изображению(ям) 225, чтобы сформировать скомпенсированное по движению предсказание 235. Однако предсказание редко бывает совершенным, и различие между скомпенсированным по движению предсказанием 235 и первоначальным текущим изображением 205 является остатком 245 предсказания. В течение последующего восстановления изображения аппроксимация остатка 245 предсказания будет добавляться к скомпенсированному по движению предсказанию 235, чтобы получить восстановленное изображение, которое ближе к первоначальному текущему изображению 205, чем скомпенсированное по движению предсказание 235. При сжатии с потерями, однако, некоторая информация все еще теряется из первоначального текущего изображения 205. Альтернативно, блок оценки движения и компенсатор движения применяют другой тип оценки/компенсации движения.
Частотный преобразователь 260 преобразует видеоинформацию пространственной области в данные частотной области (то есть спектральные данные). Для кодирования видео на блочной основе частотный преобразователь 260 в типовом случае применяет дискретное косинусное преобразование (DCT), вариант DCT или некоторое другое блочное преобразование к блокам данных выборок или остаточным данным предсказания, формируя блоки коэффициентов преобразования частотной области. Альтернативно, частотный преобразователь 260 применяет другой тип частотного преобразования типа Фурье-преобразования или использует вейвлет-анализ, или анализ поддиапазонов. Частотный преобразователь 260 может применять частотное преобразование размера 8x8, 8x4, 4x8, 4x4 или другого размера.
Квантователь 270 затем квантует блоки коэффициентов преобразования частотной области. Квантователь применяет скалярное квантование к коэффициентам преобразования согласно размеру шаг