СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛА ИЗОБРАЖЕНИЯ Российский патент 2023 года по МПК H04N19/109 H04N19/119 H04N19/503 

Описание патента на изобретение RU2806152C2

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение относится к способу и устройству для кодирования и декодирования видеосигнала.

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

По мере увеличения дисплейных панелей требуется все больше видеоуслуг более высокого качества. Самой большой проблемой видеоуслуг высокой четкости является значительное увеличение объема данных, и для решения этой проблемы активно проводятся исследования по улучшению степени сжатия видео. В качестве иллюстративного примера группа экспертов по кинематографии (MPEG) и группа экспертов по видеокодированию (VCEG) в рамках сектора по стандартизации телекоммуникаций в составе Международного союза электросвязи (ITU-T) сформировали объединенную команду по видеокодированию (JCT-VC) в 2009 году. JCT-VC предложила высокоэффективное видеокодирование (HEVC), которое представляет собой стандарт сжатия видео, имеющий эффективность сжатия примерно вдвое выше, чем эффективность сжатия H.264/AVC, и он одобрен в качестве стандарта 25 января 2013 г. С быстрым развитием видеоуслуг высокой четкости эффективность HEVC постепенно обнаруживает свои ограничения.

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

Целью настоящего изобретения является предоставление способа применения разбиения к блоку кодирования для получения множества блоков предсказания при кодировании/декодировании видеосигнала и устройства для выполнения способа.

Другой целью настоящего изобретения является предоставление способа получения информации о движении каждого из множества блоков предсказания при кодировании/декодировании видеосигнала.

Другой целью настоящего изобретения является предоставление способа получения кандидата на слияние с использованием списка информации о движении между участками при кодировании/декодировании видеосигнала.

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

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

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования может не быть разрешено.

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

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

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению первое значение взвешивания, применяемое к первому отсчету предсказания, может быть определено на основании координаты оси x и координаты оси y отсчета предсказания.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению второе значение взвешивания, применяемое ко второму отсчету предсказания, может быть получено путем вычитания первого значения взвешивания из постоянного значения.

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

Признаки, кратко изложенные выше в отношении настоящего изобретения, являются просто иллюстративными аспектами подробного описания настоящего изобретения, которые будут описаны ниже, и не ограничивают объем настоящего изобретения.

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

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

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

КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ

На фиг. 1 представлена структурная схема, показывающая видеокодер согласно одному варианту осуществления настоящего изобретения.

На фиг. 2 представлена структурная схема, показывающая видеодекодер согласно одному варианту осуществления настоящего изобретения.

На фиг. 3 представлен вид, показывающий базовый элемент кодового дерева согласно одному варианту осуществления настоящего изобретения.

На фиг. 4 представлен вид, показывающий различные типы разбиения блока кодирования.

На фиг. 5 представлен вид, показывающий схему разбиения элемента кодового дерева.

На фиг. 6 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, согласно одному варианту осуществления настоящего изобретения.

На фиг. 7 представлен вид, показывающий нелинейные движения объекта.

На фиг. 8 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, на основании аффинного движения согласно одному варианту осуществления настоящего изобретения.

На фиг. 9 представлен вид, показывающий пример аффинных исходных векторов каждой модели аффинного движения.

На фиг. 10 представлен вид, показывающий пример аффинных векторов подблоков в 4-параметрической модели движения.

На фиг. 11 представлена блок-схема, изображающая процесс получения информации о движении текущего блока с использованием режима слияния.

На фиг. 12 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.

На фиг. 13 представлен вид, показывающий положения опорных отсчетов.

На фиг. 14 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.

На фиг. 15 представлена блок-схема, изображающая процесс обновления списка информации о движении между участками.

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

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

На фиг. 18 представлен вид, показывающий положение иллюстративного подблока.

На фиг. 19 представлен вид, показывающий пример, в котором список информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.

На фиг. 20 представлен вид, показывающий пример, в котором кандидат на слияние между участками, включенный в долговременный список информации о движении, добавляется в список кандидатов на слияние.

На фиг. 21 представлен вид, показывающий пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.

На фиг. 22 представлен вид, показывающий пример, в котором контроль по избыточности опускается для конкретного кандидата на слияние.

На фиг. 23 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения множества элементов предсказания с использованием диагональной линии.

На фиг. 24 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения двух элементов предсказания.

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

На фиг. 26 представлен вид, показывающий соседние блоки, используемые для получения треугольного кандидата на слияние.

На фиг. 27 представлен вид для описания примеров определения доступности соседнего блока для каждого треугольного элемента предсказания.

На фиг. 28 и 29 представлены виды, показывающие примеры получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания.

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

Далее будет подробно описан вариант осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.

Кодирование и декодирование видео выполняется посредством элемента блока. Например, процесс кодирования/декодирования, такой как преобразование, квантование, предсказание, фильтрование в контуре, восстановление и т.п., может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.

Далее блок, подлежащий кодированию/декодированию, будет называться «текущим блоком». Например, текущий блок может представлять блок кодирования, блок преобразования или блок предсказания согласно текущему этапу процесса кодирования/декодирования.

Кроме того, следует понимать, что термин «элемент», используемый в настоящем описании, обозначает базовый элемент для выполнения конкретного процесса кодирования/декодирования, и термин «блок» обозначает массив отсчетов предварительно определенного размера. Если не указано иное, «блок» и «элемент» могут использоваться с одинаковым значением. Например, в варианте осуществления, описанном ниже, следует понимать, что блок кодирования и элемент кодирования имеют одинаковое значение.

На фиг. 1 представлена структурная схема, показывающая видеокодер согласно одному варианту осуществления настоящего изобретения.

Как показано на фиг. 1, устройство 100 кодирования видео может содержать часть 110 для разбиения изображений, части 120 и 125 для предсказания, часть 130 для преобразования, часть 135 для квантования, часть 160 для перестановки, часть 165 для энтропийного кодирования, часть 140 для обратного квантования, часть 145 для обратного преобразования, часть 150 для фильтрации и запоминающее устройство 155.

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

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

Часть 110 для разбиения изображений может применять разбиение к входному изображению для получения по меньшей мере одного элемента обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Часть 110 для разбиения изображений может применять разбиение к изображению для получения совокупности, состоящей из множества элементов кодирования, элементов предсказания и элементов преобразования, и кодировать изображение за счет выбора совокупности элемента кодирования, элемента предсказания и элемента преобразования на основании предварительно определенного критерия (например, функции стоимости).

Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения элементов кодирования в изображении может использоваться структура в виде рекурсивного дерева, такая как структура в виде четверичного дерева. Видео или элемент кодирования, разбитые на разные элементы кодирования с использованием наибольшего элемента кодирования в качестве корня, могут быть разбиты так, чтобы иметь столько же узлов-потомков, сколько разбитых элементов кодирования. Элемент кодирования, который больше не разбивается согласно предварительно определенному ограничению, становится листовым узлом. То есть, если предполагается, что возможно только квадратное разбиение для одного элемента кодирования, один элемент кодирования может быть разбит на не более чем четыре разных элемента кодирования.

Далее в варианте осуществления настоящего изобретения элемент кодирования может использоваться в значении элемента, выполняющего кодирование, или в значении элемента, выполняющего декодирование.

Элемент предсказания может представлять собой элемент, разбитый в форме по меньшей мере одного квадрата, прямоугольника и т.п. одинакового размера в пределах одного элемента кодирования, или он может представлять собой любой элемент предсказания из элементов предсказания, разбитых в пределах одного элемента кодирования, который разбит так, что имеет форму и/или размер, отличающиеся от таковых другого элемента предсказания.

Если элемент кодирования не является наименьшим элементом кодирования, когда генерируется элемент предсказания, который выполняет внутреннее предсказание на основании элемента кодирования, внутреннее предсказание может выполняться без разбиения изображения на множество элементов предсказания N×N.

Части 120 и 125 для предсказания могут содержать часть 120 для предсказания, осуществляемого между изображениями, которая выполняет предсказание, осуществляемое между изображениями, и часть 125 для внутреннего предсказания, которая выполняет внутреннее предсказание. Может быть определено, использовать ли предсказание, осуществляемое между изображениями, или выполнить внутреннее предсказание для элемента предсказания, и определить конкретную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т.д.) согласно каждому способу предсказания. В этом случае элемент обработки для выполнения предсказания может отличаться от элемента обработки для определения способа предсказания и конкретного содержимого. Например, способ предсказания и режим предсказания могут быть определены в элементе предсказания, и предсказание может выполняться в элементе преобразования. Остаточный коэффициент (остаточный блок) между сгенерированным блоком предсказания и первоначальным блоком может быть введен в часть 130 для преобразования. Кроме того, информация о режиме предсказания, информация о векторе движения и т.п., используемые для предсказания, могут быть кодированы посредством части 165 для энтропийного кодирования вместе с остаточным коэффициентом и переданы на декодер. Когда используется конкретный режим кодирования, первоначальный блок может быть кодирован как есть и передан на декодер без генерирования блока предсказания посредством частей 120 и 125 для предсказания.

Часть 120 для предсказания, осуществляемого между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном изображении из изображений перед текущим изображением или после него, и в некоторых случаях она может предсказывать элемент предсказания на основании информации о частичной области, которая была закодирована в текущем изображении. Часть 120 для предсказания, осуществляемого между изображениями, может содержать часть для интерполяции опорного изображения, часть для предсказания движения и часть для компенсации движения.

Часть для интерполяции опорного изображения может принимать информацию об опорном изображении от запоминающего устройства 155 и генерировать информацию об отсчете для целого числа отсчетов или меньше из опорного изображения. В случае отсчета яркости 8-отводный интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрования может использоваться для генерирования информации об отсчете для целого числа отсчетов или меньше посредством элемента, состоящего из 1/4 отсчетов. В случае цветоразностного сигнала 4-отводный интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрования может использоваться для генерирования информации об отсчете для целого числа отсчетов или меньше посредством элемента, состоящего из 1/8 отсчетов.

Часть для предсказания движения может выполнять предсказание движения на основании опорного изображения, интерполированного частью для интерполяции опорного изображения. Различные способы, такие как алгоритм сопоставления блоков на основе полного поиска (FBMA), трехступенчатый поиск (TSS), алгоритм нового трехступенчатого поиска (NTS) и т.п., могут использоваться в качестве способа вычисления вектора движения. Вектор движения может иметь значение вектора движения в виде элемента, состоящего из 1/2 или 1/4 отсчетов, на основании интерполированных отсчетов. Часть для предсказания движения может предсказывать текущий элемент предсказания за счет изменения способа предсказания движения. Различные способы, такие как способ пропуска, способ слияния, способ усовершенствованного предсказания вектора движения (AMVP), способ внутриблочного копирования и т.п., могут использоваться в качестве способа предсказания движения.

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

При внутреннем предсказании режим предсказания может предусматривать режим предсказания, основанный на информации об углах, в котором используется информация об опорном отсчете согласно направлению предсказания, и режим предсказания, не основанный на информации об углах, в котором не используется информация о направлении при выполнении предсказания. Режим для предсказания информации о яркости может отличаться от режима для предсказания информации о цветовой разности, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости или информации о предсказанном сигнале яркости, может использоваться для предсказания информации о цветовой разности.

Если размер элемента предсказания такой же, как размер элемента преобразования, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться для элемента предсказания на основании отсчета на левой стороне, отсчета на верхней левой стороне и отсчета сверху от элемента предсказания. Однако, если размер элемента предсказания отличается от размера элемента преобразования, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться с использованием опорного отсчета на основании элемента преобразования. Кроме того, внутреннее предсказание с использованием разбиения N×N может использоваться только для наименьшего элемента кодирования.

Посредством способа внутреннего предсказания можно генерировать блок предсказания после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному отсчету согласно режиму предсказания. Тип фильтра AIS, применяемого к опорному отсчету, может меняться. Для выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, существующего поблизости от текущего элемента предсказания. Когда режим предсказания текущего элемента предсказания предсказан с использованием информации о режиме, предсказанной из соседнего элемента предсказания, если режимы внутреннего предсказания текущего элемента предсказания такие же, как элемент предсказания поблизости, то информация, указывающая, что режимы предсказания текущего элемента предсказания такие же, как элемент предсказания поблизости, может передаваться с использованием информации о предварительно определенном флаге, и если режимы предсказания текущего элемента предсказания и элемента предсказания поблизости отличаются друг от друга, информация о режиме предсказания текущего блока может быть кодирована за счет выполнения энтропийного кодирования.

Кроме того, может быть сгенерирован остаточный блок, содержащий элемент предсказания, который выполнил предсказание на основании элемента предсказания, сгенерированного частями 120 и 125 для предсказания, и информации об остаточном коэффициенте, которая представляет собой значение разницы элемента предсказания от первоначального блока. Сгенерированный остаточный блок может быть введен в часть 130 для преобразования.

Часть 130 для преобразования может преобразовывать остаточный блок, содержащий первоначальный блок и информацию об остаточном коэффициенте элемента предсказания, сгенерированного посредством частей 120 и 125 для предсказания, с помощью способа преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST). В этом случае основа преобразования DCT содержит по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST содержит DST7. Применять или не применять DCT или DST для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока. Преобразование в отношении остаточного блока может быть пропущено. Может кодироваться флаг, указывающий, пропускать или не пропускать преобразование в отношении остаточного блока. Пропуск преобразования может быть разрешен для остаточного блока, имеющего размер, который меньше, чем пороговое значение, или равняется ему, компонента яркости или компонента цветности при формате 4:4:4.

