Унифицированный выбор кандидатов для режима слияния и адаптивного режима предсказания вектора движения

Иллюстрации

Показать все

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

Реферат

[0001] Данная заявка испрашивает приоритет предварительной патентной заявки США № 61/506,558, поданной 11 июля 2011 г., предварительной патентной заявки США № 61/499,114, поданной 20 июня 2011 г., и предварительной патентной заявки США № 61/509,007, поданной 18 июля 2011 г., которые настоящим включены посредством ссылки в полном объеме.

ОБЛАСТЬ ТЕХНИКИ

[0002] Это раскрытие относится к видеокодированию и, в частности, к методам для выбора блоков-кандидатов предсказания вектора движения в процессе предсказания вектора движения.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ

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

[0004] Методы сжатия видео включают в себя пространственное предсказание и/или временное предсказание для снижения или устранения избыточности, присущей видеопоследовательностям. Для видеокодирования на блочной основе, кадр видео или срез можно разбивать на блоки. Каждый блок также можно подвергать разбиению. Блоки во внутренне (интра-) кодированном (I) кадре или срезе кодируются с использованием пространственного предсказания по отношению к опорным выборкам в соседних блоках в одном и том же кадре или срезе. Блоки во внешне (интер-) кодированном (P или B) кадре или срезе могут использовать пространственное предсказание по отношению к опорным выборкам в соседних блоках в одном и том же кадре или срезе или временное предсказание по отношению к опорным выборкам в других опорных кадрах. Пространственное или временное предсказание дает блок предсказания для блока, подлежащего кодированию. Остаточные данные представляет различия в пикселях между исходным блоком, подлежащим кодированию, и блоком предсказания.

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

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

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

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

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

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

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

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

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

[0012] Фиг. 1A - принципиальная схема, демонстрирующая блоки-кандидаты для предсказания вектора движения согласно режиму адаптивного предсказания вектора движения (AMVP).

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

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

[0015] Фиг. 3 - блок-схема, демонстрирующая пример видеокодера.

[0016] Фиг. 4A - принципиальная схема информации сигнализации для режима слияния.

[0017] Фиг. 4B - принципиальная схема информации сигнализации для режима AMVP.

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

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

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

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

[0022] Фиг. 8 - блок-схема, демонстрирующая пример видеодекодер.

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

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

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

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

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

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

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

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

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

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

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

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

[0034] Устройства цифрового видео реализуют методы сжатия видео для более эффективного кодирования и декодирования информации цифрового видео. Сжатие видео может применять методы пространственного (внутрикадрового) предсказания и/или временного (межкадрового) предсказания для снижения или устранения избыточности, присущей видеопоследовательностям.

[0035] Для видеокодирования согласно стандарту высокоэффективного видеокодирования (HEVC), в настоящее время разрабатываемому организацией Joint Cooperative Team for Video Coding (JCT-VC), кадр видео можно разбивать на единицы кодирования. Единица кодирования (CU), в общем случае, означает участок изображения, который выступает в качестве основной единицы, к которым применяются различные инструменты кодирования для сжатия видео. CU обычно имеет компоненту яркости, обозначенную Y, и две компоненты цветности, обозначенные U и V. В зависимости от формата дискретизации видео, размер компонент U и V, в отношении количества выборок, может совпадать или отличаться от размера компоненты Y. CU обычно является квадратной и может рассматриваться по аналогии с так называемым макроблоком, например, согласно другим стандартам видеокодирования, например ITU-T H.264.

[0036] Для достижения повышенной эффективности кодирования, единица кодирования может иметь переменные размеры в зависимости от видеоконтента. Кроме того, единицу кодирования можно разбивать на блоки меньшего размера для предсказания или преобразования. В частности, каждую единицу кодирования можно дополнительно разбивать на единицы предсказания (PU) и единицы преобразования (TU). Единицы предсказания можно рассматривать по аналогии с так называемыми разделами согласно другим стандартам видеокодирования, например H.264. Единицы преобразования (TU) означают блоки остаточных данных, к которым применяется преобразование для генерации коэффициентов преобразования.

[0037] Кодирование согласно некоторым из предложенных в настоящее время аспектов разрабатываемого стандарта HEVC будет описано в данной заявке в целях иллюстрации. Однако методы, описанные в этом раскрытии, могут быть полезны для других процессов видеокодирования, например, заданных согласно H.264 или другому стандарту, или собственных процессов видеокодирования.

