Синтаксические расширения высокого уровня для высокоэффективного видеокодирования

Иллюстрации

Показать все

Изобретение относится к области кодирования/декодирования видео. Технический результат – повышение эффективности кодирования/декодирования видеоданных посредством запрета прогнозирования вектора движения. Способ декодирования видеоданных содержит декодирование данных второго изображения, которые относятся к значению счета порядка изображения (РОС) для первого изображения видеоданных; декодирование данных второго изображения, которые относятся к идентификатору изображения второй размерности для первого изображения; декодирование второго изображения на основании значения РОС и идентификатора изображения второй размерности первого изображения; определение, что первый вектор движения первого блока второго изображения ссылается на краткосрочное опорное изображение; определение, что второй вектор движения второго блока второго изображения ссылается на долгосрочное опорное изображение; и на основе определения запрет прогнозирования вектора движения между первым вектором движения первого блока второго изображения и вторым вектором движения второго блока второго изображения. 6 н. и 37 з.п. ф-лы, 12 ил.

Реферат

Настоящая заявка испрашивает приоритет заявки на патент США №61/611,959, поданной 16 марта 2012 года, заявки на патент США №61/624,990, поданной 16 апреля 2012 года, заявки на патент США №61/658,344, поданной 11 июня 2012 года, заявки на патент США №61/663,484, поданной 22 июня 2012 года, и заявки на патент США №61/746,476, поданной 27 декабря 2012 года, содержание которых полностью включено в настоящую заявку посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее раскрытие относится к кодированию видео.

УРОВЕНЬ ТЕХНИКИ

Возможности цифрового видео могут быть включены в широкий ряд устройств, включая цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшеты, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые медиапроигрыватели, устройства видеоигр, игровые видеоприставки, сотовые или спутниковые радиотелефоны, так называемые смартфоны, устройства для видеотелеконференции, устройства потокового видео и тому подобное. Цифровые видеоустройства осуществляют способы видеокодирования, как, например, описанные в стандартах, определенных MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, Продвинутое кодирование (AVC) видеосигнала, стандарт Высокоэффективного Видеокодирования (HEVC), находящийся в разработке в настоящее время, и расширения этих стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию более эффективно путем осуществления подобных способов видеокодирования.

Способы видеокодирования включают в себя пространственное (с внутренним (intra-) кодированием) прогнозирование и/или временное (с внешним (inter-) кодированием) прогнозирование для сокращения или устранения избыточности, присущей для последовательностей видеокадров. Для кодирования видео на основе блоков, видеослайс (например, видеокадр или часть видеокадра) может быть разделен на видеоблоки, которые также называют древовидными блоками, элементами (единицами) (CU) кодирования и/или узлами кодирования. Видеоблоки во внутренне кодированном (I) слайсе изображения кодируются с использованием пространственного прогнозирования по отношению к опорным отсчетам в соседних блоках в том же изображении. Видеоблоки во внешне-кодированном (Р или В) слайсе могут использовать пространственное прогнозирование по отношению к опорным отсчетам в соседних блоках в том же изображении или временное прогнозирование по отношению к опорным отсчетам в других опорных изображениях. Изображения можно также называть кадрами, а опорные изображения можно называть опорными кадрами.

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

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

В общем, настоящее раскрытие описывает различные способы поддержки расширений стандартов кодирования, как, например, развивающийся стандарт Высокоэффективного Видеокодирования (HEVC), с изменением только синтаксиса высокого уровня. Например, настоящее раскрытие описывает способы как в базовой спецификации HEVC, так и в расширениях HEVC многовидового видеокодека и/или трехмерного (3D) видеокодека, где базовый вид сравним с базовой спецификацией HEVC. В общем, «базовая спецификация видеокодирования» может соответствовать спецификации видеокодирования, которая используется для кодирования двумерных, одноуровневых видеоданных. Расширения базовой спецификации видеокодирования могут расширять возможности базовой спецификации видеокодирования, чтобы позволить 3D и/или многоуровневое видеокодирование. Базовая спецификация HEVC представляет собой пример базовой спецификации видеокодирования, в то время как расширения MVC и SVC к базовой спецификации HEVC представляют собой примеры расширений базовой спецификации видеокодирования.

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

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

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

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

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

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

Фиг. 5-9 являются концептуальными диаграммами, изображающими потенциальные проблемы, которые должны быть преодолены для достижения только синтаксического расширения высокого уровня HEVC.

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