Часть 135 для квантования может квантовать значения, преобразованные в частотную область посредством части 130 для преобразования. Коэффициенты квантования могут изменяться в зависимости от блока или важности видео. Значение, вычисленное частью 135 для квантования, может быть предоставлено в часть 140 для обратного квантования и часть 160 для перестановки.

Часть 160 для перестановки может выполнять перестановку значений коэффициентов для квантованных остаточных коэффициентов.

Часть 160 для перестановки может изменять коэффициенты двумерной формы блока на одномерную векторную форму посредством способа сканирования коэффициентов. Например, часть 160 для перестановки может сканировать от коэффициентов DC до коэффициентов высокочастотной области с использованием способа зигзагообразного сканирования и менять коэффициенты с приданием им одномерной векторной формы. Согласно размеру элемента преобразования и режиму внутреннего предсказания вместо зигзагообразного сканирования может использоваться вертикальное сканирование в виде сканирования коэффициентов двумерной формы блока в направлении столбцов и горизонтальное сканирование коэффициентов двумерной формы блока в направлении строк. То есть согласно размеру элемента преобразования и режиму внутреннего предсказания может быть определен способ сканирования, который будет использоваться, из зигзагообразного сканирования, сканирования в вертикальном направлении и сканирования в горизонтальном направлении.

Часть 165 для энтропийного кодирования может выполнять энтропийное кодирование на основании значений, вычисленных частью 160 для перестановки. Для энтропийного кодирования могут использоваться различные способы кодирования, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п.

Часть 165 для энтропийного кодирования может кодировать различную информацию, такую как информация об остаточном коэффициенте и информация о типе блока элемента кодирования, информация о режиме предсказания, информация об элементе разбиения, информация об элементе предсказания и информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, которая введена из части 160 для перестановки и частей 120 и 125 для предсказания.

Часть 165 для энтропийного кодирования может выполнять энтропийное кодирование значения коэффициента элемента кодирования, введенного из части 160 для перестановки.

Часть 140 для обратного квантования и часть 145 для обратного преобразования выполняют обратное квантование значений, квантованных посредством части 135 для квантования, и обратное преобразование значений, преобразованных посредством части 130 для преобразования. Остаточный коэффициент, сгенерированный частью 140 для обратного квантования и частью 145 для обратного преобразования, может быть объединен с элементом предсказания, предсказанным посредством части для оценки движения, часть для компенсации движения и части для внутреннего предсказания, включенных в части 120 и 125 для предсказания, для генерирования восстановленного блока.

Часть 150 для фильтрации может содержать по меньшей мере одно из деблочного фильтра, элемента для коррекции смещения и адаптивного контурного фильтра (ALF).

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

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

Адаптивная контурная фильтрация (ALF) может выполняться на основании значения, полученного посредством сравнения восстановленного и отфильтрованного видео с первоначальным видео. После разделения отсчетов, включенных в видео, на предварительно определенные группы, может быть определен один фильтр, который должен применяться к соответствующей группе, и фильтрация может выполняться по-разному для каждой группы. Сигнал яркости, который представляет собой информацию, связанную с тем, применять ли ALF, может передаваться для каждого элемента кодирования (CU), и форма и коэффициент фильтрования фильтра ALF, который должен быть применен, могут варьировать в зависимости от каждого блока. Кроме того, фильтр ALF того же типа (фиксированного типа) может применяться независимо от характеристики применяемого блока.

Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленные посредством части 150 для фильтрации, и восстановленный и сохраненный блок или изображение могут быть предоставлены в части 120 и 125 для предсказания при выполнении предсказания, осуществляемого между изображениями.

На фиг. 2 представлена структурная схема, показывающая видеодекодер согласно одному варианту осуществления настоящего изобретения.

Как показано на фиг. 2, видеодекодер 200 может содержать часть 210 для энтропийного декодирования, часть 215 для перестановки, часть 220 для обратного квантования, часть 225 для обратного преобразования, части 230 и 235 для предсказания, часть 240 для фильтрации и запоминающее устройство 245.

Когда битовый поток видео вводится из видеокодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре работы видеокодера.

Часть 210 для энтропийного декодирования может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре выполнения энтропийного кодирования в части для энтропийного декодирования видеокодера. Например, могут применяться различные способы, соответствующие способу, выполняемому видеокодером, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).

Часть 210 для энтропийного декодирования может декодировать информацию, связанную с внутренним предсказанием и предсказанием, осуществляемым между изображениями, выполняемыми кодером.

Часть 215 для перестановки может выполнять перестановку в отношении битового потока, подвергнутого энтропийному декодированию посредством части 210 для энтропийного декодирования, на основании способа перестановки, выполняемого кодером. Коэффициенты, выраженные в одномерной векторной форме, могут быть восстановлены и переставлены как коэффициенты в двумерной форме блока. Часть 215 для перестановки может принимать информацию, связанную со сканированием коэффициентов, выполняемым частью для кодирования, и выполнять восстановление посредством способа обратного сканирования на основании порядка сканирования, выполняемого соответствующей частью для кодирования.

Часть 220 для обратного квантования может выполнять обратное квантование на основании параметра квантования, предоставленного кодером, и значения коэффициента переставленного блока.

Часть 225 для обратного преобразования может выполнять обратное преобразование в отношении элемента преобразования, т.е., DCT или DST, выполняемое частью для преобразования в отношении результата квантования, выполняемого видеокодером, т.е. обратное DCT или обратное DST. В этом случае основа преобразования DCT может содержать по меньшей мере одно из DCT2 и DCT8, и основа преобразования DST может содержать DST7. Альтернативно, когда преобразование в видеокодере пропускается, часть 225 для обратного преобразования также может не выполнять обратное преобразование. Обратное преобразование может выполняться на основании элемента передачи, определенного видеокодером. Часть 225 для обратного преобразования видеодекодера может выборочно выполнять метод преобразования (например, DCT или DST) согласно множеству фрагментов информации, такой как способ предсказания, размер текущего блока, направление предсказания и т.п.

Части 230 и 235 для предсказания могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, предоставленного энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, предоставленном запоминающим устройством 245.

Как описано выше, если размер элемента предсказания и размер элемента преобразования одинаковы, когда внутреннее предсказание выполняется таким же образом, как операция в видеокодере, внутреннее предсказание выполняется в отношении элемента предсказания на основании отсчета, находящегося на левой стороне, отсчета на верхней левой стороне и отсчета сверху от элемента предсказания. Однако, если размер элемента предсказания и размер элемента преобразования отличаются друг от друга, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться с использованием опорного отсчета на основании элемента преобразования. Кроме того, внутреннее предсказание с использованием разбиения N×N может использоваться только для наименьшего элемента кодирования.

Части 230 и 235 для предсказания могут содержать часть для определения элемента предсказания, часть для предсказания, осуществляемого между изображениями, и часть для внутреннего предсказания. Часть для определения элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, введенная от части 210 для энтропийного декодирования, информация о режиме предсказания для способа внутреннего предсказания, информация, относящаяся к предсказанию движения для способа предсказания, осуществляемого между изображениями, и т.п., идентифицировать элемент предсказания из текущего элемента кодирования и определять, выполняет элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Часть 230 для предсказания, осуществляемого между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно изображение из изображений до или после текущего изображения, включая текущий элемент предсказания, за счет использования информации, необходимой для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленного видеокодером. Альтернативно часть 230 для предсказания, осуществляемого между изображениями, может выполнять предсказание, осуществляемое между изображениями, на основании информации о частичной области, ранее восстановленной в текущем изображении, содержащем текущий элемент предсказания.

Для выполнения предсказания, осуществляемого между изображениями, можно определить на основании элемента кодирования, является способ предсказания движения элемента предсказания, включенного в соответствующий элемент кодирования, режимом пропуска, режимом слияния, режимом предсказания вектора движения (режимом AMVP) или режимом внутриблочного копирования.

Часть 235 для внутреннего предсказания может генерировать блок предсказания на основании информации об отсчете в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, который выполнил внутреннее предсказание, внутреннее предсказание может быть выполнено на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленного видеокодером. Часть 235 для внутреннего предсказания может содержать фильтр адаптивного внутреннего сглаживания (AIS), часть для интерполяции опорного отсчета и фильтр DC. Фильтр AIS представляет собой часть, которая выполняет фильтрацию в отношении опорного отсчета текущего блока, и может определять, применять ли фильтр согласно режиму предсказания текущего элемента предсказания, и применять фильтр. Фильтрация AIS может выполняться в отношении опорного отсчета текущего блока за счет использования режима предсказания и информации о фильтре AIS элемента предсказания, предоставленного видеокодером. Когда режим предсказания текущего блока представляет собой режим, который не выполняет фильтрацию AIS, фильтр AIS может не применяться.

Когда режим предсказания элемента предсказания представляет собой элемент предсказания, который выполняет внутреннее предсказание на основании значения отсчета, полученного за счет интерполяции опорного отсчета, часть для интерполяции опорного отсчета может генерировать опорный отсчет элемента, состоящего из отсчетов, который имеет целое значение или меньше за счет интерполяции опорного отсчета. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, который генерирует блок предсказания без интерполяции опорного отсчета, опорный отсчет может не быть интерполирован. Фильтр DC может генерировать блок предсказания посредством фильтрации, когда режим предсказания текущего блока представляет собой режим DC.

Восстановленный блок или изображение могут быть предоставлены в часть 240 для фильтрации. Часть 240 для фильтрации может содержать деблочный фильтр, элемент для коррекции смещения и ALF.

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

Элемент для коррекции смещения может выполнять коррекцию смещения в отношении восстановленного видео на основании типа коррекции смещения и информации о значении смещения, применяемых к видео при выполнении кодирования.

ALF может применяться к элементу кодирования на основании информации о том, следует или нет применять ALF, и информации о коэффициентах ALF, предоставленной кодером. Информация об ALF может быть предоставлена для включения в набор конкретных параметров.

Запоминающее устройство 245 может хранить восстановленное изображение или блок и использовать их в качестве опорного изображения или опорного блока и может предоставлять восстановленное изображение на элемент вывода.

На фиг. 3 представлен вид, показывающий базовый элемент кодового дерева согласно одному варианту осуществления настоящего изобретения.

Блок кодирования максимального размера может быть определен как блок кодового дерева. Изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева представляет собой элемент кодирования, имеющий максимальный размер, и может называться большим элементом кодирования (LCU). На фиг. 3 представлен пример, в котором изображение разбивается на множество элементов кодового дерева.

Размер элемента кодового дерева может быть определен на уровне изображения или уровне последовательности. Для этого информация, указывающая размер элемента кодового дерева, может быть передана посредством набора параметров изображения или набора параметров последовательности.

Например, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно на уровне изображения любой размер из 128×128 и 256×256 может быть определен как размер элемента кодового дерева. Например, размер элемента кодового дерева может быть установлен равным 128×128 в первом изображении, и размер элемента кодового дерева может быть установлен равным 256×256 во втором изображении.

Блоки кодирования могут быть сгенерированы посредством разбиения элемента кодового дерева. Блок кодирования указывает базовый элемент для выполнения кодирования/декодирования. Например, предсказание или преобразование может выполняться для каждого блока кодирования, или режим кодирования с предсказанием может быть определен для каждого блока кодирования. В данном случае режим кодирования с предсказанием указывает способ генерирования изображения предсказания. Например, режим кодирования с предсказанием может включать предсказание в пределах изображения (внутреннее предсказание), предсказание между изображениями (предсказание, осуществляемое между изображениями), привязку к текущему изображению (CPR), или внутриблочное копирование (IBC), или комбинированное предсказание. Для блока кодирования блок предсказания может быть сгенерирован за счет использования по меньшей мере одного режима кодирования с предсказанием из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению и комбинированного предсказания.

Информация, указывающая режим кодирования с предсказанием текущего блока, может передаваться посредством битового потока. Например, информация может представлять собой 1-битный флаг, указывающий, является режим кодирования с предсказанием внутренним режимом или режимом, осуществляемым между изображениями. Только когда режим кодирования с предсказанием текущего блока определен как режим, осуществляемый между изображениями, может использоваться привязка к текущему изображению или комбинированное предсказание.

Привязка к текущему изображению предназначена для установления текущего изображения как опорного изображения и получения блока предсказания текущего блока из области, которая уже была кодирована/декодирована в текущем изображении. В данном случае текущее изображение означает изображение, содержащее текущий блок. Информация, указывающая, применяется ли привязка к текущему изображению к текущему блоку, может быть передана посредством битового потока. Например, информация может представлять собой 1-битный флаг. Когда флаг является истинным, режим кодирования с предсказанием текущего блока может быть определен как привязка к текущему изображению, а когда флаг является ложным, режим предсказания текущего блока может быть определен как предсказание, осуществляемое между изображениями.

Альтернативно режим кодирования с предсказанием текущего блока может быть определен на основании индекса опорного изображения. Например, когда индекс опорного изображения указывает текущее изображение, режим кодирования с предсказанием текущего блока может быть определен как привязка к текущему изображению. Когда индекс опорного изображения указывает изображение, отличающееся от текущего изображения, режим кодирования с предсказанием текущего блока может быть определен как предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, использующий информацию об области, в которой было осуществлено кодирование/декодирование, в текущем изображении, и предсказание, осуществляемое между изображениями, представляет собой способ предсказания, использующий информацию о другом изображении, в котором было осуществлено кодирование/декодирование.

Комбинированное предсказание представляет режим кодирования, в котором объединены два или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и текущего опорного изображения. Например, при применении комбинированного предсказания первый блок предсказания может быть сгенерирован на основании одно из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого из них. При генерировании первого блока предсказания и второго блока предсказания, конечный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенного суммирования первого блока предсказания и второго блока предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг.

