Иерархия видеоблоков с предсказанием движения

Иллюстрации

Показать все

Изобретение относится к области кодирования и декодирования видеоданных. Технический результат заключается в повышении эффективности передачи, приема, кодирования, декодирования, и/или хранения информации видеоустройствами. Технический результат достигается за счет видеодекодера, который сконфигурирован с возможностью получения значения индекса для текущего видеоблока. Видеодекодер получает тип разделения для текущего видеоблока. Видеодекодер выбирает один из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе типа разделения текущего видеоблока. Видеодекодер выбирает предсказывающий видеоблок из выбранного одного из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе значения индекса. Видеодекодер генерирует вектор движения для текущего видеоблока на основе информации движения предсказывающего видеоблока. 8 н. и 30 з.п. ф-лы, 24 ил.

Реферат

[0001] Данная заявка испрашивает приоритет:

предварительной заявки США № 61/446,392, поданной 24 февраля 2011;

предварительной заявки США № 61/447,017, поданной 26 февраля 2011;

предварительной заявки США № 61/451,493, поданной 10 марта 2011;

предварительной заявки США № 61/529,110, поданной 30 августа 2011;

предварительной заявки США № 61/531,526, поданной 6 сентября 2011; и

предварительной заявки США № 61/531,514, поданной 6 сентября 2011, содержимое каждой из которых полностью включено в данный документ посредством ссылки.

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

[0002] Данное раскрытие относится к кодированию видео.

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0004] В целом, данное раскрытие описывает методики для кодирования видеоданных. В одном примере способ декодирования видеоданных содержит этапы, на которых получают значение индекса для текущего видеоблока, получают тип разделения для текущего видеоблока, выбирают один из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе типа разделения, выбирают предсказывающий видеоблок из выбранного одного из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе значения индекса, и генерируют вектор движения для текущего видеоблока на основе информации о движении предсказывающего видеоблока.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0021] Фиг. 9A-9K являются концептуальными схемами, изображающими примеры создания упорядоченной иерархии на основе разделения текущего видеоблока для набора видеоблоков с предсказанием движения ряда.

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

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

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

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

[0025] Данное раскрытие описывает методики для генерирования наборов видеоблоков с предсказанием движения из видеоблоков-кандидатов и создания упорядоченной иерархии видеоблоков с предсказанием движения внутри набора. Видеокодер может кодировать информацию о движении для текущего видеоблока с использованием упорядоченной иерархии, а видеодекодер может декодировать информацию о движении для текущего видеоблока с использованием упорядоченной иерархии. Например, набор видеоблоков-кандидатов может включать в себя видеоблоки, смежные с текущим видеоблоком. Упорядоченный набор видеоблоков с предсказанием движения может быть поднабором из смежных видеоблоков. Информация движения для текущего видеоблока может быть получена с использованием упорядоченного набора видеоблоков с предсказанием движения, включающим в себя использование одной из следующих методик: наследование вектора движения из видеоблока с предсказанием движения в упорядоченном наборе, вычисление вектора движения посредством добавления или вычитания остаточной информации вектора движения по отношению к вектору движения из видеоблока с предсказанием движения в упорядоченном наборе, или вычисление вектора движения с использованием информации вектора движения из одного или более видеоблоков с предсказанием движения в упорядоченном наборе. Использование упорядоченной иерархии может предоставить возможность достижения экономии битов.

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

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

[0028] В одной методике, описанной в данном раскрытии, упорядоченная иерархия видеоблоков с предсказанием движения создается на основе типа разделения текущего видеоблока. Поднабор из трех блоков с предсказанием движения может быть сгенерирован из набора пяти смежных видеоблоков на основе типа разделения текущего видеоблока. Тип разделения может соответствовать форме разделения так называемого PU согласно выходящему стандарту высокоэффективного кодирования видео (HEVC).

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

[0030] В примере Фиг. 1 устройство 12 источника может включать в себя источник 20 видео, видеокодер 22, модулятор/демодулятор (модем) 23 и передатчик 24. Устройство 16 получателя может включать в себя приемник 26, модем 27, видеодекодер 28 и устройство 30 отображения. В видеокодере 22 могут быть сгенерированы синтаксические элементы в качестве части кодированного битового потока, и упомянутые синтаксические элементы могут использоваться видеодекодером 28 при декодировании битового потока.