Фиг. 11 является блок-схемой, изображающей пример способа кодирования видеоданных, в соответствии со способами настоящего раскрытия.

Фиг. 12 является блок-схемой, изображающей пример способа декодирования видеоданных, в соответствии со способами настоящего раскрытия.

ПОДРОБНОЕ ОПИСАНИЕ

В общем, настоящее раскрытие описывает различные способы поддержки расширений стандартов кодирования, как, например, развивающийся стандарт Высокоэффективного Видеокодирования (HEVC), с изменением только синтаксиса (HLS) высокого уровня. Например, настоящее раскрытие описывает способы как в базовой спецификации HEVC, так и в расширениях HEVC многовидового Видеокодирования (MVC) и/или кодирования трехмерного видеосигнала (3DV), где базовый вид сравним с базовой спецификацией HEVC.

Настоящее раскрытие описывает конкретные способы, обеспечивающие профиль только синтаксиса высокого уровня в спецификации расширения HEVC. Термин «межвидовой» в контексте MVC/3DV может быть заменен на «межуровневый» в контексте Масштабируемого Видеокодирования (SVC). То есть хотя описание этих способов первично фокусируется на «межвидовом» кодировании, те же или подобные идеи можно применить к «межуровневым» опорным изображениям для расширения только HLS SVC HEVC.

Фиг. 1 является блочной диаграммой, изображающей пример системы 10 кодирования и декодирования видео, которая может использовать способы кодирования видеоданных в соответствии только с синтаксическим расширением высокого уровня стандарта видеокодирования. Как изображено на Фиг. 1, система 10 включает в себя устройство-источник 12, которое обеспечивает закодированные видеоданные, которые должны быть декодированы позже устройством-адресатом 14. Более конкретно устройство-источник 12 обеспечивает видеоданные устройству-адресату 14 по считываемому компьютером носителю 16. Устройство-источник 12 и устройство-адресат 14 могут содержать любое из широкого диапазона устройств, включая настольные компьютеры, ноутбуки (то есть портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, как, например, так называемые смартфоны, так называемые смартпады, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые видеоприставки, устройство потокового видео или тому подобное. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы для беспроводной связи.

Устройство-адресат 14 может принимать закодированные видеоданные, которые должны быть декодированы по считываемому компьютером носителю 16. Считываемый компьютером носитель 16 может содержать любой тип носителя или устройства, способного перемещать закодированные видеоданные от устройства-источника 12 к устройству-адресату 14. В одном примере считываемый компьютером носитель 16 может содержать носитель связи для разрешения устройству-источнику 12 передавать закодированные видеоданные напрямую устройству-адресату 14 в реальном времени. Закодированные видеоданные могут быть модулированы в соответствии со стандартом связи, как, например, протокол беспроводной связи, и переданы устройству-адресату 14. Носитель связи может содержать любой беспроводной или проводной носитель связи, как, например, радиочастотный (RF) спектр или одна или несколько физических линий передачи. Носитель связи может формировать часть пакетной сети, как, например, локальная сеть, региональная сеть или глобальная сеть, как, например, Интернет. Носитель связи может включать в себя роутеры, переключатели, базовые станции или любое другое оборудование, которое может быть использовано для усиления связи от устройства-источника 12 к устройству-адресату 14.

В некоторых примерах закодированные данные могут быть выведены от выходного интерфейса 22 устройству хранения. Подобным образом доступ к закодированным данным может быть осуществлен от устройства хранения с помощью входного интерфейса. Устройство хранения может включать в себя любое из разнообразных распределенных носителей данных или носителей данных локального доступа, как, например, накопитель на жестких дисках, диски Blu-ray, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство, или любые другие подходящие цифровые носители данных для хранения закодированных видеоданных. В дополнительном примере устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сформированное устройством-источником 12. Устройство-адресат 14 может осуществлять доступ к сохраненным видеоданным в устройстве хранения по потоковой передаче или загрузке данных. Файловый сервер может быть любым типом сервера, способным хранить закодированные видеоданные и передавать эти закодированные видеоданные устройству-адресату 14. Примеры файловых серверов включают в себя вебсервер (например, для вебсайта), сервер FTP, устройства сетевого хранилища (NAS) данных или накопитель на локальном диске. Устройство-адресат 14 может осуществлять доступ к закодированным видеоданным по любому стандартному соединению данных, включая интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и так далее) или их комбинацию, подходящую для доступа к закодированных видеоданным, хранящимся на файловом сервере. Передача закодированных видеоданных от устройства хранения может быть потоковой передачей, передачей загрузки или их комбинацией.