На фиг. 4 представлен вид, показывающий различные типы разбиения блока кодирования.

Блок кодирования может быть разбит на множество блоков кодирования на основании разбиения на основе четверичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева. Разбитый блок кодирования может быть разбит снова на множество блоков кодирования на основании разбиения на основе четверичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева.

Разбиение на основе четверичного дерева относится к методу разбиения, который разбивает текущий блок на четыре блока. В результате разбиения на основе четверичного дерева текущий блок может быть разбит на четыре раздела квадратной формы (см. «SPLIT_QT» на фиг. 4 (a)).

Разбиение на основе двоичного дерева относится к методу разбиения, который разбивает текущий блок на два блока. Разбиение текущего блока на два блока вдоль вертикального направления (т.е. с использованием вертикальной линии, пересекающей текущий блок) может называться разбиением на основе двоичного дерева в вертикальном направлении, и разбиение текущего блока на два блока вдоль горизонтального направления (т.е. с использованием горизонтальной линии, пересекающей текущий блок) может называться разбиением на основе двоичного дерева в горизонтальном направлении. В результате разбиения на основе двоичного дерева текущий блок может быть разбит на два раздела неквадратной формы. «SPLIT_BT_VER» на фиг. 4 (b) представляет результат разбиения на основе двоичного дерева в вертикальном направлении, а «SPLIT_BT_HOR» на фиг. 4 (c) представляет результат разбиения на основе двоичного дерева в горизонтальном направлении.

Разбиение на основе троичного дерева относится к методу разбиения, который разбивает текущий блок на три блока. Разбиение текущего блока на три блока вдоль вертикального направления (т.е. с использованием двух вертикальных линий, пересекающих текущий блок) может называться разбиением на основе троичного дерева в вертикальном направлении, и разбиение текущего блока на три блока вдоль горизонтального направления (т.е. с использованием двух горизонтальных линий, пересекающих текущий блок) может называться разбиением на основе троичного дерева в горизонтальном направлении. В результате разбиения на основе троичного дерева текущий блок может быть разбит на три раздела неквадратной формы. В этом случае ширина/высота раздела, расположенного в центре текущего блока, может быть вдвое больше ширины/высоты других разделов. «SPLIT_TT_VER» на фиг. 4 (d) представляет результат разбиения на основе троичного дерева в вертикальном направлении, а «SPLIT_TT_HOR» на фиг. 4 (e) представляет результат разбиения на основе троичного дерева в горизонтальном направлении.

Количество разбиений элемента кодового дерева может быть определено как глубина разбиения. Максимальная глубина разбиения элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Соответственно, максимальная глубина разбиения элемента кодового дерева может отличаться для каждой последовательности или изображения.

Альтернативно максимальная глубина разбиения для каждого метода разбиения может быть определена отдельно. Например, максимальная глубина разбиения, допускаемая для разбиения на основе четверичного дерева, может быть отличной от максимальной глубины разбиения, допускаемой для разбиения на основе двоичного дерева и/или разбиения на основе троичного дерева.

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

На фиг. 5 представлен вид, показывающий схему разбиения элемента кодового дерева.

Разбиение блока кодирования с использованием такого метода разбиения, как разбиение на основе четверичного дерева, разбиение на основе двоичного дерева и/или разбиение на основе троичного дерева, может называться разбиением на основе нескольких деревьев.

Блоки кодирования, сгенерированные путем применения разбиения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина разбиения блока кодирования представляет собой k, глубина разбиения нижних блоков кодирования установлена равной k+1.

И, с другой стороны, для блоков кодирования, имеющих глубину разбиения k + 1, блок кодирования, имеющий глубину разбиения k, может называться верхним блоком кодирования.

Тип разбиения текущего блока кодирования может быть определен на основании по меньшей мере одного из типа разбиения верхнего блока кодирования и типа разбиения соседнего блока кодирования. В данном случае соседний блок кодирования представляет собой блок кодирования, смежный с текущим блоком кодирования, и может включать по меньшей мере один из верхнего соседнего блока и левого соседнего блока текущего блока кодирования, и соседний блок, смежный с верхним левым углом. В данном случае тип разбиения может включать по меньшей мере одно из следующего: применялось ли разбиение на основе четверичного дерева, применялось ли разбиение на основе двоичного дерева, направление разбиения на основе двоичного дерева, применялось ли разбиение на основе троичного дерева и направление разбиения на основе троичного дерева.

Чтобы определить тип разбиения блока кодирования, информация, указывающая то, может ли быть разбит блок кодирования, может быть передана посредством битового потока. Информация представляет собой 1-битный флаг «split_cu_flag», и, когда флаг является истинным, она указывает, что блок кодирования разбит с помощью метода разбиения на основе четверичного дерева.

Когда split_cu_flag является истинным, информация, указывающая то, разбит ли блок кодирования на основе четверичного дерева, может быть передана посредством битового потока. Информация представляет собой 1-битный флаг в виде split_qt_flag, и, когда флаг является истинным, блок кодирования может быть разбит на четыре блока.

Например, в примере, показанном на фиг. 5, когда элемент кодового дерева разбит на основе четверичного дерева, генерируются четыре блока кодирования, имеющие глубину разбиения 1. Кроме того, показано, что разбиение на основе четверичного дерева применяется снова к первому и четвертому блокам кодирования из четырех блоков кодирования, сгенерированных в результате разбиения на основе четверичного дерева. В результате могут быть сгенерированы четыре блока кодирования, имеющие глубину разбиения 2.

Кроме того, блоки кодирования, имеющие глубину разбиения, равную 3, могут быть сгенерированы путем повторного применения разбиения на основе четверичного дерева к блоку кодирования, имеющему глубину разбиения, равную 2.

Когда разбиение на основе четверичного дерева не применяется к блоку кодирования, может быть определено то, выполняется ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, с учетом по меньшей мере одного из следующего: размера блока кодирования, расположен ли блок кодирования на границе изображения, максимальной глубины разбиения и типа разбиения соседнего блока. Когда определено, что следует выполнить разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, информация, указывающая направление разбиения, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг в виде mtt_split_cu_vertical_flag. На основании флага может быть определено, является направление разбиения вертикальным направлением или горизонтальным направлением. Дополнительно информация, указывающая то, применено ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева к блоку кодирования, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг в виде mtt_split_cu_binary_flag. На основании флага может быть определено то, применено ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева к блоку кодирования.

Например, в примере, показанном на фиг. 5, показано, что разбиение на основе двоичного дерева в вертикальном направлении применено к блоку кодирования, имеющему глубину разбиения, равную 1, разбиение на основе троичного дерева в вертикальном направлении применено к левому блоку кодирования из блоков кодирования, сгенерированных в результате разбиения, и разбиение на основе двоичного дерева в вертикальном направлении применено к правому блоку кодирования.

Предсказание, осуществляемое между изображениями, представляет собой режим кодирования с предсказанием, который предсказывает текущий блок путем использования информации о предшествующем изображении. Например, блок в том же положении, что и текущий блок в предшествующем изображении (далее - совмещаемый блок), может быть установлен как блок предсказания текущего блока. Далее блок предсказания, сгенерированный на основании блока в том же положении, что и текущий блок, будет называться совмещаемым блоком предсказания.

С другой стороны, когда объект, находящийся в предшествующем изображении, переместился в другое положение в текущем изображении, текущий блок может быть эффективным образом предсказан путем использования движения объекта. Например, когда направление движения и размер объекта можно узнать путем сравнения предшествующего изображения и текущего изображения, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный путем использования информации о движении, может называться блоком предсказания движения.

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

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

Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса. Вектор движения указывает направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает любое из однонаправленного предсказания L0, однонаправленного предсказания L1 и двунаправленного предсказания (предсказания L0 и предсказания L1). Согласно направлению предсказания текущего блока может использоваться по меньшей мере одно из информации о движении в направлении L0 и информации о движении в направлении L1. Двунаправленный весовой индекс указывает значение взвешивания, примененное к блоку предсказания L0, и значение взвешивания, примененное к блоку предсказания L1.

На фиг. 6 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, согласно одному варианту осуществления настоящего изобретения.

Как показано на фиг. 6, способ предсказания, осуществляемого между изображениями, включает этапы определения (S601) режима предсказания, осуществляемого между изображениями, текущего блока, получения (S602) информации о движении текущего блока согласно определенному режиму предсказания, осуществляемого между изображениями, и выполнения (S603) предсказания с компенсацией движения для текущего блока на основании полученной информации о движении.

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

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

На фиг. 7 представлен вид, показывающий нелинейные движения объекта.

Нелинейное движение объекта может быть сгенерировано в видео. Например, как показано в примере на фиг. 7, может происходить такое нелинейное движение объекта, как приближение, отдаление, поворот, аффинное преобразование и т.п. камеры. Когда происходит нелинейное движение объекта, движение объекта не может быть эффективно выражено с помощью вектора поступательного движения. Соответственно, эффективность кодирования может быть улучшена за счет использования аффинного движения вместо поступательного движения в области, где происходит нелинейное движение объекта.

На фиг. 8 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, на основании аффинного движения согласно одному варианту осуществления настоящего изобретения.

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

Когда метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, применяется к текущему блоку, может быть определена (S1101 → S801) модель аффинного движения текущего блока. Модель аффинного движения может быть определена как по меньшей мере одна из шестипараметрической модели аффинного движения и четырехпараметрической модели аффинного движения. Шестипараметрическая модель аффинного движения выражает аффинное движение с использованием шести параметров, а четырехпараметрическая модель аффинного движения выражает аффинное движение с использованием четырех параметров.

Уравнение 1 выражает аффинное движение с использованием шести параметров. Аффинное движение представляет поступательное движение для предварительно определенной области, определенной аффинными исходными векторами.

[Уравнение 1]

Когда аффинное движение выражено с использованием шести параметров, может быть выражено сложное движение. Однако, поскольку увеличивается количество битов, необходимых для кодирования каждого из параметров, эффективность кодирования может снижаться. Соответственно, аффинное движение может быть выражено с использованием четырех параметров. Уравнение 2 выражает аффинное движение с использованием четырех параметров.

[Уравнение 2]

Информация для определения модели аффинного движения текущего блока может быть кодирована и передана посредством битового потока. Например, информация может представлять собой 1-битный флаг в виде «affine_type_flag». Когда значение флага равно 0, это может указывать, что применяется 4-параметрическая модель аффинного движения, а когда значение флага равно 1, это может указывать, что применяется 6-параметрическая модель аффинного движения. Флаг может быть кодирован посредством элемента в виде слайса, тайла или блока (например, посредством элемента блока кодирования или кодового дерева). Когда флаг передается на уровне слайса, модель аффинного движения, определенная на уровне слайса, может применяться ко всем блокам, принадлежащим к слайсу.

Альтернативно модель аффинного движения текущего блока может быть определена на основании аффинного режима предсказания, осуществляемого между изображениями, текущего блока. Например, когда применяется аффинный режим слияния, модель аффинного движения текущего блока может быть определена как 4-параметрическая модель движения. С другой стороны, когда применяется режим предсказания вектора аффинного движения, информация для определения модели аффинного движения текущего блока может быть кодирована и передана посредством битового потока. Например, когда режим предсказания вектора аффинного движения применяется к текущему блоку, модель аффинного движения текущего блока может быть определена на основании 1-битного флага в виде «affine_type_flag».

Затем может быть получен (S1102 → S802) аффинный исходный вектор текущего блока. Когда выбрана 4-параметрическая модель аффинного движения, могут быть получены векторы движения в двух контрольных точках текущего блока. С другой стороны, когда выбрана 6-параметрическая модель аффинного движения, могут быть получены векторы движения в трех контрольных точках текущего блока. Вектор движения в контрольной точке может называться аффинным исходным вектором. Контрольная точка может включать по меньшей мере один из верхнего левого угла, верхнего правого угла и нижнего левого угла текущего блока.

На фиг. 9 представлен вид, показывающий пример аффинных исходных векторов каждой модели аффинного движения.

В 4-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для двух из верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как показано в примере на фиг. 9(a), когда выбрана 4-параметрическая модель аффинного движения, аффинный вектор может быть получен путем использования аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x1, y1)) и аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)). Также можно использовать аффинный исходный вектор для нижнего левого угла вместо аффинного исходного вектора для верхнего левого угла, или использовать аффинный исходный вектор для нижнего левого угла вместо аффинного исходного вектора для верхнего правого угла.

В 6-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как показано в примере на фиг. 9(b), когда выбрана 6-параметрическая модель аффинного движения, аффинный вектор может быть получен путем использования аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x1, y1)), аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)) и аффинного исходного вектора sv2 для верхнего левого угла текущего блока (например, верхний левый отсчет (x2, y2)).

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

Кроме того, в 6-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки, верхней правой контрольной точки и нижней левой контрольной точки будут называться первым аффинным исходным вектором, вторым аффинным исходным вектором и третьим аффинным исходным вектором соответственно. В вариантах осуществления, в которых используется первый аффинный исходный вектор, второй аффинный исходный вектор и третий аффинный исходный вектор, описанные ниже, по меньшей мере один из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора может быть заменен аффинным исходным вектором нижней правой контрольной точки (четвертым аффинным исходным вектором).

Аффинный вектор может быть получен (S803) для каждого подблока за счет использования аффинных исходных векторов. В данном случае аффинный вектор представляет вектор поступательного движения, полученный на основании аффинных исходных векторов. Аффинный вектор подблока может называться аффинным вектором движения подблока или вектором движения подблока.