[0031] Источник 20 видео может содержать устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, внешнее видео от поставщика видеоконтента или другого источника видео. В качестве дополнительного варианта, источник 20 видео может генерировать основанные на компьютерной графике данные в качестве исходного видео, либо объединение видео в реальном времени, архивного видео и сгенерированного компьютером видео. В некоторых случаях, если источник 20 видео является видеокамерой, устройство 12 источника и устройство 16 получателя могут образовывать так называемые телефоны с камерой или видеотелефоны. В каждом случае захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано посредством видеокодера 22.

[0032] В некоторых примерах (но это не все случаи) после кодирования видеоданных посредством видеокодера 22, информация закодированного видео затем может модулироваться посредством модема 23 согласно стандарту связи, например, такому как множественный доступ с кодовым разделением каналов (CDMA), мультиплексирование с ортогональным частотным разделением каналов (OFDM) или любой другой методике или стандарту связи. Закодированные и модулированные данные затем могут быть переданы в устройство 16 получателя через передатчик 24. Модем 23 может включать в себя различные микшеры, фильтры, усилители или другие составляющие, разработанные для модуляции сигналов. Передатчик 24 может включать в себя схемы, разработанные для передачи данных, включающие в себя усилители, фильтры и одну или более антенн. Приемник 26 устройства 16 получателя принимает информацию по каналу 15, и модем 27 демодулирует информацию. Процесс видеодекодирования, выполняемый посредством видеодекодера 28, может включать в себя взаимообратные методики по отношению к способам кодирования, выполняемым посредством видеокодера 22.

[0033] Канал 15 связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, или любое объединение беспроводной и проводной сред. Канал 15 связи может образовывать часть сети, основанной на пакетной передаче, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Канал 15 связи в целом представляет собой любую подходящую среду связи, либо совокупность различных сред связи, для передачи видеоданных от устройства 12 источника в устройство 16 получателя. Кроме того, Фиг. 1 является всего лишь примерной, и методики данного раскрытия могут применяться к установкам кодирования видео (например, видеокодированию или видеодекодированию), которые не обязательно включают в себя какую-либо передачу данных между устройствами кодирования и декодирования. В других примерах данные могут извлекаться из локальной памяти, передаваться потоком по сети или тому подобным. Устройство кодирования может кодировать и сохранять данные в памяти, и/или устройство декодирования может извлекать и декодировать данные из памяти. Во многих случаях кодирование и декодирование выполняются несвязанными устройствами, которые не осуществляют связь друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.

[0034] В некоторых случаях видеокодер 22 и видеодекодер 28 могут функционировать по существу согласно стандарту видеосжатия, такому как появляющийся стандарт HEVC. Однако, методики данного раскрытия могут также быть применены в контексте множества других стандартов кодирования видео, включающих в себя некоторые старые стандарты или новые, или появляющиеся стандарты. Хотя не показано на фиг. 1, в некоторых случаях видеокодер 22 и видеодекодер 28 каждый могут быть объединены с аудиокодером и аудиодекодером, и могут включать в себя подходящие компоненты MUX-DEMUX (мультиплексора-демультиплексора), или другое аппаратное и программное обеспечение, чтобы управлять кодированием как аудио, так и видео в общем потоке данных или отдельных потоках данных. В случае применения компоненты MUX-DEMUX могут соответствовать протоколу мультиплексирования ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

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

[0036] В некоторых случаях устройства 12, 16 могут функционировать по существу симметричным образом. Например, каждое из устройств 12, 16 может включать в себя составляющие элементы для видеокодирования и видеодекодирования. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 16, например, для передачи потокового видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.

[0037] В течение процесса кодирования видеокодер 22 может исполнять множество операций и методик кодирования. В целом, видеокодер 22 функционирует с блоками видеоданных в соответствии со стандартом HEVC. HEVC относится к единицам кодирования (CU) («coding units»), которые могут быть разделены согласно схеме разделения на деревья квадрантов. «LCU» относится к единице кодирования самого большого размера (например, «самой большой единице кодирования» («largest coding unit»)), поддерживаемой в данной ситуации. Размер LCU может самостоятельно быть сигнализирован в качестве части битового потока, например, в качестве синтаксиса на уровне последовательности. LCU может быть разделен на более малые CU. CU могут быть разделены на единицы с предсказанием (PU) («prediction units») для целей предсказания. PU могут иметь квадратные или прямоугольные формы. Преобразования не закреплены в появляющемся стандарте HEVC, однако задаются согласно размерам единицы преобразования (TU) («transform unit»), которая может быть того же самого размера как данная CU, либо возможно еще меньше. Остаточные отсчеты, соответствующие CU, могут быть подразделены на более малые единицы с использованием структуры дерева квадрантов, известной как «остаточное дерево квадрантов» (RQT) («residual quad tree»). Листовые узлы RQT могут упоминаться как единицы преобразования (TU). TU могут преобразовываться и квантоваться. Синтаксические элементы могут быть заданы на уровне LCU, уровне CU, уровне PU и уровне TU. Элементы, называемые «флагами расщепления», могут содержаться в качестве синтаксиса на уровне CU для указания, подразделен ли тот или иной CU сам на более четырех CU. Например, CU0 может относиться к LCU, а CU1 - CU4 могут содержать суб-CU данной LCU.

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

