Выбор единых кандидатов режима слияния и адаптивного режима предсказания вектора движения
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в снижении сложности реализации процесса предсказания векторов движения. Способ кодирования вектора движения в процессе кодировки видео содержит определение одного из множества режимов для процесса предсказания вектора движения для текущего блока видеоданных, которые должны быть закодированы; и выполнение процесса предсказания вектора движения для текущего блока видеоданных, используя определенный режим и набор блоков-кандидатов, при этом набор блоков-кандидатов является одинаковым для каждого из множества режимов, причем множество режимов включает в себя режим слияния и адаптивный режим предсказания вектора движения, и причем набор блоков-кандидатов включает в себя левый верхний блок-кандидат, верхний блок-кандидат, правый верхний блок-кандидат, левый блок-кандидат, нижний левый блок-кандидат и временной блок-кандидат. 8 н. и 20 з.п. ф-лы, 21 ил.
Реферат
[0001] Эта заявка испрашивает приоритет предварительной заявки на патент США № 61/506,558, поданной 11 июля 2011, предварительной заявки на патент США № 61/499,114, поданной 20 июня 2011 и предварительной заявки на патент США № 61/509,007, поданной 18 июля 2011, все из которых тем самым включены в настоящее описание по ссылке во всей их полноте.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее раскрытие относится к кодированию видео, и более подробно к способам для выбора блоков-кандидатов предсказания вектора движения в процессе предсказания вектора движения.
ОБЛАСТЬ ТЕХНИКИ
[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDAs), портативные или настольные компьютеры, цифровые камеры, цифровые устройства записи, цифровые медиаплееры, видео игровые устройства, пульты видеоигр, сотовые или спутниковые радиотелефоны, устройства организации видео телеконференций и т.п. Цифровые видео устройства реализуют способы сжатия видео, такие как описанные в стандартах, определенных MPEG-2, MPEG-4, ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), стандарта высокоэффективного кодирования видео (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), в настоящее время развиваемому объединенной совместной командой для кодирования видео (JCT-VC), видео кадр может быть разделен на единицы кодирования. Единица кодирования (CU) обычно относится к области изображения, которая служит базовой единицей, к которой различные инструменты кодирования применяются для сжатия видео. CU обычно имеет компоненту яркости, обозначенную как Y, и две компоненты цветности, обозначенные как U и V. В зависимости от формата дискретизации видео размер U и V компонент, в терминах количества выборок, может быть таким же или отличающимся от размера компоненты Y. CU является типично квадратной, и, как можно полагать, подобна так называемому макроблоку, например, в других стандартах кодирования видео, таких как ITU-T H.264.
[0036] Чтобы достигнуть лучше эффективности кодирования, единица кодирования может иметь переменные размеры в зависимости от видео контента. Кроме того, единица кодирования может быть разделена на меньшие блоки для предсказания или преобразования. В частности, каждая единица кодирования может быть далее разделена на единицы предсказания (PUs) и единицы преобразования (TUs). Единицы предсказания могут рассматриваться как аналогичные так называемому разделению в других стандартах кодирования видео, таких как H.264. Единицы преобразования (TUs) относятся к блокам остаточных данных, к которым применено преобразование, чтобы сформировать коэффициенты преобразования.
[0037] Кодирование согласно некоторым из в настоящее время предложенных аспектов развития стандарта HEVC будет описано в этой заявки в целях иллюстрации. Однако, способы, описанные в этом раскрытии, могут быть полезными для других процессов кодирования видео, таких как определенные согласно H.264 или другим стандартным или составляющим собственность процессам кодирования видео.
[0038] Усилия по стандартизации HEVC основаны на модели устройства кодирования видео, называемой Тестовой Моделью HEVC (HM). HM предполагает несколько дополнительных возможностей устройств кодирования видео перед существующими устройствами согласно, например, ITU-T H.264/AVC. Например, тогда как H.264 обеспечивает девять режимов кодирования с внутренним предсказанием, HM обеспечивает целых тридцать четыре режима кодирования с внутренним предсказанием.
[0039] Согласно HM, CU может включать в себя одну или более единиц предсказания (PUs) и/или одну или более единиц преобразования (TUs). Данные синтаксиса в пределах потока битов могут определять наибольшую единицу кодирования (LCU), которая является наибольшей CU в терминах количества пикселей. Обычно, CU имеет аналогичную цель макроблоку H.264, за исключением того, что CU не имеет разности в размерах. Таким образом, CU может быть разделена на суб-CUs. Обычно, ссылки в этом раскрытии на 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), целочисленное преобразование, преобразование Кархунена-Лоэва (Karhunen-Loeve) (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 объединенной совместной командой в отношении кодирования видео (JCT-VC), называемого высокоэффективным кодированием видео (HEVC), кодер выполняет ряд режимов предсказания вектора движения, чтобы предсказать вектор движения для текущей части, включая 1) AM VP и 2) режим слияния, описанный выше. Эти два режима аналогичны, хотя AMVP предусматривает больше гибкости в терминах способности определить MVDs, направления предсказания движения и опорные индексы, в то время как режим слияния просто копирует эту информацию вектора движения (то есть, вектор движения, направление предсказания движения, и опорный индекс) и не учитывает повышенную точность 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 может содержать беспроводный канал, проводной канал или комбинацию беспроводных и проводных каналов, подходящих для передачи закодированных видео данных. Точно так же, к файловому серверу 36 может получить доступ устройство 14 назначения через любое стандартное соединение данных, включая интернет-соединение. Оно может включать в себя беспроводный канал (например, соединение 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 назначения. Файловые серверы в качестве примера включают в себя web-сервер (например, для вебсайта), сервер FTP, устройства сетевых систем хранения (NAS), локальный дисковый накопитель, или любой другой тип устройства, способного к тому, чтобы хранить закодированные видео данные и передавать его на устройство назначения. Передача закодированных видео данных от файлового сервера 36 может быть потоковой передачей, передачей загрузки или комбинацией обеих. К файловому серверу 36 может получить доступ устройство 14 назначения через любое стандартное соединение данных, включая интернет-соединение. Оно может включать в себя беспроводный канал (например, соединение 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] Устрой