На фиг. 10 представлен вид, показывающий пример аффинных векторов подблоков в 4-параметрической модели движения.

Аффинный вектор подблока может быть получен на основании положения контрольной точки, положения подблока и аффинного исходного вектора. Например, в уравнении 3 показан пример получения аффинного вектора подблока.

[Уравнение 3]

В уравнении 3 (x, y) обозначают положение подблока. В данном случае положение подблока указывает положение опорного отсчета, включенного в подблок. Опорный отсчет может представлять собой отсчет, расположенный в верхнем левом углу подблока, или отсчет, у которого по меньшей мере одна из координат по оси x и оси y представляет собой центральную точку. (x0, y0) обозначает положение первой контрольной точки и (sv0x, sv0y) обозначает первый аффинный исходный вектор. Кроме того, (x1, y1) обозначает положение второй контрольной точки и (sv1x, sv1y) обозначает второй аффинный исходный вектор.

Когда первая контрольная точка и вторая контрольная точка соответствуют верхнему левому углу и верхнему правому углу текущего блока соответственно, x1-x0 может быть установлено на значение, равное ширине текущего блока.

После этого может быть выполнено (S1104 → S804) предсказание с компенсацией движения для каждого подблока с использованием аффинного вектора каждого подблока. В результате выполнения предсказания с компенсацией движения может быть сгенерирован блок предсказания для каждого подблока. Блоки предсказания подблоков могут быть установлены как блоки предсказания текущего блока.

Затем способ предсказания, осуществляемого между изображениями, использующий информацию о поступательном движении, будет описан подробно.

Информация о движении текущего блока может быть получена из информации о движении другого блока. В данном случае другой блок может представлять собой блок, кодированный/декодированный путем предсказания, осуществляемого между изображениями, перед текущим блоком. Установка информации о движении текущего блока равной информации о движении другого блока может быть определена как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть определена в качестве режима предсказания вектора движения.

На фиг. 11 представлена блок-схема, изображающая процесс получения информации о движении текущего блока с использованием режима слияния.

Может быть получен (S1101) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, кодированного/декодированного путем предсказания, осуществляемого между изображениями, перед текущим блоком.

На фиг. 12 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.

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

Соседний опорный отсчет может быть включен в соседний столбец самого левого столбца текущего блока или соседнюю строку самой верхней строки текущего блока. Например, когда координаты верхнего левого отсчета текущего блока составляют (0, 0), по меньшей мере один из блока, содержащего опорный отсчет в положении (-1, H-1), блока, содержащего опорный отсчет в положении (W-1, -1), блока, содержащего опорный отсчет в положении (W, -1), блока, содержащего опорный отсчет в положении (-1, H), и блока, содержащего опорный отсчет в положении (-1, -1), может использоваться в качестве кандидатного блока. Обращаясь к графическим материалам, соседние блоки индекса 0-4 могут использоваться в качестве кандидатных блоков.

Несоседний опорный отсчет представляет отсчет, в котором по меньшей мере одно из расстояния по оси x и расстояния по оси y от опорного отсчета, смежного с текущим блоком, имеет предварительно заданное значение. Например, по меньшей мере один из блока, содержащего опорный отсчет, в котором расстояние по оси x от левого опорного отсчета представляет собой предварительно заданное значение, блока, содержащего несоседний отсчет, в котором расстояние по оси y от верхнего опорного отсчета представляет собой предварительно заданное значение, и блока, содержащего несоседний отсчет, в котором расстояние по оси x и расстояние по оси y от верхнего левого опорного отсчета представляют собой предварительно заданные значения, может использоваться в качестве кандидатного блока. Предварительно заданные значения могут представлять собой натуральное число, такое как 4, 8, 12, 16 или т.п. Обращаясь к графическим материалам, по меньшей мере один из блоков индекса 5-26 может использоваться в качестве кандидатного блока.

Отсчет, не расположенный на одинаковой вертикальной линии, горизонтальной линии или диагональной линии в качестве соседнего опорного отсчета, может быть установлен в качестве несоседнего опорного отсчета.

На фиг. 13 представлен вид, показывающий положения опорных отсчетов.

Как показано в примере на фиг. 13, координаты x верхних несоседних опорных отсчетов могут быть установлены отличающимися от координат x верхних соседних опорных отсчетов. Например, когда положение верхнего соседнего опорного отсчета составляет (W-1, -1), положение верхнего несоседнего опорного отсчета, отдаленного вплоть до N от верхнего соседнего опорного отсчета на оси y, может быть установлено на ((W/2)-1, -1-N), и положение верхнего несоседнего опорного отсчета, отдаленного вплоть до 2N от верхнего соседнего опорного отсчета на оси y, может быть установлено на (0, -1-2N). То есть положение несмежного опорного отсчета может быть определено на основании положения смежного опорного отсчета и расстояния от смежного опорного отсчета.

Далее кандидатный блок, содержащий соседний опорный отсчет, из кандидатных блоков называется соседним блоком, и блок, содержащий несоседний опорный отсчет, называется несоседним блоком.

Когда расстояние между текущим блоком и кандидатным блоком больше, чем пороговое значение или равняется ему, кандидатный блок может быть установлен недоступным в качестве кандидата на слияние. Пороговое значение может быть определено на основании размера элемента кодового дерева. Например, пороговое значение может быть установлено равным высоте (ctu_height) элемента кодового дерева или значению, полученному путем сложения смещения с высотой (например, ctu_height ± N) элемента кодового дерева или вычитания смещения из нее. Смещение N представляет собой значение, предварительно заданное в кодере и декодере, и может быть установлено равным 4, 8, 16, 32 или ctu_height.

Когда разница между координатой по оси y текущего блока и координатой по оси y отсчета, включенного в кандидатный блок, больше, чем пороговое значение, кандидатный блок может быть определен недоступным в качестве кандидата на слияние.

Альтернативно кандидатный блок, который не принадлежит к такому же элементу кодового дерева в качестве текущего блока, может быть установлен недоступным в качестве кандидата на слияние. Например, когда опорный отсчет отклоняется от верхней границы элемента кодового дерева, к которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен недоступным в качестве кандидата на слияние.

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

На фиг. 14 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.

Как показано в примере на фиг. 14, верхние блоки, принадлежащие к верхним столбцам блоков N текущего блока, и левые блоки, принадлежащие к левым столбцам блоков M текущего блока, могут быть установлены в качестве кандидатных блоков. В этом случае количество левых кандидатных блоков может быть установлено большим, чем количество верхних кандидатных блоков, путем установки M больше, чем N.

Например, разница между координатой по оси y опорного отсчета в текущем блоке и координатой по оси y верхнего блока, который может использоваться в качестве кандидатного блока, может быть установлена такой, что не превышает в N раз высоту текущего блока. Кроме того, разница между координатой по оси x опорного отсчета в текущем блоке и координатой по оси x левого блока, который может использоваться в качестве кандидатного блока, может быть установлена такой, что не превышает в M раз ширину текущего блока.

Например, в примере, показанном на фиг. 14, показано, что блоки, принадлежащие к верхним двум столбцам блоков текущего блока, и блоки, принадлежащие к левым пяти столбцам блоков текущего блока, устанавливаются в качестве кандидатных блоков.

Кандидат на слияние может также быть получен на основании временного соседнего блока, включенного в изображение, отличающегося от текущего блока. Например, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение.

Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. Например, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.

Может генерироваться (S1102) список кандидатов на слияние, содержащий кандидатов на слияние. Кандидаты на слияние могут быть разделены на смежного кандидата на слияние, полученного из соседнего блока, смежного с текущим блоком, и несмежного кандидата на слияние, полученного из несоседнего блока.

Индексы кандидатов на слияние в списке кандидатов на слияние могут быть присвоены в предварительно определенном порядке. Например, индекс, присвоенный смежному кандидату на слияние, может иметь значение, меньше чем в индексе, присвоенном несмежному кандидату на слияние. Альтернативно индекс может быть присвоен каждому из кандидатов на слияние на основании индекса каждого блока, показанного на фиг. 12 или 14.

Когда множество кандидатов на слияние включены в список кандидатов на слияние, может быть выбран (S1103) по меньшей мере один из множества кандидатов на слияние. В этом случае информация, указывающая на то, получена ли информация о движении текущего блока из смежного кандидата на слияние, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг. Например, элемент синтаксиса isAdjancentMergeFlag, указывающий на то, получена ли информация о движении текущего блока из смежного кандидата на слияние, может быть передана посредством битового потока. Когда значение элемента синтаксиса isAdjancentMergeFlag равно 1, информация о движении текущего блока может быть получена на основании смежного кандидата на слияние. С другой стороны, когда значение элемента синтаксиса isAdjancentMergeFlag равно 0, информация о движении текущего блока может быть получена на основании несмежного кандидата на слияние.

Информация для указания любого из множества кандидатов на слияние может передаваться посредством битового потока. Например, информация, указывающая индекс любого из кандидатов на слияние, включенных в список кандидатов на слияние, может быть передана посредством битового потока.

Когда isAdjacentMergeflag равен 1, может быть передан элемент синтаксиса merge_idx, указывающий любой из смежных кандидатов на слияние. Максимальное значение элемента синтаксиса merge_idx может быть установлено равным значению, полученному путем вычитания 1 из количества смежных кандидатов на слияние.

Когда isAdjacentMergeflag равен 0, может быть передан элемент синтаксиса NA_merge_idx, указывающий любой из несмежных кандидатов на слияние. Элемент синтаксиса NA_merge_idx представляет значение, полученное путем вычитания количества смежных кандидатов на слияние из индекса несмежного кандидата на слияние. Декодер может выбрать несмежного кандидата на слияние путем сложения количества смежных кандидатов на слияние с индексом, указанным посредством NA_merge_idx.

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

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

Для удобства объяснения кандидат на слияние, включенный в список информации о движении между участками, будет называться кандидатом на слияние между участками.

Максимальное количество кандидатов на слияние, которое может содержать список информации о движении между участками, может быть предварительно задано кодером и декодером. Например, максимальное количество кандидатов на слияние, которое может содержать список информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или больше (например, 16).

Альтернативно информация, указывающая максимальное количество кандидатов на слияние в списке информации о движении между участками, может быть передана посредством битового потока. Информация может передаваться на уровне последовательности, изображения или слайса.

Альтернативно максимальное количество кандидатов на слияние списка информации о движении между участками может быть определено согласно размеру изображения, размеру слайса или размеру элемента кодового дерева.

Список информации о движении между участками может быть инициализирован элементом изображения, слайса, тайла, пакета, элементом кодового дерева или линией элементов кодового дерева (строкой или столбцом). Например, когда инициализирован слайс, список информации о движении между участками также инициализирован, и список информации о движении между участками может не содержать какого-либо кандидата на слияние.

Альтернативно информация, указывающая на то, нужно или нет инициализировать список информации о движении между участками, может быть передана посредством битового потока. Информация может быть передана на уровне слайса, тайла, пакета или блока. Пока информация не укажет об инициализации списка информации о движении между участками, может использоваться предварительно сконфигурированный список информации о движении между участками.

Альтернативно информация в отношении начального кандидата на слияние между участками может быть передана посредством набора параметров изображения или заголовка слайса. Несмотря на инициализацию слайса, список информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно кандидат на слияние между участками может использоваться для блока, который представляет собой первую цель кодирования/декодирования в слайсе.

Блоки кодированы/декодированы согласно порядку кодирования/декодирования, и блоки, кодированные/декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидата на слияние между участками согласно порядку кодирования/декодирования.

На фиг. 15 представлена блок-схема, изображающая процесс обновления списка информации о движении между участками.

Когда предсказание, осуществляемое между изображениями, выполняется (S1501) в отношении текущего блока, кандидат на слияние между участками может быть получен (S1502) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.

Когда список информации о движении между участками пуст (S1503), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1504) в список информации о движении между участками.

Когда список информации о движении между участками уже содержит кандидата на слияние между участками (S1503), в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании текущего блока), может выполняться (S1505) контроль по избыточности. Контроль по избыточности предназначен для определения того, являются ли одинаковыми информация о движении кандидата на слияние между участками, ранее сохраненного в списке информации о движении между участками, и информация о движении текущего блока. Контроль по избыточности может быть выполнен в отношении всех кандидатов на слияние между участками, ранее сохраненными в списке информации о движении между участками. Альтернативно контроль по избыточности может быть выполнен в отношении кандидатов на слияние между участками, имеющих индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение, из кандидатов на слияние между участками, ранее сохраненных в списке информации о движении между участками.

Когда кандидат на слияние между участками, имеющий такую же информацию о движении в качестве информации о движении текущего блока, не включен, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1508) в список информации о движении между участками. Определение того, являются ли кандидаты на слияние одинаковыми, может быть осуществлено на основании того, является ли одинаковой информация о движении (например, вектор движения и/или индекс опорного изображения) кандидатов на слияние между участками.

В этом случае, когда максимальное количество кандидатов на слияние между участками уже сохранено в списке информации о движении между участками (S1506), наиболее старшие кандидаты на слияние между участками удаляются (S1507), и кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1508) в список информации о движении между участками.

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

Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в список информации о движении между участками, самый большой индекс может присваиваться кандидату на слияние между участками. Например, когда количество кандидатов на слияние между участками, ранее сохраненных в списке информации о движении между участками, меньше, чем максимальное значение, индекс, имеющий такое же значение, как количество ранее сохраненных кандидатов на слияние между участками, может присваиваться кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние между участками, ранее сохраненное в списке информации о движении между участками, является таким же, как максимальное значение, кандидату на слияние между участками может присваиваться индекс, вычитающий 1 из максимального значения. Кроме того, кандидат на слияние между участками, имеющий самый маленький индекс, удаляется, и индексы оставшихся ранее сохраненных кандидатов на слияние между участками могут уменьшаться на 1.

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