[0039] Видеокодер 22 может выполнять кодирование с предсказанием, в котором подвергающийся кодированию видеоблок (например, PU в единице CU внутри LCU) сравнивается с одним или более предсказывающими кандидатами, для того чтобы идентифицировать предсказывающий блок. Данный процесс предсказывающего кодирования может быть внутренним (в данном случае предсказывающие данные генерируются на основе соседствующих внутренних данных внутри одного и того же видеокадра или вырезки), либо внешним (в данном случае предсказывающие данные генерируются на основе видеоданных в предыдущих или последующих кадрах или вырезках). Может поддерживаться много различных режимов кодирования, и видеокодер 22 может выбирать необходимый режим кодирования видео. Согласно данному раскрытию, по меньшей мере, некоторые видеоблоки могут подвергаться кодированию с использованием процессов, описанных в данном документе. Методики видеосжатия включают в себя пространственное (внутри изображения) предсказание и/или временное (между изображениями) предсказание для уменьшения или удаления избыточности, свойственной видеопоследовательностям. Для основанного на блоках кодирования видео видеовырезка (например, видеокадр или часть видеокадра) может быть разделена на видеоблоки, которые также могут упоминаться как блоки дерева, единицы кодирования (CU) и/или узлы кодирования. Видеоблоки в подвергающейся внутренней кодированию (I) вырезке изображения кодируются с использованием пространственного предсказания относительно опорных отсчетов в соседствующих блоках в том же самом изображении. Видеоблоки в подвергающемся внешней кодированию (P или B) вырезке изображения могут использовать пространственное предсказание относительно опорных отсчетов в соседствующих блоках в том же самом изображении или временное предсказание относительно опорных отсчетов в других опорных изображениях. Изображения могут упоминаться как кадры, а опорные изображения могут быть отнесены к опорным кадрам.

[0040] Когда видеокодер 22 использует оценку движения и компенсацию движения для уменьшения временной избыточности в видеопоследовательности, вектор движения может быть сгенерирован для идентификации предсказывающего блока видеоданных. Видеодекодер 28 может использовать вектор движения для предсказания значений подвергаемого кодированию текущего видеоблока. Например, значения предсказывающего видеоблока могут быть вычтены из значений текущего видеоблока для создания блока остаточных данных. Вектор движения, наряду с остаточными данными, может быть передан от видеокодера 22 в видеодекодер через канал 15 связи. Видеодекодер 28 может определить местоположение того же самого предсказывающего блока (на основе вектора движения) и восстановить закодированный видеоблок посредством объединения остаточных данных с данными предсказывающего блока.

[0041] Видеокодер 22 может использовать режим слияния для кодирования информации движения текущего видеоблока. Режим слияния является режимом кодирования видео, в котором информация движения (такая как векторы движения, индексы опорных кадров, направления предсказания, или другая информация) соседствующего видеоблока наследуется для подвергаемого кодированию текущего видеоблока. Значение индекса может использоваться для идентификации соседа, от которого текущий видеоблок наследует свою информацию движения (например, верхний, верхний правый, левый, нижний левый или близко расположенный от временно смежного кадра). Еще один случай, когда вектор движения из соседствующего видеоблока используется при кодировании текущего видеоблока, является так называемым предсказанием вектора движения. В данном случае предсказывающее кодирование векторов движения применяется для уменьшения объема данных, необходимых для передачи вектора движения. Например, вместо того, чтобы кодировать и передавать вектор движения непосредственно, видеокодер 22 может закодировать и передать разность вектора движения (MVD) относительно известного (или опознаваемого) вектора движения. В H.264/AVC известный вектор движения, который может использоваться с MVD для задания текущего вектора движения, может быть задан посредством так называемого предсказателя вектора движения (MVP), который извлекается в качестве медианы векторов движения, связанных с соседствующими блоками.

