ИЕРАРХИЯ ВИДЕОБЛОКОВ С ПРЕДСКАЗАНИЕМ ДВИЖЕНИЯ Российский патент 2015 года по МПК H04N19/00 

Описание патента на изобретение RU2562379C2

[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 может предоставить анализ результатов различных режимов, чтобы позволить компоненту выбора режима выбрать желаемый режим для различных видеоблоков. В соответствии с данным раскрытием, режим, который выполняет AMVP, может быть выбран, когда компонент R-D идентифицирует его в качестве желаемого режима для данного видеоблока, например, вследствие выигрышей при кодированию или эффективности кодирования. Альтернативно, в соответствии с данным раскрытием, может быть выбран режим слияния, в котором информация движения наследуется из соседнего блока. В данных или других примерах, упорядоченный набор соседей может быть задан и использован при кодированию в соответствии с данным раскрытием.

[0053] Обратимся снова к Фиг. 2, на которой после того, как компонент 32 кодирования с предсказанием выводит блок с предсказанием, и после того, как сумматор 48 вычитает блок с предсказанием из подвергаемого кодированию видеоблока, для того чтобы сгенерировать остаточный блок остаточных пиксельных значений, компонент 38 преобразования применяет преобразование к остаточному блоку. Преобразование может содержать дискретное косинусное преобразование (DCT) или концептуально подобное преобразование, такое как преобразование, заданное в стандарте ITU H.264 или стандарте HEVC. Для выполнения преобразования могут быть заданы структуры так называемых «бабочек», либо также может использоваться основанное на матрице умножение. В некоторых примерах, в соответствии со стандартом HEVC, размер преобразования может отличаться для различных CU, например, в зависимости от уровня разделения, которое происходит относительно данного LCU. Единицы преобразования (TU) могут быть заданы, для того чтобы установить размер преобразования, применяемого посредством компонента 38 преобразования. Могут также использоваться Вейвлет преобразования, целочисленные преобразования, полосные преобразования или другие типы преобразований. В любом случае, компонент преобразования применяет преобразование к остаточному блоку, создавая блок из остаточных коэффициентов преобразования. Преобразование, в целом, может преобразовать остаточную информацию из пиксельной области в частотную область.

[0054] Затем компонент 40 квантования квантует остаточные коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. Компонент 40 квантования, например, может ограничить количество битов, используемых для кодирования каждого из коэффициентов. В частности компонент 40 квантования может применить дельта QP, заданный для LCU, так чтобы задать уровень квантования, который следует применить (например, посредством объединения дельта QP с QP предыдущего LCU или некоторого другого известного QP). После того, как квантование выполнено над остаточными отсчетами, компонент 46 энтропийного кодирования может просканировать и энтропийно закодировать данные.

[0055] CAVLC является одним типом методики энтропийного кодирования, поддерживаемой стандартом ITU H.264 и появляющимся стандартом HEVC, которая может быть применена на векторизованной основе компонент 46 энтропийного кодирования. CAVLC использует таблицы кодирования переменной длины (VLC) так, что происходит эффективное сжатие преобразованных в последовательную форму «пробегов» коэффициентов и/или синтаксических элементов. CABAC является другим типом методики энтропийного кодирования, поддерживаемой в стандарте ITU H.264 или стандарте HEVC, которая может быть применена на векторизованной основе компонентом 46 энтропийной кодирования. CABAC может заключать в себе несколько стадий, включающих в себя преобразование в двоичную форму, выбор контекстной модели и двоичную арифметическую кодировку. В данном случае компонент 46 энтропийного кодирования подвергает кодированию коэффициенты и синтаксические элементы согласно CABAC. Также существует много других типов методик энтропийного кодирования, и, вероятно, в будущем появятся новые методики энтропийного кодирования. Данное раскрытие не ограничивается до какой-либо конкретной методики энтропийного кодирования.

[0056] После энтропийного кодирования посредством компонента 46 энтропийного кодирования, закодированное видео может быть передано к другому устройству или заархивировано для последующей передачи или извлечения. Закодированное видео может содержать подверженные энтропийному кодированию векторы и различную синтаксическую информацию. Такая информация может использоваться декодером, чтобы должным образом сконфигурировать процесс декодирования. Компонент 42 обратного квантования и компонент 44 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы восстановить остаточный блок в пиксельной области. Сумматор 51 добавляет восстановленный остаточный блок к блоку с предсказанием, созданным компонентом 32 кодирования с предсказанием, чтобы создать восстановленный видеоблок для сохранения в памяти 34. До такого сохранения, однако, фильтрующий компонент 47 может применить фильтрацию к видеоблоку для повышения качества видео. Фильтрация, применяемая фильтрующим компонентом 47, может уменьшить искажения и сгладить границы пикселей. Кроме того, фильтрация может улучшить сжатие посредством генерирования предсказывающих видеоблоков, которые содержат тесные согласования с подвергаемыми кодированию видеоблоками.

[0057] В соответствии с методиками, описанными в данном документе, компонент 32 кодирования с предсказанием может использовать упорядоченные иерархии, чтобы идентифицировать предсказывающий блок для кодирования текущего блока, и/или может генерировать значение индекса, которое идентифицирует конкретный предсказывающий блок согласно упорядоченной иерархии. Фиг. 3A является концептуальной схемой, изображающей текущий видеоблок и предсказывающие движение видеоблоки-кандидаты (то есть верхний (T), верхний правый (TR), левый (L), левый нижний (BL) или близко расположенный от временно смежного кадра (Временный)), из которых текущий видеоблок может извлечь информацию движения. Фиг.3B является концептуальной схемой, изображающей текущий видеоблок и один из множества наборов предсказывающих движение видеоблоков, которые могут быть извлечены из набора предсказывающих движение видеоблоков-кандидатов на Фиг. 3A. Фиг. 3C является концептуальной схемой, изображающей текущий видеоблок и предсказывающие движение видеоблоки-кандидаты (то есть, верхний (T), верхний левый (TL), верхний правый (TR), левый (L), или левый нижний (BL)), из которых текущий видеоблок может извлечь информацию движения.

[0058] Фиг. 4 и 5 являются концептуальными схемами, которые изображают использование упорядоченной иерархии видеоблоков с предсказанием движения для идентификации предсказывающего видеоблока для кодирования текущего видеоблока. В примере, изображенном на Фиг. 4 и 5, временное расстояние между текущим видеоблоком и каждым из видеоблоков с предсказанием движения используется для создания упорядоченной иерархии. Упорядоченная иерархия может быть создана посредством видеокодера 50 на основе входных видеоданных или создана заранее и сохранена в памяти 34. Создание упорядоченной иерархии на основе временного расстояния может использовать факт того, что видеоблоки с предсказанием движения, имеющие более короткие временные расстояния относительно текущего видеоблока, могут с большей вероятностью быть лучшими предсказателями, чем видеоблоки, имеющие более дальние временные расстояния. В примере, изображенном на Фиг. 4 и 5, набор блоков с предсказанием движения включает в себя пять блоков, показанных на Фиг. 3A. В других примерах набор видеоблоков с предсказанием движения может включать в себя больше или меньше видеоблоков с предсказанием движения. Размер набора и видеоблоков с предсказанием движения, содержащихся в наборе, может изменяться для каждого текущего видеоблока. Например, набор из трех видеоблоков с предсказанием движения может быть сгенерирован с использованием пяти видеоблоков, показанных на Фиг. 5.

[0059] Порядковый номер изображения (POC - picture order count), связанный с информацией движения видеоблока с предсказанием движения, может использоваться для задания временного расстояния между каждым из видеоблоков с предсказанием движения и текущим видеоблоком. В примере, изображенном на Фиг. 4 и 5, подвергаемый кодированию текущий видеоблок располагается в кадре 5 (POC=5). Информация движения видеоблоков с предсказанием движения указывает, что кадр 0 для блока L, кадр 1 для блока BL, кадр 2 для блока T, кадр 3 для блока Временный и кадр 4 для блока TR. Соответственно, иерархия блоков с предсказанием движения может быть задана как: блок TR, за которым следует блок Временный, за которым следует блок T, за которым следует блок BL, за которым следует блок L.

[0060] Как описано выше, компонент 32 кодирования с предсказанием может использовать примерную упорядоченную иерархию, изображенную на Фиг. 5, для кодирования информации движения для текущего видеоблока. В одном примере упорядоченная иерархия может быть запрограммирована заранее и сохранена в памяти 34. В другом примере видеокодер 50 может адаптивно генерировать иерархии посредством анализа видеоданных. Как только иерархия определена, каждому из видеоблоков с предсказанием движения могут быть назначены переменные кодовые слова в качестве значения индекса. Видеоблоку с предсказанием движения, который имеет самую высокую вероятность того, чтобы быть самым высоко ранжированным видеоблоком с предсказанием движения для данного текущего видеоблока, может быть назначено самое короткое кодовое слово. В примере, показанном на Фиг. 5, видеоблок TR может иметь самое короткое кодовое слово. Посредством назначения значений индексов различным образом, в зависимости от упорядоченной иерархии (например, временного расстояния информации движения), может быть достигнута экономия битов. В некоторых случаях коды переменной длины могут использоваться для назначения более коротких кодов видеоблокам с предсказанием движения с лучшей корреляцией (например, с точки зрения временного расстояния информации движения). В других случаях могут использоваться неизменные коды, однако некоторые видеоблоки с предсказанием движения могут быть исключены, тем самым учитывая более короткие неизменные коды вследствие использования меньшего количества видеоблоков с предсказанием движения.

[0061] Компонент 32 кодирования с предсказанием может сравнивать информацию движения текущего видеоблока с информацией движения блоков с предсказанием движения в наборе и выбирать значение индекса для текущего видео, где значение индекса идентифицирует один из видеоблока с предсказанием движения. На основе режима кодирования информация движения текущего видеоблока может быть сгенерирована посредством использования значения индекса для: наследования вектора движения из идентифицированного видеоблока с предсказанием движения или вычисления вектора движения посредством добавления или вычитания остаточной информации вектора движения по отношению к вектору движения идентифицированного видеоблока с предсказанием движения.

[0062] Примерный способ, изображенный на Фиг. 4 и 5, может быть основан на сценарии, где текущий видеоблок и видеоблок с предсказанием движения используют направленный режим с одним предсказанием. Однако, способ Фиг. 4 и 5 может также быть расширен до сценариев с двумя предсказаниями, где каждый видеоблок имеет два вектора движения, рассматривая объединенное расстояние двух различных предсказывающих блоков видеоблоков с предсказанием движения, подвергшихся кодированию в режиме с двумя предсказаниями, относительно текущего видеоблока. В некоторых примерах, если какой-либо из видеоблоков с предсказанием движения имеет один и тот же POC, то может использоваться порядок по умолчанию, либо могут использоваться другие критерии для упорядочивания видеоблоков с предсказанием движения. В одном примере порядок по умолчанию может представлять собой блок T, за которым следует блок L, за которым следует блок Временный, за которым следует блок TR, за которым следует блок BL. Для набора из пяти блоков любые из 120 возможных порядков могут использоваться в качестве порядка по умолчанию. Другие критерии, которые могут использоваться для определения порядка, могут включать в себя: опорный список, опорный индекс, направление предсказания, размер блока, размер единицы с предсказанием, тип разделения с предсказанием, индекс преобразования, размер преобразования, либо другую информацию, относящуюся к видеоблокам. Например, упорядочивание может быть основано на том, является ли размер или форма подвергаемого кодированию видеоблока размером или формой видеоблоков с предсказанием движения. Если один или более видеоблоков с предсказанием движения не могут быть упорядочены исключительно на указанной временной характеристике (например, каждый видеоблок с предсказанием движения ссылается на тот же самый предсказывающий блок), может использоваться второй критерий для проведения дополнительного анализа или задания порядка по умолчанию. Второй критерий может основываться на других методиках упорядочивания, описанных в данном документе. В другой методике, описанной в данном раскрытии, набор видеоблоков с предсказанием движения может быть организован в упорядоченную иерархию на основе формы разделения текущего видеоблока.

[0063] В соответствии с данным раскрытием компонент 32 кодирования с предсказанием может использовать другие методики для кодирования информации движения текущего видеоблока. Фиг. 6 является концептуальной схемой, показывающей один пример возможных видеоблоков, которые могут быть проанализированы в целях определения того, как закодировать информацию движения текущего видеоблока. На Фиг. 6 видеоблоки располагаются в том же самом кадре, что и текущий видеоблок. В другом примере видеоблоки-кандидаты могут также располагаться в других (уже закодированных/декодированных) кадрах, отличных от текущего видеоблока. Например, близко расположенный блок к текущему видеоблоку из одного или более предварительно подвергшихся кодированию кадров может также быть видеоблоком-кандидатом. Компонент 32 кодирования с предсказанием может проанализировать информацию движения видеоблоков-кандидатов, изображенных на Фиг. 6.

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

[0065] В примере, показанном на Фиг. 7, находится одиннадцать видеоблоков с предсказанием движения. Каждый из видеоблоков включает в себя значение режима направления (то есть, с одним предсказанием или с двумя предсказаниями), значение опорного списка и значение опорного индекса. До сравнения информации движения текущего видеоблока с информацией движения каждого из одиннадцати видеоблоков с предсказанием движения, изображенных на Фиг. 7, может происходить первое сравнение значения направленного режима, значения опорного списка и значения опорного индекса. Это может привести возникновению меньшего количества сравнений информации движения. Таким образом компонент 32 кодирования с предсказанием может эффективно искать видеоблок с предсказанием движения для текущего видеоблока. Согласно примеру, показанному на Фиг. 7, значение опорного списка и значение опорного индекса видеоблока с предсказанием движения могут быть сравнены с текущим видеоблоком. В примере, изображенном на Фиг. 7, может быть определено, предсказывает ли вектор движения видеоблока с предсказанием движения из того же самого опорного списка и того же самого опорного индекса, что и вектор движения текущих видеоблоков. Как изображено в примере, показанном на Фиг. 7, предполагается, что текущий видеоблок подвергается кодированию в режиме с двумя предсказаниями, и два вектора движения, используемые в данном режиме с двумя предсказаниями, указывают на опорный список L1 и опорный индекс 0. Поиск может быть проведен среди видеоблоков с предсказанием движения для нахождения блоков, подвергшихся кодированию в режиме с двумя предсказаниями, и два вектора движения, используемые в данном режиме с двумя предсказаниями, указывают на опорный список L1 и опорный индекс 0.

[0066] В примерном способе поиска, изображенном на Фиг. 7, поиск начинается слева вдоль направления левого поиска (от видеоблоков с 0 по 4), если согласование находится (в данном примере видеоблок-кандидат 2 представляет собой согласование), левый поиск может быть остановлен, и начинается верхний поиск с видеоблоков-кандидатов 5 по 10 вдоль направления верхнего поиска. Как только находится первое согласование верхних видеоблоков-кандидатов (в данном примере видеоблок 6 представляет собой согласование), верхний поиск может быть остановлен. Информация движения текущего видеоблока может быть сравнена с информацией движения видеоблока 2 и видеоблока 6. Данный процесс может быть повторен пока необходимая информация движения единица предсказывающего видеоблока находится внутри пороговой величины информации движения текущего видеоблока.

[0067] Следует отметить, что в примере, показанном на Фиг. 7, если направление предсказания не было бы принято во внимание, то набор блоков с предсказанием движения мог бы включать в себя видеоблок 0 (первое согласование в левом поиске) и видеоблок 6 (первое согласование в верхнем поиске). Видеоблок-кандидат 0 может в конечном счете быть не полезен для предсказания информации вектора движения текущего видеоблока, потому что он подвергается кодированию в режиме с одним предсказанием.

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

[0069] Компонент 32 кодирования с предсказанием может генерировать значение индекса, чтобы сообщить декодеру, где расположить блок с предсказанием движения (например, в верхний, левый или близко расположенный). Декодер может выполнить процесс обратного поиска, чтобы определить видеоблок с предсказанием движения. Таким образом декодер может сгенерировать вектор движения для текущего видеоблока посредством выполнения поиска поднабора видеоблоков. На Фигуре 7 значение индекса может указывать поднабор видеоблоков с предсказанием движения (то есть видеоблоки с 0 по 4 или видеоблоки с 5 по 10) из известного набора. Используя значение индекса, декодер может сравнить информацию, такую как значение режима направления, значение опорного списка и значение опорного индекса видеоблоков с предсказанием движения с текущим видеоблоком. Если есть «согласование», информация движения для текущего видеоблока может быть сгенерирована из первого предсказывающего видеоблока, который создает «согласование». Таким образом информация движения образа для текущего видеоблока может быть закодирована посредством использования значения индекса, идентифицирующего тот поднабор. Этим может быть достигнута существенная экономия битов по сравнению с генерированием значения индекса, идентифицирующего предсказывающего видеоблока.

[0070] В соответствии с раскрытием компонент 32 кодирования с предсказанием может кодировать информацию движения текущего видеоблока с использованием упорядоченной иерархии, где упорядоченная иерархия основана на информации о разделении. Фиг. 8 является концептуальной схемой, изображающей примеры разделений видеоблока. Формы разделения с предсказанием, показанные на Фиг. 8, являются некоторыми примерами форм разделения с предсказанием, которые могут быть заданы посредством единица предсказания (PU) и индексом PU в соответствии с выходящим стандартом высокоэффективного кодирования видео (HEVC). При кодировании информации движения текущего видеоблока с использованием формы разделения (которая может быть задана посредством формы PU и индекса, который задает размер PU), пять блоков-кандидатов могут быть упорядочены от более высокой вероятности к более низкой вероятности. Где вероятность соответствует вероятности того, что вектор движения одного из данных пяти видеоблоков-кандидатов будет «согласовываться» с вектором движения текущего видеоблока. Упорядоченные наборы могут быть запрограммированы заранее и сохранены в кодере и в декодере.

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

[0072] В примерах, показанных на Фиг. 9A-9K, числа внутри видеоблоков с предсказанием движения представляют собой иерархический порядок видеоблоков с предсказанием движения. Для каждой формы разделения с предсказанием (которая может быть задана посредством формы PU и индекса, который задает размер PU), упорядочивание может быть запрограммировано заранее и сохранено как в кодере, так и в декодере.

[0073] Например, на Фиг. 9A иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой 2Nx2N, может быть задана как: блок L, блок T, блок BL, блок TR, Временный.

[0074] Например, на Фиг. 9B иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой 2NxN_0, может быть задана как: блок T, блок L, блок TR, блок BL, Временный.

[0075] Например, на Фиг. 9C иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой Nx2N_l, может быть задана как: блок L, блок BL, блок Временный, блок TR, блок T.

[0076] Например, на Фиг. 9D иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой Nx2N_0, может быть задана как: блок L, блок T, блок BL, Временный, блок TR.

[0077] Например, на Фиг. 9E иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой Nx2N_l, может быть задана как: блок T, блок TR, Временный, блок BL, блок L.

[0078] Например, на Фиг. 9F иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой NxN_0, может быть задана как: блок L, блок T, блок BL, блок TR, Временный.

[0079] Например, на Фиг. 9G иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой NxN_2, может быть задана как: блок L, блок BL, блок T, блок TR, Временный.

[0080] Например, на Фиг. 9H иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой NxN_1, может быть задана как: блок T, блок TR, блок L, Временный, блок BL.

[0081] Например, на Фиг. 9I иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой NxN_3, может быть задана как: блок L, блок T, Временный, блок TR, блок BL.

[0082] Например, на Фиг. 9J иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой Nx2N_0, может быть задана как: блок TL, блок T, блок BL, Временный, блок TR, блок L.

[0083] Например, на Фиг. 9K иерархия видеоблоков с предсказанием движения, когда форма разделения представляет собой Nx2N_1, может быть задана как: блок T, блок TR, Временный, блок BL, блок TL, блок L.

[0084] Компонент 32 кодирования с предсказанием может кодировать информацию движения текущего видеоблока с использованием примерного иерархического упорядочивания, изображенного на Фиг. 9A-9I. Примерное иерархическое упорядочивание может храниться в памяти 34. Фиг. 10 является примером блок-схемы последовательности операций способа, изображающей методику для кодирования видеоданных с использованием примерного иерархического упорядочивания на Фиг. 9A-9I. Следует отметить, что, хотя Фиг. 10 описана совместно с видеокодером 50, этапы, описанные на Фиг. 10, могут быть выполнены другими устройствами и составляющими. На этапе 250, компонент 32 кодирования с предсказанием получает вектор движения для текущего видеоблока. Как описано выше, вектор движения указывает предсказывающий видеоблок, который может использоваться для кодирования текущего видеоблока. На этапе 252, компонент 32 кодирования с предсказанием получает тип разделения для текущего видеоблока. Компонент 32 кодирования с предсказанием может принять значение типа разделения от компонента 31 разделения на дерево квадрантов. В одном примере тип разделения соответствует одному из типов разделения, описанных на Фиг. 9A-9I.

[0085] На этапе 254, компонент 32 кодирования с предсказанием выбирает один из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе типа разделения. Например, если тип разделения представляет собой Nx2N_1, набор упорядоченных предсказывающих видеоблоков-кандидатов может быть задан как: блок T, блок TR, Временный, блок BL, блок L. На этапе 256, компонент 32 кодирования с предсказанием выбирает предсказывающий видеоблок из выбранного одного из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе вектора движения текущего видеоблока. На этапе 256, вектор движения текущего видеоблока может быть сравнен с каждым из векторов движения видеоблоков-кандидатов внутри набора. Сравнение может быть сделано подобно поиску, описанному согласно Фиг. 7, где выполняется минимальное количество сравнений векторов движения, и если вектор движения найден внутри пороговой величины вектора движения текущего видеоблока, поиск завершается. На этапе 258 компонент 32 кодирования с предсказанием генерирует значение индекса, идентифицирующее выбранный предсказывающий видеоблок. Значения индекса для каждого из предсказывающих видеоблоков могут быть сохранены в памяти 34.

[0086] Кодовые слова переменной длины могут использоваться в качестве значений индексов для каждого из видеоблоков с предсказанием движения. Видеоблоку с предсказанием движения, который имеет самую высокую вероятность того, чтобы быть самым высоко ранжированным видеоблоком с предсказанием движения для данного текущего видеоблока, может быть назначено самое короткое кодовое слово. Посредством назначения значений индексов переменной длины может быть достигнута экономия битов. Декодер может быть запрограммирован, чтобы знать ту же самую иерархию, и поэтому, может должным образом интерпретировать принятое кодовое слово, чтобы осуществить тот же самый использованный выбор, как кодер. В одном примере, самому высоко ранжированному предсказывающему видеоблоку в каждом из наборов, заданных на Фиг. 9A-9I, может быть назначено значение индекса в один бит. В других примерах в любом данном сценарии может рассматриваться только поднабор (например, верхние 3 из 5), что может уменьшить сложность кодирования. Таким образом, если несколько видеоблоков в группе кодируются с использованием только поднабора видеоблоков, количество значений индексов, используемых для кодирования группы, может дополнительно быть уменьшено. В данном случае видеокодер 50 может сигнализировать уменьшенный набор значений индексов для группы закодированных видеоблоков.

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

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

[0089] Видеодекодер 60 включает в себя компонент 52 энтропийного декодирования, который выполняет функцию обратного декодирования относительно кодирования, выполненного посредством компонента 46 энтропийного кодирования Фиг. 2. В частности, компонент 52 энтропийного декодирования может выполнять CAVLC или CABAC декодирование, либо любой другой тип энтропийного декодирования, используемого видеокодером 50. Видеодекодер 60 также включает в себя компонент 54 декодирования с предсказанием, компонент 56 обратного квантования, компонент 58 обратного преобразования, память 62 и сумматор 64. В частности, подобно видеокодеру 50, видеодекодер 60 включает в себя компонент 54 декодирования с предсказанием и фильтрующий компонент 57. Компонент 54 декодирования с предсказанием видеодекодера 60 может включать в себя компонент 86 компенсации движения, который декодирует подвергшиеся внутренней кодированию блоки и возможно включает в себя один или более интерполирующих фильтров для субпиксельной интерполяции при процессе компенсации движения. Компонент 54 декодирования с предсказанием может также включать в себя компонент с внутренним предсказанием для внутренних режимов декодирования. Компонент 54 декодирования с предсказанием может поддерживать множество режимов 35, включающих в себя один или более режимов, которые поддерживают AMVP и/или один или более режимы слияния. Фильтрующий компонент 57 может осуществлять фильтрацию на выходе сумматора 64 и может принимать энтропийно декодированную информацию с фильтра, чтобы задать коэффициенты фильтра, применяемые при контурной фильтрации.

[0090] После приема закодированных видеоданных компонент 52 энтропийного декодирования выполняет обратное декодирование по отношению к кодированию, выполненному посредством компонента 46 энтропийного кодирования (в кодере 50 на Фиг. 2). В декодере, компонент 52 энтропийного декодирования синтаксически анализирует битовый поток для определения самых больших единиц кодирования и соответствующего разделения, связанного с данными самыми большими единицами кодирования. В некоторых примерах LCU или единицы кодирования LCU могут задавать режимы кодирования, которые были использованы, и эти режимы кодирования могут включать в себя режим слияния с двумя предсказаниями. Соответственно, компонент 52 энтропийного декодирования может пересылать синтаксическую информацию в единицу с предсказанием, который идентифицирует режим слияния с двумя предсказаниями.

[0091] Фиг. 12 является примером блок-схемы последовательности операций способа, изображающей методику для декодирования видеоданных с использованием примерного иерархического упорядочивания на Фиг. 9A-9I. Следует отметить, что, хотя Фиг. 12 описана совместно с видеокодером 60, этапы, описанные на Фиг. 12, могут быть выполнены посредством других устройств и составляющих. На этапе 350, компонент 54 предсказывающего декодирования получает значение индекса для текущего видеоблока. Как описано выше, в соответствии с Фиг. 10 значение индекса указывает предсказывающий видеоблок, который может использоваться для генерирования вектора движения для текущего видеоблока. На этапе 352, компонент 54 предсказывающего декодирования получает тип разделения для текущего видеоблока. В одном примере тип разделения соответствует одному из типов разделения, описанных на Фиг. 9A-9I. На этапе 354, компонент 54 предсказывающего декодирования выбирает один из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе типа разделения. Например, если тип разделения представляет собой Nx2N_1, то набор упорядоченных предсказывающих видеоблоков-кандидатов может быть задан как: блок T, блок TR, Временный, блок BL, блок L. На этапе 356, единиц 54 предсказывающего декодирования выбирает предсказывающий видеоблок из выбранного одного из множества заданных наборов упорядоченных предсказывающих видеоблоков-кандидатов на основе значения индекса. На этапе 358, компонент 54 предсказывающего декодирования генерирует вектор движения. Например, компонент 54 предсказывающего декодирования может сгенерировать вектор движения с использованием любой из следующих методик: наследование вектора движения из идентифицированного видеоблока с предсказанием движения, вычисление вектора движения посредством добавления или вычитания остаточной информации вектора движения по отношению к вектору движения идентифицированного видеоблока с предсказанием движения, либо вычисление вектора движения с использованием информации вектора движения из одного или более видеоблоков с предсказанием движения с высоким ранжированием посредством выбора срединного вектора движения или усреднения векторов движения.

[0092] В примере, описанном на Фиг. 12, декодер 60 может быть запрограммирован, чтобы знать иерархии формы разделения, описанные на Фиг. 9A-9I, и поэтому, может должным образом интерпретировать принятое значение индекса, чтобы сделать тот же самый выбор видеоблока с предсказанием, как кодер 50. В одном примере, предсказывающему видеоблоку с самым высоким ранжированием в каждом из наборов, заданных на Фиг. 9A-9I, может быть назначено значение индекса в один бит. В других примерах в любом данном сценарии может рассматриваться только поднабор (например, верхние 3 из 5), что может уменьшить сложность кодирования. Например, для разделения Nx2N_1 набору из упорядоченных предсказывающих видеоблоков-кандидатов блока T, блока TR, и Временного может быть назначены следующие значения индексов: 1, 01, и 00. Таким образом, если несколько видеоблоков кодируются с использованием контейнера значений индексов только верхних 3 видеоблоков, то может быть достигнута дополнительная экономия битов. В данном случае видеокодер 50 может сигнализировать количество предсказывающих движение видеоблоков для группы закодированных видеоблоков. Это может быть выполнено подобным образом, как осуществляется сигнализация набора из левого набора блоков в примере, описанном в соответствии с Фиг. 7.

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

[0094] В одном или более примерах, описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, аппаратно-программном обеспечении, либо любой их комбинации. При реализации в программном обеспечении, функции могут быть сохранены на или переданы по в качестве одной или более команд или кода на считываемым компьютером носителе и исполнены посредством основанного на аппаратном обеспечении блока обработки. Считываемые компьютером носители могут включать в себя считываемые компьютером носители хранения информации, которые соответствуют материальному носителю, такому как носитель данных, или среда связи, включающая в себя любую среду, которая содействует переносу компьютерной программы из одного места в другое, например, согласно протоколу связи. В данном случае считываемый компьютером носитель в целом может соответствовать (1) материальным считываемым компьютером носителям хранения информации, которые является невременными или (2) среде связи, такой как сигнал или несущая волна. Носители хранения данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ посредством одного или более компьютеров или одного или более процессоров для извлечения команд, кода и/или структур данных для реализации методик, описанных в данном раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.

[0095] В качестве примера, а не ограничения, такие считываемые компьютером носители хранения информации могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитных дисках, либо другие устройства магнитного хранения, флэш-память, или любой другой носитель, который может использоваться для хранения необходимого программного кода в форме команд или структур данных, и к которому может быть осуществлен доступ посредством компьютера. Кроме того, любое соединение должным образом называют считываемым компьютером носителем. Например, если команды передаются от веб-страницы, сервера, либо другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии связи (DSL), или беспроводных технологии, таких как инфракрасное излучение, радио и микроволновое излучение, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL, либо беспроводные технологии, такие как инфракрасное излучение, радио и микроволновое излучения содержатся в определении носителя. Следует понимать, однако, что считываемые компьютером носители хранения информации и носители данных не включают в себя соединения, несущие волны, сигналы, или другие изменяющиеся среды, а вместо этого адресуются к невременным, материальным носителям хранения информации. Магнитный диск и немагнитный диск, использующиеся в данном документе, включают в себя (немагнитный) компакт-диск (CD), (немагнитный) лазерный диск, (немагнитный) оптический диск, (немагнитный) цифровой универсальный диск (DVD), гибкий (магнитный) диск и (немагнитный) диск Blu-ray, где магнитные диски обычно воспроизводят данные магнитным образом, в то время как немагнитные диски воспроизводят данные оптическим образом с помощью лазеров. Комбинации вышеупомянутого также должны быть включены в объем считываемого компьютером носителя.

[0096] Команды могут быть исполнены посредством одного или более процессоров, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессорами общего назначения, интегральными схемами специального назначения (ASIC), программируемыми вентильными матрицами (FPGA), либо другими эквивалентными интегральными или дискретными логическими схемами. Соответственно, термин «процессор», использующийся в данном документе, может относиться к любой вышеупомянутой структуре или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах, функциональности, описанные в данном документе, могут быть предоставлены в специализированном аппаратном обеспечении и/или модулях программного обеспечения, сконфигурированных для кодирования и декодирования, либо встроены в объединенный кодек. Кроме того, методики могут полностью быть реализованы в одной или более схемах или логических элементах.

[0097] Методики данного раскрытия могут быть реализованы в широком разнообразии устройств или оборудования, включающих в себя беспроводную гарнитуру, интегральную схему (IC) или набор IC (например, комплект микросхем). Различные компоненты, модули или блоки описаны в данном раскрытии с акцентом на функциональных аспектах устройств, сконфигурированных с возможностью выполнения раскрытых методик, но не требуют обязательной реализации посредством различных компонентов аппаратного обеспечения. Скорее, как описано выше, различные компоненты могут быть скомбинированы в компоненте аппаратного обеспечения кодека или предоставлены посредством совокупности взаимодействующих компонентов аппаратного обеспечения, включающих в себя один или более процессоров, как описано выше, совместно с подходящим программным обеспечением и/или аппаратно-программным обеспечением.

[0098] Были описаны различные примеры. Эти и другие примеры находятся в объеме следующей формулы изобретения.

Похожие патенты RU2562379C2

название год авторы номер документа
ПРЕДСКАЗАНИЕ ВЕКТОРОВ ДВИЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2012
  • Чэнь Ин
  • Чэнь Пэйсун
  • Карчевич Марта
RU2575690C2
ГЕНЕРИРОВАНИЕ ДОПОЛНИТЕЛЬНЫХ КАНДИДАТОВ ДЛЯ СЛИЯНИЯ 2012
  • Чжэн Юньфэй
  • Ван Сянлинь
  • Карчевич Марта
RU2577779C2
ОБЪЕДИНЕННОЕ ПРЕДСКАЗАНИЕ МЕЖКАДРОВОЕ И С ВНУТРИКАДРОВОЙ КОПИЕЙ БЛОКА 2015
  • Пан Чао
  • Рапака Кришнакантх
  • Ван Е-Куй
  • Соле Рохальс Джоэль
  • Карчевич Марта
RU2697744C2
СПОСОБЫ И УСТРОЙСТВА ДЛЯ КОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ВЕКТОРА ДВИЖЕНИЯ ВРЕМЕННОГО ПРЕДСКАЗАНИЯ НА ОСНОВЕ СУББЛОКОВ 2019
  • Чэнь, И-Вэнь
  • Ван, Сянлинь
RU2757209C1
ЗАВИСЯЩЕЕ ОТ РЕЖИМА СКАНИРОВАНИЕ КОЭФФИЦИЕНТОВ БЛОКА ВИДЕОДАННЫХ 2011
  • Чжэн Юньфей
  • Кобан Мухаммед Зейд
  • Соле Рохальс Хоэль
  • Карчевич Марта
RU2547239C2
КОДИРОВАНИЕ НАБОРОВ ПАРАМЕТРОВ И ЗАГОЛОВКОВ ЕДИНИЦ NAL ДЛЯ КОДИРОВАНИЯ ВИДЕО 2013
  • Чэнь Ин
  • Ван Е-Куй
RU2633117C2
РАСШИРЕННАЯ СИГНАЛИЗАЦИЯ РЕЖИМА ВНУТРЕННЕГО ПРЕДСКАЗАНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО, ИСПОЛЬЗУЮЩЕГО РЕЖИМ СОСЕДСТВА 2012
  • Чиэнь Вэй-Цзюн
  • Карчевич Марта
  • Ван Сянлинь
RU2601843C2
ПОСТРОЕНИЕ СПИСКА ОПОРНЫХ ИЗОБРАЖЕНИЙ ДЛЯ ВИДЕОКОДИРОВАНИЯ 2012
  • Ван Е-Куй
  • Чэнь Ин
RU2571410C2
ВЫВЕДЕНИЕ ВЕКТОРА ДВИЖЕНИЯ ПРИ ВИДЕОКОДИРОВАНИИ 2016
  • Ли, Сян
  • Чэнь, Ин
  • Чжан, Ли
  • Лю, Хонгбинь
  • Чэнь, Цзяньлэ
  • Карчевич, Марта
RU2742298C2
ВЫВОД ИНФОРМАЦИИ ДВИЖЕНИЯ ДЛЯ ПОДБЛОКОВ ПРИ ВИДЕОКОДИРОВАНИИ 2016
  • Ли Сян
  • Чэнь Ин
  • Чжан Ли
  • Лю Хонгбинь
  • Чэнь Цзяньлэ
  • Карчевич Марта
RU2705428C2

Иллюстрации к изобретению RU 2 562 379 C2

Реферат патента 2015 года ИЕРАРХИЯ ВИДЕОБЛОКОВ С ПРЕДСКАЗАНИЕМ ДВИЖЕНИЯ

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

Формула изобретения RU 2 562 379 C2

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

2. Способ по п. 1, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

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

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

5. Способ по п. 1, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

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

7. Устройство по п. 6, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

8. Устройство по п. 7, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

9. Устройство по п. 6, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов

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

11. Устройство по п. 6, в котором устройство содержит по меньшей мере одно из:
интегральной схемы; микропроцессора; и
устройства беспроводной связи, которое включает в себя видеодекодер.

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

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

14. Устройство по п. 13, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

15. Устройство по п. 12, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

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

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

18. Считываемый компьютером носитель по п. 17, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

19. Считываемый компьютером носитель по п. 18, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

20. Считываемый компьютером носитель по п. 17, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

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

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

23. Способ по п. 22, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

24. Способ по п. 23, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

25. Способ по п. 22, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

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

27. Устройство по п. 26, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

28. Устройство по п. 27, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

29. Устройство по п. 26, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

30. Устройство по п. 26, в котором устройство содержит по меньшей мере одно из:
интегральной схемы; микропроцессора; и
устройства беспроводной связи, которое включает в себя видеодекодер.

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

32. Устройство по п. 31, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

33. Устройство по п. 32, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

34. Устройство по п. 31, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

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

36. Считываемый компьютером носитель по п. 35, в котором поднабор предсказывающих блоков включает в себя три предсказывающих блока-кандидата.

37. Считываемый компьютером носитель по п. 36, в котором набор предсказывающих блоков-кандидатов включает в себя: смежный левый видеоблок по отношению к текущему видеоблоку, смежный верхний видеоблок по отношению к текущему видеоблоку, смежный верхний правый видеоблок по отношению к текущему видеоблоку, смежный нижний левый видеоблок по отношению к текущему видеоблоку и смежный временный видеоблок по отношению к текущему видеоблоку.

38. Считываемый компьютером носитель по п. 35, в котором набор предсказывающих блоков-кандидатов содержит пять предсказывающих блоков-кандидатов, и при этом поднабор предсказывающих блоков-кандидатов содержит верхние три предсказывающих блока-кандидата из упомянутых пяти предсказывающих блоков-кандидатов в упомянутом наборе предсказывающих блоков-кандидатов.

Документы, цитированные в отчете о поиске Патент 2015 года RU2562379C2

Способ чрескожной пункции поджелудочной железы по В.Н.Горбачеву 1984
  • Горбачев Валерий Николаевич
  • Жвавый Николай Федорович
  • Торицын Владимир Александрович
  • Усов Дмитрий Васильевич
SU1303144A1
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
US 7298913 B2, 20.11.2007
RU 2009130382 A, 20.02.2011
МЕТОДЫ КОДИРОВАНИЯ ПЕРЕМЕННОЙ ДЛИНЫ ДЛЯ СТРУКТУР КОДИРОВАННЫХ БЛОКОВ 2008
  • Карчевич Марта
  • Чунг Хиукдзуне
  • Сагетонг Пхоом
RU2409004C1

RU 2 562 379 C2

Авторы

Чжэн Юньфэй

Чиэнь Вэй-Цзюн

Карчевич Марта

Даты

2015-09-10Публикация

2012-02-23Подача