Способы настоящего раскрытия необязательно ограничены беспроводными применениями или настройками. Способы могут быть применены к кодированию видео для поддержки любого из разнообразных мультимедийных применений, как, например, эфирные телевизионные широковещательные передачи, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видеосигнала по интернету, как, например, динамическая адаптивная потоковая передача по HTTP (DASH), цифровой видеосигнал, который закодирован на носителе данных, декодирование цифрового видеосигнала, хранящегося на носителе данных, или другие применения. В некоторых примерах система 10 может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачу видеосигнала для поддержки таких применений, как потоковая передача видеосигнала, воспроизведение видеосигнала, широковещательная передача видеосигнала и/или видеотелефония.

В примере на Фиг. 1 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и выходной интерфейс 22. Устройство-адресат 14 включает в себя входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. В соответствии с настоящим раскрытием видеокодер 20 устройства-источника 12 может быть выполнен с возможностью применять способы кодирования видеоданных в соответствии только с синтаксическим расширением высокого уровня стандарта видеокодирования. В других примерах устройство-источник и устройство-адресат могут включать в себя другие компоненты или установки. Например, устройство-источник 12 может принимать видеоданные от внешнего источника 18 видео, как, например, внешняя камера. Подобным образом устройство-адресат 14 может взаимодействовать с внешним устройством отображения вместо того, чтобы включать в себя интегрированное устройство отображения.

Изображенная система 10 на Фиг. 1 является лишь примером. Способы кодирования видеоданных в соответствии только с синтаксическим расширением высокого уровня стандарта видеокодирования могут быть выполнены любым цифровым устройством кодирования и/или декодирования видео. Хотя, в общем, способы настоящего изобретения выполняются устройством видеокодирования, способы могут также быть выполнены видеокодером/декодером, как правило, называемым «CODEC». Более того, способы настоящего раскрытия могут также быть выполнены устройством предварительной обработки видеосигнала. Устройство-источник 12 и устройство-адресат 14 являются лишь примерами таких устройств кодирования, в которых устройство 12 формирует закодированные видеоданные для передачи устройству-адресату 14. В некоторых примерах устройства 12, 14 могут функционировать по сути симметричным образом, так что каждое из устройств 12, 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу между видеоустройствами 12, 14, например, для потокового видео, воспроизведения видеосигнала, широковещательной передачи видеосигнала или видеотелефонии.

Источник 18 видео устройства-источника 12 может включать в себя устройство захвата видеосигнала, как, например, видеокамера, видеоархив, содержащий ранее захваченное видео, и/или интерфейс подачи видео для приема видео от провайдера видеосодержимого. В качестве дополнительной альтернативы источник 18 видео может формировать данные компьютерной графики в качестве исходного видео, либо комбинацию видео в реальном времени, архивированного видео и сформированного компьютером видео. В некоторых случаях, если источником 18 видео является видеокамера, то устройство-источник 12 и устройство-адресат 14 могут формировать так называемые камерофоны или видеофоны. Однако, как упомянуто выше, способы, описанные в настоящем изобретении, могут быть применимы к кодированию видео в общем и могут быть применимы в беспроводных и/или проводных применениях. В любом случае захваченное, заранее захваченное или сформированное компьютером видео может быть закодировано видеокодером 20. Закодированная видеоинформация затем может быть выведена выходным интерфейсом 22 на считываемый компьютером носитель 16.

Считываемый компьютером носитель 16 может включать в себя энергозависимые носители, как, например, беспроводная широковещательная или проводная сетевая передача, либо носители данных (то есть энергонезависимые носители данных), как, например, накопитель на жестких дисках, флэш-память, компакт-диск, цифровой видеодиск, диск Blu-ray или другие считываемые компьютером носители данных. В некоторых примерах сетевой сервер (не изображен) может принимать закодированные видеоданные от устройства-источника 12 и обеспечивать закодированные видеоданные устройству-адресату 14, например, по сетевой передаче. Подобным образом вычислительное устройство блока воспроизведения носителя, как, например, блока маркировки диска, может принимать закодированные видеоданные от устройства-источника 12 и производить диск, содержащий закодированные видеоданные. Следовательно, считываемый компьютером носитель 16 можно понимать как включающий в себя один или несколько считываемых компьютером носителей различных форм, в различных примерах.