[0042] Видеокодер 22 может использовать адаптивное предсказание вектора движения (AMVP) для кодирования информации движения текущего видеоблока. AMVP строит набор кандидатов векторов движения посредством включения нескольких соседствующих блоков по пространственным и временным направлениям в качестве кандидатов для MVP. В AMVP видеокодер 22 выбирает самый точный блок-предсказатель из набора кандидатов на основе анализа искажения и скорости кодирования (например, используя так называемый анализ стоимости скорость-искажение). Индекс предсказателя вектора движения (mvp_idx) может быть передан в видеодекодер 28, чтобы сообщить видеодекодеру 28, где обнаружить MVP. Видеодекодеру 28 может также быть передан MVD. Видеодекодер 28 может объединить MVD с MVP (заданный посредством индекса предсказателя вектора движения), чтобы сгенерировать вектор движения для текущего видеоблока.

[0043] После генерирования предсказывающего блока, разности между подвергаемым кодированию текущим видеоблоком и предсказывающим блоком подвергаются кодированию как остаточный блок, и синтаксис предсказания (такой как вектор движения в случае внутреннего кодирования или предсказывающий режим в случае внешнего кодирования) используется для идентификации предсказывающего блока. Кроме того, с AMVP или режимом слияния, соседствующий блок, используемый для идентификации блока прогнозирования, может быть подвергнут кодированию, например, через значение индекса, которое идентифицирует конкретного соседа согласно упорядоченной иерархии, как описано в данном документе.

[0044] В некоторых случаях остаточный блок может быть преобразован и квантован. Методики преобразования могут содержать DCT-процесс или концептуально подобный процесс, целочисленные преобразования, вейвлет преобразования, или другие типы преобразований. В DCT-процессе, в качестве примера, процесс преобразования преобразует набор пиксельных значений (например, остаточные пиксельные значения) в коэффициенты преобразования, которые могут представлять собой энергию пиксельных значений в частотной области. Коэффициенты преобразования могут быть квантованы. В частности квантование может быть применено к коэффициентам преобразования, и в целом вовлекает процесс, который ограничивает количество битов, связанных с тем или иным коэффициентом преобразования. Более конкретно, квантование может быть применено согласно параметру квантования (QP), заданному на уровне LCU. Соответственно, один и тот же уровень квантования может быть применен ко всем коэффициентам преобразования в TU, связанных с различными PU единиц кодирования внутри LCU. Однако, вместо того, чтобы сигнализировать QP непосредственно, изменение или разность (то есть, дельта) в QP могут быть сигнализированы с помощью LCU, чтобы указать изменение в QP относительно QP предыдущего LCU.

[0045] Вслед за преобразованием и квантованием может быть выполнено энтропийное кодирование над квантованными и преобразованными остаточными видеоблоками. Синтаксические элементы могут также содержаться в подвергнутом энтропийному кодированию битовом потоке. В целом, энтропийное кодирование содержит один или более процессов, которые все вместе сжимают последовательность квантованных коэффициентов преобразования и/или другую синтаксическую информацию. Методики сканирования могут выполняться над квантованными коэффициентами преобразования, для того чтобы задать один или более преобразованных в последовательную форму одномерных векторов коэффициентов из двумерных видеоблоков. Просканированные коэффициенты затем подвергаются энтропийному кодированию наряду с любой синтаксической информацией, например, через адаптивную к содержимому кодировку переменной длины (CAVLC), адаптивную к контексту двоичную арифметическую кодировку (CABAC), или другой процесс энтропийного кодирования.

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

[0047] Фиг. 2 является блок-схемой, изображающей видеокодер 50 в соответствии с данным раскрытием. Видеокодер 50 может соответствовать видеокодеру 22 устройства 12, либо видеокодеру другого устройства. Как показано на Фиг. 2, видеокодер 50 включает в себя компонент 31 разделения на дерево квадрантов, компонент 32 кодирования с предсказанием, память 34, модуль 38 преобразования, компонент 40 квантования, компонент 42 обратного квантования, модуль 44 обратного преобразования, компонент 46 энтропийной кодирования, фильтрующий компонент 47, который может включать в себя фильтры удаления блочности и после-контурные и/или внутри-контурные фильтры, сумматор 48 и сумматор 51. Закодированные видеоданные и синтаксическая информация, которая задает манеру кодирования, могут быть переданы в компонент 46 энтропийного кодирования, который выполняет энтропийное кодирование над битовым потоком.