[0038] Работы по стандартизации HEVC основаны на модели устройства видеокодирования, именуемой HEVC Test Model (HM). HM предусматривает несколько возможностей устройств видеокодирования по сравнению с устройствами согласно, например, ITU-T H.264/AVC. Например, в то время как H.264 обеспечивает девять режимов кодирования с интра-предсказанием, HM обеспечивает целых тридцать четыре режима кодирования с интра-предсказанием.

[0039] Согласно HM, CU может включать в себя одну или более единиц предсказания (PU) и/или одну или более единиц преобразования (TU). Данные синтаксиса в битовом потоке могут задавать наибольшую единицу кодирования (LCU), которая является наибольшей CU в отношении количества пикселей. В общем случае, CU имеет функцию, аналогичную макроблоку в H.264, за исключением того, что CU не имеет различия в размере. Таким образом, CU можно разбивать на под-CU. В общем случае, ссылки в этом раскрытии на CU могут указывать на наибольшую единицу кодирования изображения или под-CU из LCU. LCU можно разбивать на под-CU, и каждую под-CU можно дополнительно разбивать на под-CU. Данные синтаксиса для битового потока могут задавать, сколько максимально раз можно разбивать LCU, что называется глубиной CU. Соответственно, битовый поток также может задавать наименьшую единицу кодирования (SCU). Это раскрытие также использует термин “блок” или “участок” для обозначения любой из CU, PU или TU. В общем случае, “участок” может указывать на любой поднабор кадра видео.

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

[0041] Кроме того, TU краевых CU также могут быть связаны с соответствующими структурами данных квадродерева. Таким образом, краевая CU может включать в себя квадродерево, указывающее, как краевая CU делится на TU. Это раскрытие относится к квадродереву, указывающему, как LCU делится как квадродерево CU, и квадродерево, указывающее, как краевая CU делится на TU как квадродерево TU. Корневой узел квадродерева TU, в общем случае, соответствует краевой CU, а корневой узел квадродерева CU, в общем случае, соответствует LCU. TU квадродерева TU, которые не делятся, именуются краевыми TU.

[0042] Краевая CU может включать в себя одну или более единиц предсказания (PU). В общем случае, PU представляет всю соответствующую CU или ее участок и может включать в себя данные для извлечения опорной выборки для PU. Например, когда PU кодируется в режиме интер-предсказания, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешение для вектора движения (например, с точностью в четверть пикселя или с точностью в одну восьмую пикселя), опорный кадр, на который указывает вектор движения, и/или опорный список (например, список 0 или список 1) для вектора движения. Данные для краевой CU, задающие PU, также могут описывать, например, разбиение CU на одну или более PU. Режимы разбиения могут различаться в зависимости от того, кодируется ли CU без предсказания, в режиме интра-предсказания или в режиме интер-предсказания. Для интра-кодирования PU можно обрабатывать так же, как краевую единицу преобразования, описанную ниже.

[0043] Для кодирования блока (например, единицы предсказания (PU) видеоданных) сначала выводится предсказатель для блока. Предсказатель можно вывести либо посредством интра- (I) предсказания (т.е. пространственного предсказания), либо интер- (P или B) предсказания (т.е. временного предсказания). Поэтому некоторые единицы предсказания могут быть интра-кодированы (I) с использованием пространственного предсказания по отношению к соседним опорным блокам в одном и том же кадре, а другие единицы предсказания могут быть интер-кодированы (P или B) по отношению к опорным блокам в других кадрах.

[0044] После идентификации предсказателя вычисляется разность между блоком исходных видеоданных и его предсказателем. Эта разность также называется остатком предсказания и представляет различия в пиксельных значениях между пикселями блока, подлежащего кодированию, и соответствующими пикселями опорного блока, т.е. предсказателем. Для достижения лучшего сжатия остаток предсказания (т.е. массив разностных значений пикселей), в общем случае, преобразуется, например, с использованием дискретного косинусного преобразования (DCT), целочисленного преобразования, преобразования Карунена-Лева (K-L) или другого преобразования.