Предположительно, поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в список кандидатов на слияние между участками, самый большой индекс присваивается кандидату на слияние между участками. Кроме того, предположительно максимальное количество кандидатов на слияние между участками уже сохранено в списке кандидатов на слияние между участками.

Когда кандидат на слияние между участками HmvpCand[n + 1], полученный из текущего блока, добавляется в список кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], имеющий самый маленький индекс среди ранее сохраненных кандидатов на слияние между участками, удаляется, и индексы оставшихся кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n + 1], полученного из текущего блока, может быть установлен равным максимальному значению (n в примере, показанном на фиг. 16).

Когда кандидат на слияние между участками, являющийся таким же, как кандидат на слияние между участками, полученный на основании текущего блока, сохранен ранее (S1505), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S1509) в список информации о движении между участками.

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

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

Когда индекс ранее сохраненного кандидата на слияние между участками mvCand, который является таким же, как кандидат на слияние между участками mvCand, полученный на основании текущего блока, представляет собой hIdx, ранее сохраненный кандидат на слияние между участками удаляется, и индексы кандидатов на слияние между участками, имеющие индекс, который больше, чем hIdx, могут быть уменьшены на 1. Например, в примере, показанном на фиг. 17, показано, что HmvpCand[2], являющийся таким же, как mvCand, удаляется из списка информации о движении между участками HvmpCandList, и индексы HmvpCand[3]-HmvpCand[n] увеличиваются на 1.

Кроме того, кандидат на слияние между участками mvCand, полученный на основании текущего блока, может добавляться в конец списка информации о движении между участками.

Альтернативно индекс, присвоенный ранее сохраненному кандидату на слияние между участками, который является таким же, как кандидат на слияние между участками, полученный на основании текущего блока, может обновляться. Например, индекс ранее сохраненного кандидата на слияние между участками может изменяться до минимального значения или максимального значения.

Он может быть установлен не добавлять информацию о движении блоков, включенных в предварительно определенную область, в список информации о движении между участками. Например, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в область обработки слияния, может не добавляться в список информации о движении между участками. Поскольку порядок кодирования/декодирования не определяется для блоков, включенных в область обработки слияния, неуместно использовать информацию о движении любого из блоков для предсказания, осуществляемого между изображениями, другого блока. Соответственно кандидаты на слияние между участками, полученные на основании блоков, включенных в область обработки слияния, могут не добавляться в список информации о движении между участками.

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

Векторы движения подблоков могут быть получены в следующем порядке. Сначала выбирается любой из кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига (shVector) может быть получен на основании вектора движения выбранного кандидата на слияние. Затем подблок сдвига, у которого положение опорного отсчета представляет собой (xColSb, yColSb), может быть получен в качестве начального вектора сдвига, который добавляется в положении (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или отсчета в центре) каждого подблока в блоке кодирования. В уравнении 4 показано уравнение для получения подблока сдвига.

[Уравнение 4]

Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, имеющего (xColSb, yColSb), может быть установлен в качестве вектора движения подблока, имеющего (xSb, ySb).

Иллюстративный подблок может означать подблок, содержащий верхний левый отсчет или отсчет в центре текущего блока.

На фиг. 18 представлен вид, показывающий положение иллюстративного подблока.

На фиг. 18 (a) показан пример, в котором подблок, расположенный сверху слева текущего блока, установлен в качестве иллюстративного подблока, и на фиг. 18 (b) показан пример, в котором подблок, расположенный в центре текущего блока, установлен в качестве иллюстративного подблока. Когда предсказание с компенсацией движения выполняется элементом подблока, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего отсчет в центре текущего блока.

Может быть определено, использовать или нет текущий блок в качестве кандидата на слияние между участками, на основании режима предсказания, осуществляемого между изображениями, текущего блока. Например, блок, кодированный/декодированный на основании модели аффинного движения, может быть установлен недоступным в качестве кандидата на слияние между участками. Соответственно, несмотря на то, что текущий блок является кодированным/декодированным путем предсказания, осуществляемого между изображениями, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания, список информации о движении между участками может не обновляться на основании текущего блока.

Альтернативно кандидат на слияние между участками может быть получен на основании по меньшей мере одного вектора подблока из подблоков, включенных в блок, кодированный/декодированный на основании модели аффинного движения. Например, кандидат на слияние между участками может быть получен с использованием подблока, расположенного сверху слева, подблока, расположенного в центре, или подблока, расположенного на верхней правой стороне текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.

Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, кодированного/декодированного на основании модели аффинного движения. Например, среднее по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.

Альтернативно список информации о движении между участками может быть сконфигурирован для каждого режима предсказания, осуществляемого между изображениями. Например, может быть определен по меньшей мере один из списка информации о движении между участками для блока, кодированного/декодированного путем внутриблочного копирования, списка информации о движении между участками для блока, кодированного/декодированного на основании модели поступательного движения, и списка информации о движении между участками для блока, кодированного/декодированного на основании модели аффинного движения. Согласно режиму предсказания, осуществляемого между изображениями текущего блока, может быть выбран любой из множества списков информации о движении между участками.

На фиг. 19 представлен вид, показывающий пример, в котором список информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.

Когда блок является кодированным/декодированным на основании модели неаффинного движения, кандидат на слияние между участками mvCand, полученный на основании блока, может быть добавлен в список информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок является кодированным/декодированным на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, полученный на основании блока, может быть добавлен в список информации об аффинном движении между участками HmvpAfCandList.

Аффинные исходные векторы блока, кодированного/декодированного на основании модели аффинного движения, могут быть сохранены в кандидате на слияние между участками, полученном из блока. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.

Дополнительно к списку информации о движении между участками, описанному выше, может быть определен дополнительный список информации о движении между участками. Дополнительно к списку информации о движении между участками, описанному выше (далее называемому первым списком информации о движении между участками), может быть определен долговременный список информации о движении (далее называемый вторым списком информации о движении между участками). В данном случае долговременный список информации о движении содержит долговременных кандидатов на слияние.

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

Альтернативно один кандидат на слияние между участками может быть добавлен в оба из второго списка информации о движении между участками и первого списка информации о движении между участками.

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

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

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

Альтернативно список информации о движении между участками может быть выбран на основании размера и формы текущего блока, режима предсказания, осуществляемого между изображениями, того, обеспечено ли двунаправленное предсказание, того, обеспечено ли уточнение вектора движения, или того, обеспечено ли треугольное разбиение.

Альтернативно, несмотря на то, что кандидат на слияние между участками, включенный в первый список информации о движении между участками, добавляется, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество слияний, кандидаты на слияние между участками, включенные во второй список информации о движении между участками, могут быть добавлены в список кандидатов на слияние.

На фиг. 20 представлен вид, показывающий пример, в котором кандидат на слияние между участками, включенный в долговременный список информации о движении, добавляется в список кандидатов на слияние.

Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первый список информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, несмотря на то, что кандидаты на слияние между участками, включенные в первый список информации о движении между участками, добавляются в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долговременный список информации о движении HmvpLTCandList, могут добавляться в список кандидатов на слияние.

Кандидат на слияние между участками может быть установлен содержащим дополнительную информацию, дополнительно к информации о движении. Например, для кандидата на слияние между участками дополнительно может сохраняться размер, форма или информация о разбиении блока. При построении списка кандидатов на слияние текущего блока только кандидаты на слияние между участками, имеющие размер, форму или информацию о разбиении, которые являются такими же, как или подобными с таковыми текущего блока, используются среди кандидатов на слияние между участками, или кандидаты на слияние между участками, имеющие размер, форму или информацию о разбиении, которые являются такими же, как или подобными с таковыми текущего блока, могут добавляться в список кандидатов на слияние в первую очередь.

Альтернативно список информации о движении между участками может генерироваться для каждого из размера, формы или информации о разбиении блока. Из множества списков информации о движении между участками список кандидатов на слияние текущего блока может генерироваться с использованием списка информации о движении между участками, соответствующего форме, размеру или информации о разбиении текущего блока.

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

Когда необходимо добавить кандидата на слияние между участками, включенного в список информации о движении между участками, в список кандидатов на слияние, контроль по избыточности может выполняться между кандидатом на слияние между участками и кандидатами на слияние, ранее сохраненными в списке кандидатов на слияние.

Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в список информации о движении между участками. Например, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками, имеющих индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение. Альтернативно контроль по избыточности может выполняться только в отношении N кандидатов на слияние, имеющих наибольший индекс, или N кандидатов на слияние, имеющих наименьший индекс.

Альтернативно контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние, ранее сохраненных в списке кандидатов на слияние. Например, контроль по избыточности может выполняться только в отношении кандидата на слияние, имеющего индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение, или в отношении кандидата на слияние, полученного из блока в конкретном положении. В данном случае конкретное положение может содержать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока и нижнего левого соседнего блока текущего блока.

На фиг. 21 представлен вид, показывающий пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.

Когда необходимо добавить кандидата на слияние между участками HmvpCand[j] в список кандидатов на слияние, контроль по избыточности может выполняться в отношении кандидата на слияние между участками с двумя кандидатами на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge-1], имеющими самые большие индексы. В данном случае NumMerge может представлять количество пространственных кандидатов на слияние и временных кандидатов на слияние, которые являются доступными.

В отличие от примера, показанного на графическом материале, когда необходимо добавить кандидата на слияние между участками HmvpCand[j] в список кандидатов на слияние, контроль по избыточности может выполняться в отношении кандидата на слияние между участками не более чем с двумя кандидатами на слияние, имеющими самый маленький индекс. Например, можно проверить, являются ли mergeCandList[0] и mergeCandList[1] такими же, как HmvpCand[j]. Альтернативно контроль по избыточности может выполняться только в отношении кандидатов на слияние, полученных в конкретном положении. Например, контроль по избыточности может выполняться в отношении по меньшей мере одного из кандидата на слияние, полученного из соседнего блока, расположенного на левой стороне текущего блока, и кандидата на слияние, полученного из соседнего блока, расположенного сверху текущего блока. Когда кандидат на слияние, полученный в конкретном положении, не существует в списке кандидатов на слияние, кандидат на слияние между участками может добавляться в список кандидатов на слияние без наличия контроля по избыточности.

Когда кандидат на слияние, являющийся таким же, как первый кандидат на слияние между участками, обнаруживается, и выполняется контроль по избыточности в отношении второго кандидата на слияние между участками, контроль по избыточности с кандидатом на слияние, который является таким же, как первый кандидат на слияние между участками, может опускаться.

На фиг. 22 представлен вид, показывающий пример, в котором контроль по избыточности опускается для конкретного кандидата на слияние.

Когда необходимо добавить кандидата на слияние между участками HmvpCand[i], имеющего индекс i, в список кандидатов на слияние, контроль по избыточности выполняется между кандидатом на слияние между участками и кандидатами на слияние, ранее сохраненными в списке кандидатов на слияние. В этом случае, когда кандидат на слияние mergeCandList[j], являющийся таким же, как кандидат на слияние между участками HmvpCand[i], обнаруживается, контроль по избыточности может выполняться между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние без добавления кандидата на слияние между участками HmvpCand[i] в список кандидатов на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может опускаться.

Например, в примере, показанном на фиг. 22, определяется, что HmvpCand[i] и mergeCandList[2] являются одинаковыми. Соответственно, HmvpCand[i] не добавляется в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может опускаться.

Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, по меньшей мере один из парного кандидата на слияние и нулевого кандидата на слияние могут быть дополнительно включены, дополнительно к кандидату на слияние между участками. Парный кандидат на слияние означает кандидата на слияние, имеющего среднее значение векторов движения двух или более кандидатов на слияние в качестве вектора движения, и нулевой кандидат на слияние означает кандидата на слияние, имеющего вектор движения, равный 0.

Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.

Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияние

Пространственный кандидат на слияние означает кандидата на слияние, полученного из по меньшей мере одного из соседнего блока и несоседнего блока, и временной кандидат на слияние означает кандидата на слияние, полученного из предыдущего опорного изображения. Кандидат на аффинное слияние между участками представляет кандидата на слияние между участками, полученного из блока, кодированного/декодированного моделью аффинного движения.

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

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

Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.

Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Кандидат предсказания нулевого вектора движения.

Пространственный кандидат предсказания вектора движения означает кандидата предсказания вектора движения, полученного из по меньшей мере одного из соседнего блока и несоседнего блока, и временной кандидат предсказания вектора движения означает кандидата предсказания вектора движения, полученного из предыдущего опорного изображения. Кандидат на аффинное слияние между участками представляет кандидата предсказания вектора движения между участками, полученного из блока, кодированного/декодированного моделью аффинного движения. Кандидат предсказания нулевого вектора движения представляет кандидата, имеющего значение вектора движения, равное 0.

Блок кодирования может быть разбит на множество элементов предсказания, и предсказание может быть выполнено в отношении каждого из разбитых элементов предсказания. В этом случае элемент предсказания представляет базовый элемент для выполнения предсказания.

Блок кодирования может быть разбит с использованием по меньшей мере одной из вертикальной линии, горизонтальной линии, наклонной линии и диагональной линии. Информация для определения по меньшей мере одного из количества, углов и положений линий, которые разбивают блок кодирования, может передаваться посредством битового потока. Например, информация, указывающая любого из кандидатов типа разбивки блока кодирования, может передаваться посредством битового потока, или информация, указывающая любого из множества кандидатов линий для разбиения блока кодирования, может передаваться посредством битового потока. Альтернативно информация для определения количества или типов кандидатов линий, разбивающих блок кодирования, может передаваться посредством битового потока. Например, то, может ли использоваться наклонная линия, имеющая больший угол, чем диагональная линия, и/или наклонная линия, имеющая меньший угол, чем диагональная линия, в качестве кандидата линии, может быть определено с использованием 1-битного флага.

