Учитывающие параллелизацию кандидаты слияния для кодирования видео

Иллюстрации

Показать все

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

Реферат

[0001] Эта заявка испрашивает приоритет предварительной заявки на патент США № 61/499,112, поданной 20 июня 2011 года, предварительной заявки на патент США № 61/543,043, поданной 4 октября 2011 года, предварительной заявки на патент США № 61/543,059, поданной 4 октября 2011 года, предварительной заявки на патент США № 61/556,761, поданной 7 ноября 2011 года, предварительной заявки на патент США № 61/562,387, поданной 21 ноября 2011 года и предварительной заявки на патент США № 61/562,953, поданной 22 ноября 2011 года, все из которых полностью включены в состав данного документа по ссылке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0027] Имеется новый стандарт кодирования видео, а именно Высокоэффективное Кодирование Видео (HEVC), разрабатываемый Объединенной Командой по Кодированию Видео (JCT-VC) Экспертной Группы по Кодированию Видео ITU-T (VCEG) и Группой Экспертов по Движущемся Изображениям ISO/IEC (MPEG). Недавний проект стандарта HEVC, называемый "HEVC Working Draft 6" или "WD6", описан в документе JCTVC-H1003, Bross et al, "High efficiency video coding (HEVC) text specification draft 6," Объединенная Команда по Кодированию Видео (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 8-ая Встреча: Сан Хосе, Калифорния, США, Февраль, 2012, который с 1 Июня 2012 может быть загружен из http://phenix.int- evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip.

[0028] Для кодирования видео согласно стандарту Высокоэффективного Кодирования Видео (HEVC), разрабатываемому в настоящее время Объединенной Командой по Кодированию Видео (JCT-VC), видеокадр может быть разделен на единицы кодирования. Единица кодирования (CU) в общем относится к области изображения, которая служит в качестве базовой единицы, к которой применяются различные инструменты кодирования для сжатия видео. CU обычно имеет компоненту яркости, которая может быть обозначена как Y, и две компоненты цветности, которые могут быть обозначены как U и V. В зависимости от формата выборки видео размер компонент U и V в показателях количества выборок может быть таким же как размер компоненты Y или отличным от него. CU типично является квадратной и может быть рассмотрена как аналогичная так называемому макроблоку, например, по другим стандартам кодирования видео, таким как ITU-T H.264.

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

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

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

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

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

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

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

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

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

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

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

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

[0041] Подходы этого раскрытия направлены на режим "слияния" предсказания вектора движения. В режиме слияния средство кодирования видео выдает инструкцию декодеру, посредством сигнализации битового потока о синтаксисе предсказания, на копирование вектора движения, опорного индекса (идентифицирующего опорный кадр в данном опорном списке изображений, на который указывает вектор движения) и направления предсказания движения (которое идентифицирует опорный список изображений (список 0 или список 1) т.е. исходя из того, предшествует ли во времени опорный кадр или (он) следует за текущим кадром), из выбранного вектора движения кандидата для текущей части кадра. Это исполняется посредством сигнализации в битовом потоке индекса на набор векторов движения кандидатов, идентифицирующий выбранный вектор движения кандидат (т.е. конкретный пространственный MVP-кандидат или временной MVP кандидат). Набор векторов движения кандидатов может быть получен посредством настроек по умолчанию или выведен из некоторых параметров кодирования. Таким образом, для режима слияния синтаксис предсказания может включать в себя флаг, идентифицирующий режим (в этом случае режим "слияния") и индекс, идентифицирующий выбранный вектор движения кандидат. В некоторых примерах вектор движения кандидат будет находится в причинной PU со ссылкой на текущую PU. Таким образом, вектор движения кандидат уже будет декодирован декодером. Как таковой, декодер уже принял и/или определил вектор движения, опорный индекс и направление предсказания движения для причинной PU. Как таковой, декодер может просто извлечь вектор движения, опорный индекс и направление предсказания движения, связанные с причинной PU из памяти и скопировать эти значения для текущей PU. Для декодирования блока в режиме слияния декодер получает блок-предиктор используя предсказание вектора движения и добавляет остаточные данные к блоку-предиктору для восстановления кодированного блока.

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

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

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

[0045] Фиг. 1 показывает набор 90 векторов движения кандидатов, в настоящее время предложенный в стандарте HEVC для использования в режиме слияния. Режим слияния использует шесть кандидатов слияния из следующих пространственных и временных блоков: блок 91 слева снизу (BL), блок 92 слева (L), блок 93 сверху справа (RA), блок 94 сверху (A), блок 95 сверху слева (LA) и временной блок (T) 96. Векторы движения кандидаты, связанные с этими блоками, используются для определения предиктора вектора движения в режиме слияния.

[0046] Временной блок 96 может находится в совместно размещенном блоке в кадре, отличном от такового текущей PU (например T2) или смежном с совместно размещенным блоком в кадре, отличном от такового текущей PU 108 (например T1). Местоположения пространственных блоков кандидатов (т.е. BL, L, LA, A и RA), изображенных на Фиг. 1, не являются абсолютными позициями, но в свою очередь являются относительными позициями в отношении текущей PU 98 на основе следующих общих определений. Следует отметить, что блокам кандидатам нет необходимости являться ближайшим возможным блоком, который удовлетворяет следующим определениям, а могут быть любой PU, которая удовлетворяет этим определениям. Блок 95 кандидат LA расположен сверху верхней линии, определяющей текущую PU и слева левой линии, определяющей текущую PU. Блок 92 кандидат L расположен слева левой линии, определяющей текущую PU, но также сверху нижней линии, определяющей текущую PU и снизу верхней линии, определяющей текущую PU. Блок 91 кандидат BL расположен снизу нижней линии, определяющей текущую PU и слева левой линии, определяющей текущую PU. Блок 94 кандидат A расположен сверху верхней линии, определяющей текущую PU, но также справа левой линии, определяющей текущую PU и слева правой линии, определяющей текущую PU. Блок 93 кандидат RA расположен справа правой линии, определяющей текущую PU и сверху верхней линии, определяющей текущую PU.

[0047] Кандидаты слияния генерируются для каждой PU. Таким образом, каждая PU имеет свой собственный набор кандидатов слияния. Это включает в себя PU, которые отделены от большей CU. Пример Фиг. 1 предназначается для 2Nx2N-разделенной PU (например квадратной PU). Фиг. 2 показывает дополнительные примеры единиц предсказания с разными типами разделения. Как показано на Фиг. 2, разделение 2Nx2N является разделением квадратной формы. В сущности, это PU из неразделенной CU. Разделение 2NxN выполнено посредством деления квадратной CU на две горизонтально-ориентированные PU, где PU 0 находится сверху от PU 1. Разделение Nx2N выполнено посредством деления квадратной CU на две вертикально-ориентированные PU, где PU 0 находится слева от PU 1. Разделение NxN выполнено посредство деления квадратной CU на четыре PU одного размера. В разделении NxN, PU 0 находится сверху слева CU, PU 1 находится сверху справа CU, PU 2 находится снизу слева CU и PU 3 находится снизу справа CU.

[0048] Фиг. 2 показывает дополнительные типы "неквадратных" разделений. Разделение 2NxnD является типом горизонтально-ориентированного неквадратного разделения, где нижняя PU(PU 1) имеет меньший размер (т.е. четверть размера от размера CU), чем верхняя PU (PU 0). Разделение 2NxnU является типом горизонтально-ориентированного неквадратного разделения, где нижняя PU (PU 1) имеет больший размер (т.е. три четверти от размера CU), чем верхняя PU (PU 0). Разделение nLx2N является типом вертикально-ориентированного неквадратного разделения, где левая PU (PU 0) имеет меньший размер (т.е. четверть размера от размера CU), чем правая PU (PU 1). Разделение nRx2N является типом вертикально-ориентированного неквадратного разделения, где левая PU (PU 0) имеет больший размер (т.е. три четверти от размера CU), чем правая PU (PU 1). Эти примеры разделения иногда называют асимметричное разделение движения (AMP).

[0049] CU разделяются согласно одному из упомянутых типов разделения для обеспечения более точного внешнего предсказания (временного предсказания). Информация движения сигнализируется отдельно для каждого раздела. С более мелким разделом (например, раздел 2NxN является более мелким, чем раздел 2Nx2N) потенциально может быть получено лучшее качество предиктора для каждого раздела. С другой стороны, поскольку информация движения сигнализируется отдельно для каждого раздела, непроизводительные затраты сигнализации CU с более мелким разделом также являются относительно высокими. На практике определение типа разделения для текущей CU часто основывается на оптимизации скорости передачи от искажения. Выбранный тип разделения является компромиссом между точностью предсказания и непроизводительными затратами сигнализации. Предложения настоящего времени для стандарта HEVC реализуют подходы, чтобы избегать использования избыточных кандидатов слияния для PU одной и той же CU. Избыточный кандидат слияния является кандидатом слияния, который имеет ту же самую информацию движения, что и другая PU в той же самой CU. Для конкретного типа разделения каждый из кандидатов слияния для PU 1 (или PU 1, 2 и 3 для разделения NxN) сравниваются с информацией движения PU 0 (или PU 0, 1 и 2 для разделения NxN), чтобы избегать того, что вся CU использует одну и ту же информацию движения. Если каждая PU в CU использует одну и ту же информацию, результат будет дублирующим относительно типа разделения 2Nx2N (т.е. нет разделения). Таким образом преимущество разделения CU для более точного внешнего предсказания будет сведено к нулю.

[0050] Для того чтобы избежать использования избыточных кандидатов слияния, одно предложение для HEVC предлагает сравнивать информацию движения для каждого кандидата слияния в наборе кандидатов слияния с информацией движения других PU той же самой CU. Любой из кандидатов слияния с той же самой информацией движения что и у ранее кодированной PU удаляется из набора кандидатов слияния, чтобы избежать того что, вся CU использует одну и ту же информацию движения.

[0051] Согласно этому подходу, процесс для генерирования набора кандидатов слияния для PU является следующим:

1. Проверяется информация движения для следующего блока кандидата

2. Сравнивается информация движения кандидата с информацией движения для ранее кодированных PU в той же самой CU

3. Если информация движения кандидата для блока кандидата является такой же как информация движения для ранее кодированной PU, осуществляется переход к этапу 1; иначе, осуществляется переход к этапу 4

4. Добавляется блок кандидат в набор кандидатов слияния

5. Если все блоки кандидаты проверены, осуществляется завершение; иначе, осуществляется переход к этапу 1

[0052] В общем, ограничение в отношении кандидатов слияния с этим процессом дает следующие результаты для типов разделения 2NxN, Nx2N и NxN:

1) случаи 2NxN/Nx2N: если кандидат слияния для второй PU (PU 1) имеет такую же информацию движения что и у первой PU (PU 0), этот кандидат слияния будет установлен в качестве не являющегося доступным.