Входной интерфейс 28 устройства-адресата 14 принимает информацию от считываемого компьютером носителя 16. Информация считываемого компьютером носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 20, которая также используется видеодекодером 30, которая включает в себя синтаксические элементы, описывающие характеристики и/или обрабатывающие блоки и другие закодированные элементы, например GOP. Устройство 32 отображения отображает закодированные видеоданные пользователю и может содержать любое из разнообразных устройств, как, например, катодно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.

Видеокодер 20 и видеодекодер 30 могут функционировать в соответствии со стандартом видеокодирования, как, например, стандарт Высокоэффективного Видеокодирования (HEVC), находящийся в разработке в настоящее время, и могут соответствовать тестовой модели (HM) HEVC. Последняя рабочая версия HEVC, называемая «Рабочая версия 7 HEVC» или «WD7», описана в документе JCTVC-I1003, Бросс и другие, «Рабочая версия 7 текстовой спецификации высокоэффективного Видеокодирования (HEVC)», Совместная экспертная группа (JCT-VC) по кодированию видео ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 9-я встреча: Женева, Швейцария, с 27 апреля 2012 года по 7 мая 2012 года, которую по состоянию на 22 июня 2012 года можно загрузить с http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v3.zip. Как отмечено выше, настоящее раскрытие включает в себя способы расширения HEVC с использованием синтаксиса высокого уровня. Соответственно видеокодер 20 и видеодекодер 30 могут функционировать в соответствии с версией HEVC, расширенной с использованием синтаксиса высокого уровня.

Альтернативно видеокодер 20 и видеодекодер 30 могут функционировать в соответствии с другими частными или промышленными стандартами, как, например, стандарт ITU-T H.264, альтернативно называемый MPEG-4, Часть 10, Продвинутое кодирование (AVC) видеосигнала, или расширениями таких стандартов. Опять же эти расширения могут быть достигнуты с использованием синтаксиса высокого уровня. Способы настоящего изобретения, однако, не ограничены любым конкретным стандартом кодирования. Другие примеры стандартов видеокодирования включают в себя MPEG-2 ITU-T и H.263. Хотя это не изображено на Фиг. 1, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие элементы MUX-DEMUX или другие технические средства или программное обеспечение для управления кодированием аудио и видео в общем потоке данных или отдельных потоках данных. Если это применимо, то элементы MUX-DEMUX могут соответствовать протоколу мультиплексирования ITU H.223 или другим протоколам, как, например, протокол (UDP) пользовательской датаграммы.

Стандарт ITU-T H.264/MPEG-4 (AVC) был сформулирован Экспертной группой (VCEG) кодирования видео ITU-T совместно с Экспертной группой (MPEG) по движущемуся изображению ISO/IEC как продукт коллективного партнерства, известного как Объединенная команда (JVT) по кодированию видео. В некоторых аспектах, способы, описанные в настоящем раскрытии, могут быть применены к устройствам, которые, в общем, соответствуют стандарту Н.264. Стандарт Н.264 описан в Рекомендации Н.264 ITU-T, Продвинутое видеокодирование для общих аудиовизуальных услуг, исследовательской группой ITU-T, от марта 2005 года, и в настоящем документе может называться стандарт Н.264 или спецификация Н.264, или стандарт H.264/AVC, или спецификация. Объединенная команда (JVT) по кодированию видео продолжает работу над расширениями H.264/MPEG-4 AVC.

Видеокодер 20 и видеодекодер 30 могут быть осуществлены в качестве любой из разнообразных подходящих схем устройства кодирования, как, например, один или несколько микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, программное обеспечение, технические средства, программно-аппаратные средства или любая их комбинация. Когда способы осуществлены частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем, энергонезависимом считываемом компьютером носителе и выполнять инструкции в технических средствах с использованием одного или нескольких процессоров для выполнения способов настоящего раскрытия. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или несколько устройств кодирования или устройств декодирования, любое из которых может быть интегрировано как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве.