Альтернативно по меньшей мере одно из количества, углов или положений линий, разбивающих блок кодирования, может быть адаптивно определено на основании по меньшей мере одного из режима внутреннего предсказания блока кодирования, режима предсказания, осуществляемого между изображениями, блока кодирования, положения доступного кандидата на слияние блока кодирования и схемы разбиения соседнего блока.

Когда блок кодирования разбит на множество элементов предсказания, внутреннее предсказание или предсказание, осуществляемое между изображениями, может быть выполнено в отношении каждого из разбитых элементов предсказания.

На фиг. 23 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения множества элементов предсказания с использованием диагональной линии.

Как показано в примерах на фиг. 23 (a) и 23 (b), блок кодирования может быть разбит на два треугольных элемента предсказания с использованием диагональной линии.

На фиг. 23 (a) и 23 (b) показано, что блок кодирования разбит на два элемента предсказания с использованием диагональной линии, соединяющей две вершины блока кодирования. Однако блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, по меньшей мере один конец которой не проходит через вершину блока кодирования.

На фиг. 24 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения двух элементов предсказания.

Как показано в примерах на фиг. 24 (a) и 24 (b), блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой находятся в контакте с верхней границей и нижней границей блока кодирования соответственно.

Альтернативно, как показано в примерах на фиг. 24 (c) и 24 (d), блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой находятся в контакте с левой границей и правой границей блока кодирования соответственно.

Альтернативно блок кодирования может быть разбит на два блока предсказания разного размера. Например, блок кодирования может быть разбит на два элемента предсказания разного размера путем установки наклонной линии, разбивающей блок кодирования, в контакт с двумя граничными поверхностями, которые образуют одну вершину.

На фиг. 25 представлен вид, показывающий примеры разбиения блока кодирования на множество блоков предсказания разного размера.

Как показано в примерах на фиг. 25 (a) и 25 (b), поскольку диагональная линия, соединяющая верхний левый и нижний правый углы блока кодирования, установлена с прохождением через левую границу, правую границу, верхнюю границу или нижнюю границу, вместо прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания, которые имеют разный размер.

Альтернативно, как показано в примерах на фиг. 25 (c) и 25 (d), поскольку диагональная линия, соединяющая верхний правый и нижний левый углы блока кодирования, установлена с прохождением через левую границу, правую границу, верхнюю границу или нижнюю границу, вместо прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания, которые имеют разный размер.

Каждый из элементов предсказания, сгенерированных путем разбиения блока кодирования, будет называться «N-м элементом предсказания». Например, в примерах, показанных на фиг. 23-25, PU1 может быть задан в качестве первого элемента предсказания, и PU2 может быть задан в качестве второго элемента предсказания. Первый элемент предсказания относится к элементу предсказания, содержащему отсчет, расположенный в нижней левой части, или отсчет, расположенный в верхней левой части в блоке кодирования, и второй элемент предсказания относится к элементу предсказания, содержащему отсчет, расположенный в верхней правой части, или отсчет, расположенный в нижней правой части в блоке кодирования.

И наоборот, элемент предсказания, содержащий отсчет, расположенный в верхней правой части, или отсчет, расположенный в нижней правой части в блоке кодирования, может быть задан в качестве первого элемента предсказания, и элемент предсказания, содержащий отсчет, расположенный в нижней левой части, или отсчет, расположенный в верхней левой части в блоке кодирования, может быть задан в качестве второго элемента предсказания.

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

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

Например, то, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании того, имеет ли текущий слайс тип B. Диагональное разбиение может быть разрешено только тогда, когда текущий слайс имеет тип B.

Альтернативно то, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании того, составляет ли максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, два или более. Диагональное разбиение может быть разрешено только тогда, когда максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, составляет два или более.

Альтернативно, когда по меньшей мере одна из ширины или высоты больше чем 64 в аппаратной реализации, проблемой является то, что к элементу обработки данных, имеющему размер 64×64, осуществляют избыточный доступ. Соответственно, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования на множество блоков предсказания может не быть разрешено. Например, когда по меньшей мере одно из ширины и высоты блока кодирования больше чем 64 (например, когда по меньшей мере одно из ширины и высоты равняется 128), диагональное разбиение может не использоваться.

Альтернативно диагональное разбиение может не быть разрешено для блока кодирования, количество отсчетов которого больше, чем пороговое значение, с учетом максимального количества отсчетов, которое может быть одновременно обработано в аппаратной реализации. Например, диагональное разбиение может не быть разрешено для блока кодового дерева, количество отсчетов которого больше чем 4096.

Альтернативно диагональное разбиение может не быть разрешено для блока кодирования, количество отсчетов, включенных в блок кодирования, которого меньше, чем пороговое значение. Например, может быть установлено применять диагональное разбиение к блоку кодирования, когда количество отсчетов, включенных в блок кодирования, меньше чем 64.

Альтернативно то, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании того, меньше ли соотношение ширины и высоты блока кодирования, чем первое пороговое значение, или того, больше ли соотношение ширины и высоты блока кодирования, чем второе пороговое значение. В этом случае соотношение ширины и высоты whRatio блока кодирования может быть определено в качестве соотношения между шириной CbW и высотой CbH блока кодирования, как показано в уравнении 5.

[Уравнение 5]

Второе пороговое значение может представлять собой обратное число первого порогового значения. Например, когда первое пороговое значение равняется k, второе пороговое значение может равняться 1/k.

Диагональное разбиение может быть применено к блоку кодирования только тогда, когда соотношение ширины и высоты блока кодирования находится между первым пороговым значением и вторым пороговым значением.

Альтернативно треугольное разбиение может быть использовано только тогда, когда соотношение ширины и высоты блока кодирования меньше, чем первое пороговое значение, или больше, чем второе пороговое значение. Например, когда первое пороговое значение равняется 16, диагональное разбиение может не быть разрешено для блока кодирования с размером 64×4 или 4×64.

Альтернативно то, разрешать ли диагональное разбиение, может быть определено на основании схемы разбиения порождающего узла. Например, когда блок кодирования, являющийся порождающим узлом, разбивают на основании разбиения на основе четвертичного дерева, диагональное разбиение может быть применено к блоку кодирования, являющемуся листовым узлом. С другой стороны, может быть установлено не разрешать диагональное разбиение блока кодирования, являющегося листовым узлом, когда блок кодирования, являющийся порождающим узлом, разбивают на основании разбиения на основе двоичного дерева или троичного дерева.

Альтернативно то, разрешать ли диагональное разбиение, может быть определено на основании режима кодирования с предсказанием блока кодирования. Например, диагональное разбиение может быть разрешено только тогда, когда блок кодирования кодируют с помощью внутреннего предсказания, когда блок кодирования кодируют с помощью предсказания, осуществляемого между изображениями, или когда блок кодирования кодируют с помощью предварительно заданного режима предсказания, осуществляемого между изображениями. В этом случае предварительно заданный режим предсказания, осуществляемого между изображениями, может представлять по меньшей мере один из режима слияния, режима предсказания вектора движения, аффинного режима слияния и режима предсказания вектора аффинного движения.

Альтернативно то, разрешать ли диагональное разбиение, может быть определено на основании размера участка параллельной обработки. Например, когда размер блока кодирования больше, чем размер участка параллельной обработки, диагональное разбиение может не использоваться.

То, следует ли применять диагональное разбиение к блоку кодирования, может быть определено с учетом двух или более перечисленных выше условий.

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

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

Например, когда блок кодирования разбивают диагональной линией, информация, указывающая направление диагональной линии, разбивающей блок кодирования, может передаваться посредством битового потока. Например, флаг triangle_partition_type_flag, который указывает направление диагональной линии, может передаваться посредством битового потока. Флаг указывает то, разбивают ли блок кодирования диагональной линией, соединяющей верхний левый угол и нижний правый угол, или то, разбивают ли блок кодирования диагональной линией, соединяющей верхний правый угол и нижний левый угол. Разбиение блока кодирования диагональной линией, соединяющей верхний левый угол и нижний правый угол, может называться левым треугольным типом разбивки, и разбиение блока кодирования диагональной линией, соединяющей верхний правый угол и нижний левый угол, может называться правым треугольным типом разбивки. Например, когда значение флага равняется 0, это может указывать, что тип разбивки блока кодирования имеет левый треугольный тип разбивки, а когда значение флага равняется 1, это может указывать, что тип разбивки блока кодирования имеет правый треугольный тип разбивки.

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

Информация, указывающая тип разбивки блока кодирования, может передаваться на уровне блока кодирования. Соответственно, тип разбивки может быть определен для каждого блока кодирования, к которому применяется диагональное разбиение.

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

Альтернативно информация для определения типа разбивки может быть кодирована и передана для первого элемента кодирования, к которому в элементе кодового дерева применяется диагональное разбиение, и второй и последующие элементы кодирования, к которым применяется диагональное разбиение, могут быть установлены для использования такого же типа разбивки, как у первого элемента кодирования.

В качестве другого примера, тип разбивки блока кодирования может быть определен на основании типа разбивки соседнего блока. В этом случае соседний блок может содержать по меньшей мере один из соседнего блока, смежного с верхним левым углом блока кодирования, соседнего блока, смежного с верхним правым углом, соседнего блока, смежного с нижним левым углом, соседнего блока, расположенного сверху, или соседнего блока, расположенного на левой стороне. Например, тип разбивки текущего блока может быть установлен таким же, как тип разбивки соседнего блока. Альтернативно тип разбивки текущего блока может быть определен на основании того, применяется ли левый треугольный тип разбивки к верхнему левому соседнему блоку, или того, применяется ли правый треугольный тип разбивки к верхнему правому соседнему блоку или нижнему левому соседнему блоку.

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

Информация для определения максимального количества треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, может передаваться посредством битового потока. Информация может указывать разницу между максимальным количеством кандидатов на слияние, которое может содержать список кандидатов на слияние, и максимальным количеством треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние.

Треугольные кандидаты на слияние могут быть получены от соседнего в пространственном отношении блока и соседнего во временном отношении блока блока кодирования.

На фиг. 26 представлен вид, показывающий соседние блоки, используемые для получения треугольного кандидата на слияние.

Треугольный кандидат на слияние может быть получен с использованием по меньшей мере одного из соседнего блока, расположенного над блоком кодирования, соседнего блока, расположенного слева от блока кодирования, или совмещаемого блока, включенного в изображение, отличное от изображения блока кодирования. Верхний соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (xCb + CbW-1, yCb-1), расположенный над блоком кодирования, блока, содержащего отсчет (xCb + CbW, yCb-1), расположенный над блоком кодирования, и блока, содержащего отсчет (xCb-1, yCb-1), расположенный над блоком кодирования. Левый соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (xCb-1, yCb + CbH-1), расположенный слева от блока кодирования, и блока, содержащего отсчет (xCb-1, yCb + CbH), расположенный слева от блока кодирования. Совмещаемый блок может быть определен любым из блока, содержащего отсчет (xCb + CbW, yCb + CbH), смежный с верхним правым углом блока кодирования, или блока, содержащего отсчет (xCb/2, yCb/2), расположенный в центре блока кодирования, в совмещаемом изображении.

Поиск соседних блоков может осуществляться в предварительно заданном порядке, и список треугольных кандидатов на слияние может быть построен из треугольных кандидатов на слияние согласно предварительно заданному порядку. Например, список треугольных кандидатов на слияние может быть построен путем поиска треугольных кандидатов на слияние в порядке B1, A1, B0, A0, C0, B2 и C1.

Информация о движении треугольных элементов предсказания может быть получена на основании списка треугольных кандидатов на слияние. То есть треугольные элементы предсказания могут находиться в одном списке треугольных кандидатов на слияние.

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

Информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания и кандидата на слияние второго треугольного элемента предсказания. Например, в таблице 1 показан пример комбинации кандидатов на слияние согласно информации об индексах merge_triangle_idx.

Таблица 1

Когда значение информации об индексах merge_triangle_idx равняется 1, это указывает, что информация о движении первого треугольного элемента предсказания получена от кандидата на слияние с индексом 1, и что информация о движении второго треугольного элемента предсказания получена от кандидата на слияние с индексом 0. С помощью информации об индексах merge_triangle_idx могут быть определены треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания и треугольный кандидат на слияние для получения информации о движении второго треугольного элемента предсказания.

Тип разбивки блока кодирования, к которому применяется диагональное разбиение, может быть определен на основании информации об индексах. То есть информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разбиения блока кодирования. Когда тип разбивки блока кодирования определен на основании информации об индексах, информация triangle_partition_type_flag, которая указывает направление диагональной линии, разбивающей блок кодирования, может не кодироваться. Таблица 2 представляет типы разбивки блока кодирования относительно информации об индексах merge_triangle_idx.

Таблица 2

Когда переменная TriangleDir равняется 0, это указывает, что левый треугольный тип разбивки применяется к блоку кодирования, а когда переменная TriangleDir равняется 1, это указывает, что правый треугольный тип разбивки применяется к блоку кодирования. Путем комбинирования таблицы 1 и таблицы 2 может быть установлено указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разбиения блока кодирования с помощью информации об индексах merge_triangle_idx.