[0045] Кодирование PU с использованием интер-предсказания предусматривает вычисление вектора движения между текущим блоком и блоком в опорном кадре. Векторы движения вычисляются посредством процесса, именуемого оцениванием движения (или поиском движения). Вектор движения, например, может указывать перемещение единицы предсказания в текущем кадре относительно опорной выборки опорного кадра. Опорной выборкой может быть блок, в отношении которого установлено, что он хорошо согласуется с участком CU, включающим в себя PU, кодируемую по пиксельной разности, которую можно определить через сумму абсолютных значений разности (SAD), сумму квадратов разностей (SSD) или другие разностные метрики. Опорная выборка может возникать где угодно в опорном кадре или опорном срезе. В некоторых примерах, опорная выборка может возникать в дробной позиции пикселя. Найдя участок опорного кадра, наилучшим образом, согласующийся с текущим участком, кодер определяет текущий вектор движения для текущего участка как разность в местоположении от текущего участка до совпадающего участка в опорном кадре (т.е. от центра текущего участка до центра совпадающего участка).

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

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

[0048] В современном рабочем проекте стандарта HEVC предложены два разных режима или типа предсказания вектора движения. Один режим именуется режимом “слияния”. Другой режим именуется адаптивным предсказанием вектора движения (AMVP). В режиме слияния кодер предписывает декодеру, посредством сигнализации битового потока синтаксиса предсказания, копировать вектор движения, опорный индекс (идентифицирующий опорный кадр, в данном списке опорного изображения, на который указывает вектор движения) и направление предсказания движения (которое идентифицирует список опорного изображения (список 0 или список 1), т.е. предшествует ли во времени опорный кадр текущему кадру или следует за ним) из выбранного вектора движения-кандидата для текущего участка кадра. Это осуществляется посредством сигнализации в битовом потоке индекса в список векторов движения-кандидатов, идентифицирующий выбранный вектор движения-кандидат (т.е. конкретный кандидат пространственного MVP или кандидат временного MVP). Таким образом, для режима слияния, синтаксис предсказания может включать в себя флаг, идентифицирующий режим (в данном случае режим “слияния”), и индекс, идентифицирующий выбранный вектор движения-кандидат. В ряде случаев, вектор движения-кандидат будет находиться в причинном участке в отношении текущего участка. Таким образом, вектор движения-кандидат будет уже декодирован декодером. В этом случае, декодер уже принял и/или определил вектор движения, опорный индекс и направление предсказания движения для причинного участка. Таким образом, декодер может просто извлекать вектор движения, опорный индекс и направление предсказания движения, связанные с причинным участком, из памяти и копировать эти значения как информацию движения для текущего участка. Для реконструкции блока в режиме слияния, декодер получает блок предсказания с использованием выведенной информации движения для текущего участка и добавляет остаточные данные в блок предсказания для реконструкции кодированного блока.

[0049] В AMVP, кодер предписывает декодеру, посредством сигнализации битового потока, копировать только вектор движения из участка-кандидата и использовать скопированный вектор как предсказатель для вектора движения текущего участка, и сигнализирует разность векторов движения (MVD). Опорный кадр и направление предсказания, связанные с вектором движения текущего участка, сигнализируются по отдельности. MVD является разностью между текущим вектором движения для текущего участка и предсказателем вектора движения, выведенным из участка-кандидата. В этом случае, кодер, с использованием оценивания движения, определяет фактический вектор движения для блока, подлежащего кодированию, и затем определяет разность между фактическим вектором движения и предсказателем вектора движения как значение MVD. Таким образом, декодер не использует точную копию вектора движения-кандидата в качестве текущего вектора движения, как в режиме слияния, но может вместо этого использовать вектор движения-кандидат, который может быть “близок” по значению к текущему вектору движения, определенному из оценивания движения, и добавлять MVD для воспроизведения текущего вектора движения. Для реконструкции блока в режиме AMVP, декодер добавляет соответствующие остаточные данные для реконструкции кодированного блока.

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

[0051] После осуществления оценивания движения для определения вектора движения для текущего участка, кодер сравнивает совпадающий участок в опорном кадре с текущим участком. Это сравнение обычно предусматривает вычитание участка (который обычно именуется “опорной выборкой”) в опорном кадре из текущего участка и позволяет получить так называемые остаточные данные, упомянутые выше. Остаточные данные указывают разностные значения пикселей между текущим участком и опорной выборкой. Затем кодер преобразует эти остаточные данные из пространственной области в область преобразования, например частотную область. Обычно кодер применяет дискретное косинусное преобразование (DCT) к остаточным данным для осуществления этого преобразования. Кодер осуществляет это преобразование для облегчения сжатия остаточных данных, поскольку результирующие коэффициенты преобразования представляют разные частоты, причем большая часть энергии обычно концентрируется на нескольких низкочастотных коэффициентах.

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

