СПОСОБ И УСТРОЙСТВО ДЛЯ ВИДЕОКОДИРОВАНИЯ C ИСПОЛЬЗОВАНИЕМ УЛУЧШЕННОГО РЕЖИМА СЛИЯНИЯ С РАЗНОСТЬЮ ВЕКТОРОВ ДВИЖЕНИЯ
METHOD AND DEVICE FOR VIDEO CODING USING IMPROVED MODE OF MERGING WITH MOTION VECTOR DIFFERENCE

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящее изобретение испрашивает приоритет предварительной заявки на патент США, 62/768207, поданной 16 ноября 2018 г., предварительной заявки на патент США, 62/772,115, поданной 28 ноября 2018 г., и предварительной заявки на патент США, 62/822869, поданной 23 марта 2019 г.
Предварительные патентные заявки США полностью включены в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение относится к внутреннему или внутреннему / внутреннему предсказанию для видеокодирования с использованием MMVD (слияние с разностью векторов движения). В частности, настоящее изобретение раскрывает различные способы уменьшения сложности MMVD и/или повышения производительности.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБЕРЕТЕНИЯ
[0003] Высокоэффективное кодирование видео (HEVC) - это новый международный стандарт кодирования видео, разработанный Объединенной группой сотрудничества по кодированию видео (JCT-VC).
HEVC основан на гибридной блочной архитектуре кодирования с преобразованием типа DCT с компенсацией движения.
Базовая единица сжатия, называемая единицей кодирования (CU), представляет собой квадратный блок 2N×2N, и каждая CU может быть рекурсивно разделена на четыре меньших CU, пока не будет достигнут предварительно определенный минимальный размер. Каждый CU содержит один или несколько блоков предсказания (PU).
[0004] Чтобы достичь наилучшей эффективности кодирования в архитектуре гибридного кодирования в HEVC, существует два типа режимов предсказания (то есть внутреннее предсказание и межкадровое предсказание) для каждой PU. Для режимов внутреннего предсказания пространственно соседние восстановленные пиксели могут использоваться для генерации направленных предсказаний.
Для режимов межкадрового предсказания восстановленные по времени опорные кадры могут использоваться для генерации предсказаний с компенсацией движения. Существуют различные инструменты кодирования для кодирования информации о движении, включая режимы пропуска, слияния и межкадрового предсказания вектора движения (AMVP).
[0005] Ссылка на текущее изображение
[0006] Оценка / компенсация движения - это хорошо известная ключевая технология гибридного кодирования видео, которая исследует корреляцию пикселей между соседними изображениями.
В видеопоследовательности перемещение объекта между соседними кадрами невелико, и движение объекта можно моделировать двумерным поступательным движением.
Соответственно, шаблоны, соответствующие объектам или фону в кадре, смещаются для образования соответствующих объектов в последующем кадре или коррелируются с другими шаблонами в текущем кадре. При оценке смещения (например, с использованием способов сопоставления блоков) шаблон можно в основном воспроизвести без необходимости перекодировать шаблон. Точно так же были предприняты попытки сопоставления и копирования блоков, чтобы позволить выбрать опорный блок из одного и того же изображения. Было замечено, что применение этой концепции к видео, снятым камерой, оказалось неэффективным. Частично это связано с тем, что текстовый узор в соседней пространственной области может быть аналогичен текущему блоку кодирования, но обычно с некоторыми постепенными изменениями в пространстве. Таким образом, блоку трудно найти точное совпадение в одном и том же изображении видео, снятого камерой. Следовательно, улучшение производительности кодирования ограничено.
[0007] Однако пространственная корреляция между пикселями в одном и том же изображении различна для содержимого экрана. Для типичного видео с текстом и графикой обычно есть повторяющиеся узоры в одном и том же изображении. Следовательно, компенсация блока Intra (изображения) оказалась очень эффективной. Новый режим предсказания, то есть режим внутриблочного копирования (IBC) или называемый ссылкой на текущее изображение (CPR), был введен для кодирования содержимого экрана, чтобы использовать эту характеристику. В режиме CPR единица предсказания (PU) предсказывается из ранее реконструированного блока в пределах того же изображения. Кроме того, вектор смещения (называемый вектором блока или BV) используется, чтобы сигнализировать об относительном смещении от позиции текущего блока к позиции опорного блока. Затем ошибки предсказания кодируются с использованием преобразования, квантования и энтропийного кодирования. Пример компенсации CPR проиллюстрирован на фиг. 1, где область 110 соответствует изображению, фрагменту или области изображения, подлежащей кодированию. Блоки 120 и 130 соответствуют двум кодируемым блокам. В этом примере каждый блок может найти соответствующий блок в предыдущей кодированной области текущего изображения (то есть 122 и 132 соответственно).
Согласно этой методике опорные выборки соответствуют реконструированным выборкам текущего декодированного изображения до операций внутриконтурного фильтра, включая фильтры удаления блочности и выборочного адаптивного смещения (SAO) в HEVC.
[0008] Ранняя версия CPR была раскрыта в документе JCTVC-M0350 (Мадукар Будагави и др., «AHG8: Видеокодирование с использованием внутренней компенсации движения», Объединенная группа сотрудничества по кодированию видео (JCT-VC) ИК 16 WP 3 МСЭ-Т и ISO / IEC JTC 1 / SC 29 / WG 11, 13-е заседание: Инчхон, КР, 18-26 апр. 2013, Документ JCTVC-M0350, который представлен в качестве технологии-кандидата для разработки HEVC Range Extensions (RExt). В JCTVC-M0350 компенсация CPR была ограничена небольшой локальной областью, а поиск ограничен вектором одномерного блока только для размера 2N×2N. Позже во время стандартизации HEVC SCC (кодирование содержимого экрана) был разработан более продвинутый метод CPR.
[0009] Чтобы эффективно сигнализировать вектор блока (BV), BV передается с предсказанием с использованием предсказателя BV (BVP) аналогично кодированию MV.
Соответственно, разность BV (BVD) передается, и BV может быть восстановлен в соответствии с BV = BVP + BVD, как показано на фиг. 2, где опорный блок 220 выбран как предсказание IntraBC для текущего блока 210 (т.е. CU). BVP определяется для текущего CU. Способы получения предиктора вектора движения (MVP) известны в данной области. Аналогичная деривация может применяться к деривации BVP.
[0010] В документе JCTVC-M0350 Intra МС отличается от компенсации движения, используемой для Inter-предсказания, по крайней мере, в следующих областях:
• MV ограничены 1-D для Intra МС (т.е. горизонтальным или вертикальным), в то время как Inter-предсказание использует 2-мерную оценку движения.
• Бинаризация - это фиксированная длина для Intra МС, в то время как для межкадрового предсказания используется экспоненциальная функция Голомба.
• Intra МС представляет новый элемент синтаксиса, чтобы сигнализировать, является ли MV горизонтальным или вертикальным.
[0011] На основе JCTVC-M0350 некоторые модификации раскрыты в документе Pang, et al. in Non-RCE3: Внутренняя компенсация движения с помощью 2D MV, Объединенная группа сотрудничества по кодированию видео (JCT-VC) ИК 16 WP 3 МСЭ-Т и ISO / IEC JTC 1 / SC 29 / WG 11, 14-е собрание: Вена, ВТ, 25 июля - 2 авг.2013, Документ: JCTVC-N0256 (далее JCTVC-N0256).
Во-первых, Intra МС расширяется для поддержки двухмерных MV, так что оба компонента MV могут быть ненулевыми одновременно.
Это обеспечивает большую гибкость Intra МС, чем исходный подход, когда MV ограничивается строго горизонтальным или вертикальным.
[0012] Были протестированы несколько способов кодирования MV:
[0013] Способ 1: левый или верхний MV выбирается в качестве предиктора MV, и результирующий MVD кодируется. Во-первых, один флаг указывает, равен ли MVD нулю. Когда MVD не равно нулю, экспоненциальная функция Голомба 3-го порядка кодирует оставшийся абсолютный уровень MVD, а флаг кодирует его знак.
[0014] Способ 2: Предиктор не используется, и MV кодируется с использованием экспоненциальных кодов Голомба, используемых для кодирования MVD в HEVC.
[0015] Способ 3: MV из последнего закодированного IntraBC PU используется в качестве предиктора для MV текущей IntraBC PU. Обратите внимание, что этот способ принят в текущем проекте текста RExt.
[0016] В-третьих, 2-D Intra МС сочетается с подходом, ориентированным на конвейер, предложенным в JCTVC-N0256:
1. Фильтры интерполяции не используются
2. Область поиска MB ограничена.
Анализируются два случая:
а. Область поиска - это текущая CTU, а левая CTU или
б. Область поиска - это текущая CTU и крайние правые 4 столбца левой CTU.
[0017] Среди предложенных способов в JCTVC-N0256 был принят двумерный внутренний МС, было принято удаление фильтров интерполяции, и было принято ограничение области поиска для текущего CTU и левого CTU.
Остальные аспекты были либо отклонены, либо предложены для дальнейшего изучения.
[0018] Вот краткое изложение предсказания пространственного AMVP, которое предлагается в JCTVC-O0218 (Л. Гуо, М. Карчевич, Дж. Соле и Р. Джоши, «Оценка кодирования режима палитры на НМ-12.0 + RExt-4.1», JCTVC-O0218, Женева, Швейцария, октябрь 2013 г.).
[0019] На фиг. 3 показано количество возможных кандидатов вектора блока (пронумерованных от 0 до 6) в ранее закодированных позициях соседних блоков.
В таблице 1 эти позиции подробно описаны:
[0020] Когда используется CPR, только часть текущего изображения может использоваться в качестве опорного изображения.
Некоторые ограничения соответствия битового потока накладываются для регулирования допустимого значения MV, относящегося к текущему изображению.
[0021] В первых, должно выполняться одно из следующих двух уравнений:
[0022] Во-вторых, должно выполняться следующее условие WPP (параллельная обработка волнового фронта):
[0023] В уравнениях с (1) по (3) (BV_х, BV_у) - вектор блока яркости (то есть вектор движения для CPR) для текущего PU; nPbSw и nPbSh - ширина и высота текущего PU; (xPbS, yPbs) - расположение левого верхнего пикселя текущего PU относительно текущего изображения; (xCbs, yCbs) - расположение левого верхнего пикселя текущего CU относительно текущего изображения; и CtbSizeY - размер CTU. OffsetX и offsetY - это два скорректированных смещения в двух измерениях с учетом интерполяции выборки цветности для режима CPR:
[0024] (BVC_х, BVC_у) - вектор блока цветности с разрешением 1/8 пикселя в HEVC.
[0025] В-третьих, опорный блок для CPR должен находиться в пределах той же границы фрагмента / фрагмента.
[0026] Когда PU кодируется в режиме Inter AMVP, предсказание с компенсацией движения выполняется с переданными разностями векторов движения (MVD), которые могут использоваться вместе с предсказателями вектора движения (MVP) для получения векторов движения (MV).
Чтобы определить MVP в режиме Inter AMVP, используется схема расширенного предсказания вектора движения (AMVP) для выбора предиктора вектора движения из набора кандидатов AMVP, включающего два пространственных MVP и один временный MVP. Таким образом, в режиме AMVP требуется кодировать и передавать индекс MVP для MVP и соответствующие MVD.
Кроме того, направление межкадрового предсказания для указания направлений предсказания среди двойного предсказания и унифицированного предсказания, которые представляют собой список 0 (т.Е. L0) и список 1 (т.Е. L1), вместе с индексом опорного кадра для каждого списка также должно быть закодированы и переданы.
[0027] В HEVC, помимо пространственного предсказания AMVP, временной прогнозирующий MV также используется для компенсации движения между фрагментами.
Как показано на фиг. 4, временный предсказатель извлекается из блока (TBR или TCTR), расположенного в совмещенном изображении, где совмещенное изображение является первым эталонным изображением в контрольном списке 0 или контрольном списке 1.
Поскольку блок, в котором расположен временной MVP, может иметь два MV, один MV из справочного списка 0 и один MV из справочного списка 1, временный MVP выводится из MV из справочного списка 0 или справочного списка 1 в соответствии со следующим правилом:
1. Сначала выбирается MV, который пересекает текущее изображение.
2. Если оба MV пересекают текущее изображение или оба не пересекаются, будет выбран тот, у которого тот же список ссылок, что и в текущем списке.
[0028] Техника слияния с режимом МВД (MMVD)
[0029] В документе JVET-K0115 (С. Джеонг и др., «Конечное выражение вектора движения СЕ4 в J0024 (Тест 4.2.9)», в Объединенной группе исследования видео (JVET) ИК 16 WP 3 МСЭ-Т и JTC ISO / IEC 1 / SC 29 / WG 11, 11-е заседание: Любляна, SI, 10-18 июля 2018 г., документ: JVET-K0115), выражение конечного вектора движения
(UMVE), предложенное в JVET-J0024 (S. Akula, et. all., «Описание предложения технологии кодирования видео SDR, HDR и 360° с учетом сценария мобильного приложения от Samsung, Huawei, GoPro и HiSilicon», в Совместной группе исследования видео (JVET) ИК 16 WP 3 МСЭ-Т и ISO / IEC JTC 1 / SO 29 / WG 11, 10-е заседание: Сан-Диего, США, 10-20 апреля. 2018, Документ: JVET-J0024).
Фиг. 5А иллюстрирует пример процесса поиска UMVE для текущего блока 512 в текущем кадре 510. Кадр 520 в списке ссылок L0 и кадр 530 в списке ссылок L1 соответствуют двум ссылкам для двунаправленного предсказания. Линия 540 соответствует линии, проходящей через центр текущего блока 512, и двум соответствующим пикселям в кадрах 520 и 530.
Поиск выполняется вокруг центральных точек, связанных с линией 540 (например, с линиями 542 и 544). Чтобы упростить процесс поиска, поиск будет выполняться только в определенных местах вокруг центральной точки по вертикали и горизонтали, как показано на фиг. 5В для ссылки L0 (550) и ссылки L1 (552).
UMVE используется для режимов пропуска или слияния с предложенным способом выражения вектора движения.
UMVE повторно использует того же кандидата на слияние, что и разрабатываемый стандарт WC (универсальное кодирование видео). Среди кандидатов на слияние можно выбрать кандидата, который дополнительно расширяется с помощью предлагаемого способа выражения вектора движения. UMVE предоставляет новое выражение вектора движения с упрощенной сигнализацией. Способ выражения включает в себя информацию о направлении предсказания, начальную точку, величину движения и направление движения.
[0030] Этот способ использует список кандидатов на слияние как есть. Однако только кандидаты с типом слияния по умолчанию (MRG_TYPE_DEFAULT_N) рассматриваются для расширения UMVE. Информация о направлении предсказания указывает направление предсказания среди предсказаний L0, L1 и L0 и L1. В В-срезе предложенный способ может генерировать кандидатов с двойным предсказанием из кандидатов слияния с единым предсказанием, используя технику зеркального отображения. Например, если кандидат на слияние представляет собой единое предсказание с L1, опорный индекс L0 определяется путем поиска опорного изображения в списке 0, которое зеркально отражается с опорным изображением для списка 1. Если соответствующего изображения нет, используется ближайшее опорное изображение к текущему изображению. MV L0 получается путем масштабирования MV L1. Коэффициент масштабирования рассчитывается по расстоянию РОС (порядковый номер изображения).
[0031] Если направление предсказания кандидата UMVE такое же, как направление предсказания исходного кандидата на слияние, индекс со значением 0 передается как направление предсказания UMVE.
Однако, если направление предсказания кандидата UMVE не совпадает с направлением исходного кандидата на слияние, передается индекс со значением 1. После сигнализации первого бита сообщается оставшееся направление предсказания на основе предварительно определенного порядка приоритета направления предсказания UMVE. Порядок приоритета - это предсказание L0 / L1, предсказание L0 и предсказание L1. Если направление предсказания кандидата на слияние - L1, код «0» передается для направления предсказания L1 UMVE». Код «10» сообщается для направления L0 и L1 предсказания UMVE». Код «11» сообщается для направления L0 предсказания UMVE». Если списки предсказания L0 и L1 одинаковы, информация о направлении предсказания UMVE не передается.
[0032] Базовый индекс кандидата определяет отправную точку.
Базовый индекс кандидата указывает на лучшего кандидата среди кандидатов в списке, как показано в таблице 2.
[0033] Индексы расстояний для различных расстояний приведены в таблице 3.
[0034] Индекс направления представляет направление МВД относительно начальной точки.
Указатель направления может представлять четыре направления, как показано в таблице 4.
[0035] Чтобы уменьшить сложность кодировщика, применяется ограничение по количеству блоков. Если ширина или высота CU меньше 4, UMVE не выполняется.
[0036] Техника предсказания нескольких гипотез (МН)
[0037] Предлагается предсказание с несколькими гипотезами для улучшения существующих режимов предсказания в Inter-изображениях, включая единое - предсказание в режиме расширенного предсказания вектора движения (AMVP), режим пропуска и слияния и режим Intra. Общая концепция состоит в том, чтобы объединить существующий режим предсказания с дополнительным предсказанием, индексированным слиянием. Предсказание с индексом слияния выполняется так же, как в режиме слияния, где индекс слияния сигнализируется для получения информации о движении для предсказания с компенсацией движения. Окончательный прогноз - это средневзвешенное значение предсказания, индексированного слиянием, и прогноза, созданного в существующем режиме предсказания, в котором применяются разные веса в зависимости от комбинаций. Подробную информацию можно найти в документе JVET-K1030 (С. Hsu и др., «Описание основного эксперимента 10: Комбинированное предсказание с несколькими гипотезами», в Совместной группе исследования видео (JVET) ИК 16, WP 3 и ISO / IEC JTC 1 / SC 29 / WG 11, 11-е совещание: Любляна, SI, 10-18 июля 2018 г., документ: JVET-K01030) или JVET-L0100 (М. Чианг и др., «СЕ10. 1.1: Предсказание с несколькими гипотезами для улучшения режима AMVP, режима пропуска или слияния и внутреннего режима », в Совместной группе исследования видео (JVET) ИК 16 МСЭ-Т WP 3 и ISO / IEC JTC 1 / SC 29 / WG 11, 12-е совещание: Макао, Китай, 3-12 окт. 2018, Документ: JVET-L0100).
[0038] Способ режима треугольной единицы предсказания
[0039] Концепция режима блока треугольного предсказания заключается во введении треугольного раздела для предсказания с компенсацией движения.
Как показано на фиг. 6, он разделяет CU на два треугольных блока предсказания либо в диагональном 610, либо в обратном диагональном направлении 620.
Каждая единица треугольного предсказания в CU подвергается взаимному предсказанию с использованием своего собственного вектора движения с единым предсказанием и индекса опорного кадра, которые выводятся из списка кандидатов с единым предсказанием. Процесс адаптивного взвешивания выполняется для диагонального края после предсказания треугольных единиц предсказания. Затем процесс преобразования и квантования применяется ко всему CU. Следует отметить, что этот режим применяется только к режимам пропуска и объединения.
[0040] Список кандидатов на универсальное предсказание
[0041] Список кандидатов на единичное предсказание состоит из пяти кандидатов на векторы движения с единым предсказанием.
Он получен из семи соседних блоков, включая пять пространственных соседних блоков (с 1 по 5) и два временных блока (с 6 по 7), как показано на фиг. 7.
Векторы движения семи соседних блоков собираются и помещаются в список кандидатов с единым предсказанием в соответствии с порядком векторов движения с единым предсказанием, вектором движения L0 векторов движения с двойным предсказанием, вектором движения L1 векторов движения с двойным предсказанием, и усредненный вектор движения векторов движения L0 и L1 векторов движения с двойным предсказанием. Если количество кандидатов меньше пяти, в список добавляется нулевой вектор движения.
[0042] Адаптивный процесс взвешивания
[0043] После предсказания каждой треугольной единицы предсказания процесс адаптивного взвешивания применяется к диагональному краю между двумя треугольными единицами предсказания, чтобы получить окончательное предсказание для всей CU. Ниже перечислены две группы весовых коэффициентов:
• 1-я группа весовых коэффициентов: {7/8, 6/8, 4/8, 2/8, 1/8} и {7/8, 4/8, 1/8} используется для выборок яркости и цветности, соответственно;
• 2-я группа весовых коэффициентов: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} и {6/8, 4/8, 2/8} являются используется для выборок яркости и цветности соответственно.
[0044] Одна группа весовых коэффициентов выбирается на основе сравнения векторов движения двух треугольных блоков предсказания.
Группа 2-го весового коэффициента используется, когда опорные изображения двух блоков треугольного предсказания отличаются друг от друга или разность их векторов движения превышает 16 пикселей.
В противном случае используется первая группа весовых коэффициентов.
Пример показан на фиг. 8, где взвешивание 810 показано для блока яркости, а взвешивание 820 показано для блока цветности.
[0045] Хранение векторов движения
[0046] Векторы движения (Mv1 и Mv2 на фиг. 9) треугольных блоков предсказания сохраняются в сетках 4x4 для диагонального раздела 910 и обратного диагонального раздела 920.
Для каждой сетки 4×4 сохраняется вектор движения либо с однократным, либо с двунаправленным предсказанием в зависимости от положения сетки 4×4 в CU. Как показано на фиг. 9, вектор движения с единым предсказанием, Mv1 или Mv2, сохраняется для сетки 4×4, расположенной в не взвешенной области.
С другой стороны, вектор движения с двойным предсказанием сохраняется для сетки 4×4 г расположенной во взвешенной области.
Вектор движения с двойным предсказанием выводится из Mv1 и Mv2 в соответствии со следующими правилами:
1. В случае, когда Mv1 и Mv2 имеют вектор движения с разных направлений (L0 или LI), Mv1 и Mv2 просто объединяются для формирования вектора движения с двойным предсказанием.
2. В случае, если и Mv1, и Mv2 исходят из одного направления L0 (или L1),
а. Если опорное изображение Mv2 такое же, как изображение в списке опорных изображений L1 (или L0), Mv2 масштабируется до изображения.
Mv1 и масштабированный Mv2 объединяются для формирования вектора движения с двойным предсказанием.
б. Если опорное изображение Mv1 совпадает с изображением в списке опорных изображений L1 (или L0), Mv1 масштабируется до изображения.
Масштабированные Mv1 и Mv2 объединяются для формирования вектора движения с двойным предсказанием.
с. В противном случае для взвешенной области сохраняется только Mv1.
[0047] Иллюстрация вывода вектора движения с двойным предсказанием показана на фиг. 10А - фиг. 10D согласно документу JVET-L0124 (X. Янг и др., «Описание основного эксперимента 4 (СЕ4): межкадровое предсказание и кодирование вектора движения», в Совместной группе исследования видео (JVET) ИК 16, WP 3 и ISO / IEC JTC 1 / SC 29 / WG 11, 12-е заседание: Макао, Китай, 3-12 окт. 2018, Документ: JVET-L1024).
На фиг. 10А - фиг. 10D текущее изображение соответствует РОС 4, список 0 (L0) опорных изображений содержит РОС 0 и РОС 8, а список 1 (L1) опорных изображений содержит РОС 8 и РОС 16.
На фиг. 10A MV двойного предсказания соответствует ((L0 refldx = 0, Mv1), (L1 refldx = 0, Mv2)). На фиг. 10В MV двойного предсказания соответствует ((L0 refldx = 0, Mv1), (L1 refldx = 0, Mv2)). На фиг. 10C MV двойного предсказания соответствует ((L0 refldx = 1, Mv1), (L1 refIdx = 1, Mv2)). На фиг. 10D для взвешенной области сохраняется только Mv1.
[0048] Синтаксис
[004 9] Режим треугольной единицы предсказания применяется только к CU в режиме пропуска или слияния.
Кроме того, размер блока CU не может быть меньше 8×8.
Для CU, закодированного в режиме пропуска или слияния, сигнализируется флаг уровня CU, чтобы указать, применяется ли режим треугольной единицы предсказания или нет для текущей CU. Когда режим треугольных единиц предсказания применяется к CU, передается индекс, указывающий направление для разделения CU на две треугольные единицы предсказания, и векторы движения двух треугольных единиц предсказания. Индекс колеблется от 0 до 39. Справочная таблица используется для получения направления разделения и векторов движения из индекса.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ.
[0050] Раскрыты способ и устройство предсказания для видеокодирования. Согласно этому способу входные данные, относящиеся к текущему блоку в текущем изображении, принимаются на стороне видеокодера, или поток видеобитов, соответствующий сжатым данным, включая текущий блок в текущем изображении, принимается на стороне видеодекодера.
Набор кандидатов на слияние, содержащий кандидата MMVD (режим слияния с разностью векторов движения (MVD)), генерируется, где кандидат MMVD получается путем определения базового кандидата и изменения одной или нескольких частей выражения MV (вектора движения) базового кандидат на создание кандидата MMVD. Когда текущий блок имеет размер блока, принадлежащий, по меньшей мере, одному размеру блока по умолчанию, то, является ли целевой кандидат в наборе кандидатов на слияние двунаправленным предсказанием, определяется после создания набора кандидатов на слияние. По меньшей мере, один размер блока по умолчанию может составлять 4×4. Если целевой кандидат является двунаправленным предсказанием: целевой кандидат заменяется кандидатом с однократным предсказанием; кандидат с единым предсказанием включается в набор кандидатов на слияние для создания модифицированного набора кандидатов на слияние; и текущая информация о движении, связанная с текущим блоком, кодируется с использованием модифицированного набора кандидатов на слияние на стороне видеокодера, или текущая информация о движении, связанная с текущим блоком, декодируется на стороне видеодекодера с использованием модифицированного набора кандидатов на слияние.
[0051] Набор кандидатов на слияние дополнительно включает нормального кандидата на слияние или среднего попарного кандидата на слияние. В некоторых других вариантах осуществления набор кандидатов на слияние может дополнительно содержать кандидата на слияние на основе истории.
[0052] В одном варианте осуществления базовый кандидат выбирается только из первых кандидатов на слияние в наборе кандидатов на слияние с типом слияния по умолчанию. Если ни один из набора кандидатов на слияние не имеет типа слияния по умолчанию, MV по умолчанию включается в измененный набор кандидатов на слияние. В одном варианте осуществления к MV по умолчанию ссылаются из опорного изображения в Списке 0 опорных изображений.
[0053] В одном варианте осуществления одна или несколько частей выражения MV содержат информацию о направлении предсказания, начальную точку, величину движения, направление движения или их комбинацию, связанную с выражением MV.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0054] Фиг. 1 иллюстрирует пример компенсации CPR (привязки к текущему изображению), где два блока предсказываются другими двумя блоками в одном и том же изображении.
[0055] Фиг. 2 иллюстрирует пример передачи сигналов вектора блоков (BV) с предсказанием с использованием предсказателя BV (BVP) аналогично кодированию MV.
[0056] Фиг. 3 иллюстрирует пример возможных кандидатов вектора блока (пронумерованных от 0 до 6) в ранее закодированных позициях соседних блоков.
[0057] На Фиг. 4 показаны пространственные и временные предикторы MV, используемые для компенсации движения между срезами.
[0058] Фиг. 5А иллюстрирует пример процесса поиска UMVE (выражение конечного вектора движения) для текущего блока, где два опорных изображения используются для двунаправленного предсказания.
[0059] На фиг. 5В показан пример упрощенного UMVE, в котором поиск будут выполняться только в определенных местоположениях вокруг центральной точки по вертикали и горизонтали, чтобы упростить процесс поиска.
[0060] На фиг. 6 показан пример режима треугольного разделения, в котором CU разбивается на две треугольные единицы предсказания, в диагональном или обратном диагональном направлении.
[0061] Фиг. 7 иллюстрирует пример списка кандидатов с единым предсказанием, состоящего из пяти кандидатов вектора движения с единым предсказанием из 5 пространственных соседних блоков (с 1 по 5) и двух совместно размещенных во времени блоков (с 6 по 7).
[0062] Фиг. 8 иллюстрирует пример взвешивания для блока яркости и взвешивания для блока цветности.
[0063] Фиг. 9 иллюстрирует пример хранения векторов движения, где векторы движения (Mv1 и Mv2) треугольных блоков предсказания сохраняются в сетках 4×4 для диагонального разделения и обратного диагонального разделения.
[0064] Фиг. 10А - Фиг. 10D иллюстрируют примеры вывода вектора движения с двойным предсказанием согласно JVET-L0124.
[0065] Фиг. 11 иллюстрирует блок-схему примерного предсказания для видеокодирования согласно варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0066] Следующее описание представляет собой наиболее предполагаемый способ осуществления изобретения.
Это описание сделано с целью иллюстрации общих принципов изобретения и не должно восприниматься в ограничительном смысле.
Объем изобретения лучше всего определяется со ссылкой на прилагаемую формулу изобретения.
[0067] Условно сигнализирует о новых инструментах слияния с помощью CPR
[0068] В расширении HEVC SCC, если режим CPR включен для I-слайса, этот I-слайс будет закодирован как промежуточный слайс. Чтобы сделать интеграцию режима CPR и слияния лучше, в этом изобретении предлагается несколько способов.
[0069] В одном варианте осуществления, если используется режим CPR и нет других промежуточных опорных изображений, таких как все опорные изображения, являющиеся текущим изображением, или только одно опорное изображение, которое является текущим изображением, промежуточный режим подблока отключается.
При разработке синтаксиса синтаксис промежуточного режима подблока не сигнализируется.
Например, флаг промежуточного режима подблока выводится как ложный.
В другом варианте осуществления синтаксис промежуточного режима подблока ограничен, чтобы отключить промежуточный режим подблока (например, флаг промежуточного режима подблока должен быть ложным, это требование соответствия битового потока, что флаг режима подблока должен быть ложный).
Ограничение промежуточного подблока применяется в режиме пропуска и режиме слияния.
В другом варианте осуществления, когда промежуточный режим подблока может поддерживаться в CPR (например, если используется режим CPR и нет других промежуточных изображений, или выбранное эталонное изображение является текущим изображением), производный вектор движения каждого подблока также округляется до целых MV.
[0070] В другом варианте осуществления, если используется режим CPR и нет других опорных изображений (например, все опорные изображения являются текущим изображением или есть только одно опорное изображение, которое является текущим изображением), режим предсказания с несколькими гипотезами (МН) выключен.
При разработке синтаксиса синтаксис режима МН не сигнализируется (например, Флаг режима МН считается ложным), или синтаксис режима МН ограничен, чтобы отключить режим МН (например, Флаг режима МН должен быть ложным, это требование соответствия битового потока, что флаг режима МН должен быть ложным).
В другом варианте осуществления МН может использовать кандидатов на слияние с типом слияния IBC (например, MRG TYPE IBC) как один из объединенных предикторов.
[0071] В другом варианте осуществления, если используется режим CPR и нет других опорных изображений (например, все опорные изображения являются текущим изображением или есть только одно опорное изображение, которое является текущим изображением), режим треугольной единицы предсказания отключается.
При разработке синтаксиса синтаксис режима треугольной единицы предсказания не передается (например, флаг режима треугольной единицы предсказания выводится как ложный), или синтаксис режима треугольной единицы предсказания ограничивается, чтобы отключить режим треугольной единицы предсказания (например, флаг режима треугольной единицы предсказания имеет значение ограничено как ложное, требование соответствия битового потока состоит в том, что флаг режима единицы треугольного предсказания должен быть ложным).
В другом варианте осуществления режим треугольной единицы предсказания может быть объединен с режимом CPR.
Например, только одна треугольная единица предсказания может быть закодирована как режим CPR, или обе треугольные единицы предсказания, закодированные как режим CPR, являются действительными.
[0072] В другом варианте осуществления, если используется режим CPR и нет других опорных изображений (например, все опорные изображения являются текущим изображением или есть только одно опорное изображение, которое является текущим изображением), режим слияния с MVD (MMVD) выключен.
При разработке синтаксиса синтаксис режима MMVD не сигнализируется (например, Флаг режима MMVD выводится как false), или синтаксис режима MMVD ограничен, чтобы отключить режим MMVD (например, Флаг режима MMVD должен быть ложным, это требование соответствия битового потока, чтобы флаг режима MMVD был ложным).
[0073] Применение MMVD с CPR
[007 4] MMVD учитывается при кодировании в режиме пропуска или кодировании в режиме слияния в текущем дизайне.
Он будет сигнализироваться только в том случае, если включен флаг слияния или флаг пропуска.
Концепция MMVD заключается в расширении существующих MV для увеличения разнообразия MV в списке кандидатов на слияние. Во-первых, К MV в списке кандидатов на слияние выбираются как расширения MMVD. Значение К - целое число больше нуля. Только кандидаты на объединение с типом объединения по умолчанию (MRG_TYPE_DEFAULT_N) могут быть выбраны в качестве расширения MMVD. Когда CPR и MMVD включены, кандидаты слияния с типом слияния IBC (например, MRG_TYPE_IBC) или тип слияния по умолчанию (MRG_TYPE_DEFAULT_N) используется в качестве действительных расширений MMVD согласно вариантам осуществления настоящего изобретения.
[0075] В одном варианте осуществления, если кандидат на слияние с типом слияния IBC (например, MRG_TYPE_IBC), что означает, что кандидат на слияние кодируется с помощью CPR, окончательный MV (расширение MMVD + MVD) будет округлен до целых MV, даже если MV после процесса MMVD будет одним дробным MV. В другом варианте осуществления после выбора кандидата на слияние в качестве расширения MMVD только целочисленный MVD может использоваться для генерации кандидатов MMVD. Таким образом, не нужно сигнализировать о дробном MVD. Следовательно, для кодирования шагов MV будет использоваться на одно кодовое слово меньше. В другом варианте осуществления, если кандидат на слияние с типом слияния IBC (например, MRG_TYPE_IBC), затем шаги MVD увеличиваются на один коэффициент, чтобы сделать MVD как целочисленные значения. В другом варианте осуществления, если кандидат на слияние с типом слияния IBC (например, MRG_TYPE_IBC), для каждого кандидата выполняется одно условие для проверки законности MV в режиме CPR. В одном примере только законные кандидаты могут быть вставлены в список кандидатов MMVD, и соответствующее кодовое слово изменяется. В другом примере все кандидаты могут быть вставлены в список кандидатов MMVD, но только эти законные кандидаты могут быть выбраны в кодировщике. Законность означает, что ограничения MV в режиме CPR должны быть выполнены. Ограничение MV заключается в том, что опорный блок, на который указывает MV, должен находиться в текущем CTU или в текущей строке CTU, или точки блока, на которые ссылается вектор блока, не могут перекрываться с текущим блоком или за пределами границы изображения, или за пределами параллельного процесса волнового фронта. (WPP).
[0076] Чтобы сделать интеграцию CPR и других инструментов (например, MMVD, режим слияния с парным усреднением и AMVR), лучше, в этом изобретении предлагается несколько способов. Кроме того, мы также рассматриваем кодирование с двойным деревом с интеграцией в этом изобретении.
[0077] СЛР с попарно усредненными кандидатами на слияние
[0078] В одном варианте осуществления, если все исходные кандидаты являются MVP CPR или один - MVP CPR, а другой - нормальным MVP, усредненный кандидат также является действительным кандидатом CPR или действительным нормальным кандидатом.
[007 9] Например, исходные MVP двух кандидатов для списка опорных изображений могут быть как MVP CPR, так и MVP CPR и нормальным MVP, MVP CPR и недопустимым MVP, а также оба недопустимыми MVP. Если оба MVP являются MVP CPR, усредненный MVP также является MVP CPR, и усредненный MV рассчитывается путем усреднения двух MVP CPR; если один MVP является CPR MVP, а другой - нормальным MVP, можно напрямую использовать один из эталонных индексов и MV без вычисления среднего для усредненного MVP, а также ссылочный индекс и MV кандидатов с наименьшим (или наибольшим) Выбирается индекс слияния (или ссылки).
Или один из эталонных индексов кандидатов с наименьшим (или наибольшим) индексом слияния (или эталонным) может быть напрямую выбран, и усредненный MV рассчитывается путем непосредственного усреднения двух MV; если один MVP является MVP CPR, а другой -недопустимым MVP, усредненный MVP также является MVP CPR, а усредненный MV является единственным действительным MVP CPR от двух MVP; если оба MVP являются недопустимыми MVP, усредненные MVP также являются недопустимыми MVP. Для попарно усредненного кандидата на слияние, если один из двух MVP является CPR MVP, тогда усредненный кандидат на слияние рассматривается как кандидат на слияние CPR.
Если попарно усредненный кандидат на слияние является MVP / кандидатом CPR, MV должен быть целочисленным MV. Усредненное MV округляется до целого MV.
[0080] Условно сигнализирует о новых инструментах слияния с помощью CPR
[0081] В одном варианте осуществления, если используется режим CPR и нет других опорных изображений (например, все опорные изображения являются текущим изображением или есть только одно опорное изображение, которое является текущим изображением или это IRAP), подблок режим Inter отключен.
При разработке синтаксиса синтаксис промежуточного режима подблока не сигнализируется (например, флаг промежуточного режима подблока выводится как ложный).
В другом варианте осуществления синтаксис промежуточного режима подблока ограничен, чтобы отключить промежуточный режим подблока (например, флаг промежуточного режима подблока должен быть ложным, это требование соответствия битового потока, что флаг режима подблока должен быть ложный).
Ограничение промежуточного подблока применяется в режиме пропуска и режиме слияния. В другом варианте осуществления, когда промежуточный режим подблока может поддерживаться в CPR (например, если используется режим CPR и нет других промежуточных опорных изображений, или выбранное опорное изображение является текущим изображением или это IRAP), производное вектор движения каждого подблока также округляется до целых MV.
[0082] В другом варианте осуществления, если используется режим CPR и нет других промежуточных опорных изображений (например, все опорные изображения являются текущим изображением или имеется только одно опорное изображение, которое является текущим изображением или это IRAP), мульти- режим предсказания гипотез (МН) отключен.
При разработке синтаксиса синтаксис режима МН не сигнализируется (например, Флаг режима МН считается ложным), или синтаксис режима МН ограничен, чтобы отключить режим МН (например, Флаг режима МН должен быть ложным, это требование соответствия битового потока, что флаг режима МН должен быть ложным). В другом варианте осуществления МН может использовать кандидатов на слияние с типом слияния IBC (например, MRG_TYPE_IBC) как один из объединенных предикторов.
[0083] В другом варианте осуществления, если используется режим CPR и нет других опорных изображений (например, все опорные изображения являются текущим изображением или есть только одно опорное изображение, которое является текущим изображением или это IRAP), треугольное предсказание режим агрегата отключен.
При разработке синтаксиса синтаксис режима треугольной единицы предсказания не передается (например, флаг режима треугольной единицы предсказания выводится как ложный), или синтаксис режима треугольной единицы предсказания ограничивается, чтобы отключить режим треугольной единицы предсказания (например, флаг режима треугольной единицы предсказания имеет значение ограничено как ложное, требование соответствия битового потока состоит в том, что флаг режима единицы треугольного предсказания должен быть ложным). В другом варианте осуществления режим треугольной единицы предсказания может быть объединен с режимом CPR. Например, только одна треугольная единица предсказания может быть закодирована как режим CPR, или обе треугольные единицы предсказания, закодированные как режим CPR, являются действительными.
[0084] В другом варианте осуществления, если используется режим CPR и нет других промежуточных опорных изображений (например, все опорные изображения являются текущим изображением или есть только одно опорное изображение, которое является текущим изображением или это IRAP), объединение с Режим МВД (ММВД) отключен.
При разработке синтаксиса синтаксис режима MMVD не сигнализируется (например, Флаг режима MMVD выводится как false), или синтаксис режима MMVD ограничен, чтобы отключить режим MMVD (например, Флаг режима MMVD должен быть ложным, это требование соответствия битового потока, чтобы флаг режима MMVD был ложным).
[0085] Модифицированный MMVD для ограничения полосы пропускания
[0086] MMVD рассматривается в кодировании в режиме пропуска или кодировании в режиме слияния в настоящем изобретении.
Он будет сигнализироваться только в том случае, если включен флаг слияния или флаг пропуска.
Концепция MMVD заключается в расширении существующих MV для увеличения разнообразия MV в списке кандидатов на слияние. Во-первых, К MV в списке кандидатов на слияние выбираются как расширения MMVD. Значение К - положительное целое число. Согласно вариантам осуществления настоящего изобретения, только кандидаты на слияние с типом слияния по умолчанию (MRG_TYPE_DEFAULT_N) могут быть выбраны в качестве расширения MMVD. Однако, если в списке кандидатов на слияние нет кандидата на слияние с допустимым типом слияния или недостаточно кандидатов на слияние с допустимым типом слияния, MV по умолчанию будет вставлен в список расширения MMVD и MV (например, (0, 0)) с двунаправленным предсказанием, всегда используется как MV по умолчанию. Мы предлагаем рассмотреть направление предсказания текущего CU или тип среза / плитки, чтобы вставить MV по умолчанию. Например, если для текущего CU разрешено двунаправленное предсказание, или текущий срез является В-срезом, или текущим типом тайла является тайл В-типа, MV по умолчанию, указанная либо из Списка 0, либо из Списка 1, Списка 0 и Списка 1 будет вставлен в список расширений MMVD. В другом примере, если двунаправленное предсказание не разрешено для текущего среза (например, текущий срез является Р-срезом или текущий фрагмент является фрагментом Р-типа), MV по умолчанию, упомянутый из списка 0 или списка 1, будет вставлен в MMVD. список расширения.
Например, если текущий слайс является Р-слайсом, MV по умолчанию (например, (0, 0)), указанный из списка 0 (например, с индексом ссылки, равным 0), будет вставлен в список расширения MMVD, если допустимые номера кандидатов меньше чем максимальное количество кандидатов. В качестве другого примера, если текущий CU является блоком 4×4, MV по умолчанию (например, (0, 0)), упомянутый из списка 0, будет вставлен в список расширения MMVD, если количество допустимых кандидатов меньше, чем максимальное количество кандидатов.
[0087] Двойное предсказание для некоторых меньших размеров блока (например, блока 4×4 или любого другого меньшего размера блока) может привести к проблемам, связанным с пропускной способностью памяти в наихудшем случае.
Чтобы уменьшить накладные расходы на полосу пропускания, мы можем преобразовать кандидата на слияние с двойным предсказанием в кандидата слияния с единым предсказанием, по крайней мере, в одном размере блока по умолчанию (например, в некотором меньшем размере блока, таком как блок 4×4) в текущей кодовой базе. В текущем дизайне сначала будет сгенерирован обычный список кандидатов на слияние, а затем будет применена проверка двойного предсказания, если текущий блок является блоком 4×4. В этом состоянии все кандидаты на слияние с двойным предсказанием будут преобразованы в кандидатов слияния с единым предсказанием с опорными кадрами из списка 0. Преобразованные кандидаты слияния с единым предсказанием используются для генерации кандидатов MMVD. Однако, если доступного количества кандидатов недостаточно, нулевые MV двойного предсказания вставляются в качестве основного кандидата MMVD. Это приведет к компенсации движения с двойным предсказанием для блока 4×4. В одном варианте осуществления мы предлагаем применять проверку с двойным предсказанием в каждом блоке 4×4 после того, как сгенерированы все кандидаты на слияние (включая нормального кандидата на слияние, MMVD и кандидата на слияние НМ).
Таким образом, все кандидаты на слияние (например, обычные кандидаты на слияние, MMVD, НМ, кандидаты на слияние на основе истории) будут гарантированно быть кандидатами на слияние с единым предсказанием, если текущий блок является блоком 4×4. В некоторых других вариантах осуществления настоящее изобретение также может применяться к некоторым другим кандидатам на слияние (например, к среднему попарному кандидату слияния или любому другому кандидату на слияние), которые не должны быть ограничены в этом раскрытии.
[0088] СЛР с адаптивным разрешением движения
[0089] Если адаптивное разрешение движения для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 включено и сигнализируется перед индексом опорного изображения, индекс опорного изображения должен быть сигнализирован или проанализирован для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1.
[0090] Если индекс опорного изображения для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 сигнализируется перед целочисленным флагом MV, а опорное изображение для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 равно текущему изображению, целочисленный флаг MV считается истинным.
Следовательно, целочисленный флаг MV не нужно сигнализировать или анализировать для списка 0 или списка 1 или обоих списков 0 и списка 1.
В другом примере, если индекс опорного изображения для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 сигнализируется перед целочисленным флагом MV, опорное изображение для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 равно текущее изображение, а не все MVD равны 0, целочисленный флаг MV считается истинным.
В одном варианте осуществления режим целочисленного MV с 4 пикселями принимается как один из режимов целого числа MV. Сообщается целочисленный индекс MV (imv_idx). Когда imv_idx равен 0, используется дробное MV (например, четверть MV); когда imv_idx равен 1, используется целое число MV; когда imv_idx равно 2, используется MV 4-pel. Если индекс опорного изображения для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 сигнализируется перед целочисленным флагом MV, а опорное изображение для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 равно текущему изображению, imv_idx может быть только больше 0 (например, imv_idx равно 1 или 2). В одном примере один бункер сигнализируется, чтобы указать, должен ли imv_idx быть равным 1 или 2. В другом варианте осуществления, если индекс опорного изображения для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 сигнализируется перед целочисленным флагом MV, опорное изображение для Списка 0 или Списка 1 или обоих Списка 0 и Списка 1 равно текущее изображение, и не все MVD равны 0, imv_idx может быть только больше 0.
[0091] Однако в некоторых вариантах осуществления, если индекс опорного изображения сообщается перед целочисленным флагом MV, опорное изображение равно текущему изображению, a MVD в Списке 0 или Списке 1 или как Списке 0, так и Списке 1 равно нулю, тогда целочисленный флаг MV в Списке 0 или Списке 1 или как Списке 0, так и Списке 1 выводится как ложный (или imv_idx выводится как 0), и целочисленный флаг MV также не нужно сигнализировать или анализировать.
[0092] Другими словами, если целочисленный флаг MV имеет значение false в Списке 0 или Списке 1 или как Списке 0, так и Списке 1, а контрольное изображение в Списке 0 или Списке 1 или обоих Списках 0 и Списке 1 равно текущему изображению, подразумевает, что MVD для целевого опорного изображения равно нулю.
В другом варианте осуществления целочисленный флаг MV выводится как ложный (или imv_idx выводится как 0) только тогда, когда MVD равны нулю в Списке 0, Списке 1 или как Списке 0, так и Списке 1, и выбранное опорное изображение не равно текущее изображение; целочисленный флаг MV выводится как истина (или imv_idx может быть только больше 0), когда выбранное опорное изображение равно текущему изображению, независимо от MVD.
[0093] СЛР также можно включить с двунаправленным предсказанием. В этом случае и List0, и List1 могут иметь текущее изображение в качестве опорного изображения.
В одном варианте осуществления, если индекс опорного изображения передается перед целочисленным флагом MV или целым индексом MV, и обе стороны опорных изображений равны текущему изображению (например, не обязательно, чтобы все MVD были равны нулю), тогда Целочисленный флаг MV выводится как истина, или целочисленный индекс MV должен быть больше 0. В противном случае, если индекс опорного изображения передается перед целочисленным флагом MV или целым индексом MV, и только одна сторона опорного изображения равна текущему изображению (например, не обязательно, чтобы все MVD были равны нулю), тогда целое число Флаг MV необходимо сигнализировать или анализировать. В одном варианте осуществления, если индекс опорного изображения передается перед целочисленным флагом MV или целым индексом MV, и одна сторона опорных изображений, либо из Списка 0, либо из Списка 1, равна текущему изображению (например, MVD не должно быть все равно нулю), тогда целочисленный флаг MV или целочисленный индекс MV выводится как истина, или целочисленный индекс MV должен быть больше 0; MV, на который ссылается опорное изображение, отличное от текущего изображения, будет округлено до целочисленной точности.
В другом варианте осуществления, если индекс опорного изображения сообщается перед целочисленным флагом MV или целым индексом MV, обе стороны опорных изображений не равны текущему изображению, и MVD в Списке 0 или Списке 1 или обоих Списках 0 и Список 1 равен нулю, тогда целочисленный флаг MV в Списке 0 или Списке 1 или обоих Списке 0 и Списке 1 выводится как ложный, или целочисленный индекс MV выводится как 0, и целочисленный флаг MV не нужно сигнализировать или разобраны. В одном варианте осуществления, чтобы гарантировать, что MV с опорным изображением, равным текущему изображению, будет кодироваться с целочисленным разрешением, MVD будет декодироваться с целочисленным разрешением независимо от целочисленного флага MV или когда целочисленный индекс MV равен 0, если опорное изображение равно текущему изображению. В другом варианте осуществления разрешение MVD зависит от целочисленного флага MV (или целочисленного индекса MV) и от того, является ли упомянутое изображение текущим изображением. Если указанное изображение не является текущим изображением, разрешение MVD зависит от целочисленного флага MV (или целочисленного индекса MV).
Если ссылочное изображение является текущим изображением, разрешение MVD - это целочисленное разрешение MV или другое разрешение MV, которое не является дробным разрешением (например, 4-пиксельное разрешение) согласно целочисленному индексу MV. Например, если указанное изображение является текущим изображением, a imv_idx равно 0 или 1, разрешение MVD равно целочисленному разрешению MV. Если imv_idx равно 2, разрешение MVD равно 4-пиксельному целочисленному разрешению MV. В другом варианте осуществления, если опорное изображение равно текущему изображению, его MV не всегда будет сохраняться посредством выборки дробной яркости, для кодирования этого MV будет использоваться соответствующее разрешение (например, целочисленная выборка яркости). В этом случае он будет декодирован как целое число MV, либо с целочисленным разрешением, либо с разрешением 4 пикселя, независимо от флага целого числа MV.
[0094] СЛР с временным МК из сопоставленных изображений
[0095] Согласно вариантам осуществления настоящего изобретения существуют некоторые условия, при которых MV не может быть действительным временным MV для генерации MVP в режиме слияния или в режиме Inter mode.
Кроме того, если CPR включен, текущее изображение будет использоваться в качестве опорного изображения, а текущее изображение обычно помещается в последнюю позицию списка 0.
Опорный ток помечается как долговременное опорное изображение. В одном примере, если текущее изображение относится к изображению, равному самому себе (то есть текущему изображению), MV не может использоваться в качестве совместно размещенного MV для временного кандидата на слияние или создания MVP в режиме Inter mode. В другом примере, если текущее изображение относится к долгосрочному изображению, но совмещенное изображение не ссылается на долгосрочное изображение, MV совмещенного изображения не может использоваться в качестве временного MV для текущего изображения. В другом случае, если текущее изображение ссылается на краткосрочное изображение, но совмещенное изображение ссылается на долгосрочное изображение, MV совмещенного изображения также не может использоваться как временный MV для текущего изображения. Мы предлагаем ослабить временные ограничения MV.
[0096] В одном варианте осуществления, если текущее изображение относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), и совмещенное изображение также относится к изображению, равному совмещенному изображению (т.е. RefPOC равно curPOC), этот временный MV из размещенного изображения действительно для текущего режима слияния изображения и генерации MVP.
MV может использоваться с масштабированием или без масштабирования, и опорное изображение устанавливается равным текущему изображению. В другом варианте осуществления, если текущее изображение относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), а совместное изображение относится к долгосрочному изображению, отличному от текущего изображения, временное MV из объединенного изображения также может использоваться для режима слияния текущего изображения и создания MVP. Но после ссылки необходимо провести проверку точности. Если временная MV из совмещенного изображения кодируется с выборкой дробной яркости, ее необходимо округлить до целочисленной выборки яркости. В другом варианте осуществления, если текущее изображение относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), а совместное изображение относится к долгосрочному изображению, отличному от текущего изображения, временное MV из объединенного изображения может быть используется для текущего изображения либо в режиме слияния, либо в генерации MVP, только когда временный MV из совмещенного изображения кодируется с помощью целочисленной выборки яркости.
В другом варианте осуществления, если текущее изображение относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), а совместное изображение относится к долгосрочному изображению, отличному от текущего изображения, временное MV из объединенного изображения не может быть используется для текущего изображения либо в режиме слияния, либо в генерации MVP.
[0097] В другом варианте осуществления, если текущее изображение относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), и совмещенное изображение также относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), MV из совмещенного изображения может использоваться в качестве временного MV для текущего изображения с его индексом опорного изображения, равным текущему изображению.
В другом варианте осуществления, если текущее изображение относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), а совместное изображение также относится к изображению, равному самому себе (т.е. RefPOC равно curPOC), временный MV, который равен не отмечен как тип CPR Кандидат на слияние может быть получен в соответствии с временным MV из совместно размещенного изображения. Полученная временная MV указывает на опорный блок в опорном изображении с опорным индексом, равным совместно размещенному изображению.
[0098] В другом варианте осуществления, когда опорное изображение текущего изображения и опорное изображение совмещенного изображения являются долгосрочным опорным изображением, можно ли использовать совместно размещенный MV или нет, зависит от того, является ли опорное изображение текущим изображением (или текущее изображение совмещенного изображения) или нет.
Например, если оба эталона являются долгосрочными изображениями, отличными от текущего изображения, совмещенный MV является действительным. Если одно из опорных изображений является текущим изображением (или текущим изображением из совмещенного изображения), а другое опорное изображение является долгосрочным изображением, отличным от текущего изображения, объединенное MV недействительно. Если обе ссылки являются долгосрочными изображениями и представляют собой текущее изображение и текущее изображение совмещенного изображения, совмещенный MV также является действительным. Полученная временная MV указывает на текущее изображение.
[0099] CPR с режимом слияния подблоков и аффинным режимом AMVP
[0100] В предыдущем изобретении режим слияния подблоков включает в себя аффинное слияние и режим ATMVP, а также предлагается аффинный режим AMVP.
Однако после применения дизайна CPR предлагается несколько способов для улучшения интеграции.
В одном варианте осуществления, если включен режим слияния подблока или режим аффинного AMVP, и опорное изображение текущего изображения равно текущему изображению, после получения MV требуется процесс проверки MV. Все MV подблока должны быть целыми MV. В другом варианте осуществления, если текущему изображению разрешено ссылаться на текущий CU, независимо от того, какой режим предсказания выбран (например, нормальный режим слияния, режим МН, треугольный режим слияния, режим слияния MMVD, режим Inter, режим AMVP, режим слияния подблоков, режим affine AMVP и т.д.), MV для текущего блока или текущих подблоков необходимо закодировать с целочисленным разрешением. Процесс проверки MV необходим после процесса вывода MV другого режима. Если опорное изображение текущего CU равно текущему изображению, дробное MV для текущего блока или текущего подблока необходимо преобразовать в целочисленное разрешение.
[0101] Синтаксис управления для управления инструментами кодирования
[0102] В VTM-4.0 MMVD sps_fpel_mmvd_enabled_flag используется для отключения дробного смещения MMVD. Когда sps_fpel_mmvd_enabled_flag включен, дробное смещение не может быть добавлено как MVD.
[0103] В этом раскрытии предлагается использовать флаг управления или синтаксис, который сигнализирует на уровне мозаики / мозаики / изображения / слайса / последовательности / APS-уровне.
Когда этот флаг или синтаксис истинны, один или несколько инструментов кодирования модифицируются в целевом режиме, который отличается от другого режима, когда этот флаг / синтаксис имеет значение false.
Средством кодирования может быть MMVD, AMVR, DMVR, внутреннее предсказание или любая из вышеперечисленных комбинаций.
В одном примере, когда флаг или синтаксис истинны, дробное смещение не может быть добавлено как MVD. В другом примере, когда этот флаг или синтаксис включен, amvr_flag не нужно сигнализировать, и он будет считаться истинным. Только amvr_idx необходимо сигнализировать, чтобы указать, используется ли разрешение MV 4-пикселя или нет. В другом примере, когда этот флаг или синтаксис включен, MVD кодируется только с целочисленной точностью или точностью 4 пикселя. Четверть или половина выборки отключена. В другом варианте осуществления, когда этот флаг или синтаксис включены, интерполяция Intra будет отключена. Используется целочисленный образец внутрипиксельной копии. В другом варианте осуществления, когда этот флаг или синтаксис включены, дробное уточнение DMVR будет отключено. В другом варианте осуществления, когда этот флаг или синтаксис включен, более одного инструмента кодирования будут отключены. Например, amvr_flag и/или интерполяция Intra могут быть отключены.
[0104] Любой из предложенных выше способов может быть реализован в кодерах и/или декодерах.
Например, любой из предложенных способов может быть реализован в модуле / процессоре / программных кодах внешнего кодирования кодера и/или декодера. В качестве альтернативы, любой из предложенных способов может быть реализован в виде схемы, связанной с внутренним кодированием кодера и/или декодера, чтобы предоставлять информацию, необходимую для внутреннего кодирования.
[0105] Фиг. 11 иллюстрирует блок-схему примерного предсказания для видеокодирования согласно варианту осуществления настоящего изобретения.
Шаги, показанные на блок-схеме, а также на других следующих блок-схемах в этом раскрытии, могут быть реализованы как программные коды, исполняемые на одном или нескольких процессорах (например, одном или нескольких ЦП) на стороне кодера и/или стороне декодера. Шаги, показанные в блок-схеме, также могут быть реализованы на основе аппаратного обеспечения, такого как одно или несколько электронных устройств или процессоров, предназначенных для выполнения этапов в блок-схеме. Согласно этому способу входные данные, относящиеся к текущему блоку в текущем изображении, принимаются на стороне видеокодера, или поток видеобитов, соответствующий сжатым данным, включающим в себя текущий блок в текущем изображении, принимается на стороне видеодекодера на этапе 1110. Набор кандидатов на слияние, содержащий кандидата MMVD (режим слияния с разностью векторов движения (MVD)), генерируется на этапе 1120, где кандидат MMVD получается путем определения базового кандидата и изменения одной или нескольких частей выражения MV (вектора движения) базового кандидата для создания кандидата MMVD.
На этапе 1130 он определяет, имеет ли текущий блок размер блока, принадлежащий по меньшей мере одному размеру блока по умолчанию, и целевой кандидат в наборе кандидатов на слияние является двунаправленным предсказанием после того, как набор кандидатов на слияние сгенерирован. Если текущий блок имеет размер блока, принадлежащий по меньшей мере одному размеру блока по умолчанию, и целевой кандидат является двунаправленным предсказанием (т.е. путь «Да» с этапа 1130), выполняются этапы с 1140 по 1160. В противном случае (т.е. путь «нет») шаги с 1140 по 1160 пропускаются. На этапе 1140 целевой кандидат заменяется кандидатом с единым предсказанием. На этапе 1150 включение кандидата с единым предсказанием в набор кандидатов на слияние для генерации модифицированного набора кандидатов на слияние. На этапе 1160 текущая информация о движении, связанная с текущим блоком, кодируется с использованием модифицированного набора кандидатов на слияние на стороне видеокодера, или текущая информация о движении, связанная с текущим блоком, декодируется с использованием модифицированного набора кандидатов на слияние на стороне видеодекодера.
[0106] Показанные блок-схемы предназначены для иллюстрации примеров кодирования видео согласно настоящему изобретению.
Специалист в данной области техники может модифицировать каждый этап, переупорядочивать этапы, разбивать этап или комбинировать этапы для практического применения настоящего изобретения, не выходя за рамки сущности настоящего изобретения. В раскрытии конкретный синтаксис и семантика были использованы для иллюстрации примеров для реализации вариантов осуществления настоящего изобретения. Квалифицированный специалист может применить настоящее изобретение на практике, заменив синтаксис и семантику эквивалентными синтаксисом и семантикой, не выходя за рамки сущности настоящего изобретения.
[0107] Вышеприведенное описание представлено для того, чтобы дать возможность специалисту с обычной квалификацией в данной области техники применить настоящее изобретение на практике в контексте конкретного приложения и его требований.
Различные модификации описанных вариантов осуществления будут очевидны специалистам в данной области техники, и общие принципы, определенные в данном документе, могут быть применены к другим вариантам осуществления. Следовательно, настоящее изобретение не предназначено для ограничения конкретными показанными и описанными вариантами осуществления, но должно соответствовать самому широкому объему, согласующемуся с принципами и новыми признаками, раскрытыми здесь. В приведенном выше подробном описании проиллюстрированы различные конкретные детали, чтобы обеспечить полное понимание настоящего изобретения. Тем не менее, специалистам в данной области техники будет понятно, что настоящее изобретение может быть реализовано на практике.
[0108] Вариант осуществления настоящего изобретения, как описано выше, может быть реализован с помощью различных аппаратных средств, программных кодов или их комбинации.
Например, вариант осуществления настоящего изобретения может представлять собой одну или несколько схем, интегрированных в микросхему сжатия видео, или программный код, интегрированный в программное обеспечение сжатия видео, для выполнения описанной здесь обработки. Вариант осуществления настоящего изобретения также может представлять собой программный код, который должен выполняться на цифровом сигнальном процессоре (DSP) для выполнения описанной здесь обработки. Изобретение может также включать ряд функций, которые должны выполняться процессором компьютера, процессором цифровых сигналов, микропроцессором или программируемой вентильной матрицей (FPGA). Эти процессоры могут быть сконфигурированы для выполнения конкретных задач в соответствии с изобретением путем выполнения машиночитаемого программного кода или кода встроенного программного обеспечения, который определяет конкретные способы, воплощенные в изобретении. Код программного обеспечения или микропрограммного обеспечения может быть разработан на разных языках программирования и в разных форматах или стилях. Программный код также может быть скомпилирован для различных целевых платформ. Однако различные форматы кода, стили и языки программных кодов и другие средства настройки кода для выполнения задач в соответствии с изобретением не будут отклоняться от сущности и объема изобретения.
[0109] Изобретение может быть воплощено в других конкретных формах без отклонения от его сущности или существенных признаков.
Описанные примеры следует рассматривать во всех отношениях только как иллюстративные, а не как ограничивающие. Таким образом, объем изобретения определяется прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые подпадают под значение и диапазон эквивалентности формулы изобретения, должны быть включены в их объем.