В качестве другого примера, может передаваться только информация об индексах для любого из первого треугольного элемента предсказания и второго треугольного элемента предсказания, и индекс треугольного кандидата на слияние для другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть определен на основании информации об индексах. Например, треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен на основании информации об индексах merge_triangle_idx, которая указывает индекс любого из треугольных кандидатов на слияние. Кроме того, треугольный кандидат на слияние второго треугольного элемента предсказания может быть указан на основании merge_triangle_idx. Например, треугольный кандидат на слияние второго треугольного элемента предсказания может быть получен путем добавления смещения к информации об индексах merge_triangle_idx или вычитания из нее. Смещение может представлять собой целое, такое как 1 или 2. Например, треугольный кандидат на слияние, имеющий значение, полученное путем добавления 1 к merge_traingle_idx, в качестве индекса, может быть определен в качестве треугольного кандидата на слияние второго треугольного элемента предсказания. Когда merge_triangle_idx указывает треугольного кандидата на слияние с наибольшим значением индекса из треугольных кандидатов на слияние, информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние с индексом, равным 0, или треугольного кандидата на слияние со значением, полученным путем вычитания 1 из merge_triangle_idx, в качестве индекса.

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

В качестве другого примера, информация об индексах может передаваться для каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Например, первая информация об индексах 1st_merge_idx, которая предназначена для определения треугольного кандидата на слияние первого треугольного элемента предсказания, и вторая информация об индексах 2nd_merge_idx, которая предназначена для определения треугольного кандидата на слияние второго треугольного элемента предсказания, могут передаваться посредством битового потока. Информация о движении первого треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании первой информации об индексах 1st_merge_idx, и информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании второй информации об индексах 2nd_merge_idx.

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

Треугольный кандидат на слияние, указанный с помощью первой информации об индексах 1st_merge_idx, может быть установлен так, чтобы не использоваться как треугольный кандидат на слияние второго треугольного элемента предсказания. Соответственно, вторая информация об индексах 2nd_merge_idx второго треугольного элемента предсказания может указывать индекс любого из остальных треугольных кандидатов на слияние, за исключением треугольного кандидата на слияние, указанного с помощью первой информации об индексах. Когда значение второй информации об индексах 2nd_merge_idx меньше, чем значение первой информации об индексах 1st_merge_idx, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние, имеющий информацию об индексах, указанную с помощью второй информации об индексах 2nd_merge_idx. С другой стороны, когда значение второй информации об индексах 2nd_merge_idx равняется значению первой информации об индексах 1st_merge_idx, или больше него, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние, имеющий значение, полученное путем добавления 1 к значению второй информации об индексах 2nd_merge_idx, в качестве индекса.

Альтернативно то, передавать или нет вторую информацию об индексах, может быть определено согласно количеству треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. Например, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, не превышает 2, передача второй информации об индексах может быть опущена. Когда передача второй информации об индексах опущена, второй треугольный кандидат на слияние может быть получен путем добавления смещения к первой информации об индексах или вычитания из нее. Например, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно 2, и первая информация об индексах указывает индекс 0, второй треугольный кандидат на слияние может быть получен путем добавления 1 к первой информации об индексах. Альтернативно, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно 2, и первая информация об индексах указывает 1, второй треугольный кандидат на слияние может быть получен путем вычитания 1 из первой информации об индексах.

Альтернативно, когда передача второй информации об индексах опущена, вторая информация об индексах может быть установлена в качестве значения по умолчанию. В этом случае значение по умолчанию может равняться 0. Второй треугольный кандидат на слияние может быть получен путем сравнения первой информации об индексах и второй информации об индексах. Например, когда вторая информация об индексах меньше, чем первая информация об индексах, кандидат на слияние, имеющий индекс 0, может быть установлен в качестве второго треугольного кандидат на слияние, и когда вторая информация об индексах равняется первой информации об индексах или больше нее, кандидат на слияние, имеющий индекс 1, может быть установлен в качестве второго треугольного кандидата на слияние.

Когда треугольный кандидат на слияние имеет информацию об однонаправленном движении, информация об однонаправленном движении треугольного кандидата на слияние может быть установлена в качестве информации о движении треугольного элемента предсказания. С другой стороны, когда треугольный кандидат на слияние имеет информацию о двунаправленном движении, только одна из информации о движении L0 или информации о движении L1 может быть установлена в качестве информации о движении треугольного элемента предсказания. То, что будет взято из информации о движении L0 и информации о движении L1, может быть определено на основании индекса треугольного кандидата на слияние или информации о движении другого треугольного элемента предсказания.

Например, когда индекс треугольного кандидата на слияние является четным числом, информация о движении L0 треугольного элемента предсказания может быть установлена равной 0, и информация о движении L1 треугольного кандидата на слияние может быть установлена как информация о движении L1 треугольного элемента предсказания. С другой стороны, когда индекс треугольного кандидата на слияние является нечетным числом, информация о движении L1 треугольного элемента предсказания может быть установлена равной 0, и информация о движении L0 треугольного кандидата на слияние может быть установлена равной 0. И наоборот, когда индекс треугольного кандидата на слияние является четным числом, информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 треугольного элемента предсказания, и когда индекс треугольного кандидата на слияние является нечетным числом, информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 треугольного элемента предсказания. Альтернативно, когда треугольный кандидат на слияние является четным числом для первого треугольного элемента предсказания, информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 первого треугольного элемента предсказания, тогда как, когда треугольный кандидат на слияние является нечетным числом для второго треугольного элемента предсказания, информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 второго треугольного элемента предсказания.

Альтернативно, когда первый треугольный элемент предсказания имеет информацию о движении L0, информация о движении L0 второго треугольного элемента предсказания может быть установлена равной 0, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 второго треугольного элемента предсказания. С другой стороны, когда первый треугольный элемент предсказания имеет информацию о движении L1, информация о движении L1 второго треугольного элемента предсказания может быть установлена равной 0, и информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 второго треугольного элемента предсказания.

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

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

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

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

На фиг. 27 представлен вид для описания примеров определения доступности соседнего блока для каждого треугольного элемента предсказания.

Соседний блок, не являющийся смежным с первым треугольным элементом предсказания, может быть установлен как недоступный для первого треугольного элемента предсказания, и соседний блок, не являющийся смежным со вторым треугольным элементом предсказания, может быть установлен как недоступный для второго треугольного элемента предсказания.

Например, как показано в примере по фиг. 27 (a), когда левый треугольный тип разбивки применяется к блоку кодирования, может быть определено, что блоки A1, A0 и A2, смежные с первым треугольным элементом предсказания, из соседних блоков, смежных с блоком кодирования, доступны для первого треугольного элемента предсказания, тогда как блоки B0 и B1 не являются доступными для первого треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для первого треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2, и может не содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1.

Как показано в примере по фиг. 27 (b), когда левый треугольный тип разбивки применяется к блоку кодирования, может быть определено, что блоки B0 и B1, смежные со вторым треугольным элементом предсказания, доступны для второго треугольного элемента предсказания, тогда как блоки A1, A0 и A2 не являются доступными для второго треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для второго треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1, и может не содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2.

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

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

Например, вектор движения и индекс опорного изображения первого треугольного элемента предсказания могут быть получены на основании треугольного кандидата на слияние, и вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. Например, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.

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

Альтернативно знак уточненного вектора движения может быть получен на основании по меньшей мере одного из положения треугольного элемента предсказания, индекса треугольного элемента предсказания и типа разбивки, применяемого к блоку кодирования.

В качестве другого примера, могут передаваться вектор движения и индекс опорного изображения любого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Вектор движения другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получен путем уточнения переданного вектора движения.

Например, вектор движения и индекс опорного изображения первого треугольного элемента предсказания могут быть определены на основании информации, переданной из битового потока. Кроме того, вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. Например, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.

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

Отсчеты предсказания в блоке кодирования, к которому применяется диагональное разбиение, могут быть получены на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании информации о движении первого треугольного элемента предсказания, и второго отсчета предсказания, полученного на основании информации о движении второго треугольного элемента предсказания. Альтернативно отсчет предсказания первого треугольного элемента предсказания получают из первого блока предсказания, определенного на основании информации о движении первого треугольного элемента предсказания, и отсчет предсказания второго треугольного элемента предсказания получают из второго блока предсказания, определенного на основании информации о движении второго треугольного элемента предсказания, и отсчет предсказания, расположенный на граничном участке первого треугольного элемента предсказания и второго треугольного элемента предсказания, может быть получен на основании операции взвешенной суммы первого отсчета предсказания, включенного в первый блок предсказания и второго отсчета предсказания, включенного во второй блок предсказания. Например, в уравнении 6 показан пример получения отсчетов предсказания первого треугольного элемента предсказания и второго треугольного элемента предсказания.

[Уравнение 6]

В уравнении 6 P1 обозначает первый отсчет предсказания, и P2 обозначает второй отсчет предсказания. W1 обозначает значение взвешивания, применяемое к первому отсчету предсказания, и (1-w1) обозначает значение взвешивания, применяемое ко второму отсчету предсказания. Как показано в примере уравнения 6, значение взвешивания, применяемое ко второму отсчету предсказания, может быть получено путем вычитания значения взвешивания, применяемого к первому отсчету предсказания, из постоянного значения.

Когда левый треугольный тип разбивки применяется к блоку кодирования, граничный участок может содержать отсчеты предсказания, в которых координата оси x и координата оси y являются одинаковыми. С другой стороны, когда правый треугольный тип разбивки применяется к блоку кодирования, граничный участок может содержать отсчеты предсказания, в которых сумма координаты оси x и координаты оси y больше, чем первое пороговое значение, или равняется ему, и меньше, чем второе пороговое значение.

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

На фиг. 28 и 29 представлены виды, показывающие примеры получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. На фиг. 28 показан пример применения левого треугольного типа разбивки к блоку кодирования, и на фиг. 29 показан пример правого треугольного типа разбивки к блоку кодирования. Кроме того, на фиг. 28 (a) и 29 (a) представлены виды, показывающие схемы предсказания для компонента яркости, и на фиг. 28 (b) и 29 (b) представлены виды, показывающие схемы предсказания для компонента цветности.

На графических материалах числа, записанные в отсчетах предсказания, расположенных рядом с границей между первым элементом предсказания и вторым элементом предсказания, указывают значения взвешивания, применяемые к первому отсчету предсказания. Например, когда число, записанное в отсчете предсказания, равняется N, отсчет предсказания может быть получен путем применения значения взвешивания N/8 к первому отсчету предсказания и применения значения взвешивания 1-(N/8) ко второму отсчету предсказания.

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

Как показано в примере по фиг. 29, в участке, в котором сумма координаты оси x и координаты оси y меньше, чем первое пороговое значение, первый отсчет предсказания, полученный на основании информации о движении первого треугольного элемента предсказания, может быть определен в качестве отсчета предсказания. С другой стороны, в участке, в котором сумма координаты оси x и координаты оси y больше, чем второе пороговое значение, второй отсчет предсказания, полученный на основании информации о движении второго треугольного элемента предсказания, может быть определен в качестве отсчета предсказания.

Пороговое значение для определения находящегося не на границе участка может быть определено на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования и цветового компонента. Например, когда пороговое значение для компонента яркости установлено равным N, пороговое значение для компонента цветности может быть установлено равным N/2.

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

Например, как показано в примере по фиг. 28 (a), отсчеты предсказания в положении одинаковых координаты оси x и координаты оси y могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых абсолютное значение разницы между координатой оси x и координатой оси y равно 1, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (3:1) или (1:3). Кроме того, отсчеты предсказания, в которых абсолютное значение разницы между координатой оси x и координатой оси y равно 2, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).

Альтернативно, как показано в примере на фиг. 28 (b), отсчеты предсказания в положении одинаковых координаты оси x и координаты оси y могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания, и отсчеты предсказания, в которых абсолютное значение разницы между координатой оси x и координатой оси y равно 1, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчет предсказания, равного (7:1) или (1:7).

Например, как показано в примере по фиг. 29 (a), отсчеты предсказания, в которых сумма координаты оси x и координаты оси y меньше, чем ширина или высота блока кодирования на 1, могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты оси x и координаты оси y равна ширине или высоте блока кодирования или меньше них на 2, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (3:1) или (1:3). Предсказанные отсчеты, в которых сумма координат оси x и координат оси y больше, чем ширина или высота блока кодирования или меньше них на 1 или 3, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).

Альтернативно, как показано в примере на фиг. 29 (b), отсчеты предсказания, в которых сумма координаты оси x и координаты оси y меньше, чем ширина или высота блока кодирования на 1, могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты оси x и координаты оси y равна ширине или высоте блока кодирования или меньше них на 2, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).

В качестве другого примера, значение взвешивания может быть определено с учетом положения отсчета предсказания или формы блока кодирования. В уравнениях 7-9 показан пример получения значения взвешивания, когда левый треугольный тип разбивки применяется к блоку кодирования. В уравнении 7 показан пример получения значения взвешивания, применяемого к первому отсчету предсказания, когда блок кодирования имеет квадратную форму.

[Уравнение 7]

В уравнении 7 x и y обозначают положение отсчета предсказания. Когда блок кодирования не имеет квадратной формы, значение взвешивания, применяемое к первому отсчету предсказания, может быть получено, как показано в уравнении 8 или 9. В уравнении 8 показан случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 9 показан случай, в котором ширина блока кодирования меньше, чем высота.

[Уравнение 8]

[Уравнение 9]

Когда правый треугольный тип разбивки применяется к блоку кодирования, значение взвешивания, применяемое к первому отсчету предсказания, может быть определено, как показано в уравнениях 10-12. В уравнении 10 показан пример получения значения взвешивания, применяемого к первому отсчету предсказания, когда блок кодирования имеет квадратную форму.