[0053] После осуществления энтропийного кодирования без потерь кодер генерирует битовый поток, который включает в себя кодированные видеоданные. Этот битовый поток, в некоторых случаях, также включает в себя ряд элементов синтаксиса предсказания, которые указывают, осуществлялось ли, например, предсказание вектора движения, режим вектора движения и индекс предсказателя вектора движения (MVP) (т.е. индекс участка-кандидата с выбранным вектором движения). Индекс MVP также может именоваться своим именем переменной элемента синтаксиса “mvp_idx”.

[0054] В современной версии, которую предлагает принять ITU-T/ISO/IEC Joint Collaborative Team при видеокодировании (JCT-VC), именуемой высокоэффективным видеокодированием (HEVC), кодер осуществляет ряд режимов предсказания вектора движения для предсказания вектора движения для текущего участка, включающих в себя 1) AMVP и 2) режим слияния, описанные выше. Эти два режима аналогичны, хотя AMVP обеспечивает повышенную гибкость в отношении способности задавать MVD, направления предсказания движения и опорные индексы, тогда как режим слияния всего лишь копирует эту информацию вектора движения (т.е. вектор движения, направление предсказания движения и опорный индекс) и не позволяет повысить точность MVD.

[0055] На фиг. 1A показан набор блоков-кандидатов 100 (или участков/блоков PU), предложенный в настоящее время в стандарте HEVC для использования в режиме AMVP, тогда как на фиг. 1B показан набор блоков-кандидатов 110, предложенный в настоящее время в стандарте HEVC для использования в режиме слияния. Режим AMVP использует шесть блоков-кандидатов: нижний левый (BL) блок 101, левый (L) блок 102, правый верхний (RA) блок 103, верхний (A) блок 104, левый верхний (LA) блок 105 и временной блок (T) 106. Заметим, что, помимо набора блоков-кандидатов, режим AMVP также указывает порядок проверки блоков-кандидатов. В примере, показанном на фиг. 1A, шаблон проверки выполняется следующим образом: BL-L-RA-A-LA-T. Как показано на фиг. 1B, режим слияния использует пять блоков-кандидатов: нижний левый (BL) блок 111, левый (L) блок 112, правый верхний (RA) блок 113, верхний (A) блок 114 и временной (T) блок 115. Векторы движения, связанные с этими блоками-кандидатами, используются для определения предсказателя вектора движения в режиме слияния и в режиме AMVP. Режим слияния может использовать шаблон проверки, аналогичный AMVP, или может использовать другой шаблон проверки.

[0056] Как рассмотрено выше, режим AMVP использует шесть блоков-кандидатов, тогда как режим слияния использует пять блоков-кандидатов. Также, отличные от правого верхнего (RA), нижнего левого (BL) и временного (T) блоков, блоки-кандидаты для режима AMVP и режима слияния находятся в разных положениях. Таким образом, большое количество блоков-кандидатов нужно сохранять и учитывать в ходе обоих процессов кодирования и декодирования. Также, шаблон проверки для AMVP может не быть оптимальным, поскольку нижний левый блок может не быть доступен во всех обстоятельствах. Такие обстоятельства включают в себя случай, когда нижний левый блок еще не кодирован (например, располагается поперек среза или границы CU), или когда данные для нижнего левого блока повреждены.

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

[0058] На фиг. 2 показана блок-схема, демонстрирующая пример системы 10 видеокодирования и декодирования, которая может быть выполнена с возможностью использования методов предсказания вектора движения в соответствии с примерами этого раскрытия. Как показано на фиг. 2, система 10 включает в себя устройство-источник 12, которое передает кодированное видео на устройство 14 назначения через канал 16 связи. Кодированные видеоданные также могут сохраняться на носителе 34 данных или файловом сервере 36, и, при желании, устройство 14 назначения может к ним обращаться. При сохранении на носителе данных или файловом сервере, видеокодер 20 может выдавать кодированные видеоданные на другое устройство, например сетевой интерфейс, устройство записи компакт-диска (CD), Blu-ray, или цифрового видеодиска (DVD) или устройство штамповочной установки, или другие устройства, для сохранения кодированных видеоданных на носителе данных. Аналогично, устройство, отдельное от видеодекодера 30, например, сетевой интерфейс, устройство чтения CD или DVD и т.п. может извлекать кодированные видеоданные с носителя данных и подавать извлеченные данные на видеодекодер 30.