JCT-VC разрабатывает стандарт HEVC. Усилия по стандартизации HEVC основаны на развивающейся модели устройства видеокодирования, называемого Тестовой моделью (НМ) HEVC. НМ предоставляет несколько дополнительных возможностей устройств видеокодирования по отношению к существующим устройствам в соответствии, например, с ITU-T H.264/AVC. Например, в то время как Н.264 обеспечивает девять режимов кодирования с внутренним прогнозированием, НМ может обеспечивать тридцать три режима кодирования с внутренним прогнозированием.

В общем, рабочая модель НМ описывает, что видеокадр или изображение может быть разделен на последовательность древовидных блоков или наибольших элементов (LCU) кодирования, которые включают в себя отсчеты яркости и цветности. Синтаксические данные внутри битового потока могут определять размер LCU, который является наибольшим элементом кодирования в смысле числа пикселов. Слайс включает в себя число последовательных древовидных блоков в порядке кодирования. Видеокадр или изображение может быть разделено на один или несколько слайсов. Каждый древовидный блок может быть разбит на элементы (CU) кодирования в соответствии с деревом квадратов. В общем, структура данных дерева квадратов включает в себя один узел на CU, с корневым узлом, соответствующим древовидному блоку. Если CU разбит на четыре под-CU, то узел, соответствующий CU, включает в себя четыре концевых узла, каждый из которых соответствует одному из под-CU.

Каждый узел структуры данных дерева квадратов может обеспечивать синтаксические данные соответствующему CU. Например, узел в дереве квадратов может включать в себя флаг разделения, указывающий, разделен ли CU, соответствующий узлу, на под-CU. Синтаксические элементы CU могут быть определены рекурсивно и могут зависеть от того, разделен ли CU на под-CU. Если CU не разделен дополнительно, он называется концевым CU. В настоящем раскрытии четыре под-CU концевого CU будут также называться концевыми CU, даже если нет четкого разделения исходного концевого CU. Например, если CU размера 16×16 не разделен дополнительно, четыре под-CU 8×8 будут также называться концевыми CU, хотя CU 16×16 никогда не был разделен.

CU имеет ту же цель, что и макроблок стандарта Н.264, за исключением того, что CU не имеет отличия в размере. Например, древовидный блок может быть разделен на четыре дочерних узла (также называемых под-CU), и каждый дочерний узел, в свою очередь, может быть родительским узлом и быть разделен на другие четыре дочерних узла. Последний, не разделенный дочерний узел, называемый концевым узлом дерева квадратов, содержит узел кодирования, также называемый концевым CU. Синтаксические данные, связанные с закодированным битовым потоком, могут определять число раз, которое дерево квадратов может быть разделено, называемое максимальной глубиной CU, и может также определять минимальный размер узлов кодирования. Соответственно битовый поток может также определять наименьший элемент (SCU) кодирования. Настоящее раскрытие использует термин «блок» для ссылки на любой из CU, PU или TU в контексте HEVC или подобные структуры данных в контексте других стандартов (например, макроблоки и их подблоки в H.264/AVC).

CU включает в себя узел кодирования, элементы (PU) прогнозирования и элементы (TU) преобразования, связанные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен быть квадратным по форме. Размер CU может варьироваться от 8х8 пикселов до размера дерева квадратов, максимально 64х64 пикселов или больше. Каждый СU может содержать один или несколько PU и один или несколько ТU. Синтаксические данные, связанные с CU, могут описывать, например, разделение CU на один или несколько PU. Режимы разделения могут отличаться в зависимости от того, является ли CU закодированным в режиме пропуска или прямом режиме, закодированным в режиме внутреннего прогнозирования или закодированным в режиме внешнего прогнозирования. PU может быть разделен так, что по форме он неквадратный. Синтаксические данные, связанные с CU, могут также описывать, например, разделение CU на один или несколько TU в соответствии с деревом квадратов. TU может быть квадратной или неквадратной (например, прямоугольной) формы.

Стандарт HEVC допускает преобразования, в соответствии с TU, которые могут отличаться для различных CU. TU, как правило, имеют размер на основании размера PU внутри заданного CU, определенного для разделенного LCU, хотя это не всегда может быть так. TU, как правило, имеют тот же размер или меньше, чем PU. В некоторых примерах остаточные отсчеты, соответствующие CU, могут быть подразделены на меньшие элементы с использованием структуры дерева квадратов, известной как «остаточное дерево (RQT) квадратов». Концевые узлы RQT могут называться элементами (TU) преобразования. Значения разницы пикселов, связанные с TU, могут быть преобразованы для воспроизведения коэффициентов преобразования, которые могут быть квантованы.