[Уравнение 10]

В уравнении 10 CbW обозначает ширину блока кодирования. Когда блок кодирования не имеет квадратной формы, значение взвешивания, применяемое к первому отсчету предсказания, может быть получено, как показано в уравнении 11 или уравнении 12. В уравнении 11 показан случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 12 показан случай, в котором ширина блока кодирования меньше, чем высота.

[Уравнение 11]

[Уравнение 12]

В уравнении 11 CbH обозначает высоту блока кодирования.

Как показано в примере, среди отсчетов предсказания в граничном участке отсчеты предсказания, включенные в первый треугольный элемент предсказания, получают путем присваивания значения взвешивания, которое больше, чем значение взвешивания второго отсчета предсказания, первому отсчету предсказания, и отсчеты предсказания, включенные во второй треугольный элемент предсказания, получают путем присваивания значения взвешивания, которое больше, чем значение взвешивания первого отсчета предсказания, второму отсчету предсказания.

Когда диагональное разбиение применяется к блоку кодирования, может быть установлено не применять комбинированный режим предсказания, объединяющий режим внутреннего предсказания и режим слияния, к блоку кодирования.

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

Метод внутреннего предсказания включает внутреннее предсказание на основе матрицы и общее внутреннее предсказание, учитывающее направленность относительно соседних восстановленных отсчетов. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться посредством битового потока. Информация может представлять собой 1-битный флаг. Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из положения текущего блока, размера текущего блока, формы текущего блока и метода внутреннего предсказания соседнего блока. Например, когда текущий блок находится на границе изображения, он может быть установлен таким образом, чтобы не применять внутреннее предсказание на основе матрицы к текущему блоку.

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

Общее внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима внутреннего предсказания, не основанного на информации об углах, или режима внутреннего предсказания, основанного на информации об углах.

Полученное остаточное изображение может быть получено путем вычитания видео предсказания из первоначального видео. В этом случае, когда остаточное видео изменяется на частотную область, субъективное качество видео существенно не снижается, хотя высокочастотные компоненты удалены из частотных компонентов. Соответственно, когда значения высокочастотных компонентов конвертируются в небольшие или значения высокочастотных компонентов установлены равными 0, имеет место эффект увеличения эффективности сжатия без генерирования существенного визуального искажения. Отражая эту характеристику, текущий блок может быть преобразован для разложения остаточного видео на двумерные частотные компоненты. Преобразование может быть выполнено с использованием метода преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).

Двумерное преобразование видео может не быть выполнено для некоторых блоков остаточного видео. Невыполнение двумерного преобразования видео может называться пропуском преобразования. Когда применен пропуск преобразования, квантование может быть применено к остаточным коэффициентам, которые не были преобразованы.

После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может быть преобразован повторно. В этом случае преобразование на основании DCT или DST может быть определено как первое преобразование, а повторное преобразование блока, к которому применено первое преобразование, может быть определено как второе преобразование.

Первое преобразование может быть выполнено с использованием любой из множества основ-кандидатов преобразования. Например, первое преобразование может быть выполнено с использованием любого из DCT2, DCT8 или DCT7.

Разные основы преобразования могут быть использованы для горизонтального направления и вертикального направления. Информация, указывающая комбинацию основы преобразования в горизонтальном направлении и основы преобразования в вертикальном направлении, может быть передана посредством битового потока.

Элементы для выполнения первого преобразования и второго преобразования могут быть разными. Например, первое преобразование может быть выполнено в отношении блока 8×8, а второе преобразование может быть выполнено в отношении подблока размером 4×4 из преобразованного блока 8×8. В этом случае коэффициенты преобразования остаточных участков, в отношении которых не было выполнено второе преобразование, могут быть установлены равными 0.

Альтернативно первое преобразование может быть выполнено в отношении блока 4×4, а второе преобразование может быть выполнено в отношении участка размером 8×8, содержащего преобразованный блок 4×4.

Информация, указывающая, было ли выполнено второе преобразование, может быть передана посредством битового потока.

Альтернативно то, следует ли выполнять второе преобразование, может быть определено на основании того, являются ли одинаковыми основа преобразования в горизонтальном направлении и основа преобразования в вертикальном направлении. Например, второе преобразование может быть выполнено только тогда, когда основа преобразования в горизонтальном направлении и основа преобразования в вертикальном направлении являются одинаковыми. Альтернативно второе преобразование может быть выполнено только тогда, когда основа преобразования в горизонтальном направлении и основа преобразования в вертикальном направлении отличаются друг от друга.

Альтернативно второе преобразование может быть допущено только тогда, когда преобразование в горизонтальном направлении и преобразование в вертикальном направлении используют предварительно заданную основу преобразования. Например, когда основа преобразования DCT2 используется для преобразования в горизонтальном направлении и преобразования в вертикальном направлении, второе преобразование может быть допущено.

Альтернативно то, следует ли выполнять второе преобразование, может быть определено на основании количества ненулевых коэффициентов преобразования текущего блока. Например, может быть установлено не использовать второе преобразование, когда количество ненулевых коэффициентов преобразования текущего блока меньше, чем пороговое значение, или равняется ему, и может быть установлено использовать второе преобразование, когда количество ненулевых коэффициентов преобразования текущего блока больше, чем пороговое значение. Может быть установлено использовать второе преобразование только тогда, когда текущий блок кодирован с помощью внутреннего предсказания.

Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата второго обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.

Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.

Когда получают восстановленный блок текущего блока, потеря информации, происходящая в процессе квантования и кодирования, может быть уменьшена посредством фильтрования в контуре. Фильтр в контуре может включать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) и адаптивного контурного фильтра (ALF).

Применение вариантов осуществления, описанных выше, сфокусированных на процессе декодирования или процессе кодирования, к процессу кодирования или процессу декодирования включено в объем настоящего изобретения. Изменение вариантов осуществления, описанных в предварительно определенном порядке, в порядке, отличающемся от описанного порядка, также включено в объем настоящего изобретения.

Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или блок-схем, это не ограничивает порядок выполнения во времени настоящего изобретения, и они могут быть выполнены одновременно или в другом порядке при необходимости. Кроме того, каждый из компонентов (например, элементы, модули и т.д.), составляющих структурную схему в вариантах осуществления, описанных выше, может быть реализован в виде аппаратного устройства или программного обеспечения, или множество компонентов могут быть скомбинированы для реализации в виде одного аппаратного устройства или программного обеспечения. Варианты осуществления, описанные выше, могут быть реализованы в форме программных команд, которые могут быть исполнены посредством различных компьютерных компонентов и записаны в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программные команды, файлы данных, структуры данных и т.п. независимо или в комбинации. Машиночитаемый носитель данных включает, например, магнитные носители, такие как жесткий диск, гибкий диск и магнитную ленту, оптические носители данных, такие как CD-ROM и DVD, магнитно-оптические носители, такие как гибкий оптический диск, и аппаратные устройства, специально выполненные с возможностью хранения и исполнения программных команд, такие как ROM, RAM, флеш-память и т.п. Аппаратные устройства, описанные выше, могут быть выполнены с возможностью работы с использованием одного или более программных модулей для выполнения процесса согласно настоящему изобретению, и наоборот.

Настоящее изобретение может быть применено к электронному устройству, которое кодирует и декодирует видео.

Похожие патенты RU2806152C2

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ 2019
  • Ли, Пэ Кхын
RU2802731C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ 2019
  • Ли, Пэ Кхын
RU2809582C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ 2019
  • Ли, Пэ Кхын
RU2809324C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ 2019
  • Ли, Пэ Кхын
RU2810054C2
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ 2019
  • Ли, Пэ Кхын
RU2799079C2
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ 2019
  • Ли, Пэ Кхын
RU2819393C2
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ 2019
  • Ли, Пэ Кхын
RU2819080C2
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ 2019
  • Ли, Пэ Кхын
RU2819286C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ 2019
  • Ли, Пэ Кхын
RU2808720C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ 2019
  • Ли, Пэ Кхын
RU2801863C2

Иллюстрации к изобретению RU 2 806 152 C2

Реферат патента 2023 года СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛА ИЗОБРАЖЕНИЯ

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

Формула изобретения RU 2 806 152 C2

1. Способ декодирования видео, включающий следующие этапы:

применение разбиения к блоку кодирования для получения первого элемента предсказания и второго элемента предсказания, при этом то, применять или нет разбиение к блоку кодирования, определяют на основании размера блока кодирования;

получение списка кандидатов на слияние для блока кодирования;

получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние; и

получение отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении, при этом

первую информацию о движении для первого элемента предсказания получают из первого кандидата на слияние в списке кандидатов на слияние, и вторую информацию о движении для второго элемента предсказания получают из второго кандидата на слияние, отличного от первого кандидата на слияние,

при этом способ включает этап декодирования первой информации об индексах для указания первого кандидата на слияние и второй информации об индексах для указания второго кандидата на слияние из битового потока, при этом

когда значение второй информации об индексах равняется значению первой информации об индексах или больше него, значение второй информации об индексах, указывающей второго кандидата на слияние, получают путем прибавления 1 к значению второй информации об индексах.

2. Способ по п. 1, отличающийся тем, что, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования не разрешают.

3. Способ по п. 1, отличающийся тем, что максимальное количество кандидатов на слияние, которое содержит список кандидатов на слияние, определяют на основании того, получают ли первый элемент предсказания и второй элемент предсказания путем применения разбиения к блоку кодирования.

4. Способ по п. 1, отличающийся тем, что первый элемент предсказания представляет собой первый треугольный элемент предсказания, и второй элемент предсказания представляет собой второй треугольный элемент предсказания.

5. Способ по п. 4, отличающийся тем, что дополнительно включает этап декодирования первой информации об индексах для определения кандидата на слияние первого треугольного элемента предсказания и второй информации об индексах для определения кандидата на слияние второго треугольного элемента предсказания из битового потока,

при этом, когда значение второй информации об индексах равняется значению первой информации об индексах или больше него, значение второй информации об индексах получают путем прибавления 1 к значению второй информации об индексах.

6. Способ по п. 5, отличающийся тем, что получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние включает:

получение первой информации о движении для первого треугольного элемента предсказания из кандидата на слияние, определенного на основании первой информации об индексах, и

получение второй информации о движении для второго треугольного элемента предсказания из кандидата на слияние, определенного на основании второй информации об индексах.

7. Способ кодирования видео, включающий следующие этапы:

применение разбиения к блоку кодирования для получения первого элемента предсказания и второго элемента предсказания, при этом то, применять или нет разбиение к блоку кодирования, определяют на основании размера блока кодирования;

получение списка кандидатов на слияние для блока кодирования;

получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние; и

получение отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении, при этом

первую информацию о движении для первого элемента предсказания получают из первого кандидата на слияние в списке кандидатов на слияние, и вторую информацию о движении для второго элемента предсказания получают из второго кандидата на слияние, отличного от первого кандидата на слияние,

при этом способ включает этап кодирования первой информации об индексах для указания первого кандидата на слияние и второй информации об индексах для указания второго кандидата на слияние из битового потока, при этом

когда индекс второго кандидата на слияние больше, чем индекс первого кандидата на слияние, вторую информацию об индексах кодируют с использованием значения, полученного путем вычитания 1 из индекса второго кандидата на слияние.

8. Способ по п. 7, отличающийся тем, что, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования не разрешают.

9. Способ по п. 7, отличающийся тем, что максимальное количество кандидатов на слияние, которое содержит список кандидатов на слияние, определяют на основании того, разбивают ли блок кодирования на первый элемент предсказания и второй элемент предсказания.

10. Способ по п. 7, отличающийся тем, что первый элемент предсказания представляет собой первый треугольный элемент предсказания, при этом второй элемент предсказания представляет собой второй треугольный элемент предсказания.

11. Способ по п. 10, отличающийся тем, что дополнительно включает этап кодирования первой информации об индексах для определения кандидата на слияние первого треугольного элемента предсказания и второй информации об индексах для определения кандидата на слияние второго треугольного элемента предсказания, при этом

когда индекс кандидата на слияние второго треугольного элемента предсказания равняется индексу кандидата на слияние первого треугольного элемента предсказания или больше него, вторую информацию об индексах кодируют с использованием значения, полученного путем вычитания 1 из индекса кандидата на слияние второго треугольного элемента предсказания.

12. Способ по п. 11, отличающийся тем, что получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние включает:

получение первой информации о движении для первого треугольного элемента предсказания из кандидата на слияние, определенного на основании первой информации об индексах, и

получение второй информации о движении для второго треугольного элемента предсказания из кандидата на слияние, определенного на основании второй информации об индексах.

13. Устройство декодирования видео, содержащее блок для предсказания, осуществляемого между изображениями, выполненное с возможностью выполнения способа по любому из пп. 1-6.

14. Устройство кодирования видео, содержащее блок для предсказания, осуществляемого между изображениями, выполненное с возможностью выполнения способа по любому из пп. 7-12.

Документы, цитированные в отчете о поиске Патент 2023 года RU2806152C2

US 2013202038 A1, 2013.08.08
S
OUDIN et al., BLOCK MERGING FOR QUADTREE-BASED VIDEO CODING, IEEE International Conference on Multimedia and Expo (ICME 2011), Barcelona, Spain 2011.07.11-2011.07.15
RU-LING LIAO et al., CE10.3.1.b: Triangular prediction unit mode, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG

RU 2 806 152 C2

Авторы

Ли, Пэ Кхын

Даты

2023-10-26Публикация

2019-11-08Подача