[0048] Как показано на Фиг. 2, компонент 32 кодирования с предсказанием может поддерживать множество различных режимов 35 кодирования при кодировании видеоблоков. Режимы 35 могут включать в себя режимы внешнего кодирования, которые задают предсказывающие данные из других видеокадров (или слоев). Режимы внешнего кодирования могут быть с двумя предсказаниями, означая, что два различных списка (например, Список 0 и Список 1) предсказывающих данных (и обычно два различных вектора движения) используются для идентификации предсказывающих данных. Режимы внешнего кодирования могут альтернативно быть с одним предсказанием, означая, что один список (например, Список 0) предсказывающих данных (и обычно один вектор движения) используется для идентификации предсказывающих данных. Интерполяции, смещения или другие методики могут выполняться совместно с генерированием предсказывающих данных. Могут также поддерживаться так называемые режимы ПРОПУСКА («SKIP») и ПРЯМЫЕ («DIRECT») режимы, которые наследуют информацию движения, связанную с близко расположенным блоком другого кадра (или слоя). Блоки режима ПРОПУСКА не включают в себя никакой остаточной информации, в то время как блоки ПРЯМОГО режима включают в себя остаточную информацию.

[0049] Кроме того, режимы 35 могут включать в себя режимы внешнего кодирования, которые задают предсказывающие данные на основе данных внутри того же самого видеокадра (или слоя) в качестве подвергающегося кодированию кадра. Режимы внешнего кодирования могут включать в себя направленные режимы, которые задают предсказывающие данные на основе данных в конкретном направлении внутри одного и того же кадра, так же как DC и/или планарные режимы, которые задают предсказывающие данные на основе среднего значения или взвешенного среднего значения соседствующих данных. Компонент 32 кодирования с предсказанием может выбирать режим для данного блока на основе некоторых критериев, например, на основе анализа скорости-искажения, или некоторых характеристиках блока, таких как размер блока, текстура или других характеристик.

[0050] В соответствии с данным раскрытием компонент 32 кодирования с предсказанием поддерживает один или более режимов, которые выполняют адаптивное предсказание вектора движения (AMVP), как описано выше, или режим слияния, как описано выше. В данных или других случаях информация движения может быть унаследована из блока так, как описано в данном документе, и сигнализация блока, из которого происходит такое наследование, может быть выполнена так, как описано в данном документе.

[0051] В целом, в течение процесса кодирования, видеокодер 50 принимает входные видеоданные. Компонент 32 кодирования с предсказанием выполняет методики кодирования с предсказанием над видеоблоками (например, CU и PU). Компонент 31 разделения на дерево квадрантов может разбивать LCU на более малые CU и PU согласно разделению HEVC. Для внешнего кодирования, компонент 32 кодирования с предсказанием сравнивает единицы кодирования или единицы с предсказанием с различными предсказывающими кандидатами в одном или более опорных видеокадрах или вырезках (например, одном или более «списке» опорных данных), для того чтобы задать предсказывающий блок. Для внутреннего кодирования компонент 32 кодирования с предсказанием генерирует предсказывающий блок на основе соседствующих данных внутри одного и того же видеокадра или слоя. Компонент 32 кодирования с предсказанием выводит блок с предсказанием, и сумматор 48 вычитает блок с предсказанием из подвергающегося кодированию CU или PU, для того чтобы сгенерировать остаточный блок. К тому же, по меньшей мере, некоторые видеоблоки могут быть подвержены кодированию с использованием AMVP, описанным в данном документе.

[0052] В некоторых случаях компонент 32 кодирования с предсказанием может включать в себя компонент скорости-искажения (R-D), который сравнивает результаты кодирования видеоблоков (например, CU или PU) в различных режимах. В данном случае компонент 32 кодирования с предсказанием может также включать в себя компонент выбора режима для анализа результатов кодирования с точки зрения скорости кодирования (то есть, битов кодирования, необходимых для блока) и искажения (например, представляя качество видео подвергнутого кодированию блока относительно исходного блока), для того чтобы осуществить выбор режимов для видеоблоков. Таким образом, компонент R-D может предоставить анализ результатов различных режимов, чтобы позволить компоненту выбора режима выбрать желаемый режим д