КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕО
VIDEO ENCODING AND DECODING

Область техники, к которой относится изобретение
[001] Настоящее раскрытие относится к кодированию и декодированию видео, и более конкретно, к кодированию с использованием режима геометрического разделения с треугольным разделением.
Уровень техники
[002] Как правило, способ кодирования видео может включать в себя такие процессы, как прогнозирование, преобразование, квантование, фильтрация и энтропийное кодирование. Кодирование с прогнозированием может включать в себя кодирование с внутренним прогнозированием и кодирование с внешним прогнозированием. Кодирование с внешним прогнозированием относится к кодированию с прогнозированием с использованием восстановленных значений пикселей временного соседнего блока текущего блока (временной соседний блок и текущий блок не расположены в одном и том же изображении). Кодирование с внутренним прогнозированием относится к кодированию с прогнозированием с использованием восстановленных значений пикселей пространственного соседнего блока текущего блока (пространственный соседний блок и текущий блок расположены в одном изображении).
[003] При кодировании с внешним прогнозированием вектор движения (MV) может использоваться для представления относительного смещения между текущим блоком текущего слайса и опорным блоком опорного изображения. Например, текущий слайс A и опорное изображение B имеют высокую корреляцию во временной области. Когда необходимо передать текущий блок A1 текущего слайса A, может выполняться поиск опорного блока B1, который лучше всего соответствует текущему блоку A1, в опорном изображении B, и определяться относительное смещение между текущим блоком A1 и опорным блоком B1 и использоваться как вектор движения текущего блока A1.
[004] В блоке может быть два разных объекта, соответствующих краю физического объекта, например, одновременно передний план (т. е. физический объект) и фон. В этом случае, если для прогнозирования используется только прямоугольный блок, эффект прогнозирования определенной части объекта в прямоугольном блоке может быть нежелательным, что приводит к большому остатку кодирования.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[005] В настоящем раскрытии предложен способ кодирования и декодирования видео, который может осуществляться видеокодером или видеодекодером, и содержит: разделение текущего блока на первый треугольный субблок и второй треугольный субблок, когда текущий блок удовлетворяет конкретным условиям для разрешения режима геометрического разделения с треугольным разделением и определено, что разрешен режим геометрического разделения с треугольным разделением; получение первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока, причем первая целевая информация о движении отличается от второй целевой информации о движении; и осуществление обработки кодирования или обработки декодирования на текущем блоке на основе первой целевой информации о движении и второй целевой информации о движении.
[006] В настоящем раскрытии предложен видеодекодер, содержащий процессор и машиночитаемый носитель информации, при этом машиночитаемый носитель информации хранит машиноисполняемые инструкции, которые могут быть вызваны процессором; причем, когда процессор выполняет инструкции, процессор обеспечивает выполнение способа кодирования и декодирования видео.
[007] В настоящем раскрытии предложен видеокодер, содержащий процессор и машиночитаемый носитель информации, при этом машиночитаемый носитель информации хранит машиноисполняемые инструкции, которые могут быть вызваны процессором; причем, когда процессор выполняет инструкции, процессор обеспечивает выполнение способа кодирования и декодирования видео.
[008] В настоящем раскрытии предложен машиночитаемый носитель информации, на котором хранятся компьютерные инструкции. Когда компьютерные инструкции выполняются процессором, процессор обеспечивает выполнение способа кодирования и декодирования видео.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[009] Фиг.1 – схематическое изображение структуры системы кодирования видео согласно примеру настоящего раскрытия.
[0010] Фиг.2 – блок-схема способа декодирования видео согласно примеру настоящего раскрытия.
[0011] Фиг.3 – блок-схема способа кодирования видео согласно примеру настоящего раскрытия.
[0012] Фиг.4A-4B – схематические изображения разделения текущего блока согласно примеру настоящего раскрытия.
[0013] Фиг.5A-5C – схематические изображения блоков-кандидатов согласно примеру настоящего раскрытия.
[0014] Фиг.6A-6C – схематические изображения разделения субблоков согласно примеру настоящего раскрытия.
[0015] Фиг.7A-7B – схематические изображения хранения информации о движении согласно примеру настоящего раскрытия.
[0016] Фиг.8 – схематическая блок-схема видеодекодера согласно примеру настоящего раскрытия.
[0017] Фиг.9 – схематическая блок-схема видеокодера согласно примеру настоящего раскрытия.
Осуществление изобретения
[0018] Термины используются в примерах настоящего раскрытия только с целью описания конкретных примеров, а не для ограничения настоящего раскрытия. Формы единственного числа, используемые в настоящем раскрытии и в формуле изобретения, также включают в себя формы множественного числа, если контекст явно не указывает иное. Также следует понимать, что используемый здесь термин «и/или» относится к любой одной или всем возможным комбинациям одного или нескольких соответствующих перечисленных элементов.
[0019] Следует понимать, что хотя термины первый, второй, третий и т. д. могут использоваться в примерах настоящего раскрытия для описания различной информации, эта информация не должна ограничиваться этими терминами. Эти термины используются только для того, чтобы отличать один и тот же тип информации друг от друга. Например, не выходя за рамки настоящего раскрытия, под первой информацией также может подразумеваться вторая информация, и аналогично под второй информацией также может подразумеваться первая информация. Кроме того, слово «если» можно интерпретировать как «при», «когда» или «в ответ на».
[0020] Примеры настоящего раскрытия могут включать в себя следующие концепции.
[0021] Внутреннее прогнозирование: кодирование с прогнозированием с использованием восстановленных значений пикселей пространственного соседнего блока (в том же изображении, что и текущий блок) текущего блока. Было предложено множество режимов внутреннего прогнозирования, и каждый режим внутреннего прогнозирования, за исключением режима DC, соответствует одному направлению текстуры. Прогнозируемые пиксели текущего блока могут быть сгенерированы из граничных восстановленных значений пикселей соседнего блока в его направлении прогнозирования. Например, если текстура изображения расположена в горизонтальном направлении, то режим горизонтального прогнозирования может лучше прогнозировать информацию об изображении.
[0022] Внешнее прогнозирование: кодирование с прогнозированием с использованием восстановленных значений пикселей временного соседнего блока (в изображении, отличном от текущего блока) текущего блока. Часть внешнего прогнозирования основных стандартов кодирования видео использует технологию компенсации движения на основе блоков, в которой наиболее подходящий блок находится в опорном изображении для текущего блока. Этот процесс называется оценкой движения (ME).
[0023] Вектор движения (MV). При кодировании с внешним прогнозированием вектор движения используется для представления относительного смещения между текущим кодированным блоком и наиболее подходящим блоком в опорном изображении. Каждый блок, полученный путем разделения, имеет соответствующий вектор движения, передаваемый в декодер. Если вектор движения каждого блока кодируется и передается независимо, особенно когда из разделения получают блоки меньшего размера, необходимо использовать больше битов. Чтобы уменьшить количество битов, используемых для кодирования вектора движения, при кодировании видео может использоваться пространственная корреляция между соседними блоками изображения для прогнозирования вектора движения текущего блока, предназначенного для кодирования, на основе вектора движения соседнего кодированного блока, после чего кодируется разница прогнозирования. Таким образом, можно эффективно уменьшить количество битов, представляющих вектор движения. В процессе кодирования вектора движения текущего блока изображения вектор движения соседнего кодированного блока обычно используется для прогнозирования вектора движения текущего макроблока, а затем кодируется разность векторов движения (MVD) между значением прогнозирования вектора движения (MVP) и реальным значением оценки вектора движения, тем самым эффективно уменьшая количество кодируемых битов для MV.
[0024] Информация о движении. Поскольку вектор движения представляет смещение текущего блока изображения относительно блока в опорном изображении, для точного получения информации отображаемого блока изображения в дополнение к вектору движения также необходим опорный индекс, чтобы указать, какое опорное изображение используется для текущего блока изображения. В технологии кодирования видео для текущего слайса обычно может быть установлен список опорных изображений, и опорный индекс указывает, какое опорное изображение, перечисленное в списке опорных изображений, используется текущим блоком изображения. Кроме того, многие технологии кодирования также поддерживают несколько списков опорных изображений, поэтому необходим индекс, чтобы указать, какой список опорных изображений используется, и этот индекс можно называть опорным направлением. В технологии кодирования видео информация о кодировании, относящаяся к движению, такая как вектор движения, опорный индекс и опорное направление, может вместе называться информацией о движении.
[0025] Оптимизированное искажение скорости (RDO). Обычно есть два показателя для оценки эффективности кодирования видео: битрейт и пиковое отношение сигнал/шум (PSNR). Чем меньше битовый поток, тем выше степень сжатия; чем выше PSNR, тем лучше качество восстановленного изображения. Выбор режима обычно основан на всесторонней оценке двух показателей. Например, стоимость, соответствующая режиму, может быть рассчитана по следующей формуле: J(режим)=D+λ*R, где D представляет собой искажение, обычно измеряемое суммой квадратов разностей (SSE) между восстановленным блоком изображения и исходным блоком изображения; λ представляет множитель Лагранжа; R представляет собой фактическое количество битов, необходимых для кодирования блока изображения в этом режиме, включая общее количество битов, необходимых для информации о режиме кодирования, информации о движении, остатков и т. д. Решение о выборе режима кодирования на основе политики RDO обычно может гарантировать хорошую производительность кодирования.
[0026] На фиг.1 схематично показана структура системы кодирования видео, которая может быть использована для осуществления обработки в кодере согласно примеру настоящего раскрытия. Структура системы кодирования видео может включать в себя модуль внутреннего прогнозирования, модуль оценки движения/компенсации движения, буфер опорных изображений, модуль внутриконтурной фильтрации, модуль восстановления, модуль преобразования, модуль квантования, модуль обратного преобразования, модуль обратного квантования, энтропийный кодер и т. д. Точно так же структура системы декодирования видео, соответствующая структуре системы кодирования видео, может быть использована для осуществления обработки в декодере согласно примеру настоящего раскрытия сущности.
[0027] Некоторые примеры настоящего раскрытия будут подробно описаны ниже со ссылкой на прилагаемые чертежи.
[0028] Вариант осуществления 1
[0029] На фиг.2 показана блок-схема способа декодирования видео согласно примеру настоящего раскрытия. Этот метод может быть применен к декодеру и может включать в себя этапы с 201 по 203.
[0030] На этапе 201, если текущий блок удовлетворяет конкретным условиям для разрешения режима геометрического разделения с треугольным разделением и определено, что разрешен режим геометрического разделения с треугольным разделением, видеодекодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок, то есть текущий блок может быть разделен на два треугольных субблока.
[0031] На этапе 202 видеодекодер конфигурирован для получения первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока. Первая целевая информация о движении может отличаться от второй целевой информации о движении.
[0032] На этапе 203 видеодекодер конфигурирован для осуществления процесса декодирования текущего блока на основе первой целевой информации о движении и второй целевой информации о движении.
[0033] В одном примере после приема кодированного битового потока видеодекодер может осуществлять процесс декодирования кодированных данных, соответствующих текущему блоку в принятом кодированном битовом потоке, на основе первой целевой информации о движении и второй целевой информации о движении.
[0034] В примере настоящего раскрытия, если текущий блок удовлетворяет конкретным условиям для разрешения режима геометрического разделения с треугольным разделением, и определено, что разрешен режим геометрического разделения с треугольным разделением, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок. Следовательно, текущий блок может быть спрогнозирован на основе первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока. Следовательно, точность прогнозирования, производительность прогнозирования и производительность кодирования могут быть улучшены, а остатки кодирования могут быть уменьшены.
[0035] Вариант осуществления 2
[0036]  На фиг.3 показана блок-схема способа кодирования видео согласно одному примеру настоящего раскрытия. Способ может быть применен к кодеру и может включать в себя этапы с 301 по 303.
[0037] На этапе 301, когда текущий блок удовлетворяет конкретным условиям для разрешения режима геометрического разделения с треугольным разделением и определено, что разрешен режим геометрического разделения с треугольным разделением, видеокодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок, то есть текущий блок может быть разделен на два треугольных субблока.
[0038] На этапе 302 видеокодер конфигурирован для получения первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока. Первая целевая информация о движении может отличаться от второй целевой информации о движении.
[0039] На этапе 303 видеокодер конфигурирован для кодирования текущего блока на основе первой целевой информации о движении и второй целевой информации о движении.
[0040] В одном примере видеокодер может кодировать битовый поток, соответствующий текущему блоку, на основе первой целевой информации о движении и второй целевой информации о движении, чтобы получить кодированный битовый поток.
[0041] В примере настоящего раскрытия, если текущий блок удовлетворяет конкретным условиям для разрешения режима геометрического разделения с треугольным разделением, и определено, что разрешен режим геометрического разделения с треугольным разделением, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок. Следовательно, текущий блок может быть спрогнозирован на основе первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока. Следовательно, точность прогнозирования, производительность прогнозирования и производительность кодирования могут быть улучшены, а остатки кодирования могут быть уменьшены.
[0042] Вариант осуществления 3
[0043] На этапе 201 и этапе 301 видеодекодер/видеокодер конфигурирован для определения, удовлетворяет ли текущий блок конкретным условиям для разрешения режима геометрического разделения с треугольным разделением; если это так, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; а если нет, текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок. Определение того, удовлетворяет ли текущий блок определенным условиям, может включать в себя следующие этапы: определение, удовлетворяют ли конкретным условиям тип слайса текущего слайса, в котором расположен текущий блок, режим информации о движении текущего блока и информация о размере текущего блока.
[0044] Например, если тип слайса текущего слайса является B-слайсом или не-I-слайсом, можно определить, что тип слайса удовлетворяет конкретным условиям. В качестве альтернативы, если тип слайса текущего слайса допускает копирование внутри блока, можно определить, что тип слайса удовлетворяет конкретным условиям.
[0045] В одном примере, если режим информации о движении текущего блока является общим режимом слияния, можно определить, что режим информации о движении удовлетворяет конкретным условиям. Однако когда режим информации о движении текущего блока является режимом другого типа (например, режимом расширенного прогнозирования вектора движения (AMVP) или т. п.), также можно определить, что режим информации о движении удовлетворяет конкретным условиям.
[0046] В одном примере, если ширина текущего блока больше или равна первому значению, а высота текущего блока больше или равна второму значению, можно определить, что информация о размере текущего блока удовлетворяет конкретным условиям. В качестве альтернативы, если ширина текущего блока больше или равна третьему значению, или высота текущего блока больше или равна четвертому значению, можно определить, что информация о размере текущего блока удовлетворяет конкретным условиям. В качестве альтернативы, если ширина текущего блока больше или равна пятому значению и меньше или равна шестому значению, а высота текущего блока больше или равна седьмому значению и меньше или равна восьмому значению, можно определить, что информация о размере текущего блока удовлетворяет конкретным условиям. В качестве альтернативы, если ширина текущего блока больше или равна девятому значению и меньше или равна десятому значению, или высота текущего блока больше или равна одиннадцатому значению и меньше или равна двенадцатому значению, можно определить, что информация о размере текущего блока удовлетворяет конкретным условиям. В качестве альтернативы, если ширина текущего блока больше или равна тринадцатому значению и меньше или равна четырнадцатому значению, высота текущего блока больше или равна пятнадцатому значению и меньше или равна шестнадцатому значению, а область текущего блока больше или равна семнадцатому значению и меньше или равна восемнадцатому значению, может быть определено, что информация о размере текущего блока удовлетворяет конкретным условиям.
[0047] Вышеуказанные значения могут быть установлены исходя из опыта, например 8, 16, 32, 64, 128 и т. д. В одном примере первое значение может быть 8, второе значение может быть 8, третье значение может быть 8, четвертое значение может быть 8, пятое значение может быть 8, шестое значение может быть 128, седьмое значение может быть 8, восьмое значение может быть 128, девятое значение может быть 8, десятое значение может быть 32, одиннадцатое значение может быть 8, двенадцатое значение может быть 32, тринадцатое значение может быть 8, четырнадцатое значение может быть 64, пятнадцатое значение может быть 8, шестнадцатое значение может быть 64, семнадцатое значение может быть 16 и восемнадцатое значение может быть 1024.
[0048] Что касается этапа 201 и этапа 301, ниже приводятся несколько примеров.
[0049] Пример 1. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0050] текущий слайс является B-слайсом, то есть текущий слайс допускает два списка опорных изображений;
[0051] режим информации о движении текущего блока является общим режимом слияния; и
[0052] площадь (ширина*высота) текущего блока больше или равна N*N, а N равно, например, 8.
[0053] Пример 2. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0054] текущий слайс является не-I-слайсом, то есть текущий слайс допускает по меньшей мере один список опорных изображений;
[0055] режим информации о движении текущего блока является общим режимом слияния; и
[0056] площадь (ширина*высота) текущего блока больше или равна N*N, а N равно, например, 8.
[0057] Пример 3. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0058] текущий слайс является B-слайсом, то есть текущий слайс допускает два списка опорных изображений;
[0059] режим информации о движении текущего блока является общим режимом слияния; и
[0060] ширина или высота текущего блока больше или равна N, а N равно, например, 8.
[0061] Пример 4. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0062] текущий слайс является не-I-слайсом, то есть текущий слайс допускает по меньшей мере один список опорных изображений;
[0063] режим информации о движении текущего блока является общим режимом слияния; и
[0064] ширина или высота текущего блока больше или равна N, а N равно, например, 8.
[0065] Пример 5. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0066] текущий слайс является не-I-слайсом, то есть текущий слайс допускает по меньшей мере один список опорных изображений;
[0067] режим информации о движении текущего блока является общим режимом слияния;
[0068] ширина или высота текущего блока больше или равна N, а N равно, например, 8; и
[0069] ширина или высота текущего блока меньше или равна M, а M равно, например, 128.
[0070] Пример 6. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0071] текущий слайс является не-I-слайсом, то есть текущий слайс допускает по меньшей мере один список опорных изображений;
[0072] режим информации о движении текущего блока является общим режимом слияния;
[0073] ширина или высота текущего блока больше или равна N, а N равно, например, 8; и
[0074] площадь (т. е. ширина*высота) текущего блока меньше или равна M*M, а M равно, например, 32.
[0075] Пример 7. Если текущий блок удовлетворяет всем следующим условиям, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок; в противном случае текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок:
[0076] текущий слайс является не-I-слайсом, то есть текущий слайс допускает по меньшей мере один список опорных изображений;
[0077] режим информации о движении текущего блока является общим режимом слияния;
[0078] ширина текущего блока находится в диапазоне [Wmin, Wmax], Wmin равно, например, 8, а Wmax равно, например, 64;
[0079] высота текущего блока находится в диапазоне [Hmin, Hmax], Hmin равно, например, 8, Hmax равно, например, 64; и
[0080] площадь (т. е. ширина*высота) текущего блока находится в диапазоне [Smin, Smax]. Smin равно, например, 16, а Smax равно, например, 1024.
[0081] Пример 8. Для любого из примеров с 1 по 7 ограничение на тип слайса может быть изменено на: текущий слайс позволяет копировать внутри блока (то есть позволяет искать блоки, похожие на текущий блок, в восстановленных блоках текущего слайса, которые были декодированы). Например, для примера 1 перечисленные условия могут быть такими:
[0082] текущий слайс позволяет копировать внутри блока;
[0083] режим информации о движении текущего блока является общим режимом слияния; и
[0084] площадь (ширина*высота) текущего блока больше или равна N*N, а N равно, например, 8.
[0085] Пример 9. Для любого из примеров с 1 по 8 ограничение на режим информации о движении может быть изменено на: режим информации о движении текущего блока является общим режимом слияния, а не любым из режима разделения субблоков, режима множества гипотез и общего режима слияния кодирования разницы информации о движении. То есть, когда любой из режима разделения субблоков, режима множества гипотез, общего режима слияния кодирования разницы информации о движении разрешен для текущего блока, определяется, что текущий блок не удовлетворяет конкретным условиям, и, таким образом, текущий блок не разделяется на первый треугольный субблок и второй треугольный субблок.
[0086] Вариант осуществления 4
[0087] На этапе 201 и этапе 301, если текущий блок удовлетворяет конкретным условиям для разрешения режима геометрического разделения с треугольным разделением и определено, что разрешен режим геометрического разделения с треугольным разделением, видеодекодер/видеокодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок. В одном примере текущий блок может быть разделен на первый треугольный субблок и второй треугольный субблок с помощью первого диагонального метода (то есть, используя диагональ, которая образует острый угол (например, угол 45 градусов) с горизонтальным и правым направлением), как показано на фиг.4А. В качестве альтернативы текущий блок может быть разделен на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода (то есть, используя диагональ с тупым углом (например, углом 135 градусов) от горизонтального и правого направления), как показано на фиг.4B.
[0088] Например, в декодере/кодере текущий блок может быть разделен на первый треугольный субблок и второй треугольный субблок посредством следующих подходов.
[0089] Подход 1. Видеокодер соглашается разделить текущий блок с помощью первого диагонального метода по умолчанию посредством протокольного соглашения, а видеодекодер соглашается разделить текущий блок с помощью первого диагонального метода по умолчанию посредством протокольного соглашения. На этой основе видеокодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок с помощью первого диагонального метода, а видеодекодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок с помощью первого диагонального метода.
[0090] Подход 2. Видеокодер соглашается разделить текущий блок с помощью второго диагонального метода по умолчанию посредством протокольного соглашения, а видеодекодер соглашается разделить текущий блок с помощью второго диагонального метода по умолчанию посредством протокольного соглашения. На этой основе видеокодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода, а видеодекодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода.
[0091] Подход 3. Видеокодер конфигурирован для определения стоимости 1 искажения скорости, соответствующей разделению с помощью первого диагонального метода, и стоимости 2 искажения скорости, соответствующей разделению с помощью второго диагонального метода. Если стоимость 1 искажения скорости меньше стоимости 2 искажения скорости, видеокодер конфигурирован для разделения текущего блока на первый треугольный субблок и второй треугольный субблок с помощью первого диагонального метода. Кодированный битовый поток, отправленный видеокодером в декодер, несет первую информацию индикации, и первая информация индикации указывает, что текущий блок разделен с помощью первого диагонального метода. Видеодекодер конфигурирован для получения кодированного битового потока из кодера, и если кодированный битовый поток несет первую информацию индикации, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок с помощью первого диагонального метода. С другой стороны, если стоимость 1 искажения скорости больше, чем стоимость 2 искажения скорости, видеокодер разделяет текущий блок на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода. Кодированный битовый поток, отправленный видеокодером в декодер, несет вторую информацию индикации, и вторая информация индикации указывает, что текущий блок разделен с помощью второго диагонального метода. Видеодекодер конфигурирован для получения кодированного битового потока из кодера, и если кодированный битовый поток несет вторую информацию индикации, текущий блок разделяется на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода.
[0092] Вариант осуществления 5
[0093] На этапе 202 и этапе 302 видеодекодер/видеокодер может получить первую целевую информацию о движении первого треугольного субблока и вторую целевую информацию о движении второго треугольного субблока посредством следующих подходов.
[0094] Подход 1. Создается список информации о движении первого кандидата, причем список информации о движении первого кандидата может включать в себя множество информации о движении кандидата; выбирается одна информация о движении кандидата из списка информации о движении первого кандидата в качестве первой целевой информации о движении первого треугольного субблока. Первая целевая информация о движении исключается из списка информации о движении первого кандидата, а другая информация о движении кандидата выбирается из оставшейся информации о движении кандидата в списке информации о движении первого кандидата в качестве второй целевой информации о движении второго треугольного субблока. Таким образом, можно гарантировать, что первая целевая информация о движении отличается от второй целевой информации о движении.
[0095] В одном примере, чтобы создать список информации о движении первого кандидата, могут быть получены блоки-кандидаты, соответствующие текущему блоку, и информация о движении блоков-кандидатов может быть добавлена в список информации о движении первого кандидата. Если блок-кандидат является блоком однонаправленного прогнозирования, информация о движении блока-кандидата включает в себя информацию об однонаправленном движении блока-кандидата; если блок-кандидат является блоком двунаправленного прогнозирования, информация о движении блока-кандидата включает в себя первую информацию о движении блока-кандидата (то есть L0 информацию о движении блока-кандидата) и вторую информацию о движении блока-кандидата (то есть L1 информацию о движении блока-кандидата), но не включает в себя взвешенную информацию о движении из первой информации о движении блока-кандидата и второй информации о движении блока-кандидата.
[0096] Например, как показано на фиг.5A, блоки в показанных 7 позициях могут использоваться как блоки-кандидаты, соответствующие текущему блоку, где блок 1, блок 2, блок 3, блок 4 и блок 5 являются блоками-кандидатами в текущем слайсе (то есть пространственными блоками-кандидатами), а блоки 6 и 7 являются блоками-кандидатами в опорном изображении (то есть блоками-кандидатами во временной области). Информация о движении блоков-кандидатов в этих 7 положениях может быть собрана для создания списка информации о движении первого кандидата. Если длина списка информации о движении первого кандидата не достигает предварительно установленной максимальной длины MaxL (например, 7), информация о движении нескольких доступных пространственных несоседних субблоков может быть добавлена в конец списка информации о движении первого кандидата (то есть пространственный несоседний субблок также рассматривается как блок-кандидат, соответствующий текущему блоку), а пространственный несоседний субблок относится к субблоку, который не имеет граничной линии или граничной точки с текущим блоком.
[0097] В одном примере, после того, как информация о движении блоков-кандидатов собрана, информация о движении сортируется в следующем порядке: информация об однонаправленном движении, L0 информация о движении для двунаправленного прогнозирования и L1 информация о движении для двунаправленного прогнозирования, или в следующем порядке: L0 информация о движении для двунаправленного прогнозирования, L1 информация о движении для двунаправленного прогнозирования и информация об однонаправленном движении, и собранная информация о движении добавляется в список информации о движении первого кандидата одна за другой в соответствии с результатом сортировки.
[0098] В одном примере, каждый раз, когда информация о движении добавляется в список информации о движении первого кандидата, может быть определено, достигло ли количество информации о движении кандидата в списке информации о движении первого кандидата верхнего предела M. Если количество достигло верхнего предела M, добавление информации о движении отклоняется, и процесс добавления информации о движении завершается. Если количество не достигло верхнего предела M, можно продолжить добавление информации о движении, например, следующая информация о движении добавляется в список информации о движении первого кандидата после завершения добавления текущей информации о движении. Значение верхнего предела M может быть настроено на основании опыта, например, равным 5.
[0099] В одном примере каждый раз, когда информация о движении добавляется к списку информации о движении первого кандидата, может быть определено, согласуется ли информация о движении с некоторой информацией о движении, которая уже существует в списке информации о движении первого кандидата. Если такая дублированная информация о движении присутствует в списке информации о движении первого кандидата, добавление информации о движении в список информации о движении первого кандидата отклоняется. Если такой дублированной информации о движении нет, информация о движении добавляется в список информации о движении первого кандидата. Таким образом, информация о движении в списке информации о движении первого кандидата может дублироваться. В качестве альтернативы также возможно не определять, дублируется ли информация о движении, которая должна быть добавлена, с некоторой существующей информацией о движении в списке информации о движении первого кандидата, а непосредственно добавлять информацию о движении в список информации о движении первого кандидата.
[00100] В примере, когда вся собранная информация о движении добавляется в список информации о движении первого кандидата, а количество информации о движении кандидата в списке информации о движении первого кандидата меньше верхнего предела M, тогда в список информации о движении первого кандидата может быть добавлена нулевая информация о движении.
[00101] В примере, когда создается список информации о движении первого кандидата, каждый раз, когда должна собираться информация о движении блока-кандидата текущего блока, нет необходимости сравнивать информацию о движении блока-кандидата с информацией о движении, которая была собрана для текущего блока, чтобы увидеть, совпадают ли они, но можно непосредственно собирать информацию о движении блока-кандидата.
[00102] Далее будет описано несколько примеров создания списка информации о движении первого кандидата в подходе 1.
[00103] Пример 1. Из блоков-кандидатов, соответствующих текущему блоку, после получения информации о движении (такой как векторы движения) на основе последовательности позиций, показанной на фиг.5A, полученная информация о движении сортируется в следующем порядке: вектор однонаправленного движения, L0 вектор движения двунаправленного прогнозирования и L1 вектор движения двунаправленного прогнозирования (без среднего значения L0 вектора движения и L1 вектора движения двунаправленного прогнозирования), и полученная информация о движении добавляется в список информации о движении первого кандидата одна за другой в соответствии с результатом сортировки. Во время процесса заполнения, если количество информации о движении кандидата в списке информации о движении первого кандидата достигает M (например, 5), заполнение останавливается. Во время процесса заполнения необходимо повторно проверять дубликаты, чтобы гарантировать, что список информации о движении первого кандидата не имеет одинаковой информации о движении. Когда количество информации о движении кандидата меньше M после завершения процесса заполнения, добавляются нулевые векторы движения.
[00104] Пример 2. Из блоков-кандидатов, соответствующих текущему блоку, после получения информации о движении (такой как векторы движения) на основе последовательности позиций, показанной на фиг.5A, полученная информация о движении сортируется в следующем порядке: вектор однонаправленного движения, L0 вектор движения двунаправленного прогнозирования и L1 вектор движения двунаправленного прогнозирования (без среднего значения L0 вектора движения и L1 вектора движения двунаправленного прогнозирования), и полученная информация о движении добавляется в список информации о движении первого кандидата одна за другой в соответствии с результатом сортировки. Во время процесса заполнения, если количество информации о движении кандидата в списке информации о движении первого кандидата достигает M (например, 5), заполнение информацией о движении останавливается. Во время процесса заполнения нет необходимости проверять дубликаты в списке информации о движении первого кандидата. Когда количество информации о движении кандидата меньше M после завершения процесса заполнения, добавляются нулевые векторы движения.
[00105] Пример 3. Из блоков-кандидатов, соответствующих текущему блоку, после получения информации о движении (такой как векторы движения) на основе последовательности позиций, показанной на фиг.5A, полученная информация о движении сортируется в следующем порядке: L0 вектор движения двунаправленного прогнозирования, L1 вектор движения двунаправленного прогнозирования и вектор однонаправленного движения (без среднего значения L0 вектора движения и L1 вектора движения двунаправленного прогнозирования), и полученная информация о движении добавляется в список информации о движении первого кандидата одна за другой в соответствии с результатом сортировки. Во время процесса заполнения, если количество информации о движении кандидата в списке информации о движении первого кандидата достигает M (например, 5), заполнение останавливается. Во время процесса заполнения необходимо повторно проверять дубликаты, чтобы гарантировать, что список информации о движении первого кандидата не имеет одинаковой информации о движении. Когда количество информации о движении кандидата меньше M после завершения процесса заполнения, добавляются нулевые векторы движения.
[00106] Пример 4. Из блоков-кандидатов, соответствующих текущему блоку, информация о движении (например, векторы движения) получается на основе последовательности позиций, показанной на фиг.5А. Если блоки-кандидаты являются блоками однонаправленного прогнозирования, то есть для блоков-кандидатов используется информация об однонаправленном движении, информация об однонаправленном движении добавляется в список информации о движении первого кандидата на основе последовательности. Если блоки-кандидаты являются блоками двунаправленного прогнозирования, то есть для блоков-кандидатов используется информация о двунаправленном движении, к списку информации о движении первого кандидата на основе последовательности добавляется либо L0 информация о движении, либо L1 информация о движении. Во время процесса заполнения, если количество информации о движении кандидата в списке информации о движении первого кандидата достигает M (например, 5), заполнение останавливается. Во время процесса заполнения необходимо повторно проверять дубликаты, чтобы гарантировать, что список информации о движении первого кандидата не имеет одинаковой информации о движении. Когда количество информации о движении кандидата меньше M после завершения процесса заполнения, добавляются нулевые векторы движения.
[00107] Пример 5. Если длина списка информации о движении первого кандидата, созданного после прохождения всех блоков-кандидатов, показанных на фиг.5A, не достигает предварительно установленной максимальной длины MaxL (например, 7), информация о движении нескольких доступных пространственных несоседних субблоков добавляется в конец списка информации о движении первого кандидата. Пространственные несоседние субблоки относятся к субблокам, у которых нет граничных линий или граничных точек с текущим блоком.
[00108] Пример 6. Из блоков-кандидатов, соответствующих текущему блоку, после получения информации о движении (такой как векторы движения) на основе последовательности позиций, показанной на фиг.5A, полученная информация о движении сортируется в следующем порядке: вектор однонаправленного движения, L0 вектор движения двунаправленного прогнозирования и L1 вектор движения двунаправленного прогнозирования (без среднего значения L0 вектора движения и L1 вектора движения двунаправленного прогнозирования), и полученная информация о движении добавляется в список информации о движении первого кандидата одна за другой в соответствии с результатом сортировки. Во время процесса заполнения, если количество информации о движении кандидата в списке информации о движении первого кандидата достигает M (например, 5), заполнение информации о движении останавливается. Во время процесса заполнения для вектора однонаправленного движения и L0 вектора движения двунаправленного прогнозирования необходимо проверять дубликаты существующей информации о движении в списке информации о движении первого кандидата, чтобы убедиться, что список информации о движении первого кандидата не имеет одинаковой информации о движении; и для L1 вектора движения двунаправленного прогнозирования нет необходимости проверять дубликаты, поскольку стоимость для огромного количества информации о движении в списке информации о движении первого кандидата довольно высока (поскольку необходимо сравнивать всю информацию о движении в списке информации о движении первого кандидата).
[00109] Пример 7. При добавлении информации о движении в список информации о движении первого кандидата задействованы два процесса. Один процесс – это процесс сбора информации о движении, то есть собирается информация о движении блоков-кандидатов, а другой процесс – это процесс добавления информации о движении, то есть информация о движении добавляется в список информации о движении первого кандидата. Пример процесса сбора информации о движении будет описан ниже.
[00110] В процессе сбора информации о движении блоков-кандидатов может быть определено, совпадает ли в точности информация о движении текущего блока-кандидата с ранее собранной информацией о движении. Если информация о движении текущего блока-кандидата в точности совпадает с ранее собранной информацией о движении, процесс сбора информации о движении текущего блока-кандидата может быть пропущен. В этом примере информацию о движении текущего блока-кандидата можно сравнивать только с информацией о движении блока-кандидата, близкого к текущему блоку-кандидату.
[00111] Например, как показано на фиг.5A, сначала собирается информация о движении блока-кандидата 1. Поскольку блок-кандидат 1 является первым блоком-кандидатом, сравнение не требуется, и информация о движении блока-кандидата 1 собирается непосредственно.
[00112] Затем, когда собирается информация о движении блока-кандидата 2, можно определить, доступен ли блок-кандидат 1. Если он доступен, можно определить, совпадает ли в точности информация о движении блока-кандидата 2 с информацией о движении блока-кандидата 1. Если они в точности совпадают, сбор информации о движении блока-кандидата 2 не выполняется, а если они не совпадают, выполняется сбор информации о движении блока-кандидата 2.
[00113] Затем при сборе информации о движении блока-кандидата 3 можно определить, доступен ли блок-кандидат 2, который близок к блоку-кандидату 3. Если блок-кандидат 2 доступен, можно определить, совпадают ли в точности информация о движении блока-кандидата 3 и информация о движении блока-кандидата 2. Если они в точности совпадают, сбор информации о движении блока-кандидата 3 не выполняется, а если они не совпадают, выполняется сбор информации о движении блока-кандидата 3. Следует отметить, что информация о движении блока-кандидата 3 больше не сравнивается с информацией о движении блока-кандидата 1, который находится далеко от блока-кандидата 3.
[00114] Затем при сборе информации о движении блока-кандидата 4 можно определить, доступен ли блок-кандидат 1, который близок к блоку-кандидату 4. Если блок-кандидат 1 доступен, можно определить, совпадают ли в точности информация о движении блока-кандидата 4 и информация о движении блока-кандидата 1. Если они в точности совпадают, сбор информации о движении блока-кандидата 4 не выполняется, а если они не совпадают, выполняется сбор информации о движении блока-кандидата 4. Следует отметить, что информация о движении блока-кандидата 4 больше не сравнивается с информацией о движении блоков-кандидатов 2 и 3, которые находятся далеко от блока-кандидата 4.
[00115] Затем при сборе информации о движении блока-кандидата 5 можно определить, доступен ли блок-кандидат 1, который близок к блоку-кандидату 5. Если блок-кандидат 1 доступен, можно определить, совпадают ли в точности информация о движении блока-кандидата 5 и информация о движении блока-кандидата 1. Если они в точности совпадают, информация о движении блока-кандидата 5 не собирается. Если они не совпадают, можно определить, доступен ли блок-кандидат 2, который близок к блоку-кандидату 5. Если он доступен, можно определить, совпадают ли в точности информация о движении блока-кандидата 5 и информация о движении блока-кандидата 2. Если они в точности совпадают, сбор информации о движении блока-кандидата 5 не выполняется, а если они не совпадают, выполняется сбор информации о движении блока-кандидата 5. Следует отметить, что информация о движении блока-кандидата 5 больше не сравнивается с информацией о движении блоков-кандидатов 3 и 4, которые находятся далеко от блока-кандидата 5.
[00116] Пример 8. В процессе сбора информации о движении блоков-кандидатов нет необходимости определять, совпадает ли в точности информация о движении текущего блока-кандидата с ранее собранной информацией о движении, но информация о движении текущего блока-кандидата собирается непосредственно. Даже если информация о движении текущего блока-кандидата в точности совпадает с ранее собранной информацией о движении, впоследствии можно выполнять операции проверки дубликатов, чтобы избежать использования одинаковой информации о движении в списке информации о движении первого кандидата.
[00117] Далее будет описан процесс выбора одной информации о движении кандидата из списка информации о движении первого кандидата в качестве первой целевой информации о движении первого треугольного субблока в подходе 1.
[00118] Подход а1. Видеокодер может установить первую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеокодер может установить верхнюю информацию о движении кандидата в списке информации о движении первого кандидата в качестве первой целевой информации о движении первого треугольного субблока по умолчанию. Видеодекодер может установить первую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеодекодер может установить верхнюю информацию о движении кандидата в списке информации о движении первого кандидата в качестве первой целевой информации о движении первого треугольного субблока по умолчанию.
[00119] Подход а2. Видеокодер может определять стоимость искажения скорости, соответствующую каждой информации о движении кандидата в списке информации о движении первого кандидата, и использовать информацию о движении кандидата, соответствующую наименьшей стоимости искажения скорости, в качестве целевой информации о движении первого треугольного субблока. Кодированный битовый поток, отправленный видеокодером в декодер, может нести третью информацию индикации, и третья информация индикации определяет индексное значение первой целевой информации о движении в списке информации о движении первого кандидата. Видеодекодер конфигурирован для получения кодированного битового потока от кодера. Если кодированный битовый поток несет третью информацию индикации, индексное значение используется для получения информации о движении кандидата, соответствующей индексной информации, из списка информации о движении первого кандидата, и информация о движении кандидата определяется как первая целевая информация о движении.
[00120] Далее будет описан процесс выбора другой информации о движении кандидата из списка информации о движении первого кандидата в качестве второй целевой информации о движении второго треугольного субблока в подходе 1.
[00121] Подход b1. Видеокодер может установить вторую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеокодер может установить вторую сверху информацию о движении кандидата в списке информации о движении первого кандидата в качестве второй целевой информации о движении второго треугольного субблока по умолчанию. Видеодекодер может установить вторую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеодекодер может установить вторую сверху информацию о движении кандидата в списке информации о движении первого кандидата в качестве второй целевой информации о движении второго треугольного субблока по умолчанию.
[00122] Подход b2. Видеокодер может исключить первую целевую информацию о движении из списка информации о движении первого кандидата (то есть не выбирать первую целевую информацию о движении в списке информации о движении первого кандидата), и на этой основе видеокодер может определять стоимость искажения скорости, соответствующую каждой информации о движении кандидата, остающейся в списке информации о движении первого кандидата (то есть информации о движении кандидата, остающейся после исключения первой целевой информации о движении), и использовать информацию о движении кандидата, соответствующую минимальной стоимости искажения скорости, в качестве второй целевой информации о движении второго треугольного субблока. Кодированный битовый поток, отправленный видеокодером в декодер, может нести четвертую информацию индикации, которая определяет индексное значение второй целевой информации о движении в списке информации о движении первого кандидата. Видеодекодер конфигурирован для получения кодированного битового потока от кодера. Если кодированный битовый поток несет четвертую информацию индикации, индексное значение используется для выбора информации о движении кандидата, соответствующей индексной информации, из списка информации о движении первого кандидата, и затем информация о движении кандидата определяется как вторая целевая информация о движении.
[00123] Вариант осуществления 6
[00124] На этапе 202 и этапе 302 видеодекодер/видеокодер может получить первую целевую информацию о движении первого треугольного субблока и вторую целевую информацию о движении второго треугольного субблока посредством следующих подходов.
[00125] Подход 2. Создают список информации о движении второго кандидата, соответствующий первому треугольному субблоку, и список информации о движении третьего кандидата, соответствующий второму треугольному субблоку. Список информации о движении второго кандидата включает в себя множество информации о движении кандидата. Список информации о движении третьего кандидата включает в себя множество информации о движении кандидата. Одна информация о движении кандидата выбирается из списка информации о движении второго кандидата в качестве первой целевой информации о движении первого треугольного субблока в качестве первой целевой информации о движении первого треугольного субблока, и одна информация о движении кандидата выбирается из списка информации о движении третьего кандидата в качестве второй целевой информации о движении второго треугольного субблока. Первая целевая информация о движении отличается от второй целевой информации о движении.
[00126] В одном примере, чтобы создать список информации о движении второго кандидата, соответствующий первому треугольному субблоку, могут быть получены первые блоки-кандидаты, соответствующие первому треугольному субблоку, и информация о движении каждого первого блока-кандидата может быть добавлена к списку информации о движении второго кандидата. Если первый блок-кандидат является блоком однонаправленного прогнозирования, информация о движении первого блока-кандидата включает в себя информацию об однонаправленном движении первого блока-кандидата; если первый блок-кандидат является блоком двунаправленного прогнозирования, информация о движении первого блока-кандидата включает в себя первую информацию о движении первого блока-кандидата (то есть L0 информацию о движении первого блока-кандидата) и/или вторую информацию о движении первого блока-кандидата (то есть L1 информацию о движении первого блока-кандидата), но не включает в себя взвешенную информацию о движении из первой информации о движении первого блока-кандидата и второй информации о движении первого блока-кандидата.
[00127] В одном примере, чтобы создать список информации о движении третьего кандидата, соответствующий второму треугольному субблоку, могут быть получены вторые блоки-кандидаты, соответствующие второму треугольному субблоку, и информация о движении каждого второго блока-кандидата может быть добавлена к списку информации о движении третьего кандидата. Если второй блок-кандидат является блоком однонаправленного прогнозирования, информация о движении второго блока-кандидата включает в себя информацию об однонаправленном движении второго блока-кандидата; если второй блок-кандидат является блоком двунаправленного прогнозирования, информация о движении второго блока-кандидата включает в себя первую информацию о движении второго блока-кандидата (то есть L0 информацию о движении второго блока-кандидата) и/или вторую информацию о движении второго блока-кандидата (то есть L1 информацию о движении второго блока-кандидата), но не включает в себя взвешенную информацию о движении из первой информации о движении второго блока-кандидата и вторую информацию о движении второго блока-кандидата.
[00128] Если текущий блок разделен на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода, первый треугольный субблок является треугольным субблоком в верхней правой части, а второй треугольный субблок является треугольным субблоком в нижней левой части. На этой основе первые блоки-кандидаты, соответствующие первому треугольному субблоку, могут включать в себя, но не ограничиваются ими: соседние блоки на верхней стороне текущего блока и блоки-кандидаты во временной области в изображениях, отличных от текущего слайса. Вторые блоки-кандидаты, соответствующие второму треугольному субблоку, могут включать в себя, но не ограничиваются ими: соседние блоки на левой стороне текущего блока и блоки-кандидаты во временной области в других изображениях, отличных от текущего слайса.
[00129] Например, блоки в 5 позициях, показанные на фиг.5B, могут использоваться в качестве первых блоков-кандидатов, соответствующих первому треугольному субблоку, где блок 2, блок 3 и блок 5 являются блоками-кандидатами в текущем слайсе, а блок 6 и блок 7 являются блоками-кандидатами в других изображениях (то есть блоками-кандидатами во временной области). Блоки в 5 положениях, показанные на фиг.5C, могут использоваться в качестве вторых блоков-кандидатов, соответствующих второму треугольному субблоку, где блок 1, блок 4 и блок 5 являются блоками-кандидатами в текущем слайсе, а блок 6 и блок 7 являются блоками-кандидатами в других изображениях (то есть блоками-кандидатами во временной области).
[00130] В одном примере может быть собрана информация о движении блоков-кандидатов. Если блок-кандидат является блоком однонаправленного прогнозирования, информация о движении блока-кандидата включает в себя информацию об однонаправленном движении блока-кандидата; если блок-кандидат является блоком двунаправленного прогнозирования, информация о движении блока-кандидата включает в себя L0 информацию о движении блока-кандидата и/или L1 информацию о движении блока-кандидата, но не включает в себя взвешенную информацию о движении из L0 информации о движении блока-кандидата и L1 информации о движении блока-кандидата.
[00131] В одном примере после сбора информации о движении блоков-кандидатов (как показано на фиг.5B или фиг.5C) собранная информация о движении сортируется в следующем порядке: информация об однонаправленном движении, L0 информация о движении двунаправленного прогнозирования и L1 информация о движении двунаправленного прогнозирования, и собранная информация о движении добавляется в список информации о движении второго кандидата или список информации о движении третьего кандидата одна за другой в соответствии с результатом сортировки. В качестве альтернативы, собранная информация о движении сортируется в следующем порядке: L0 информация о движении двунаправленного прогнозирования, L1 информация о движении двунаправленного прогнозирования и информация об однонаправленном движении, и собранная информация о движении добавляется в список информации о движении второго кандидата или в список информации о движении третьего кандидата одна за другой в соответствии с результатом сортировки.
[00132] В одном примере, каждый раз, когда информация о движении добавляется в список информации о движении второго кандидата или в список информации о движении третьего кандидата, может быть определено, достигло ли количество информации о движении кандидата в списке информации о движении второго кандидата или в списке информации о движении третьего кандидата верхнего предела M. Если количество достигло верхнего предела M, добавление информации о движении отклоняется, и процесс добавления информации о движении завершается; а если количество не достигло верхнего предела M, можно продолжить добавление информации о движении. После того, как текущая информация о движении добавлена, следующая информация о движении добавляется к списку информации о движении второго кандидата или к списку информации о движении третьего кандидата. Значение верхнего предела M может составлять, например, 4.
[00133] В одном примере, каждый раз, когда информация о движении добавляется в список информации о движении второго кандидата или в список информации о движении третьего кандидата, может быть определено, согласуется ли информация о движении с некоторой информацией о движении, которая уже существует в списке информации о движении второго кандидата или в списке информации о движении третьего кандидата. Если такая дублированная информация о движении есть в списке информации о движении второго кандидата или в списке информации о движении третьего кандидата, добавление информации о движении в список информации о движении второго кандидата или в список информации о движении третьего кандидата отклоняется. Если такая информация о движении отсутствует, информация о движении добавляется в список информации о движении второго кандидата или в список информации о движении третьего кандидата. Таким образом, можно избежать дублирования информации о движении в списке информации о движении второго кандидата или в списке информации о движении третьего кандидата. В качестве альтернативы также возможно не определять, дублируется ли информация о движении, которая должна быть добавлена, с некоторой существующей информацией о движении, а непосредственно добавлять информацию о движении в список информации о движении второго кандидата или в список информации о движении третьего кандидата.
[00134] В одном примере, если после того, как вся собранная информация о движении добавлена в список информации о движении второго кандидата или в список информации о движении третьего кандидата, количество информации о движении кандидата в списке информации о движении второго кандидата или в списке информации о движении третьего кандидата будет меньше, чем верхний предел M, то в список информации о движении второго кандидата или в список информации о движении третьего кандидата может быть добавлена нулевая информация о движении.
[00135] В одном примере, когда создается список информации о движении второго кандидата или список информации о движении третьего кандидата, каждый раз, когда должна собираться информация о движении блока-кандидата текущего блока, нет необходимости сравнивать информацию о движении блока-кандидата с информацией о движении, которая была собрана для текущего блока, чтобы увидеть, совпадают ли они, но можно непосредственно собирать информацию о движении блока-кандидата.
[00136] Следует отметить, что примеры с 1 по 8 в вышеупомянутом варианте осуществления 5 также могут применяться к варианту осуществления 6, за исключением того, что список информации о движении первого кандидата заменяется списком информации о движении второго кандидата или списком информации о движении третьего кандидата. Блок-кандидат – это блок-кандидат, показанный на фиг.5B или фиг.5C, вместо блока-кандидата, показанного на фиг.5А. Остальные этапы аналогичны, и подробное описание здесь не приводится.
[00137] Далее будет описан процесс выбора одной информации о движении кандидата из списка информации о движении второго кандидата в качестве первой целевой информации о движении первого треугольного субблока в подходе 2.
[00138] Подход c1. Видеокодер может установить первую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеокодер может установить верхнюю информацию о движении кандидата в списке информации о движении второго кандидата в качестве первой целевой информации о движении первого треугольного субблока по умолчанию. Видеодекодер может установить первую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеодекодер может установить верхнюю информацию о движении кандидата в списке информации о движении второго кандидата в качестве первой целевой информации о движении первого треугольного субблока по умолчанию.
[00139] Подход c2. Видеокодер может определять стоимость искажения скорости, соответствующую каждой информации о движении кандидата в списке информации о движении второго кандидата, и использовать информацию о движении кандидата, соответствующую наименьшей стоимости искажения скорости, в качестве целевой информации о движении первого треугольного субблока. Кодированный битовый поток, отправленный видеокодером в декодер, может нести пятую информацию индикации, и пятая информация индикации определяет индексное значение первой целевой информации о движении в списке информации о движении второго кандидата. Видеодекодер конфигурирован для получения кодированного битового потока от кодера. Если кодированный битовый поток несет пятую информацию индикации, индексное значение, указанное пятой информацией индикации, используется для извлечения соответствующей информации о движении кандидата из списка информации о движении второго кандидата, и информация о движении кандидата используется в качестве первой целевой информации о движении.
[00140] Далее будет описан процесс выбора одной информации о движении кандидата из списка информации о движении третьего кандидата в качестве второй целевой информации о движении второго треугольного субблока в подходе 2.
[00141] Подход d1. Видеокодер может установить вторую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, видеокодер может установить верхнюю информацию о движении кандидата в списке информации о движении третьего кандидата в качестве второй целевой информации о движении второго треугольного субблока по умолчанию. Видеодекодер может установить вторую целевую информацию о движении по умолчанию посредством протокольного соглашения. Например, декодер может установить верхнюю информацию о движении кандидата в списке информации о движении третьего кандидата в качестве второй целевой информации о движении второго треугольного субблока по умолчанию.
[00142] Подход d2. Видеокодер может определять стоимость искажения скорости, соответствующую каждой информации о движении кандидата в списке информации о движении третьего кандидата, и использовать информацию о движении кандидата, соответствующую минимальной стоимости искажения скорости, в качестве второй целевой информации о движении второго треугольного субблока. Кодированный битовый поток, отправленный видеокодером в декодер, может нести шестую информацию индикации, которая определяет индексное значение второй целевой информации о движении в списке информации о движении третьего кандидата. Видеодекодер конфигурирован для получения кодированного битового потока от кодера. Если кодированный битовый поток несет шестую информацию индикации, индексное значение, указанное шестой информацией индикации, используется для извлечения соответствующей информации о движении кандидата из списка информации о движении третьего кандидата, и затем информация о движении кандидата используется в качестве второй целевой информации о движении.
[00143] Вариант осуществления 7
[00144] Если текущий блок разделен на первый треугольный субблок и второй треугольный субблок с помощью первого диагонального метода на этапе 201/этапе 301, то на этапе 202/этапе 302 можно создать список информации о движении первого кандидата, и первая целевая информация о движении и вторая целевая информация о движении определяются на основе списка информации о движении первого кандидата, то есть может быть использован вариант осуществления 5. Если текущий блок разделен на первый треугольный субблок и второй треугольный субблок с помощью второго диагонального метода на этапе 201/этапе 301, то затем на этапе 202/этапе 302 может быть создан список информации о движении второго кандидата, соответствующий первому треугольному субблоку, и список информации о движении третьего кандидата, соответствующий второму треугольному субблоку, причем первая целевая информация о движении определяется на основе списка информации о движении второго кандидата, а вторая целевая информация о движении определяется на основе списка информации о движении третьего кандидата, то есть может быть использован вариант осуществления 6.
[00145] В одном примере, независимо от того, разделен ли текущий блок с помощью первого диагонального метода или текущий блок разделен с помощью второго диагонального метода, может быть использован вариант осуществления 5. В другом примере, если текущий блок разделен с помощью первого диагонального метода, то есть текущий блок разделен в направлении 45 градусов, может быть использован вариант осуществления 5, а верхний предел M равен, например, 4. Если текущий блок разделен с помощью второго диагонального метода, то есть текущий блок разделен в направлении 135 градусов, может быть использован вариант осуществления 6.
[00146] Со ссылкой на вариант осуществления 6, первый треугольный субблок является треугольным субблоком в верхней правой части. Как показано на фиг.5B, первыми блоками-кандидатами первого треугольного субблока являются последовательно блок 2, блок 3, блок 5, блок 6 и блок 7, то есть исключены блок 1 и блок 4, которые находятся дальше от первого треугольного субблока. Как показано на фиг.5C, вторыми блоками-кандидатами второго треугольного субблока являются последовательно блок 1, блок 4, блок 5, блок 6 и блок 7, то есть исключены блок 2 и блок 3, которые находятся дальше от второго треугольного субблока. Кроме того, значение верхнего предела M может быть равно, например, 4.
[00147] В одном примере один бит флага может быть закодирован, чтобы указать, выполняется ли разделение в направлении 45 градусов или 135 градусов. Если разделение выполнено в направлении 45 градусов, индекс комбинаций M*(M-1) может быть закодирован согласно усеченному унарному коду; если разделение выполнено в направлении 135 градусов, индекс комбинаций M*M может быть закодирован согласно усеченному унарному коду. В одном примере, если разделение выполнено в направлении 45 градусов и используется вариант осуществления 5 (то есть первая целевая информация о движении и вторая целевая информация о движении выбираются из списка информации о движении первого кандидата), поскольку имеется M (например, M равно 4) информации о движении кандидата в списке информации о движении первого кандидата, первая целевая информация о движении имеет M (например, M равно 4) возможных вариантов выбора, и после исключения первой целевой информации о движении из списка информации о движении первого кандидата, вторая целевая информация о движении имеет (M-1) возможных вариантов выбора, и, следовательно, индекс информации о движении является индексом M*(M-1) комбинаций. Если разделение выполнено в направлении 135 градусов и используется вариант осуществления 6 (то есть первая целевая информация о движении выбирается из списка информации о движении второго кандидата, а вторая целевая информация о движении выбирается из списка информации о движении третьего кандидата), поскольку имеется M (например, M равно 4) информации о движении кандидата в списке информации о движении второго кандидата, первая целевая информация о движении имеет M возможных вариантов выбора, и поскольку имеется M (например, M равно 4) информации о движении кандидата в списке информации о движении третьего кандидата, вторая целевая информация о движении имеет M возможных вариантов выбора, и, следовательно, индекс информации о движении является индексом M*M комбинаций.
[00148] Вариант осуществления 8
[00149] После получения первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока на основе первой целевой информации о движении и второй целевой информации о движении, на первом треугольном субблоке и втором треугольном субблоке может выполняться компенсация движения с помощью следующих подходов.
[00150] Подход 1. Текущий блок разделяется на множество субблоков, причем ширина каждого субблока может быть больше или равна 2, а высота каждого субблока больше или равна 2. Для каждого субблока, если субблок расположен в первом треугольном субблоке, компенсация движения выполняется на субблоке на основе первой целевой информации о движении первого треугольного субблока, чтобы получить значение прогнозирования субблока; если субблок расположен во втором треугольном субблоке, компенсация движения выполняется на субблоке на основе второй целевой информации о движении второго треугольного субблока, чтобы получить значение прогнозирования субблока; если субблок не расположен полностью ни в первом треугольном субблоке, ни во втором треугольном субблоке (то есть субблок расположен по диагонали, отделяющей первый треугольный субблок от второго треугольного субблока), взвешенная компенсация выполняется на субблоке на основе первой целевой информации о движении первого треугольного субблока и второй целевой информации о движении второго треугольного субблока, чтобы получить значение прогнозирования субблока. Взвешенная компенсация может включать в себя следующие этапы: получение первого значения прогнозирования субблока на основе первой целевой информации о движении; получение второго значения прогнозирования субблока на основе второй целевой информации о движении; и выполнение взвешенной компенсации для субблока на основе первого значения прогнозирования, первого весового коэффициента, соответствующего первому значению прогнозирования, второго значения прогнозирования и второго весового коэффициента, соответствующего второму значению прогнозирования.
[00151] Например, как показано на фиг.6A, текущий блок может быть разделен на субблок 1, субблок 2, субблок 3 и субблок 4. В практических приложениях текущий блок может быть разделен на большее количество субблоков, например, ширина каждого субблока больше или равна 2, а высота каждого субблока больше или равна 2. Далее будет дано описание со ссылкой на разделение субблока, показанное на фиг.6А, в качестве примера.
[00152] Для субблока 2, поскольку субблок 2 расположен в первом треугольном субблоке, первая целевая информация о движении используется для выполнения компенсации движения в субблоке 2 для получения значения прогнозирования. Для субблока 3, поскольку субблок 3 расположен во втором треугольном субблоке, вторая целевая информация о движении используется для выполнения компенсации движения в субблоке 3 для получения значения прогнозирования. Для субблока 1, поскольку субблок 1 не расположен полностью ни в первом треугольном субблоке, ни во втором треугольном субблоке, первое значение P1 прогнозирования субблока 1 определяется на основе первой целевой информации о движении, а второе значение P2 прогнозирования субблока 1 определяется на основе второй целевой информации о движении. Предполагая, что первый весовой коэффициент, соответствующий P1, равен a (например, 0,5), а второй весовой коэффициент, соответствующий P2, равен b (например, 0,5), тогда взвешенная компенсация выполняется на субблоке 1 на основе P1, a, P2 и b. Значение прогнозирования субблока 1 после взвешенной компенсации равно, например, P1*a+P2*b. Компенсация движения для субблока 4 аналогична компенсации движения для субблока 1 и здесь не повторяется.
[00153] Подход 2. Текущий блок разделяется на первую область субблока, вторую область субблока и третью область субблока, где первая область субблока расположена в первом треугольном субблоке, вторая область субблока расположена во втором треугольном субблоке, и расстояние между центром каждого субблока в третьей области субблока и диагональю, отделяющей первый треугольный субблок от второго треугольного субблока, меньше заданного порога. Компенсация движения выполняется на каждом субблоке в первой области субблока на основе первой целевой информации о движении первого треугольного субблока, компенсация движения выполняется на каждом субблоке во второй области субблока на основе второй целевой информации о движении второго треугольного субблока; и взвешенная компенсация выполняется на каждом субблоке в третьей области субблока на основе первой целевой информации о движении и второй целевой информации о движении. Взвешенная компенсация может включать в себя следующие этапы: для каждого субблока в третьей области субблока, определение первого значения прогнозирования субблока на основе первой целевой информации о движении и определение второго значения прогнозирования субблока на основе второй целевой информации о движении; на основе первого значения прогнозирования, первого весового коэффициента, соответствующего первому значению прогнозирования, второго значения прогнозирования и второго весового коэффициента, соответствующего второму значению прогнозирования, выполнение взвешенной компенсации на субблоке, при этом, если субблок расположен или в основном расположен в первом треугольном субблоке, первый весовой коэффициент больше второго весового коэффициента; если субблок расположен или в основном расположен во втором треугольном субблоке, первый весовой коэффициент меньше второго весового коэффициента; если субблок расположен по диагонали, отделяющей первый треугольный субблок от второго треугольного субблока, первый весовой коэффициент равен второму весовому коэффициенту.
[00154] Каждый субблок в третьей области субблока может быть субблоком 1*1, то есть одиночным блоком пикселей, или субблоком N*M, где N может быть больше или равно 1, и M также может быть больше или равно 1.
[00155] Например, как показано на фиг.6B, текущий блок может быть разделен на первую область субблока, вторую область субблока и третью область субблока. Первая область субблока расположена в первом треугольном субблоке и, таким образом, первая целевая информация о движении первого треугольного субблока может использоваться для выполнения компенсации движения на каждом субблоке в первой области субблока, чтобы получить значение прогнозирования. Вторая область субблока расположена во втором треугольном субблоке и, таким образом, вторая целевая информация о движении второго треугольного субблока может использоваться для выполнения компенсации движения на каждом субблоке во второй области субблока, чтобы получить значение прогнозирования. Третья область субблока может включать в себя субблоки с меткой 1, субблоки с меткой 2, субблоки с меткой 4, субблоки с меткой 6 и субблоки с меткой 7.
[00156] Для каждого субблока с меткой 7, который далее будет называться субблоком 7, первое значение P1 прогнозирования субблока 7 может быть определено на основе первой целевой информации о движении, а второе значение P2 прогнозирования субблока 7 может быть определено на основе второй целевой информации о движении. Предполагая, что первый весовой коэффициент, соответствующий P1, равен «a», а второй весовой коэффициент, соответствующий P2, равен «b», значение прогнозирования субблока 7 после взвешенной компенсации может быть равно: P1*a+P2*b. Кроме того, поскольку субблок 7 расположен в первом треугольном субблоке, первый весовой коэффициент «а» больше, чем второй весовой коэффициент «b». Предполагая, что «a» равно 7/8, а «b» равно 1/8, значение прогнозирования субблока 7 после взвешенной компенсации равно P1*7/8+P2*1/8.
[00157] Для каждого субблока с меткой 6, называемого ниже субблоком 6, процесс взвешенной компенсации аналогичен процессу субблока 7. Поскольку субблок 6 расположен в первом треугольном субблоке, первый весовой коэффициент «а» больше, чем второй весовой коэффициент «b». Кроме того, поскольку субблок 6 находится ближе ко второй области субблока, чем субблок 7, первый весовой коэффициент «а» субблока 6 может быть меньше, чем первый весовой коэффициент «а» субблока 7. Например, первый весовой коэффициент «a» субблока 6 равен 6/8, второй весовой коэффициент «b» равен 2/8, а значение прогнозирования субблока 6 после взвешенной компенсации равно P1*6/8+P2*2/8.
[00158] Для каждого субблока с меткой 4, называемого ниже субблоком 4, процесс взвешенной компенсации аналогичен процессу субблока 7. Поскольку субблок 4 расположен по диагонали, отделяющей первый треугольный субблок от второго треугольного субблока, первый весовой коэффициент «а» равен второму весовому коэффициенту «b». Например, «a» равен 4/8, «b» равен 4/8, а значение прогнозирования субблока 4 после взвешенной компенсации равно P1*4/8+P2*4/8.
[00159] Для каждого субблока с меткой 2, называемого ниже субблоком 2, процесс взвешенной компенсации аналогичен процессу субблока 7. Поскольку субблок 2 расположен во втором треугольном субблоке, первый весовой коэффициент «а» меньше, чем второй весовой коэффициент «b». Например, «a» равен 2/8, «b» равен 6/8, а значение прогнозирования субблока 2 после взвешенной компенсации равно P1*2/8+P2*6/8.
[00160] Для каждого субблока с меткой 1, называемого ниже субблоком 1, процесс взвешенной компенсации аналогичен процессу субблока 7. Поскольку субблок 1 расположен во втором треугольном субблоке, первый весовой коэффициент «а» меньше, чем второй весовой коэффициент «b». Кроме того, поскольку субблок 1 находится ближе ко второй области субблока, чем субблок 2, первый весовой коэффициент «а» субблока 1 может быть меньше, чем первый весовой коэффициент «а» субблока 2. Например, первый весовой коэффициент «a» субблока 1 равен 1/8, второй весовой коэффициент «b» равен 7/8, а значение прогнозирования субблока 1 после взвешенной компенсации равно P1*1/8+P2*7/8.
[00161] В приведенном выше примере сумма первого весового коэффициента «а» и второго весового коэффициента «b» каждого субблока равна 1. Чем ближе субблок находится к первой области субблока, тем больше первый весовой коэффициент «а» и меньше второй весовой коэффициент «b». Чем ближе субблок находится ко второй области субблока, тем меньше первый весовой коэффициент «а» и тем больше второй весовой коэффициент «b».
[00162] В одном примере для субблоков в третьей области субблока первый набор весовых коэффициентов может быть конфигурирован для компонентов яркости. Например, в направлении от первой области субблока ко второй области субблока первый весовой коэффициент «а» компонента яркости каждого субблока составляет соответственно 7/8, 6/8, 4/8, 2/8, 1/8 по порядку. Например, как показано на фиг.6B, первый весовой коэффициент «a» компонента яркости субблока 7 равен 7/8, первый весовой коэффициент «a» компонента яркости субблока 6 равен 6/8, первый весовой коэффициент «a» компонента яркости субблока 4 равен 4/8, первый весовой коэффициент «a» компонента яркости субблока 2 равен 2/8, и первый весовой коэффициент «a» компонента яркости субблока 1 равен 1/8.
[00163] В другом примере для субблоков в третьей области субблока второй набор весовых коэффициентов может быть конфигурирован для компонентов яркости. Например, в направлении от первой области субблока ко второй области субблока первый весовой коэффициент «а» компонента яркости каждого субблока составляет соответственно 7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8 по порядку. Например, как показано на фиг.6B, первый весовой коэффициент «a» компонента яркости субблока 7 равен 7/8, первый весовой коэффициент «a» компонента яркости субблока 6 равен 6/8, первый весовой коэффициент «a» компонента яркости субблока 5 (субблок 5 может быть расположен между субблоком 4 и субблоком 6, на фиг.6B субблок 5 не показан) равен 5/8, первый весовой коэффициент «a» компонента яркости субблока 4 равен 4/8, первый весовой коэффициент «a» компонента яркости субблока 3 (субблок 3 может быть расположен между субблоком 2 и субблоком 4, и субблок 3 не показан на фиг.6B) равен 3/8, первый весовой коэффициент «a» компонента яркости субблока 2 равен 2/8, и первый весовой коэффициент «a» компонента яркости субблока 1 равен 1/8. Для вышеупомянутых компонентов яркости первое значение P1 прогнозирования и второе значение P2 прогнозирования являются значениями прогнозирования компонента яркости, а значение прогнозирования P1*a+P2*b после взвешенной компенсации также является значением прогнозирования компонента яркости.
[00164] В одном примере для субблоков в третьей области субблока первый набор весовых коэффициентов может быть конфигурирован для компонентов насыщенности. Например, в направлении от первой области субблока ко второй области субблока первый весовой коэффициент «а» компонента насыщенности каждого субблока составляет соответственно 7/8, 4/8, 1/8 по порядку. Например, как показано на фиг.6C, первый весовой коэффициент «a» компонента насыщенности субблока 7 равен 7/8, первый весовой коэффициент «a» компонента насыщенности субблока 4 равен 4/8, и первый весовой коэффициент «a» компонента насыщенности субблока 1 равен 1/8.
[00165] В другом примере для субблоков в третьей области субблока второй набор весовых коэффициентов может быть конфигурирован для компонентов насыщенности. Например, в направлении от первой области субблока ко второй области субблока первый весовой коэффициент «а» компонента насыщенности каждого субблока составляет соответственно 6/8, 4/8 и 2/8 по порядку. Например, как показано на фиг.6C, первый весовой коэффициент «a» компонента насыщенности субблока 7 равен 6/8, первый весовой коэффициент «a» компонента насыщенности субблока 4 равен 4/8, и первый весовой коэффициент «a» компонента насыщенности субблока 1 равен 2/8. Для компонентов насыщенности первое значение P1 прогнозирования и второе значение P2 прогнозирования являются значениями прогнозирования компонента насыщенности, а значение P1*a+P2*b прогнозирования после взвешенной компенсации также является значением прогнозирования компонента насыщенности.
[00166] Некоторые примеры процесса компенсации движения будут описаны ниже.
[00167] Пример 1. Для компенсации движения текущий блок может быть разделен на первую область субблока, вторую область субблока и третью область субблока. Компенсация движения выполняется для каждого субблока в первой области субблока на основе первой целевой информации о движении первого треугольного субблока. Компенсация движения выполняется на каждом субблоке во второй области субблока на основе второй целевой информации о движении второго треугольного субблока. Осуществление взвешенной компенсации выполняется на каждом субблоке в третьей области субблока на основе первой целевой информации о движении и второй целевой информации о движении.
[00168] В одном примере текущий блок может быть разделен на несколько субблоков M*M (M равно, например, 4). Для каждого субблока M*M, если субблок не находится по диагонали, отделяющей первый треугольный субблок от второго треугольного субблока, информация об однонаправленном движении используется для выполнения компенсации движения на субблоке. В этом случае, если субблок расположен в первом треугольном субблоке, субблок упоминается как первая область субблока, и первая целевая информация о движении используется для компенсации движения; если субблок расположен во втором треугольном субблоке, субблок упоминается как вторая область субблока, и вторая целевая информация о движении используется для компенсации движения. Если субблок расположен по диагонали, отделяющей первый треугольный субблок от второго треугольного субблока, субблок упоминается как третья область субблока, для которой могут использоваться два вида информации об однонаправленном движении (т. е. первая целевая информация о движении и вторая целевая информация о движении) для выполнения взвешенной компенсации. Для конкретных методов расчета веса можно обратиться к приведенным выше примерам.
[00169] Пример 2. Для компенсации движения текущий блок может быть разделен на первую область субблока, вторую область субблока и третью область субблока. Компенсация движения выполняется на каждом субблоке в первой области субблока на основе первой целевой информации о движении первого треугольного субблока. Компенсация движения выполняется на каждом субблоке во второй области субблока на основе второй целевой информации о движении второго треугольного субблока. На основе первой целевой информации о движении и второй целевой информации о движении взвешенная компенсация выполняется на каждом субблоке в третьей области субблока, где используется только один набор весовых коэффициентов: весовые коэффициенты, используемые для компонентов яркости: {7/8, 6/ 8, 4/8, 2/8, 1/8}, весовой коэффициент, используемый для компонентов насыщенности: {7/8, 4/8, 1/8}. Для конкретных методов расчета веса можно обратиться к приведенному выше примеру.
[00170] Пример 3: Для компенсации движения текущий блок может быть разделен на первую область субблока, вторую область субблока и третью область субблока. Компенсация движения выполняется на каждом субблоке в первой области субблока на основе первой целевой информации о движении первого треугольного субблока. Компенсация движения выполняется на каждом субблоке во второй области субблока на основе второй целевой информации о движении второго треугольного субблока. На основе первой целевой информации о движении и второй целевой информации о движении взвешенная компенсация выполняется на каждом субблоке в третьей области субблока, где только один набор весовых коэффициентов может быть конфигурирован для взвешенной компенсации. Например, весовые коэффициенты для компонента яркости конфигурируются следующим образом: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8}, и весовой коэффициент для компонента насыщенности конфигурируется следующим образом: {6/8, 4/8, 2/8}. Для конкретных методов взвешивания можно обратиться к приведенному выше примеру.
[00171] Подход 3. Текущий блок разделяется на первую область субблока, вторую область субблока и третью область субблока, где первая область субблока расположена в первом треугольном субблоке, а вторая область субблока расположена во втором треугольном субблоке, причем расстояние между центром каждого субблока в третьей области субблока и диагональной линией, отделяющей первый треугольный субблок от второго треугольного субблока, меньше заданного порога. Компенсация движения выполняется на каждом субблоке в первой области субблока на основе первой целевой информации о движении. Компенсация движения выполняется на каждом субблоке во второй области субблока на основе второй целевой информации о движении. Компенсация движения выполняется на каждом субблоке в третьей области субблока на основе первой целевой информации о движении или второй целевой информации о движении.
[00172] Например, если информация о размере текущего блока удовлетворяет первому условию (например, ширина текущего блока больше или равна высоте текущего блока), компенсация движения выполняется на каждом субблоке в третьей области субблока на основе первой целевой информации о движении; если информация о размере текущего блока удовлетворяет второму условию (например, ширина текущего блока меньше, чем высота текущего блока), компенсация движения выполняется на каждом субблоке в третьей области субблока на основе второй целевой информация о движении. Однако приведенное выше является только примером, и для определения того, выполнять ли компенсацию движения на основе первой целевой информации о движении или второй целевой информации о движении, также могут использоваться и другие методы.
[00173] Каждый субблок в третьей области субблока может быть субблоком 1*1, то есть одиночным блоком пикселей, или может быть субблоком N*M, где N может быть больше или равно 1, и M также может быть больше или равно 1.
[00174] В этом примере для третьей области субблока вместо использования как первой целевой информации о движении, так и второй целевой информации о движении для компенсации движения на каждом субблоке в третьей области субблока используется первая целевая информация о движении или вторая целевая информация о движении. То есть нет субблоков, которые должны быть подвергнуты компенсации движения с использованием двунаправленного прогнозирования, поэтому взвешенная компенсация не требуется.
[00175] Что касается того, следует ли использовать первую целевую информацию о движении или вторую целевую информацию о движении для выполнения компенсации движения на каждом субблоке в третьей области субблока, это может быть определено любым из следующих способов: (1) с использованием первой целевой информации о движении по умолчанию для выполнения компенсации движения на каждом субблоке в третьей области субблока; (2) с использованием второй целевой информации о движении по умолчанию для выполнения компенсации движения в третьей области субблока; (3) определением на основе размера текущего блока. Например, если ширина текущего блока больше или равна высоте текущего блока, используется первая целевая информация о движении для выполнения компенсации движения на каждом субблоке в третьей области субблока; если ширина текущего блока меньше, чем высота текущего блока, используется вторая целевая информация о движении для выполнения компенсации движения на каждом субблоке в третьей области субблока.
[00176] Вариант осуществления 9
[00177] Видеокодер сначала определяет, удовлетворяет ли текущий блок конкретным условиям для разрешения режима геометрического разделения с треугольным разделением. Если нет, принимается решение не использовать режим геометрического разделения с треугольным разделением, а использовать другой режим. Если да, видеокодер может разрешать режим геометрического разделения с треугольным разделением по умолчанию, или видеокодер может определять, следует ли разрешать режим геометрического разделения с треугольным разделением. Если видеокодер разрешает режим геометрического разделения с треугольным разделением по умолчанию или решает разрешить режим геометрического разделения с треугольным разделением, видеокодер выполняет операцию разделения текущего блока на треугольные субблоки и другие последующие операции в вышеупомянутых связанных примерах; в противном случае эти операции не выполняются.
[00178] Чтобы определить, разрешить ли режим геометрического разделения с треугольным разделением, видеокодер может определять стоимость искажения скорости, соответствующую режиму геометрического разделения с треугольным разделением. Если стоимость искажения скорости, соответствующая режиму геометрического разделения с треугольным разделением, меньше стоимости искажения скорости, соответствующей каждому из других режимов, то может быть определено разрешить режим геометрического разделения с треугольным разделением; в противном случае может быть определено, что режим геометрического разделения с треугольным разделением не разрешен.
[00179] Соответственно, кодированный битовый поток, отправленный видеокодером в декодер, может нести седьмую информацию индикации, где седьмая информация индикации указывает, что режим геометрического разделения с треугольным разделением разрешен.
[00180] Видеодекодер сначала определяет, удовлетворяет ли текущий блок конкретным условиям для разрешения режима геометрического разделения с треугольным разделением. Если нет, принимается решение не использовать режим геометрического разделения с треугольным разделением, а использовать другой режим. Если да, видеодекодер может разрешать режим геометрического разделения с треугольным разделением по умолчанию, или видеодекодер конфигурирован для получения кодированного битового потока из кодера. Если кодированный битовый поток несет седьмую информацию индикации, может быть определено разрешить режим геометрического разделения с треугольным разделением; в противном случае может быть определено, что режим геометрического разделения с треугольным разделением не разрешен. Если видеодекодер разрешает режим геометрического разделения с треугольным разделением по умолчанию или решает разрешить режим геометрического разделения с треугольным разделением, видеодекодер выполняет операцию разделения текущего блока на треугольные субблоки и другие последующие операции в вышеупомянутых связанных примерах; в противном случае эти операции не выполняются.
[00181] Вариант осуществления 10
[00182] Видеокодер/видеодекодер также может хранить первую целевую информацию о движении и вторую целевую информацию о движении следующим образом. Если блок-кандидат, соответствующий первой целевой информации о движении, является блоком однонаправленного прогнозирования, первая целевая информация о движении сохраняется для первого треугольного субблока; если блок-кандидат, соответствующий первой целевой информации о движении, является блоком двунаправленного прогнозирования, первая целевая информация о движении и третья целевая информация о движении сохраняется для первого треугольного субблока, а третья целевая информация о движении является другой информацией о движении блока двунаправленного прогнозирования. Если блок-кандидат, соответствующий второй целевой информации о движении, является блоком однонаправленного прогнозирования, вторая целевая информация о движении сохраняется для второго треугольного субблока; если блок-кандидат, соответствующий второй целевой информации о движении, является блоком двунаправленного прогнозирования, вторая целевая информация о движении и четвертая целевая информация о движении сохраняется для второго треугольного субблока, а четвертая целевая информация о движении является другой информацией о движении двунаправленного блок прогнозирования.
[00183] Например, для первой области субблока, если первая целевая информация о движении первой области субблока является MV1, и MV1 исходит из блока R1 однонаправленного прогнозирования, то есть блок R1 однонаправленного прогнозирования является блоком-кандидатом текущего блока, а список информации о движении включает в себя информацию MV1 о движении блока R1 однонаправленного прогнозирования, и MV1 выбирается в качестве первой целевой информации о движении первой области субблока, тогда MV1 сохраняется для первой области субблока, как показано на фиг.7А. Для второй области субблока, если вторая целевая информация о движении второй области субблока является MV2, и MV2 исходит из блока R2 однонаправленного прогнозирования, то есть блок R2 однонаправленного прогнозирования является блоком-кандидатом текущего блока, и список информации о движении включает в себя информацию MV2 о движении блока R2 однонаправленного прогнозирования, и MV2 выбирается в качестве второй целевой информации о движении второй области субблока, тогда MV2 сохраняется для второй области субблока, как показано на фиг.7А.
[00184] В качестве другого примера для первой области субблока, если первая целевая информация о движении первой области субблока является MV1, и MV1 поступает из блока R3 двунаправленного прогнозирования, то есть блок R3 двунаправленного прогнозирования является блоком-кандидатом текущего блока, и список информации о движении включает в себя информацию MV1 и MV2 о движении блока R3 двунаправленного прогнозирования, и MV1 выбирается в качестве первой целевой информации о движении первой области субблока, тогда MV1 и MV2, а не только M1, сохраняются для первой области субблока, как показано на фиг.7B. Для второй области субблока, если вторая целевая информация о движении второй области субблока является MV3, и MV3 исходит из блока R4 двунаправленного прогнозирования, то есть блок R4 двунаправленного прогнозирования является блоком-кандидатом текущего блока, и список информации о движении включает в себя информацию MV3 и MV4 о движении блока R4 двунаправленного прогнозирования, и MV3 выбирается в качестве второй целевой информации о движении второй области субблока, тогда MV3 и MV4, а не только MV3, сохраняются для второй области субблока, как показано на фиг.7B.
[00185] В приведенных выше примерах, как показано на фиг.7A и 7B, информация о движении может храниться в модуле 4*4.
[00186] Вариант осуществления 11
[00187] Этот пример настоящего раскрытия относится к видеодекодеру. На фиг.8 показана схематическая блок-схема видеодекодера. Как показано на фиг.8, видеодекодер может включать в себя процессор 81 и машиночитаемый носитель 82 информации. Машиночитаемый носитель 82 информации хранит машиноисполняемые инструкции, которые могут быть вызваны процессором 81. Когда процессор 81 вызывает машиноисполняемые инструкции, процессор 81 конфигурирован для осуществления способа декодирования видео согласно вышеупомянутым связанным примерам настоящего раскрытия.
[00188] Пример настоящего раскрытия также относится к видеокодеру. На фиг.9 показана схематическая блок-схема видеокодера. Как показано на фиг.9, видеокодер может включать в себя процессор 91 и машиночитаемый носитель 92 информации. Машиночитаемый носитель 92 информации хранит машиноисполняемые инструкции, которые могут быть вызваны процессором 91. Когда процессор 91 вызывает машиноисполняемые инструкции, процессор 91 конфигурирован для осуществления способа кодирования видео согласно вышеупомянутым связанным примерам настоящего раскрытия.
[00189] Пример настоящего раскрытия также относится к машиночитаемому носителю информации, на котором хранятся компьютерные инструкции, и когда компьютерные инструкции выполняются процессором, процессор может осуществлять способ кодирования/декодирования видео из приведенных выше примеров.
[00190] Машиночитаемый носитель информации может быть электронным, магнитным, оптическим или другим физическим запоминающим устройством и может содержать или хранить информацию, такую как исполняемые инструкции, данные и так далее. Например, машиночитаемый носитель информации может включать в себя энергозависимую память (например, RAM (оперативное запоминающее устройство)), энергонезависимую память (например, флэш-память, накопитель (например, жесткий диск), твердотельный накопитель, оптический накопитель (например, CD-ROM (постоянное запоминающее устройство на компакт-диске), DVD (универсальный цифровой диск) и т. д.) или их комбинацию.
[00191] Системы, устройства, модули или блоки, проиллюстрированные в приведенных выше примерах, могут быть реализованы с помощью компьютерных микросхем или объектов или реализованы продуктами с определенными функциями. Типичное устройство реализации представляет собой электронное устройство, включая, но не ограничиваясь этим: персональный компьютер, портативный компьютер, планшетный компьютер, сотовый телефон, камеру, смартфон, персональный цифровой помощник, медиаплеер, навигационное устройство, устройство приема и отправки электронной почты, игровую консоль, носимое устройство или любую их комбинацию.
[00192] Для удобства описания при описании вышеупомянутого устройства функции разделены на различные модули. Однако при осуществлении настоящего раскрытия функции каждого модуля могут быть реализованы в одном или нескольких программных и/или аппаратных средствах.
[00193] Специалисту в данной области техники будет очевидно, что примеры настоящего раскрытия могут быть предоставлены как способы, системы или компьютерные программные продукты. Следовательно, настоящее раскрытие может принимать форму чисто аппаратной реализации, чисто программной реализации или реализации, объединяющей программное обеспечение и аппаратные средства.
[00194] Настоящее раскрытие описано со ссылкой на структурные схемы и/или блок-схемы способов, устройств (систем) и компьютерных программных продуктов в соответствии с примерами настоящего раскрытия. Следует понимать, что каждый процесс и/или блок в структурной схеме и/или блок-схеме может быть реализован с помощью инструкций компьютерной программы. Эти инструкции компьютерной программы могут быть предоставлены процессору универсального компьютера, специализированного компьютера, встроенного процессора или другого программируемого устройства обработки данных, так что инструкции компьютерной программы выполняются процессором для создания устройства для осуществления функций, указанных в одном или нескольких процессах в структурной схеме и/или в одном или нескольких блоках блок-схемы.
[00195] Приведенные выше описания являются лишь некоторыми примерами настоящего раскрытия и не используются для ограничения настоящего раскрытия. Для специалиста в данной области техники настоящее раскрытие может иметь различные модификации и изменения. Любая модификация, эквивалентная замена, улучшение и т. д., выполненные без выхода за пределы сущности и принципа настоящего раскрытия, должны быть включены в объем правовой охраны формулы изобретения настоящего раскрытия.