[0059] Устройство-источник 12 и устройство 14 назначения могут содержать любое из разнообразных устройств, включая настольные компьютеры, ноутбуки (т.е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, например, так называемые смартфоны, телевизоры, камеры, устройства отображения, цифровые медиапроигрыватели, консоли для видеоигр и т.п. Во многих случаях, такие устройства могут быть оборудованы средством беспроводной связи. Поэтому канал 16 связи может содержать беспроводной канал, проводной канал, или комбинацию беспроводного и проводного каналов, пригодных для передачи кодированных видеоданных. Аналогично, устройство 14 назначения может обращаться к файловому серверу 36 посредством любого стандартного соединения для передачи данных, включая интернет-соединение. Это может быть беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.) или их комбинация, пригодные для доступа к кодированным видеоданным, хранящимся на файловом сервере.

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

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

[0062] Захваченное, предзахваченное или компьютерно-сгенерированное видео может кодироваться видеокодером 20. Кодированная видеоинформация может модулироваться модемом 22 согласно стандарту связи, например, протоколу беспроводной связи, и передаваться на устройство 14 назначения через передатчик 24. Модем 22 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включающие в себя усилители, фильтры и одну или более антенн.

[0063] Захваченное, предзахваченное или компьютерно-сгенерированное видео, которое кодируется видеокодером 20, также может сохраняться на носителе 34 данных или файловом сервере 36 для дальнейшего потребления. Носитель 34 данных может включать в себя Blu-ray диски, DVD, CD-ROM, флэш-память или любые другие пригодные цифровые носители данных для хранения кодированного видео. Кодированное видео, хранящееся на носителе 34 данных, может затем поступать на устройство 14 назначения для декодирования и воспроизведения.

[0064] Файловый сервер 36 может представлять собой сервер любого типа, способный хранить кодированное видео и передавать это кодированное видео на устройство 14 назначения. Примеры файловых серверов включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, устройства хранения, подключаемые к сети (NAS), локальный дисковод, или устройство любого другого типа, способное хранить кодированные видеоданные и передавать их на устройство назначения. Передача кодированных видеоданных с файлового сервера 36 может осуществляться посредством потока, загрузки или их комбинации. Устройство 14 назначения может обращаться к файловому серверу 36 посредством любого стандартного соединения для передачи данных, включая интернет-соединение. Это может быть беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, Ethernet, USB и т.д.) или их комбинация, пригодный для доступа к кодированным видеоданным, хранящимся на файловом сервере.

[0065] Устройство 14 назначения, в примере, показанном на фиг. 2, включает в себя приемник 26, модем 28, видеодекодер 30, и устройство 32 отображения. Приемник 26 устройства 14 назначения принимает информацию по каналу 16, и модем 28 демодулирует информацию для генерации демодулированного битового потока для видеодекодера 30. Информация, передаваемая по каналу 16, может включать в себя различную синтаксическую информацию, генерируемую видеокодером 20, для использования видеодекодером 30 при декодировании видеоданных. Такой синтаксис также может быть включен с кодированными видеоданными, хранящимися на носителе 34 данных или файловом сервере 36. Каждый из видеокодера 20 и видеодекодера 30 могут формировать часть соответствующего кодера-декодера (кодека), который способен кодировать или декодировать видеоданные.

[0066] Устройство 32 отображения может быть объединено с устройством 14 назначения или быть внешним по отношению к нему. В некоторых примерах, устройство 14 назначения может включать в себя интегрированное устройство отображения и также может быть выполнено с возможностью сопрягаться с внешним устройством отображения. В других примерах, устройством 14 назначения может быть устройство отображения. В общем случае, устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из различных устройств отображения, например, жидкокристаллический дисплей (ЖКД), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или устройство отображения другого типа.

[0067] В примере, показанном на фиг. 2, канал 16 связи может содержать любую среду беспроводной или проводной связи,