Концевой CU может включать в себя один или несколько элементов (PU) прогнозирования. В общем, PU представляет собой пространственную область, соответствующую всем или части соответствующих CU, и может включать в себя данные для извлечения опорного отсчета для PU. Более того, PU включает в себя данные, относящиеся к прогнозированию. Например, когда PU закодирован во внутреннем режиме, данные для PU могут быть включены в остаточное дерево (RQT) квадратов, которое может включать в себя данные, описывающие режим внутреннего прогнозирования для TU, соответствующего PU. В качестве другого примера, когда PU закодирован во внешнем режиме, PU может включать в себя данные, определяющие один или несколько векторов движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешение вектора движения (например, с точностью до одной четвертой пиксела или с точностью до одной восьмой пиксела), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, Список 0, Список 1, или Список С) для вектора движения.

Концевой CU, имеющий один или несколько PU, может также включать в себя один или несколько элементов (TU) преобразования. Элементы преобразования могут быть определены с использованием RQT (также называемого структурой дерева квадратов TU), как описано выше. Например, флаг разделения может указывать, разделен ли концевой CU на четыре элемента преобразования. Затем каждый элемент преобразования может быть дополнительно разделен на дополнительные под-TU. Когда TU не разделен дополнительно, он может называться концевым TU. В общем, для внутреннего кодирования все концевые TU, принадлежащие концевому CU, имеют одинаковый режим внутреннего прогнозирования. То есть, одинаковый режим внутреннего прогнозирования, в общем, применяется для вычисления прогнозированных значений для всех TU концевого CU. Для внутреннего кодирования видеокодер может вычислять остаточное значение для каждого концевого TU с использованием режима внутреннего прогнозирования в качестве разницы между частью CU, соответствующего TU, и исходным блоком. TU необязательно ограничен размером PU. Таким образом, TU могут быть больше или меньше, чем PU. Для внутреннего кодирования PU может быть расположен совместно с соответствующим концевым TU для того же CU. В некоторых примерах максимальный размер концевого TU может соответствовать размеру соответствующего концевого CU.

Более того, TU концевых CU могут также быть связаны с соответственными структурами данных дерева квадратов, называемыми остаточные деревья (RQT) квадратов. То есть концевой CU может включать в себя дерево квадратов, указывающее, как концевой CU разделен на TU. Корневой узел дерева квадратов TU, в общем, соответствует концевому CU, в то время как корневой узел дерева квадратов CU, в общем, соответствует древовидному блоку (или LCU). TU RQT, которые не разделены, называются концевыми TU. В общем, настоящее раскрытие использует термины CU и TU для ссылки на концевой CU и концевой TU соответственно, если только не указано иное.

Видеопоследовательность, как правило, включает в себя ряд видеокадров или изображений. Группа (GOP) изображений, в общем, содержит ряд из одного или нескольких изображений. GOP может включать в себя синтаксические данные в заголовке GOP, заголовке одного или нескольких изображений или в другом месте, которое описывает число изображений, включенных в GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20, как правило, функционирует с видеоблоками внутри отдельных видеослайсов, чтобы закодировать видеоданные. Видеоблок может соответствовать узлу кодирования внутри CU. Видеоблоки могут иметь фиксированные или изменяемые размеры и могут отличаться в размерах в соответствии с конкретным стандартом кодирования.

В качестве примера НМ поддерживает прогнозирование в различных размерах PU. Предположим, что размер конкретного CU равен 2N×2N, тогда НМ поддерживает внутреннее прогнозирование в размерах PU 2N×2N или N×N, и внешнее прогнозирование в симметричных размерах PU 2N×2N, 2N×N, N×2N или N×N. НМ также поддерживает асимметричное разделение для внешнего прогнозирования в размерах PU 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном разделении одно направление CU не разделяется, в то время как другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25% разделению, указывается «n», за которым следует указание «Сверху», «Снизу», «Слева» или «Справа». Таким образом, например, «2N×nU» относится к 2N×2N CU, который разделен горизонтально с 2N×0,5N PU сверху и 2N×1,5N PU снизу.

В настоящем раскрытии «N×N» и «N на N» могут быть использованы взаимозаменяемо для ссылки на пиксельные размеры видеоблока относительно вертикальных и горизонтальных размеров, например 16×16 пикселов или 16 на 16 пикселов. В обще