2) случай NxN:

a. PU 0 и PU 1 имеют одну и ту же информацию движения. Если кандидат слияния PU 3 имеет ту же самую информацию движения, что и PU 2, кандидата слияния устанавливают недоступным;

b. PU 0 и PU 2 имеют одну и ту же информацию движения. Если кандидат слияния PU 3 имеет ту же самую информацию движения, что и PU 1, кандидата слияния устанавливают недоступным;

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

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

[0055] Предложенный процесс для каждой PU заключается в следующем:

1. Проверяется следующий блок кандидат

2. Добавляется блок кандидат в набор кандидатов

3. Если все соседние блоки проверены, осуществляется завершение; иначе, осуществляется переход к этапу 1

[0056] Этот процесс обеспечивает унифицированное решение для всех PU без учета индекса единицы предсказания (например, PU 0, PU 1) и без осуществления сравнения информации движения блока кандидата с информацией движения ранее кодированных PU. Этапы сравнения информации движения, проиллюстрированные выше по тексту, могут быть удалены. Хотя описаны итеративно, этапы этого способа могут быть выполнены параллельно. Например, первый подпроцесс параллельного процесса может включать в себя инструкции для выполнения первого варианта этапов 1 и 2, и второй, другой подпроцесс параллельного процесса может включать в себя инструкции для выполнения второго варианта этапов 1 и 2. Также могут быть обеспечены дополнительные подпроцессы.

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

[0058] Фиг. 3A представляет собой концептуальную схему, иллюстрирующую блоки-кандидаты для режима слияния для разделения Nx2N CU. Следует отметить, что подходы, показанные на Фиг. 3A, также применимы для типов асимметричного разделения nLx2N или nRx2N. Набор 100 кандидатов слияния показывает кандидатов слияния для PU 0 из Nx2N-разделенной CU. Поскольку ни один кандидат слияния в наборе 100 кандидатов слияния не находится в другой PU той же самой CU, все кандидаты слияния могут оставаться в на