Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к способу и устройству для кодирования или декодирования видеосигналов.
Предпосылки изобретения
[0002] В связи с тенденцией к увеличению размеров дисплейных панелей растет спрос на видеоуслуги высокой четкости. Самая большая проблема видеоуслуг высокой четкости заключается в том, что объем данных значительно увеличивается, и для решения этой проблемы активно проводились исследования по улучшению степени сжатия видео. В качестве репрезентативного примера в 2009 году была создана Совместная группа по кодированию видео (JCT-VC) в Группе экспертов по кодированию видео (VCEG) в рамках Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T) и Группы экспертов по движущимся изображениям (MPEG). JCT-VC предложила высокоэффективное кодирование видео (HEVC), которое представляет собой стандарт сжатия видео, эффективность сжатия которого примерно в два раза выше, чем у H.264/AVC, и он одобрен в качестве стандарта 25 января 2013 года. С быстрым развитием видеоуслуг высокой четкости производительность HEVC постепенно обнаруживает свои ограничения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническая задача
[0003] Настоящее изобретение направлено на предоставление способа разделения блока кодирования на множество блоков предсказания при кодировании или декодировании видеосигналов и устройства для выполнения способа.
[0004] Настоящее изобретение направлено на предоставление способа получения информации о движении для каждого из множества блоков предсказания при кодировании или декодировании видеосигналов и устройства для выполнения способа.
[0005] Настоящее изобретение направлено на предоставление способа получения кандидата на слияние с использованием таблицы информации о движении между участками при кодировании или декодировании видеосигналов и устройства для выполнения способа.
[0006] Технические задачи, которые должны быть решены с помощью настоящего изобретения, не ограничиваются указанными выше задачами, и другие технические задачи, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.
Техническое решение
[0007] Способ декодирования или кодирования видеосигнала согласно настоящему изобретению включает определение того, следует ли разбивать блок кодирования на первый элемент предсказания и второй элемент предсказания, определение типа раздела блока кодирования, когда определяют то, что следует разбить блок кодирования, определение индекса второго кандидата на слияние на основании сравнения между значением второй информации об индексах и значением первой информации об индексах, получение первой информации о движении в отношении первого элемента предсказания в блоке кодирования и второй информации о движении в отношении второго элемента предсказания в блоке кодирования и выборку отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении. В этом случае первая информация о движении в отношении первого элемента предсказания может быть получена от первого кандидата на слияние, указанного с помощью первой информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние, и вторая информация о движении в отношении второго элемента предсказания может быть получена от второго кандидата на слияние, указанного с помощью второй информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние.
[0008] Когда значение второй информации об индексах больше, чем значение первой информации об индексах, или равняется ему, индекс второго кандидата на слияние равняется значению второй информации об индексах плюс единица.
[0009] Когда значение второй информации об индексах меньше, чем значение первой информации об индексах, индекс второго кандидата на слияние равняется значению второй информации об индексах.
[0010] Когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания, отсчет предсказания может быть получен на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго отсчета предсказания, полученного на основании второй информации о движении.
[0011] Первый весовой коэффициент, применяемый к первому отсчету предсказания, может быть определен на основании координаты x и координаты y отсчета предсказания.
[0012] Второй весовой коэффициент, применяемый ко второму отсчету предсказания, может быть получен путем вычитания первого весового коэффициента из постоянного значения.
[0013] Размер граничного участка может быть определен на основании по меньшей мере одного из размера блока кодирования или формы блока кодирования.
[0014] Признаки, кратко изложенные выше в отношении настоящего изобретения, являются просто иллюстративными аспектами подробного описания настоящего изобретения, описанного ниже, и не ограничивают объем настоящего изобретения.
Положительные эффекты
[0015] Согласно настоящему изобретению путем разделения блока кодирования на множество блоков предсказания и получения информации о движении для каждого из блоков предсказания можно улучшить эффективность предсказания, осуществляемого между изображениями.
[0016] Согласно настоящему изобретению путем предоставления способа получения кандидата на слияние с использованием таблицы информации о движении между участками можно улучшить эффективность предсказания, осуществляемого между изображениями.
[0017] Положительные эффекты настоящего изобретения не ограничиваются указанными выше эффектами, и другие положительные эффекты, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0018] На фиг. 1 представлена структурная схема кодера согласно варианту осуществления настоящего изобретения.
[0019] На фиг. 2 представлена структурная схема декодера согласно варианту осуществления настоящего изобретения.
[0020] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.
[0021] На фиг. 4 представлено схематическое изображение, показывающее различные типы раздела блока кодирования.
[0022] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект раздела элемента кодового дерева.
[0023] На фиг. 6 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.
[0024] На фиг. 7 представлено схематическое изображение, иллюстрирующее нелинейное движение объекта.
[0025] На фиг. 8 представлена блок-схема способа предсказания, осуществляемого между изображениями, на основании аффинного движения согласно варианту осуществления настоящего изобретения.
[0026] На фиг. 9 представлено схематическое изображение, иллюстрирующее аффинный исходный вектор для каждой модели аффинного движения.
[0027] На фиг. 10 представлено схематическое изображение, иллюстрирующее аффинные векторы подблоков при 4-параметрической модели движения.
[0028] На фиг. 11 представлено схематическое изображение, показывающее соседние блоки, которые могут использоваться для получения кандидата на слияние.
[0029] На фиг. 12 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора текущего блока на основании аффинного исходного вектора аффинного соседнего блока.
[0030] На фиг. 13 представлено схематическое изображение, показывающее пример установки вектора движения подблока в качестве аффинного исходного вектора аффинного соседнего блока.
[0031] На фиг. 14-16 представлены схематические изображения, показывающие местоположение опорного отсчета.
[0032] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором применяется способ получения модифицированного аффинного вектора слияния.
[0033] На фиг. 18 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора аффинного кандидата на слияние на основании векторов движения подблоков, принадлежащих к соседнему блоку.
[0034] На фиг. 19 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании векторов движения подблоков, расположенных слева от текущего блока.
[0035] На фиг. 20 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании информации о движении соседнего блока или несоседнего блока, расположенного слева от текущего блока.
[0036] На фиг. 21 представлено схематическое изображение, показывающее местоположение блока для получения аффинного исходного вектора аффинного кандидата на слияние.
[0037] На фиг. 22 представлено схематическое изображение для описания примера комбинирования векторов движения множества соседних блоков для получения комбинированного кандидата на слияние.
[0038] На фиг. 23 представлено схематическое изображение, показывающее недоступный соседний блок.
[0039] На фиг. 24 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.
[0040] На фиг. 25 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.
[0041] На фиг. 26 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.
[0042] На фиг. 27 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.
[0043] На фиг. 28 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.
[0044] На фиг. 29 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.
[0045] На фиг. 30 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.
[0046] На фиг. 31 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.
[0047] На фиг. 32 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.
[0048] На фиг. 33 представлено схематическое изображение, показывающее пример разделения блока кодирования на множество блоков предсказания с использованием диагональной линии.
[0049] На фиг. 34 представлено схематическое изображение, показывающее пример разделения блока кодирования на два элемента предсказания.
[0050] На фиг. 35 показаны примеры, в которых блок кодирования разбивается на множество блоков предсказания разных размеров.
[0051] На фиг. 36 представлено схематическое изображение, показывающее соседние блоки, используемые для получения треугольного кандидата на слияние.
[0052] На фиг. 37 представлено схематическое изображение для описания примера определения доступности соседнего блока для каждого треугольного элемента предсказания.
[0053] На фиг. 38 и 39 представлены схематические изображения, показывающие пример получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания.
[0054] На фиг. 40 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.
[0055] На фиг. 41 представлено схематическое изображение, показывающее режимы внутреннего предсказания.
[0056] На фиг. 42 и 43 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.
[0057] На фиг. 44 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.
[0058] На фиг. 45 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.
[0059] На фиг. 46 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.
[0060] На фиг. 47 представлена блок-схема, показывающая процесс определения качественного показателя блока.
[0061] На фиг. 48 показаны предварительно заданные фильтры-кандидаты.
ПОДРОБНОЕ ОПИСАНИЕ
[0062] Далее будут подробно описаны варианты осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.
[0063] Изображение кодируется и декодируется в элементах блоков. В качестве примера, обработка кодирования и декодирования, такая как преобразование, квантование, предсказание, фильтрование в контуре или восстановление, может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.
[0064] Далее блок, подлежащий кодированию или декодированию, будет называться «текущим блоком». В качестве примера, текущий блок может указывать блок кодирования, блок преобразования или блок предсказания в зависимости от текущего этапа обработки кодирования или декодирования.
[0065] Кроме того, термин «элемент» в контексте данного документа может пониматься как указывающий базовый элемент для выполнения конкретного процесса кодирования и декодирования, а термин «блок» может пониматься как указывающий массив отсчетов предварительно определенного размера. Если не указано иное, термины «блок» и «элемент» могут использоваться взаимозаменяемо. В качестве примера, в следующих вариантах осуществления блок кодирования и элемент кодирования могут пониматься как имеющие эквивалентные значения.
[0066] На фиг. 1 представлена структурная схема кодера согласно варианту осуществления настоящего изобретения.
[0067] Как показано на фиг. 1, устройство 100 кодирования видео может содержать устройство 110 разбиения изображений, предсказатели 120 и 125, преобразователь 130, квантователь 135, устройство 160 для переупорядочивания, энтропийный кодер 165, обратный квантователь 140, обратный преобразователь 145, фильтр 150 и запоминающее устройство 155.
[0068] Элементы на фиг. 1 показаны независимо, чтобы представлять различные характеристические функции в устройстве кодирования видео, и каждый из элементов не предназначен для выполнения в отдельном аппаратном блоке или в качестве одного программного блока. Другими словами, для удобства описания элементы расположены независимо друг от друга. Для выполнения функций по меньшей мере два элемента могут быть объединены в один элемент, или один элемент может быть разделен на множество элементов. В этом случае вариант осуществления для комбинации элементов и вариант осуществления для разделения элемента входят в объем настоящего изобретения без отступления от сущности настоящего изобретения.
[0069] Кроме того, некоторые из элементов могут не представлять собой существенные элементы для выполнения существенных функций в настоящем изобретении, а могут представлять собой просто необязательные элементы для повышения производительности. Настоящее изобретение может быть реализовано путем включения только элементов, необходимых для реализации сущности настоящего изобретения, а не элементов, используемых только для повышения производительности. Даже структура, включающая только существенные элементы, а не необязательные элементы, используемые только для повышения производительности, входит в объем настоящего изобретения.
[0070] Устройство 110 разбиения изображений может разбивать входное изображение на по меньшей мере один элемент обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Устройство 110 разбиения изображений может разбить одно изображение на множество комбинаций элементов кодирования, элементов предсказания и элементов преобразования и может выбрать одну комбинацию элементов кодирования, элементов предсказания и элементов преобразования в соответствии с предварительно определенным критерием (например, функцией стоимости), чтобы кодировать изображение.
[0071] Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения изображения на элементы кодирования может использоваться рекурсивная древовидная структура, такая как структура четвертичного дерева. Элемент кодирования, разбитый на другие элементы кодирования с использованием одного изображения или наибольшего элемента кодирования в качестве корня, может иметь количество дочерних узлов, соответствующее количеству разбитых элементов кодирования. Элемент кодирования, который больше не разбивается вследствие предварительно определенного ограничения, служит листовым узлом. То есть, когда предполагается, что для одного элемента кодирования возможно только квадратное разделение, один элемент кодирования может быть разбит на не более чем четыре других элемента кодирования.
[0072] В следующих вариантах осуществления настоящего изобретения элемент кодирования может относиться к элементу, выполненному с возможностью выполнения кодирования, или элементу, выполненному с возможностью выполнения декодирования.
[0073] Один элемент кодирования может быть разбит на по меньшей мере один или более элементов предсказания одинакового размера квадратной или прямоугольной формы и может быть разбит на элементы предсказания таким образом, чтобы один из элементов предсказания отличался от другого элемента предсказания по форме и/или размеру.
[0074] Когда генерируется элемент предсказания, подвергаемый внутреннему предсказанию, на основании элемента кодирования, и элемент кодирования не является минимальным элементом кодирования, внутреннее предсказание может выполняться без разделения элемента кодирования на множество элементов предсказания N×N.
[0075] Предсказатели 120 и 125 могут содержать предсказатель 120, осуществляющий предсказание между изображениями, выполненный с возможностью выполнения предсказания, осуществляемого между изображениями, и внутренний предсказатель 125, выполненный с возможностью выполнения внутреннего предсказания. Предсказатели 120 и 125 могут определить, следует ли выполнять внутреннее предсказание или использовать предсказание, осуществляемое между изображениями, в отношении элементов предсказания, и могут определить подробную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т. п.), соответствующую каждому способу предсказания. В этом случае элемент обработки, в котором выполняется предсказание, может отличаться от элемента обработки, в котором определяются способ предсказания и конкретные подробности. Например, способ предсказания, режим предсказания и т. п. могут определяться элементом предсказания, а предсказание может выполняться элементом преобразования. Остаточное значение (остаточный блок) между сгенерированным блоком предсказания и исходным блоком может вводиться в преобразователь 130. Кроме того, информация о векторе движения, информация о режиме предсказания и т. п., которые используются для предсказания, в дополнение к остаточному значению, могут быть кодированы энтропийным кодером 165 и переданы в декодер. Когда используется конкретный режим кодирования, исходный блок может быть без изменений кодирован и передан в декодер без генерирования при этом блока предсказания.
[0076] Предсказатель 120, осуществляющий предсказание между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном из предшествующего изображения или следующего изображения относительно текущего изображения, и в некоторых случаях элемент предсказания может быть предсказан на основании информации о частичном участке текущего изображения, в которой осуществлено кодирование. Предсказатель 120, осуществляющий предсказание между изображениями, может содержать интерполятор опорного изображения, предсказатель движения и компенсатор движения.
[0077] Интерполятор опорного изображения может получать информацию об опорном изображении из запоминающего устройства 155 и может генерировать информацию о пикселях, количество которых меньше или равно целому числу пикселей, из опорного изображения. В случае пикселей яркости фильтр интерполяции по 8-ми точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/4 пикселей. В случае сигналов цветности фильтр интерполяции по 4-м точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/8 пикселей.
[0078] Предсказатель движения может выполнить предсказание движения на основании опорного изображения, интерполированного с помощью интерполятора опорного изображения. В качестве способа вычисления вектора движения могут использоваться различные способы, такие как алгоритм сопоставления блоков на основании полного поиска (FBMA), алгоритм трехэтапного поиска (TSS) и алгоритм нового трехэтапного поиска (NTS). Вектор движения может иметь значение вектора движения в элементах, состоящих из 1/2 или 1/4 пикселей, на основании интерполированных пикселей. Элемент предсказания движения может предсказывать текущий элемент предсказания путем использования другого способа предсказания движения. В качестве способа предсказания движения могут использоваться различные способы, такие как способ пропуска, способ слияния, способ усовершенствованного предсказания вектора движения (AMVP) и способ внутриблочного копирования.
[0079] Внутренний предсказатель 125 может генерировать элемент предсказания на основании информации об опорном пикселе рядом с текущим блоком, которая представляет собой информации о пикселе в текущем изображении. Когда ближайший блок текущего элемента предсказания представляет собой блок, подвергаемый предсказанию, осуществляемому между изображениями, и, таким образом, опорный пиксель представляет собой пиксель, подвергаемый предсказанию, осуществляемому между изображениями, информация об опорном пикселе ближайшего блока, подвергаемого внутреннему предсказанию, может быть использована вместо опорного пикселя, включенного в блок, подвергаемый предсказанию, осуществляемому между изображениями. То есть, когда опорный пиксель недоступен, по меньшей мере один доступный опорный пиксель может быть использован вместо недоступной информации об опорном пикселе.
[0080] Режимы предсказания при внутреннем предсказании могут включать в себя режим направленного предсказания, в котором используется информация об опорных пикселях в зависимости от направления предсказания, и ненаправленный режим, который не использует информацию о направленности при выполнении предсказания. Режим для предсказания информации о яркости и режим для предсказания информации о цветности могут быть разными, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости, или информация о предсказываемом сигнале яркости может использоваться для предсказания информации о цветности.
[0081] Когда выполняется внутреннее предсказание, и размер элемента предсказания равен размеру элемента преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. Однако, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разделения N×N только для минимального элемента кодирования.
[0082] В способе внутреннего предсказания блок предсказания может быть сгенерирован после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному пикселю в зависимости от режима предсказания. Тип фильтра AIS, применяемого к опорному пикселю, может меняться. С целью выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, находящегося рядом с текущим элементом предсказания. При предсказании режима предсказания текущего элемента предсказания с использованием информации о режиме, предсказанной из ближайшего элемента предсказания, информация, указывающая, что текущий элемент предсказания и ближайший элемент предсказания имеют одинаковый режим предсказания, может передаваться с использованием информации о предварительно определенном флаге, когда режим внутреннего предсказания текущего элемента предсказания такой же, как режим внутреннего предсказания ближайшего элемента предсказания, и энтропийное кодирование может выполняться для кодирования информации о режиме предсказания текущего блока, когда режим предсказания текущего элемента предсказания отличается от режима предсказания ближайшего элемента предсказания.
[0083] Кроме того, остаточный блок, содержащий информацию об остаточном значении, которое представляет собой разницу между элементом предсказания, подвергаемым предсказанию, и исходным блоком элемента предсказания, может быть сгенерирован на основании элементов предсказания, сгенерированных предсказателями 120 и 125. Сгенерированный остаточный блок может быть введен в преобразователь 130.
[0084] Преобразователь 130 может преобразовывать остаточный блок, содержащий информацию об остаточном значении между исходным блоком и элементами предсказания, сгенерированными предсказателями 120 и 125 путем использования способа преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST). В этом случае основа преобразования DCT содержит по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST содержит DST7. То, применять ли DCT или DST для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока. Преобразование остаточного блока может быть пропущено. Флаг, указывающий то, следует ли пропустить преобразование остаточного блока, может быть кодирован. Пропуск преобразования может быть разрешен для остаточных блоков, размер которых меньше, чем пороговое значение, или равняется ему, компонента яркости или компонента цветности при формате 4:4:4.
[0085] Квантователь 135 может квантовать значения, которые преобразованы в частотную область преобразователем 130. Коэффициенты квантования могут меняться в зависимости от блока или важности изображения. Значения, вычисленные квантователем 135, могут быть переданы в обратный квантователь 140 и устройство 160 для переупорядочивания.
[0086] Устройство 160 для переупорядочивания может выполнять переупорядочивание значений коэффициентов в отношении квантованных остаточных значений.
[0087] Устройство 160 для переупорядочивания может изменять коэффициенты с двумерной блочной формы на одномерную векторную форму с помощью способа сканирования коэффициентов. Например, устройство 160 для переупорядочивания может сканировать коэффициенты DC и даже высокочастотные коэффициенты, используя способ зигзагообразного сканирования, чтобы преобразовать коэффициенты в одномерную векторную форму. В зависимости от режима внутреннего предсказания и размера элемента преобразования, вместо зигзагообразного сканирования может использоваться вертикальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении столбца, или горизонтальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении строки. То есть устройство для переупорядочивания может определить способ сканирования, который будет использоваться, из зигзагообразного сканирования, вертикального сканирования и горизонтального сканирования, в зависимости от размера элемента преобразования и режима внутреннего предсказания.
[0088] Энтропийный кодер 165 может выполнять энтропийное кодирование на основании значений, вычисленных устройством 160 для переупорядочивания. Для энтропийного кодирования могут использоваться, например, различные способы кодирования, такие как экспоненциальный способ Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
[0089] Энтропийный кодер 165 может кодировать различную информацию, такую как информация о коэффициенте остаточного значения и информация о типе блока элемента кодирования, информация о режиме предсказания, информация о разделении, информация об элементе предсказания, информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, из устройства 160 для переупорядочивания и предсказателей 120 и 125.
[0090] Энтропийный кодер 165 может выполнять энтропийное кодирование в отношении значений коэффициентов элемента кодирования, введенных из устройства 160 для переупорядочивания.
[0091] Обратный квантователь 140 может обратно квантовать значения, квантованные квантователем 135, а обратный преобразователь 145 может обратно преобразовывать значения, преобразованные преобразователем 130. Остаточное значение, сгенерированное обратным квантователем 140 и обратным преобразователем 145, может быть объединено с элементом предсказания, предсказанным посредством устройства оценки движения, компенсатора движения и внутреннего предсказателя из предсказателей 120 и 125, для генерирования восстановленного блока.
[0092] Фильтр 150 может применять по меньшей мере одно из деблочного фильтра, корректора смещения и адаптивного контурного фильтра.
[0093] Деблочный фильтр может удалять искажение блоков, которое произошло из-за границы между блоками восстановленного изображения. С целью определения того, выполнять ли удаление блочности, можно определить, следует ли применять деблочный фильтр к текущему блоку, на основании пикселей, включенных в несколько строк или столбцов в блоке. Когда деблочный фильтр применяется к блоку, может применяться сильный фильтр или слабый фильтр в зависимости от требуемой силы фильтрации удаления блочности. Кроме того, когда применяется деблочный фильтр, вертикальная фильтрация и горизонтальная фильтрация могут выполняться таким образом, чтобы горизонтальная фильтрация и вертикальная фильтрация обрабатывались параллельно.
[0094] Корректор смещения может корректировать смещение из исходного изображения в изображении, подвергаемом удалению блочности, в элементах пикселей. Способ деления пикселей, включенных в изображение, на определенное количество участков, определения участка, который должен быть подвергнут смещению, и применения смещения к определенному участку или способ применения смещения с учетом информации о краях каждого пикселя может быть использован для выполнения коррекции смещения в отношении конкретного изображения.
[0095] Адаптивная контурная фильтрация (ALF) может выполняться на основании значений, полученных путем сравнения отфильтрованного восстановленного изображения и исходного изображения. Путем деления пикселей, включенных в изображение, на предварительно определенные группы и определения фильтра, который должен применяться к каждой из групп, для каждой группы может выполняться дифференциальная фильтрация. Информация о том, применять ли ALF, может передаваться для каждого элемента кодирования (CU), а форма и коэффициенты фильтрования фильтра ALF, который должен применяться, могут меняться в зависимости от блока. Кроме того, фильтр ALF в той же самой форме (фиксированной форме) может применяться независимо от характеристики блока, который должен быть подвергнут фильтрации.
[0096] Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленное посредством фильтра 150. Сохраненный восстановленный блок или изображение могут быть предоставлены предсказателям 120 и 125 при выполнении предсказания, осуществляемого между изображениями.
[0097] На фиг. 2 представлена структурная схема декодера согласно варианту осуществления настоящего изобретения.
[0098] Как показано на фиг. 2, видеодекодер 200 может содержать энтропийный декодер 210, устройство 215 для переупорядочивания, обратный квантователь 220, обратный преобразователь 225, предсказатели 230 и 235, фильтр 240 и запоминающее устройство 245.
[0099] Когда битовый поток видео вводится из кодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре кодера.
[0100] Энтропийный декодер 210 может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре, в которой энтропийный кодер кодера выполняет энтропийное кодирование. Например, для соответствия способу, выполняемому кодером, могут применяться различные способы, такие как экспоненциальный способ Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
[0101] Энтропийный декодер 210 может декодировать информацию, относящуюся к внутреннему предсказанию и предсказанию, осуществляемому между изображениями, выполняемому кодером.
[0102] Устройство 215 для переупорядочивания может выполнять переупорядочивание в отношении битового потока, подвергаемого энтропийному декодированию энтропийным декодером 210, на основании способа переупорядочивания, используемого кодером. Устройство 215 для переупорядочивания может восстанавливать коэффициенты, выраженные в одномерной векторной форме, в двумерные коэффициенты блочного типа для переупорядочивания двумерных коэффициентов блочного типа. Устройство 215 для переупорядочивания может принимать информацию, относящуюся к сканированию коэффициентов, выполняемому кодером, и выполнять переупорядочивание посредством способа обратного сканирования на основании порядка сканирования кодера.
[0103] Обратный квантователь 220 может выполнять обратное квантование на основании значений коэффициентов переупорядоченного блока и параметров квантования, предоставленных кодером.
[0104] Обратный преобразователь 225 может выполнять обратное DCT или обратное DST в отношении результата квантования, выполняемого кодером, при этом обратное DCT или обратное DST представляет собой преобразование, обратное преобразованию, которое было выполнено элементом преобразования, то есть DCT или DST. В этом случае основа преобразования DCT может содержать по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST может содержать DST7. Альтернативно, когда преобразование пропускается в кодере, обратный преобразователь 225 может не выполнять обратное преобразование. Обратное преобразование может выполняться на основании элемента передачи, определенного кодером. В обратном преобразователе 225 декодера методы преобразования (например, DCT и DST) могут выборочно выполняться в зависимости от множества частей информации, таких как способ предсказания, размер текущего блока и направление предсказания.
[0105] Предсказатели 230 и 235 могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, которая предоставляется энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, которая предоставляется запоминающим устройством 245.
[0106] Как описано выше, когда внутреннее предсказание выполняется таким же образом, как и в кодере, и элемент предсказания равен по размеру элементу преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. С другой стороны, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разделения N×N только для минимального элемента кодирования.
[0107] Предсказатели 230 и 235 могут содержать определитель элемента предсказания, предсказатель, осуществляющий предсказание между изображениями, и внутренний предсказатель. Определитель элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, информация о режиме предсказания для способа внутреннего предсказания и информация, относящаяся к предсказанию движения, для способа предсказания, осуществляемого между изображениями, от энтропийного декодера 210, классифицировать элемент предсказания в текущем элементе кодирования и определять, выполняет ли элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Используя информацию, необходимую для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленную кодером, предсказатель 230, осуществляющий предсказание между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно из изображения, предшествующего текущему изображению, включающему текущий элемент предсказания, или изображения, следующего за текущим изображением. Альтернативно предсказание, осуществляемое между изображениями, может выполняться на основании информации о некоторых предварительно восстановленных участках в текущем изображении, включающем текущий элемент предсказания.
[0108] Предсказатель 230, осуществляющий предсказание между изображениями, может определять, является ли способ предсказания движения для элемента предсказания, который включен в соответствующий элемент кодирования, режимом пропуска, режимом слияния, режимом AMVP или режимом внутриблочного копирования, на основании элемента кодирования с целью выполнения предсказания, осуществляемого между изображениями.
[0109] Внутренний предсказатель 235 может генерировать блок предсказания на основании информации о пикселях в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, подвергаемый внутреннему предсказанию, внутренний предсказатель 235 может выполнять внутреннее предсказание на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленной кодером. Внутренний предсказатель 235 может содержать фильтр AIS, интерполятор опорных пикселей и фильтр DC. Фильтр AIS, который представляет собой часть, которая выполняет фильтрацию в отношении опорного пикселя текущего блока, может определить, следует ли применять фильтр, в зависимости от режима предсказания текущего элемента предсказания. Фильтр AIS может выполнять фильтрацию AIS в отношении опорного пикселя текущего блока с использованием информации о фильтре AIS и режима предсказания элемента предсказания, предоставленных кодером. Когда режим предсказания текущего блока представляет собой режим, в котором фильтрация AIS не выполняется, фильтр AIS может не применяться.
[0110] Когда режим предсказания блока предсказания представляет собой режим предсказания, в котором внутреннее предсказание выполняется на основании значения пикселя, полученного путем интерполяции опорного пикселя, интерполятор опорного пикселя может интерполировать опорный пиксель для генерирования опорного пикселя в элементе пикселя, меньшем или равном целому числу. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, в котором блок предсказания генерируется без интерполяции опорного пикселя, опорный пиксель не может быть интерполирован. Когда режим предсказания текущего блока представляет собой режим DC, фильтр DC может генерировать блок предсказания посредством фильтрации.
[0111] Восстановленный блок или изображение могут быть предоставлены фильтру 240. Фильтр 240 может содержать деблочный фильтр, корректор смещения и фильтр ALF.
[0112] Фильтр 240 может принимать от кодера информацию о том, применяется ли деблочный фильтр к соответствующему блоку или изображению, или информацию о том, применяется ли сильный фильтр или слабый фильтр при применении деблочного фильтра. Деблочный фильтр декодера может принимать информацию, относящуюся к деблочному фильтру, которая предоставляется кодером, и декодер может выполнять фильтрацию для удаления блочности в отношении соответствующего блока.
[0113] Корректор смещения может выполнять коррекцию смещения в отношении восстановленного изображения на основании типа коррекции смещения, информации о значении смещения и т. п., которые применяются к изображению при кодировании.
[0114] ALF может применяться к элементу кодирования на основании информации о том, применять ли ALF, информации о коэффициенте ALF и т. п., которые предоставляются из кодера. Информация ALF может быть предоставлена путем включения в конкретный набор параметров.
[0115] Запоминающее устройство 245 может хранить восстановленное изображение или блок таким образом, чтобы изображение или блок могли быть использованы в качестве опорного изображения или опорного блока, а также может предоставить восстановленное изображение в выходной элемент.
[0116] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.
[0117] Элемент кодирования наибольшего размера может быть задан в качестве блока кодового дерева. Одно изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева, который представляет собой элемент кодирования наибольшего размера, может называться наибольшим элементом кодирования (LCU). На фиг. 3 показан пример, в котором одно изображение разбито на множество элементов кодового дерева.
[0118] Размер элемента кодового дерева может быть задан на уровне изображения или уровне последовательности. С этой целью информация, указывающая размер элемента кодового дерева, может передаваться посредством набора параметров изображения или набора параметров последовательности.
[0119] В качестве примера, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно один из размеров 128×128 или 256×256 может быть определен как размер элемента кодового дерева на уровне изображения. В качестве примера, размер элемента кодового дерева в первом изображении может быть установлен равным 128×128, а размер элемента кодового дерева во втором изображении может быть установлен равным 256×256.
[0120] Элемент кодового дерева может быть разбит для генерирования блока кодирования. Блок кодирования указывает базовый элемент для обработки кодирования или декодирования. В качестве примера, предсказание или преобразование может выполняться для каждого блока кодирования, или режим предсказательного кодирования может определяться для каждого блока кодирования. В этом случае режим предсказательного кодирования указывает способ генерирования изображения предсказания. В качестве примера, режим предсказательного кодирования может включать внутреннее предсказание, предсказание, осуществляемое между изображениями, привязку к текущему изображению (CPR) (или внутриблочное копирование (IBC)) или комбинированное предсказание. Блок предсказания для блока кодирования может быть сгенерирован с использованием по меньшей мере одного режима предсказательного кодирования из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению или комбинированного предсказания для блока кодирования.
[0121] Информация, указывающая режим предсказательного кодирования текущего блока, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг, указывающий, является ли режим предсказательного кодирования внутренним режимом или режимом, осуществляемым между изображениями. Привязка к текущему изображению или комбинированное предсказание могут быть доступны только тогда, когда определено, что режим предсказательного кодирования текущего блока является режимом, осуществляемым между изображениями.
[0122] Привязка к текущему изображению предназначена для установки текущего изображения в качестве опорного изображения и получения блока предсказания текущего блока из участка текущего изображения, где осуществлено кодирование или декодирование. В этом случае текущее изображение относится к изображению, содержащему текущий блок. Информация, указывающая, что привязка к текущему изображению применяется к текущему блоку, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг. Может быть определено, что режим предсказательного кодирования текущего блока представляет собой привязку к текущему изображению, когда флаг имеет значение true (истина), и может быть определено, что режим предсказания текущего блока представляет собой предсказание, осуществляемое между изображениями, когда флаг имеет значение false (ложь).
[0123] Альтернативно режим предсказательного кодирования текущего блока может быть определен на основании индекса опорного изображения. В качестве примера, когда индекс опорного изображения указывает текущее изображение, может быть определено, что режим предсказательного кодирования текущего блока представляет собой привязку к текущему изображению. Когда индекс опорного изображения указывает на изображение, отличное от текущего изображения, может быть определено, что режим предсказательного кодирования текущего блока представляет собой предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, который использует информацию об участке текущего изображения, где осуществлено кодирование или декодирование, а предсказание, осуществляемое между изображениями, представляет собой способ предсказания, который использует информацию другого изображения, где осуществлено кодирование или декодирование.
[0124] Комбинированное предсказание указывает режим кодирования, полученный путем комбинирования двух или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению. В качестве примера, когда применяется комбинированное предсказание, первый блок предсказания может быть сгенерирован на основании одного из внутреннего предсказания, предсказания, осуществляемого между изображениями, или привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого. Когда генерируются первый блок предсказания и второй блок предсказания, окончательный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенной суммы между первым блоком предсказания и вторым блоком предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.
[0125] На фиг. 4 представлено схематическое изображение, показывающее различные типы раздела блока кодирования.
[0126] Блок кодирования может быть разбит на множество блоков кодирования на основании разделения на основе четвертичного дерева, разделения на основе двоичного дерева или разделения на основе троичного дерева. Блок кодирования, полученный посредством разделения, может быть повторно разбит на множество блоков кодирования на основании разделения на основе четвертичного дерева, разделения на основе двоичного дерева или разделения на основе троичного дерева.
[0127] Разделение на основе четвертичного дерева указывает на метод разделения для разбиения текущего блока на четыре блока. В результате разделения на основе четвертичного дерева текущий блок может быть разбит на четыре квадратных раздела (см. «SPLIT_QT» на фиг. 4A).
[0128] Разделение на основе двоичного дерева указывает на метод разделения для разбиения текущего блока на два блока. Разделение текущего блока на два блока в вертикальном направлении (т. е. с использованием вертикальной линии поперек текущего блока) может называться вертикальным разделением на основе двоичного дерева, и разделение текущего блока на два блока в горизонтальном направлении (т. е. с использованием горизонтальной линии поперек текущего блока) может называться горизонтальным разделением на основе двоичного дерева. В результате разделения на основе двоичного дерева текущий блок может быть разбит на два неквадратных раздела. На фиг. 4B «SPLIT_BT_VER» представляет результат вертикального разделения на основе двоичного дерева. На фиг. 4C «SPLIT_BT_HOR» представляет результат горизонтального разделения на основе двоичного дерева.
[0129] Разделение на основе троичного дерева указывает на метод разделения для разбиения текущего блока на три блока. Разделение текущего блока на три блока в вертикальном направлении (т. е. с использованием двух вертикальных линий поперек текущего блока) может называться вертикальным разделением на основе троичного дерева, и разделение текущего блока на три блока в горизонтальном направлении (т. е. с использованием двух горизонтальных линий поперек текущего блока) может называться горизонтальным разделением на основе троичного дерева. В результате разделения на основе троичного дерева текущий блок может быть разбит на три неквадратных раздела. В этом случае ширина или высота раздела, расположенного в центре текущего блока, может быть вдвое больше, чем у других разделов. На фиг. 4D «SPLIT_TT_VER» представляет результат вертикального разделения на основе троичного дерева. На фиг. 4E «SPLIT_TT_HOR» представляет результат горизонтального разделения на основе троичного дерева.
[0130] Количество раз, которое разбивается элемент кодового дерева, можно задать как глубину раздела (глубину разделения). Максимальная глубина раздела элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Таким образом, максимальная глубина раздела элемента кодового дерева может меняться в зависимости от последовательности или изображения.
[0131] Альтернативно максимальная глубина раздела может определяться индивидуально для каждого метода разделения. В качестве примера, максимальная глубина раздела, разрешенная для разделения на основе четвертичного дерева, может отличаться от максимальной глубины раздела, разрешенной для разделения на основе двоичного дерева и/или разделения на основе троичного дерева.
[0132] Кодер может передавать информацию, указывающую по меньшей мере одно из типов раздела или глубины раздела текущего блока в битовом потоке. Декодер может определять тип раздела и глубину раздела элемента кодового дерева на основании информации, проанализированной из битового потока.
[0133] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект разделения элемента кодового дерева.
[0134] Разделение блока кодирования с использованием такого метода разделения, как разделение на основе четвертичного дерева, разделение на основе двоичного дерева и/или разделение на основе троичного дерева, может называться разделением на основе нескольких деревьев (разделением на основе нескольких деревьев).
[0135] Блоки кодирования, сгенерированные путем применения разделения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина раздела блока кодирования представляет собой k, глубина раздела нижних блоков кодирования установлена равной k+1.
[0136] И наоборот, относительно блоков кодирования с глубиной раздела k+1, блок кодирования с глубиной раздела k может называться верхним блоком кодирования.
[0137] Тип раздела текущего блока кодирования может быть определен на основании по меньшей мере одного из типов раздела верхнего блока кодирования или типа раздела соседнего блока кодирования. В этом случае соседний блок кодирования является смежным с текущим блоком кодирования и может содержать по меньшей мере один из соседнего блока, расположенного над текущим блоком кодирования, соседнего блока, расположенного слева от текущего блока кодирования, или соседнего блока, смежного с верхним левым углом текущего блока кодирования. В этом случае тип раздела может включать в себя по меньшей мере одно из наличия разделения на основе четвертичного дерева, наличия разделения на основе двоичного дерева, направления разделения на основе двоичного дерева, наличия разделения на основе троичного дерева или направления разделения на основе троичного дерева.
[0138] С целью определения типа раздела блока кодирования, информация, указывающая, разбит ли блок кодирования, может передаваться в битовом потоке. Информация представляет собой 1-битный флаг «split_cu_flag», и значение флага true указывает, что блок кодирования разбит с помощью метода разделения на основе нескольких деревьев.
[0139] Когда split_cu_flag имеет значение true, информация, указывающая, разбит ли блок кодирования посредством разделения на основе четвертичного дерева, может передаваться в битовом потоке. Информация представляет собой 1-битовый флаг «split_qt_flag», и, когда флаг имеет значение true, блок кодирования может быть разбит на четыре блока.
[0140] Например, на фиг. 5 показано, что четыре блока кодирования с глубиной раздела, равной единице, генерируются, потому что элемент кодового дерева разбит посредством разделения на основе четвертичного дерева. Также показано, что разделение на основе четвертичного дерева повторно применяется к первому блоку кодирования и четвертому блоку кодирования из четырех блоков кодирования, сгенерированных посредством выполнения разделения на основе четвертичного дерева. В результате могут быть сгенерированы четыре блока кодирования с глубиной раздела, равной двум.
[0141] Также, повторно применяя разделение на основе четвертичного дерева к блоку кодирования с глубиной раздела, равной двум, может быть сгенерирован блок кодирования с глубиной раздела, равной трем.
[0142] Когда разделение на основе четвертичного дерева не применяется к блоку кодирования, тогда то, следует ли выполнять разделение на основе двоичного дерева или разделение на основе троичного дерева в отношении блока кодирования, может быть определено с учетом по меньшей мере одного из размера блока кодирования, того, расположен ли блок кодирования на краю изображения, максимальной глубины раздела или аспекта разделения соседнего блока. Когда определено, что в отношении блока кодирования выполнено разделение на основе двоичного дерева или разделение на основе троичного дерева, информация, указывающая направление разделения, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_vertical_flag. На основании флага может быть определено, является ли направление разделения вертикальным или горизонтальным. Кроме того, информация, указывающая, какое из разделения на основе двоичного дерева и разделения на основе троичного дерева применено к блоку кодирования, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_binary_flag. На основании флага может быть определено, применено ли к блоку кодирования разделение на основе двоичного дерева или разделение на основе троичного дерева.
[0143] Например, на фиг. 5 показано, что вертикальное разделение на основе двоичного дерева применяется к блоку кодирования с глубиной раздела, равной единице, вертикальное разделение на основе троичного дерева применяется к левому блоку кодирования из блоков кодирования, сгенерированных в результате вертикального разделения на основе двоичного дерева, и вертикальное разделение на основе двоичного дерева применяется к правому блоку кодирования.
[0144] Предсказание, осуществляемое между изображениями, представляет собой режим предсказательного кодирования, в котором текущий блок предсказывается с использованием информации о предшествующем изображении. В качестве примера, блок, включенный в предшествующее изображение и размещенный в таком же местоположении, что и текущий блок (далее называемый совмещаемым блоком), может быть установлен в качестве блока предсказания текущего блока. Блок предсказания, сгенерированный на основании блока, размещенного в таком же местоположении, что и текущий блок, будет называться совмещаемым блоком предсказания.
[0145] Между тем, когда объект, присутствующий в предшествующем изображении, перемещается в другое местоположение в текущем изображении, текущий блок может быть эффективно предсказан с использованием движения объекта. Например, когда направление движения и размер объекта могут быть найдены путем сравнения предшествующего изображения с текущим изображением, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный с использованием информации о движении, может называться блоком предсказания движения.
[0146] Остаточный блок может быть сгенерирован путем вычитания блока предсказания из текущего блока. В это время, когда присутствует движение объекта, можно уменьшить энергию остаточного блока и, соответственно, можно улучшить эффективность сжатия остаточного блока путем использования блока предсказания движения вместо совмещаемого блока предсказания.
[0147] Как описано выше, генерирование блока предсказания с использованием информации о движении может называться предсказанием с компенсацией движения. В большинстве предсказаний, осуществляемых между изображениями, блок предсказания может быть сгенерирован на основании предсказания с компенсацией движения.
[0148] Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса. Вектор движения указывает направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает одно из однонаправленного предсказания L0, однонаправленного предсказания L1 или двунаправленного предсказания (предсказания L0 и предсказания L1). По меньшей мере одна из информации о движении в направлении L0 или информации о движении в направлении L1 может использоваться в зависимости от направления предсказания текущего блока. Двунаправленный весовой индекс указывает весовой коэффициент, применяемый к блоку предсказания L0, и весовой коэффициент, применяемый к блоку предсказания L1.
[0149] На фиг. 6 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.
[0150] Как показано на фиг. 6, способ предсказания, осуществляемого между изображениями, включает определение (S601) режима предсказания, осуществляемого между изображениями, текущего блока, получение (S602) информации о движении текущего блока в соответствии с определенным режимом предсказания, осуществляемого между изображениями, и выполнение предсказания с компенсацией движения (S603) в отношении текущего блока на основании полученной информации о движении.
[0151] В этом случае режим предсказания, осуществляемого между изображениями, который представляет различные методы для определения информации о движении текущего блока, может включать режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении и режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении. В качестве примера, режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении может включать режим слияния и режим предсказания вектора движения, а режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении может включать аффинный режим слияния и режим предсказания вектора аффинного движения. Информация о движении текущего блока может быть определена на основании информации, проанализированной из битового потока или блоков, соседних с текущим блоком, в соответствии с режимом предсказания, осуществляемого между изображениями.
[0152] Способ предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении будет подробно описан ниже.
[0153] На фиг. 7 представлено схематическое изображение, иллюстрирующее нелинейное движение объекта.
[0154] Движение объекта в изображении может происходить нелинейно. Например, как и в примере, показанном на фиг. 7, может происходить такое нелинейное движение объекта, как приближение, отдаление, поворот и аффинное преобразование. Когда происходит нелинейное движение объекта, вектор поступательного движения не может эффективно представлять движение объекта. Соответственно, можно улучшить эффективность кодирования путем использования аффинного движения в части, где происходило нелинейное движение объекта вместо поступательного движения.
[0155] На фиг. 8 представлена блок-схема способа предсказания, осуществляемого между изображениями, на основании аффинного движения согласно варианту осуществления настоящего изобретения.
[0156] Применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании информации, проанализированной из битового потока. Подробно, применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании по меньшей мере одно из флага, указывающего, применяется ли аффинный режим слияния к текущему блоку, или флага, указывающего, применяется ли режим предсказания вектора аффинного движения к текущему блоку.
[0157] Когда метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, применяется к текущему блоку, может быть определена (S801) модель аффинного движения текущего блока. По меньшей мере одна из 6-параметрической модели аффинного движения или 4-параметрической модели аффинного движения может быть определена в качестве модели аффинного движения. 6-параметрическая модель аффинного движения выражает аффинную модель с использованием шести параметров, а 4-параметрическая модель аффинного движения выражает аффинную модель с использованием четырех параметров.
[0158] Уравнение 1 выражает аффинное движение с использованием шести параметров. Аффинное движение представляет поступательное движение для заданного участка, определенного аффинными исходными векторами.
[0159] [Уравнение 1]
[0160] Когда аффинное движение выражено с использованием шести параметров, может быть выражено полное движение, но количество бит, необходимое для кодирования параметров, может увеличиться, что тем самым снижает эффективность кодирования. Соответственно, аффинное движение может быть выражено с использованием четырех параметров. Уравнение 2 выражает аффинное движение с использованием четырех параметров.
[0161] [Уравнение 2]
[0162] Информация для определения модели аффинного движения текущей модели может быть кодирована и передана в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг «affine_type_flag». Значение флага, равное 0, может указывать, что применяется 4-параметрическая модель аффинного движения, и значение флага, равное 1, может указывать, что применяется 6-параметрическая модель аффинного движения. Флаг может быть кодирован в элементах слайсов, тайлов или блоков (например, блоках кодирования или элементах кодового дерева). Когда флаг передается на уровне слайса, модель аффинного движения, определенная на уровне слайса, может применяться ко всем блокам, принадлежащим к слайсу.
[0163] Альтернативно модель аффинного движения текущего блока может быть определена на основании аффинного режима предсказания, осуществляемого между изображениями, текущего блока. В качестве примера, когда применяется аффинный режим слияния, может быть определено, что модель аффинного движения текущего блока представляет собой 4-параметрическую модель движения. С другой стороны, когда применяется режим предсказания вектора аффинного движения, информация для определения модели аффинного движения текущего блока может быть кодирована и передана в битовом потоке. В качестве примера, когда режим предсказания вектора аффинного движения применяется к текущему блоку, модель аффинного движения текущего блока может быть определена на основании 1-битного флага «affine_type_flag».
[0164] Затем может быть получен (S802) аффинный исходный вектор текущего блока. Когда выбрана 4-параметрическая модель аффинного движения, могут быть получены векторы движения в двух контрольных точках текущего блока. С другой стороны, когда выбрана 6-параметрическая модель аффинного движения, могут быть получены векторы движения в трех контрольных точках текущего блока. Вектор движения в контрольной точке может называться аффинным исходным вектором. Контрольная точка может включать по меньшей мере один из верхнего левого угла, верхнего правого угла или нижнего левого угла текущего блока.
[0165] На фиг. 9 представлено схематическое изображение, иллюстрирующее аффинный исходный вектор для каждой модели аффинного движения.
[0166] В 4-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для двух из верхнего левого угла, верхнего правого угла или нижнего левого угла. Например, как и в примере, показанном на фиг. 9A, когда выбрана 4-параметрическая модель аффинного движения, аффинный вектор может быть получен с использованием аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x0, y0)) и аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)). Аффинный исходный вектор для нижнего левого угла может использоваться вместо аффинного исходного вектора для верхнего левого угла, или аффинный исходный вектор для нижнего левого угла может использоваться вместо аффинного исходного вектора для верхнего правого угла.
[0167] В 6-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как и в примере, показанном на фиг. 9B, когда выбрана 6-параметрическая модель аффинного движения, аффинный вектор может быть получен с использованием аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x0, y0)), аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)) и аффинного исходного вектора sv2 для верхнего левого угла текущего блока (например, верхний левый отсчет (x2, y2)).
[0168] В следующем варианте осуществления при 4-параметрической модели аффинного движения аффинные исходные векторы для верхней левой контрольной точки и верхней правой контрольной точки будут называться первым аффинным исходным вектором и вторым аффинным исходным вектором соответственно. В следующих вариантах осуществления, в которых используются первый аффинный исходный вектор и второй аффинный исходный вектор, по меньшей мере один из первого аффинного исходного вектора и второго аффинного исходного вектора может быть заменен аффинным исходным вектором (третьим аффинным исходным вектором) для нижней левой контрольной точки или аффинным исходным вектором (четвертым аффинным исходным вектором) для нижней правой контрольной точки.
[0169] Кроме того, при 6-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки, верхней правой контрольной точки и нижней левой контрольной точки будут называться первым аффинным исходным вектором, вторым аффинным исходным вектором и третьим аффинным исходным вектором соответственно. В следующих вариантах осуществления, в которых используются первый аффинный исходный вектор, второй аффинный исходный вектор и третий аффинный исходный вектор, по меньшей мере один из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора может быть заменен аффинным исходным вектором (четвертым аффинным исходным вектором) для нижней правой контрольной точки.
[0170] Аффинный вектор может быть получен (S803) для каждого подблока с использованием аффинных исходных векторов. В этом случае аффинный вектор указывает вектор поступательного движения, полученный на основании аффинных исходных векторов. Аффинный вектор подблока может называться аффинным вектором движения подблока или вектором движения подблока.
[0171] На фиг. 10 представлено схематическое изображение, иллюстрирующее аффинные векторы подблоков при 4-параметрической модели движения.
[0172] Аффинный вектор подблока может быть получен на основании местоположения контрольной точки, местоположения подблока и аффинного исходного вектора. В качестве примера, в уравнении 3 показан пример получения аффинного вектора подблока.
[0173] [Уравнение 3]
[0174] В уравнении 3 (x, y) представляет местоположение подблока. В этом случае местоположение подблока указывает местоположение опорного отсчета, включенного в подблок. Опорный отсчет может представлять собой отсчет, который расположен в верхнем левом углу подблока, или отсчет, у которого по меньшей мере координата x или координата y расположена по центру. (x0, y0) представляет местоположение первой контрольной точки, и (sv0x, sv0y) представляет первый аффинный исходный вектор. Кроме того, (x1, y1) представляет местоположение второй контрольной точки, и (sv1x, sv1y) представляет второй аффинный исходный вектор.
[0175] Когда первая контрольная точка и вторая контрольная точка соответствуют верхнему левому углу и верхнему правому углу текущего блока соответственно, x1-x0 может быть установлено на значение, равное ширине текущего блока.
[0176] После этого может быть выполнено (S804) предсказание с компенсацией движения для каждого подблока с использованием аффинного вектора соответствующего подблока. В результате выполнения предсказания с компенсацией движения может быть сгенерирован блок предсказания для каждого подблока. Блоки предсказания подблоков могут быть установлены как блок предсказания текущего блока.
[0177] Аффинный исходный вектор текущего блока может быть получен на основании аффинного исходного вектора блока, соседнего с текущим блоком. Когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой аффинный режим слияния, аффинный исходный вектор кандидата на слияние, включенного в список кандидатов на слияние, может быть определен как аффинный исходный вектор текущего блока. Кроме того, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой аффинный режим слияния, информация о движении, включающая по меньшей мере одно из индекса опорного изображения, флага предсказания конкретного направления или двунаправленного весового коэффициента текущего блока, может быть также установлена такой же, как кандидат на слияние.
[0178] Кандидат на слияние может быть получен на основании соседнего блока текущего блока. Соседний блок может включать по меньшей мере один из пространственного соседнего блока, смежного в пространственном отношении с текущим блоком, и временного соседнего блока, включенного в изображение, отличающееся от текущего изображения.
[0179] На фиг. 11 представлено схематическое изображение, показывающее соседние блоки, которые могут использоваться для получения кандидата на слияние.
[0180] Соседний блок текущего блока может включать по меньшей мере один из соседнего блока (A), смежного с левой стороной текущего блока, соседнего блока (B), соседнего с верхней стороной текущего блока, соседнего блока (C), смежного с верхним правым углом текущего блока, соседнего блока (D), смежного с нижним левым углом текущего блока, или соседнего блока (E), смежного с верхним левым углом текущего блока. Когда верхний левый отсчет текущего блока имеет координаты (x0, y0), левый соседний блок A содержит отсчет, расположенный в (x0-1, y0+H-1), и верхний соседний блок B содержит отсчет, расположенный в (x0+W-1, y0-1). В этом случае W и H представляют ширину и высоту текущего блока соответственно. Верхний правый соседний блок C содержит отсчет, расположенный в (x0+W, y0-1), и нижний левый соседний блок D содержит отсчет, расположенный в (x0-1, y0+H). Верхний левый соседний блок E содержит отсчет, расположенный в (x0-1, y0-1).
[0181] Когда соседний блок кодирован в аффинном режиме предсказания, осуществляемого между изображениями, аффинный исходный вектор кандидата на слияние может быть получен на основании аффинного исходного вектора соответствующего соседнего блока. Далее соседний блок, кодированный в аффинном режиме предсказания, осуществляемого между изображениями, будет называться аффинным соседним блоком, и кандидат на слияние, полученный из аффинного соседнего блока, будет называться аффинным кандидатом на слияние.
[0182] Соседние блоки могут быть обнаружены в предварительно заданном порядке сканирования для генерирования аффинного кандидата на слияние для текущего блока. Порядок сканирования может быть предварительно задан в кодере и декодере. В качестве примера, обнаружение соседних блоков может осуществляться в следующем порядке: A, B, C, D и E. Кроме того, кандидаты на аффинное слияние могут быть последовательно получены из обнаруженных аффинных соседних блоков. Альтернативно порядок сканирования может быть адаптивно определен на основании по меньшей мере одного из размера, формы или модели аффинного движения текущего блока. То есть порядки сканирования для блоков, у которых отличается по меньшей мере одно из размера, формы и модели аффинного движения, могут отличаться друг от друга.
[0183] Альтернативно может осуществляться последовательное обнаружение блоков, расположенных сверху текущего блока, для получения одного аффинного кандидата на слияние из аффинного соседнего блока, обнаруженного первым, и может осуществляться последовательное обнаружение блоков, расположенных слева от текущего блока, для получения одного аффинного кандидата на слияние из аффинного соседнего блока, найденного первым. В этом случае соседние блоки, расположенные сверху текущего блока, могут включать по меньшей мере один из соседнего блока E, соседнего блока B или соседнего блока C, и блоки, расположенные слева от текущего блока, могут включать по меньшей мере один из блока A или блока D. В этом случае соседний блок E может быть классифицирован как блок, расположенный слева от текущего блока.
[0184] Хотя это не показано, аффинный кандидат на слияние может быть получен из временного соседнего блока текущего блока. В этом случае временной соседний блок может включать блок, расположенный в том же местоположении в совмещаемом изображении, что и текущий блок или блок, смежный с текущим блоком. Подробно, когда временной соседний блок текущего блока кодирован в аффинном режиме предсказания, осуществляемого между изображениями, аффинный кандидат на слияние может быть получен на основании аффинного исходного вектора временного аффинного кандидата на слияние.
[0185] Может быть сгенерирован список кандидатов на слияние, содержащий аффинных кандидатов на слияние, и аффинный исходный вектор одного из кандидатов на слияние, включенных в список кандидатов на слияние, может быть определен как аффинный исходный вектор текущего блока. Для этого информация об индексах для идентификации одного из кандидатов на слияние может быть кодирована и передана в битовом потоке.
[0186] В качестве другого примера, пока осуществляется обнаружение соседних блоков в порядке сканирования, аффинный исходный вектор текущего блока может быть получен из аффинного исходного вектора аффинного соседнего блока, найденного первым.
[0187] Аффинный исходный вектор текущего блока может быть получен с использованием аффинного исходного вектора соседнего блока в аффинном режиме слияния.
[0188] Когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим предсказания вектора аффинного движения, аффинный исходный вектор кандидата на предсказание вектора движения, включенного в кандидата на предсказание вектора движения, может быть определен как значение предсказания аффинного исходного вектора текущего блока. Аффинный исходный вектор текущего блока может быть получен путем добавления значения разницы аффинных исходных векторов к значению предсказания аффинного исходного вектора.
[0189] Кандидат на предсказание аффинного исходного вектора может быть получен на основании соседнего блока текущего блока. Подробно обнаружение соседних блоков, расположенных сверху текущего блока, осуществляется в предварительно определенном порядке сканирования, и первый кандидат на предсказание аффинного исходного вектора может быть получен из аффинного соседнего блока, найденного первым. Также обнаружение соседних блоков, расположенных слева от текущего блока, осуществляется в предварительно определенном порядке сканирования, и второй кандидат на предсказание аффинного исходного вектора может быть получен из аффинного соседнего блока, найденного первым.
[0190] Информация для определения значения разницы аффинных исходных векторов может быть кодирована и передана в битовом потоке. Информация может включать информацию о размере, указывающую размер значения разницы аффинных исходных векторов, и информацию о знаке, указывающую знак значения разницы аффинных исходных векторов. Значение разницы аффинных исходных векторов для каждой контрольной точки может быть установлено равным одинаковому значению. Альтернативно значение разницы аффинных исходных векторов может быть установлено по-разному в зависимости от контрольной точки.
[0191] Как описано выше, аффинный исходный вектор аффинного кандидата на слияние или кандидата на предсказание аффинного исходного вектора получен из аффинного исходного вектора аффинного соседнего блока, и аффинный исходный вектор текущего блока может быть получен с использованием полученного аффинного исходного вектора аффинного кандидата на слияние или кандидата на предсказание аффинного исходного вектора. Альтернативно после осуществления обнаружения аффинных соседних блоков в предварительно определенном порядке сканирования, аффинный исходный вектор текущего блока может быть получен из аффинного исходного вектора аффинного соседнего блока, найденного первым.
[0192] Ниже будет подробно описан способ получения аффинного исходного вектора текущего блока, аффинного кандидата на слияние или кандидата на предсказание аффинного исходного вектора из аффинного исходного вектора аффинного соседнего блока. В следующих вариантах осуществления получение аффинного исходного вектора текущего блока может также пониматься как получение аффинного исходного вектора аффинного кандидата на слияние или получение аффинного исходного вектора кандидата на предсказание аффинного исходного вектора.
[0193] На фиг. 12 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора текущего блока на основании аффинного исходного вектора аффинного соседнего блока.
[0194] Когда первый аффинный исходный вектор nv0 для верхней левой контрольной точки и второй аффинный исходный вектор nv1 для верхней правой контрольной точки сохраняются для аффинного соседнего блока, третий аффинный исходный вектор nv2 для нижней левой контрольной точки аффинного соседнего блока может быть получен на основании первого аффинного исходного вектора и второго аффинного исходного вектора. В уравнении 4 показан пример получения третьего аффинного исходного вектора.
[0195] [Уравнение 4]
[0196] В уравнении 4 (nv0x, nv0y) представляет первый аффинный исходный вектор nv0, (nv1x, nv1y) представляет второй аффинный исходный вектор nv1, и (nv2x, nv2y) представляет третий аффинный исходный вектор nv2. Кроме того, (xn0, xn0) представляет местоположение первой контрольной точки, (xn1, xn1) представляет местоположение второй контрольной точки, и (xn2, xn2) представляет местоположение третьей контрольной точки.
[0197] После этого аффинный исходный вектор текущего блока может быть получен с использованием первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора. В уравнении 5 показан пример получения первого аффинного исходного вектора v0 текущего блока, и в уравнении 6 показан пример получения второго аффинного исходного вектора v1 текущего блока.
[0198] [Уравнение 5]
[0199] [Уравнение 6]
[0200] В уравнении 5 и уравнении 6 (v0x, v0y) представляет первый аффинный исходный вектор sv0 текущего блока, и (v1x, v1y) представляет второй аффинный исходный вектор sv1 текущего блока. Кроме того, (x0, y0) представляет местоположение первой контрольной точки, и (x1, y1) представляет местоположение второй контрольной точки. Например, первая контрольная точка указывает верхний левый угол текущего блока, и вторая контрольная точка указывает верхний правый угол текущего блока.
[0201] В примере, описанном выше, было описано, что аффинные исходные векторы текущего блока получены с использованием трех аффинных исходных векторов для аффинного соседнего блока. В качестве другого примера аффинные исходные векторы текущего блока могут быть получены с использованием только двух из аффинных исходных векторов аффинного соседнего блока.
[0202] Альтернативно аффинные исходные векторы текущего блока могут быть получены с использованием четвертого аффинного исходного вектора для нижнего правого угла вместо первого аффинного исходного вектора для верхнего левого угла, второго аффинного исходного вектора для верхнего правого угла или третьего аффинного исходного вектора для нижнего левого угла относительно аффинного соседнего блока.
[0203] В частности, когда верхний край текущего блока прилегает к верхнему краю элемента кодового дерева, и предполагается использовать аффинный исходный вектор для верхней контрольной точки (например, верхний левый угол или верхний правый угол) аффинного соседнего блока, смежного с верхней стороной текущего блока (далее называемого верхним аффинным соседним блоком), этот аффинный исходный вектор необходимо предварительно сохранить в запоминающем устройстве. Соответственно, может возникнуть проблема увеличения количества линейных буферов. Таким образом, когда верхний край текущего блока прилегает к верхнему краю элемента кодового дерева, установка может быть осуществлена таким образом, что аффинный исходный вектор для нижней контрольной точки (например, нижний левый угол или нижний правый угол) вместо аффинного исходного вектора для верхней контрольной точки используется для верхнего аффинного соседнего блока. В качестве примера, аффинные исходные векторы текущего блока могут быть получены с использованием третьего аффинного исходного вектора для нижнего левого угла и четвертого аффинного исходного вектора для нижнего правого угла относительно верхнего аффинного соседнего блока. В этом случае аффинные исходные векторы для нижних углов могут быть получены путем копирования аффинных исходных векторов для верхних углов или из аффинных исходных векторов для верхних углов. В качестве примера, четвертый аффинный исходный вектор для нижнего правого угла может быть использован посредством преобразования или замены первого аффинного исходного вектора, второго аффинного исходного вектора или третьего аффинного исходного вектора.
[0204] В уравнении 7 и уравнении 8 показаны примеры получения первого аффинного исходного вектора и второго аффинного исходного вектора текущего блока с использованием третьего аффинного исходного вектора для нижней левой контрольной точки соседнего аффинного вектор и четвертого аффинного исходного вектора для нижней правой контрольной точки соседнего аффинного вектора.
[0205] [Уравнение 7]
[0206] [Уравнение 8]
[0207] В уравнении 7 и уравнении 8 (xn2, yn2) представляет координаты нижней левой контрольной точки аффинного соседнего блока, и (xn3, yn3) представляет координаты нижней правой контрольной точки аффинного соседнего блока. (x0, y0) представляет координаты верхней левой контрольной точки текущего блока, и (x1, y1) представляет координаты верхней правой контрольной точки текущего блока. (nv2x, nv2y) представляет аффинный исходный вектор для нижней левой контрольной точки (т. е. третьего аффинного исходного вектора) аффинного соседнего блока, и (nv3x, nv3y) представляет аффинный исходный вектор для нижней правой контрольной точки (т. е. четвертого аффинного исходного вектора) аффинного соседнего блока. (v0x, v0y) представляет аффинный исходный вектор для верхней левой контрольной точки (т. е. первого аффинного исходного вектора) текущего блока, и (v1x, v1y) представляет аффинный исходный вектор для верхней правой контрольной точки (т. е. второго аффинного исходного вектора) текущего блока.
[0208] Операция деления, включенная в уравнение 7 и уравнение 8, может быть изменена на операцию битового сдвига. Операция битового сдвига может быть выполнена на основании значения, полученного из ширины (т. е. xn3-xn2) между нижней левой контрольной точкой и нижней правой контрольной точкой.
[0209] Как и в примере, представленном выше, аффинные исходные векторы текущего блока могут быть получены из аффинных исходных векторов аффинного соседнего блока, где осуществлено кодирование или декодирование. Для этого аффинные исходные векторы аффинного соседнего блока, где осуществлено кодирование или декодирование, должны сохраняться в запоминающем устройстве. Однако, поскольку аффинные исходные векторы аффинного соседнего блока сохраняются в запоминающем устройстве в дополнение к векторам поступательного движения (т. е. аффинным векторам) подблоков, включенных в аффинный соседний блок, существует проблема увеличения объема использования запоминающего устройства. Для решения этой проблемы аффинный исходный вектор текущего блока может быть получен с использованием вектора движения подблока, смежного с контрольной точкой аффинного соседнего блока, вместо аффинного исходного вектора аффинного соседнего блока. То есть вектор движения подблока, смежного с контрольной точкой аффинного соседнего блока, может быть установлен как аффинный исходный вектор аффинного соседнего блока. В этом случае подблок может представлять собой блок с предварительно заданными размером или формой в кодере и декодере и может представлять собой блок с базовыми размером или формой, где сохраняется вектор движения. В качестве примера, подблок может представлять собой квадратный блок 4×4. Альтернативно вектор движения для конкретного местоположения отсчета может быть установлен как аффинный исходный вектор аффинного соседнего блока.
[0210] На фиг. 13 представлено схематическое изображение, показывающее пример установки вектора движения подблока в качестве аффинного исходного вектора аффинного соседнего блока.
[0211] Вектор движения подблока, смежного с контрольной точкой, может быть установлен как аффинный исходный вектор соответствующей контрольной точки. В качестве примера, как и в примере, показанном на фиг. 13, вектор движения (nv4x, nv4y) подблока, смежного с нижним левым углом (нижнего левого подблока) аффинного соседнего блока, может быть установлен как аффинный исходный вектор (nv2x, nv2x) для нижней левой контрольной точки, и вектор движения (nv5x, nv5y) подблока, смежного с нижним правым углом (нижнего правого подблока), может быть установлен как аффинный исходный вектор (nv3x, nv3y) для контрольной точки в нижнем правом углу. В этом случае нижний левый подблок может означать подблок, содержащий отсчет, смежный с нижней левой контрольной точкой (xn2, yn2) в соседнем аффинном блоке, (например, отсчет, расположенный в (xn2, yn2-1)) и нижний правый подблок может означать блок, содержащий отсчет, смежный с нижней правой контрольной точкой (xn3, yn3) в соседнем аффинном блоке (например, отсчет, расположенный в (xn3-1, yn3-1)). Когда аффинные исходные векторы текущего блока получены на основании уравнения 7 и уравнения 8, третий аффинный исходный вектор аффинного соседнего блока может быть заменен вектором движения нижнего левого подблока, и четвертый аффинный исходный вектор может быть заменен вектором движения нижнего правого подблока.
[0212] В следующем варианте осуществления подблок, используемый как аффинный исходный вектор аффинного соседнего блока, будет называться аффинным подблоком.
[0213] Согласно варианту осуществления настоящего изобретения аффинный подблок может быть определен на основании отсчета, расположенного в конкретном местоположении. В качестве примера, подблок, содержащий отсчет, расположенный в конкретном местоположении, может быть установлен как аффинный подблок. Далее отсчет, расположенный в конкретном местоположении, будет называться опорным отсчетом. Кроме того, опорный отсчет, используемый для определения аффинного подблока для нижней левой контрольной точки, будет называться нижним левым опорным отсчетом, и опорный отсчет, используемый для определения аффинного подблока для нижней правой контрольной точки, будет называться нижним правым опорным отсчетом.
[0214] Нижний левый опорный отсчет и нижний правый опорный отсчет могут быть выбраны из отсчетов, включенных в аффинный соседний блок. В качестве примера по меньшей мере один из верхнего левого отсчета, нижнего левого отсчета, верхнего правого отсчета или нижнего левого отсчета нижнего левого подблока установлен в качестве нижнего левого опорного отсчета, и по меньшей мере один из верхнего левого отсчета, нижнего левого отсчета, верхнего правого отсчета или нижнего левого отсчета нижнего правого подблока установлен в качестве нижнего правого опорного отсчета. Соответственно, векторы движения нижнего левого подблока, содержащего нижний левый опорный отсчет, и нижнего правого подблока, содержащего нижний правый опорный отсчет, могут быть установлены как аффинный исходный вектор для нижней левой контрольной точки и аффинный исходный вектор для нижней правой контрольной точки соответственно.
[0215] В качестве другого примера по меньшей мере один из нижнего левого опорного отсчета или нижнего правого опорного отсчета может быть установлен как отсчет, расположенный за пределами аффинного соседнего блока. Это будет описано подробно ниже со ссылкой на фиг. 14-16.
[0216] На фиг. 14-16 представлены схематические изображения, показывающие местоположение опорного отсчета.
[0217] Как и в примере, показанном на фиг. 14A, для нижней левой контрольной точки верхний левый отсчет нижнего левого подблока может быть установлен как опорный отсчет (xn4, yn4). Таким образом, нижний левый подблок, содержащий опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.
[0218] Для нижней правой контрольной точки отсчет, расположенный справа от верхнего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5). Таким образом, подблок, смежный с правой стороной нижнего правого подблока, содержащего опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.
[0219] Альтернативно, как и в примере, показанном на фиг. 14B, для нижней левой контрольной точки отсчет, расположенный слева от верхнего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4). Таким образом, подблок, смежный с левой стороной нижнего левого подблока, содержащего опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.
[0220] Для нижней правой контрольной точки верхний правый отсчет нижнего правого подблока может быть установлен как опорный отсчет (xn5, yn5). Таким образом, нижний правый подблок, содержащий опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.
[0221] Альтернативно, как и в примере, показанном на фиг. 15A, для нижней левой контрольной точки нижний левый отсчет нижнего левого подблока может быть установлен как опорный отсчет (xn4, yn4). Таким образом, нижний левый подблок, содержащий опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.
[0222] Для нижней правой контрольной точки отсчет, расположенный справа от нижнего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5). Таким образом, подблок, смежный с правой стороной нижнего правого подблока, содержащего опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.
[0223] Альтернативно, как и в примере, показанном на фиг. 15B, для нижней левой контрольной точки отсчет, расположенный слева от нижнего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4). Таким образом, подблок, смежный с левой стороной нижнего левого подблока, содержащего опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.
[0224] Для нижней правой контрольной точки нижний правый отсчет нижнего правого подблока может быть установлен как опорный отсчет (xn5, yn5). Таким образом, нижний правый подблок, содержащий опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.
[0225] Альтернативно, как и в примере, показанном на фиг. 16A, для нижней левой контрольной точки отсчет, расположенный между верхним левым отсчетом и нижним левым отсчетом нижнего левого подблока (например, средний левый отсчет), может быть установлен как опорный отсчет (xn4, yn4). Таким образом, нижний левый подблок, содержащий опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.
[0226] Для нижней правой контрольной точки отсчет, расположенный справа от отсчета, расположенного между верхним правым отсчетом и нижним правым отсчетом нижнего правого подблока (например, средний правый отсчет), может быть установлен как опорный отсчет (xn5, yn5). Таким образом, подблок, смежный с правой стороной нижнего правого подблока, содержащего опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.
[0227] Альтернативно, как и в примере, показанном на фиг. 16B, для нижней левой контрольной точки отсчет, расположенный слева от отсчета, расположенного между верхним левым отсчетом и нижним левым отсчетом нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4). Таким образом, подблок, смежный с левой стороной нижнего левого подблока, содержащего опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.
[0228] Для нижней правой контрольной точки отсчет, расположенный между верхним правым отсчетом и нижним правым отсчетом нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5). Таким образом, нижний правый подблок, содержащий опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.
[0229] Когда аффинные исходные векторы текущего блока получены на основании уравнения 7 и уравнения 8, третий аффинный исходный вектор аффинного соседнего блока может быть заменен вектором движения аффинного подблока для нижней левой контрольной точки, и четвертый аффинный исходный вектор может быть заменен вектором движения аффинного подблока для нижней правой контрольной точки. Кроме того, местоположение нижней левой контрольной точки может быть заменено местоположением нижнего левого опорного отсчета, и местоположение нижней правой контрольной точки может быть заменено местоположением нижнего правого опорного отсчета.
[0230] В отличие от описанного выше со ссылкой на фиг. 14-16, подблок, содержащий отсчет, смежный с опорным отсчетом, может быть установлен как аффинный подблок. Подробно отсчет, расположенный за пределами аффинного соседнего подблока, может быть установлен как опорный отсчет, и подблок, содержащийся в аффинном соседнем блоке, может быть установлен как аффинный подблок. Например, в примере, показанном на фиг. 14A, отсчет, расположенный справа от верхнего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5), и нижний правый подблок может быть установлен как аффинный подблок для нижнего правого угла. Альтернативно в примере, показанном на фиг. 14B, отсчет, расположенный слева от верхнего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4), и нижний левый подблок может быть установлен как аффинный подблок для нижнего левого угла.
[0231] Вышеописанные варианты осуществления могут также применяться к фиг. 15 и 16. То есть в примере, показанном на фиг. 15A или 16A, отсчет, расположенный справа от нижнего правого отсчета или среднего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5), и нижний правый подблок может быть установлен как аффинный подблок для нижнего правого угла. Альтернативно в примере, показанном на фиг. 15B или 16B, отсчет, расположенный слева от нижнего левого отсчета или среднего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4), и нижний левый подблок может быть установлен как аффинный подблок для нижнего левого угла.
[0232] Как и в примере, представленном выше, аффинный исходный вектор аффинного соседнего блока может быть получен с использованием вектора движения аффинного подблока. Для этого в случае блока, где осуществлено кодирование или декодирование, вектор движения может сохраняться в элементах подблоков.
[0233] В качестве другого примера после сохранения минимального количества аффинных исходных векторов для аффинного соседнего блока вектор движения аффинного подблока может быть получен с использованием сохраненных аффинных исходных векторов.
[0234] В уравнении 9 и уравнении 10 показан пример получения вектора движения аффинного подблока с использованием аффинных исходных векторов аффинного соседнего блока.
[0235] [Уравнение 9]
[0236] [Уравнение 10]
[0237] В уравнении 9 и уравнении 10 (nv4x, nv4y) представляет вектор движения аффинного подблока для нижней левой контрольной точки, и (nv5x, nv5y) представляет вектор движения аффинного подблока для нижней правой контрольной точки. Поскольку вектор движения аффинного подблока и аффинный исходный вектор контрольной точки установлены равными друг другу, (nv4x, nv4y) может быть заменен аффинным исходным вектором (nv2x, nv2y) для нижней левой контрольной точки, и (nv5x, nv5y) может быть заменен аффинным исходным вектором (nv3x, nv3y) для нижней правой контрольной точки.
[0238] (xn4, yn4) представляет местоположение опорного отсчета относительно нижнего левого подблока. Альтернативно вместо него может использоваться центральное местоположение нижнего левого подблока или местоположение нижней левой контрольной точки. (xn5, yn5) представляет местоположение опорного отсчета относительно нижнего правого подблока. Альтернативно вместо него может использоваться центральное местоположение нижнего правого подблока или местоположение нижней правой контрольной точки.
[0239] Уравнение 9 и уравнение 10 могут применяться к случаю, в котором текущий блок не прилегает к краю элемента кодового дерева. Когда текущий блок прилегает к верхнему краю элемента кодового дерева, вместо использования уравнения 9 и уравнения 10, вектор поступательного движения аффинного подблока, определенный на основании нижнего левого опорного отсчета, может быть установлен как третий аффинный исходный вектор, и вектор поступательного движения аффинного подблока, определенный на основании нижнего правого опорного отсчета, может быть установлен как четвертый аффинный исходный вектор.
[0240] В уравнении 7 и уравнении 8 (xn3-xn2) представляет ширину между нижней левой контрольной точкой и нижней правой контрольной точкой. Как описано выше, xn3 может быть заменено местоположением xn5 нижнего правого опорного отсчета, и xn2 может быть заменено местоположением xn4 нижнего левого опорного отсчета. Далее (xn3-xn2) или значение (например, (xn5-xn4)), полученное путем замены местоположения в вышеупомянутом уравнении местоположением опорных отсчетов, будет задано как переменная Wseed, и переменная будет называться шириной исходного подвектора.
[0241] В зависимости от местоположения опорных отсчетов, ширина исходного подвектора может не быть показателем степени числа 2 (например, 2n). В качестве примера, когда нижний левый отсчет нижнего левого подблока установлен как нижний левый опорный отсчет, и нижний правый отсчет нижнего правого подблока установлен как нижний правый опорный отсчет, ширина исходного подвектора не кратна числу 2. Когда ширина исходного подвектора не является показателем степени числа 2, ширина исходного подвектора может быть преобразована в показатель степени числа 2. Преобразование может включать добавление смещения к ширине исходного подвектора или вычитание смещения из нее или использование местоположения отсчета, смежного с опорным отсчетом, вместо местоположения опорного отсчета. В качестве примера, преобразованная ширина исходного подвектора может быть получена путем добавления единицы к ширине между нижним левым опорным отсчетом и нижним правым опорным отсчетом. Альтернативно ширина между нижним левым опорным отсчетом и соседним опорным отсчетом, смежным с правой стороной нижнего правого опорного отсчета, может быть установлена как преобразованная ширина исходного подвектора. После этого аффинный исходный вектор текущего блока может быть получен путем применения преобразованной ширины исходного подвектора к уравнению 7 и уравнению 8.
[0242] Операция деления, включенная в уравнение 7 и уравнение 8, может быть изменена на операцию битового сдвига. Операция битового сдвига может быть выполнена на основании значения, полученного из преобразованной ширины исходного подвектора (т. е. значения, выраженного как показатель степени числа 2).
[0243] Когда опорный отсчет, используемый для определения аффинного подблока, не принадлежит к аффинному соседнему блоку, аффинный исходный вектор аффинного соседнего блока может быть получен на основании отсчета, смежного с опорным отсчетом, из отсчетов, включенных в аффинный соседний блок. В частности, вектор поступательного движения подблока, содержащего отсчет, смежный с опорным отсчетом (далее называемым соседним опорным отсчетом) в аффинном соседнем блоке, может быть установлен как аффинный исходный вектор аффинного соседнего блока. Как описано выше, способ получения аффинного исходного вектора с использованием соседнего опорного отсчета может быть задан как модифицированный способ получения аффинного вектора слияния.
[0244] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором применяется способ получения модифицированного аффинного вектора слияния.
[0245] Когда нижний правый опорный отсчет (xn5, yn5) аффинного соседнего блока E не принадлежит к аффинному ближайшему блоку, аффинный исходный вектор может быть получен на основании отсчета (xn5-1, yn5), смежного с левой стороной нижнего правого опорного отсчета, из отсчетов, включенных в аффинный соседний блок. В частности, вектор поступательного движения подблока, содержащего соседний опорный отсчет (xn5-1, yn5), может быть установлен как аффинный исходный вектор нижней правой контрольной точки.
[0246] В примере, показанном на фиг. 17, показано, что отсчет, смежный с правой стороной верхнего правого отсчета нижнего правого подблока, представляет собой нижний правый опорный отсчет. Даже когда отсчет, смежный с правой стороной нижнего правого отсчета нижнего правого подблока, или отсчет, смежный с правой стороной среднего правого отсчета нижнего правого подблока, установлен как нижний правый опорный отсчет, аффинный исходный вектор может быть получен на основании отсчета, смежного с левой стороной соседнего опорного отсчета.
[0247] Кроме того, даже когда нижний левый опорный отсчет не принадлежит к аффинному соседнему блоку, согласно варианту осуществления, описанному выше, аффинный исходный вектор может быть получен на основании отсчета, смежного с правой стороной нижнего левого опорного отсчета.
[0248] Поскольку местоположение опорного отсчета и подблока для получения аффинного исходного вектора установлено по-разному, ширина исходного подвектора может быть установлена равной показателю степени числа 2.
[0249] Альтернативно аффинные исходные векторы могут быть получены на основании ширины соседнего блока, когда используются векторы движения нижнего левого подблока и нижнего правого подблока.
[0250] На фиг. 18 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора аффинного кандидата на слияние на основании векторов движения подблоков, принадлежащих к соседнему блоку.
[0251] Когда верхний край текущего блока прилегает к краю элемента кодового дерева, аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании векторов движения нижнего левого подблока и нижнего правого подблока верхнего соседнего блока, расположенного над текущим блоком. Когда предполагается, что местоположение верхнего левого отсчета верхнего соседнего блока представляет собой (xNb, yNb), и ширина и высота верхнего соседнего блока представляют собой NbW и NbH соответственно, нижний левый подблок может содержать отсчет, расположенный в (xNb, yNb+yNbH-1), и нижний правый подблок может содержать отсчет, расположенный в (xNb+NbW-1, yNb+NbH-1).
[0252] Аффинные исходные блоки аффинного кандидата на слияние могут быть получены на основании ширины соседнего блока и разницы в координатах между текущим блоком и соседним блоком. В качестве примера, аффинные исходные векторы аффинного кандидата на слияние могут быть получены на основании уравнений 11-13 ниже.
[0253] [Уравнение 11]
[0254] [Уравнение 12]
[0255] [Уравнение 13]
[0256] В уравнениях 11-13 (v0x, v0y) представляет первый аффинный исходный вектор, (v1x, v1y) представляет второй аффинный исходный вектор, и (v2x, v2y) представляет третий аффинный исходный вектор. VLBx представляет вектор горизонтального составляющего движения нижнего левого подблока, и VLBy представляет вектор вертикального составляющего движения нижнего левого подблока. VRBx представляет вектор горизонтального составляющего движения нижнего правого подблока, и VRBy представляет вектор вертикального составляющего движения нижнего правого подблока. NbW представляет ширину соседнего блока, и xCbW и xCbH представляют ширину и высоту текущего блока соответственно. xCb представляет координату x верхнего левого отсчета текущего блока, и xNb представляет координату x верхнего левого отсчета соседнего блока.
[0257] Аффинный кандидат на слияние может быть сгенерирован для комбинирования вектора движения второго соседнего блока с аффинными исходными векторами, полученными из первого соседнего блока. Например, в примере, показанном на фиг. 18, третий аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании вектора движения подблока, расположенного слева от текущего блока, а не на основании векторов движения нижнего левого подблока и нижнего правого подблока.
[0258] На фиг. 19 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании векторов движения подблоков, расположенных слева от текущего блока.
[0259] Аффинные исходные векторы аффинного кандидата на слияние могут быть получены на основании векторов движения нижнего левого подблока и нижнего правого подблока верхнего соседнего блока, расположенного над текущим блоком. Подробно первый аффинный исходный вектор и второй аффинный исходный вектор аффинного кандидата на слияние могут быть получены на основании векторов движения нижнего левого подблока и нижнего правого подблока. В качестве примера, первый аффинный исходный вектор и второй аффинный исходный вектор аффинного кандидата на слияние могут быть получены на основании уравнений 11 и 12.
[0260] Третий аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании вектора движения соседнего блока, смежного с левой стороной текущего блока. В качестве примера, вектор движения соседнего блока, смежного с левой стороной текущего блока, или соседнего блока, смежного с нижним левым углом текущего блока, может быть установлен как третий аффинный исходный вектор. Соседний блок, смежный с левой стороной текущего блока, может содержать отсчет, расположенный в (xCb-1, yCb+CbH-1), и соседний блок, смежный с нижним левым углом текущего блока, может содержать отсчет, расположенный в (xCb-1, yCb+CbH). В уравнении 14 и уравнении 15 показан пример установки вектора движения соседнего блока, расположенного слева от текущего блока, в качестве третьего аффинного исходного вектора.
[0261] [Уравнение 14]
[0262] [Уравнение 15]
[0263] В уравнении 14 VLeftx представляет вектор горизонтального движения соседнего блока, смежного с левой стороной текущего блока, и VLefty представляет вектор вертикального движения соседнего блока, смежного с левой стороной текущего блока. В уравнении 15 VLBx представляет вектор горизонтального движения соседнего блока, смежного с нижним левым углом текущего блока, и VLBy представляет вектор вертикального движения соседнего блока, смежного с нижним левым углом текущего блока.
[0264] Третий аффинный исходный вектор может быть получен с использованием вектора движения соседнего блока, смежного с нижним левым углом текущего блока, только тогда, когда вектор движения соседнего блока, смежного с левой стороной текущего блока, не является доступным.
[0265] Способ получения третьего аффинного исходного вектора аффинного кандидата на слияние может быть установлен по-разному в зависимости от того, доступен ли вектор движения соседнего блока, расположенного слева от текущего блока. В качестве примера, когда вектор движения соседнего блока, расположенного слева от текущего блока (например, подблока, смежного с левой стороной текущего блока, или подблока, смежного с нижним левым углом текущего блока), доступен, третий аффинный исходный вектор может быть получен с использованием уравнения 14 или уравнения 15. С другой стороны, когда вектор движения соседнего блока, расположенного слева от текущего блока, не является доступным, третий аффинный исходный вектор может быть получен с использованием уравнения 13.
[0266] Третий аффинный исходный вектор может быть получен на основании вектора движения несоседнего блока, имеющего опорный отсчет, который не является смежным с текущим блоком. Чтобы получить третий аффинный исходный вектор, то, следует ли использовать вектор движения соседнего блока, имеющего опорный отсчет, смежный с текущим блоком, или использовать вектор движения несоседнего блока, имеющего опорный отсчет, который не является смежным с текущим блоком, может быть определено на основании местоположения верхнего соседнего блока, используемого для получения аффинного кандидата на слияние.
[0267] На фиг. 20 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании информации о движении соседнего блока или несоседнего блока, расположенного слева от текущего блока.
[0268] Путем сравнения местоположения верхнего левого отсчета текущего блока с местоположением верхнего левого отсчета верхнего соседнего блока, используемого для получения аффинного кандидата на слияние, может быть определено местоположение блока для получения третьего аффинного исходного вектора. Например, как и в примере, показанном на фиг. 20A, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока меньше, чем координата x (xCb) верхнего левого отсчета текущего блока, третий аффинный исходный вектор может быть получен на основании вектора движения несоседнего блока, который не является смежным с левой стороной текущего блока. Подробно третий аффинный исходный вектор может быть получен на основании вектора движения нижнего левого несоседнего блока, содержащего отсчет, расположенный в (xNb, yCb+CbH), или левого несоседнего блока, содержащего отсчет, расположенный в (xNb, yCb+CbH-1), при этом отсчеты имеют такую же координату x, как и верхний левый отсчет верхнего соседнего блока. В уравнении 16 и уравнении 17 показан пример получения третьего аффинного исходного вектора на основании вектора движения несоседнего блока.
[0269] [Уравнение 16]
[0270] [Уравнение 17]
[0271] В уравнении 16 VLeft2x представляет вектор горизонтального движения левого несоседнего блока, и VLeft2y представляет вектор вертикального движения левого несоседнего блока. В уравнении 17 VLB2x представляет вектор горизонтального движения нижнего левого несоседнего блока, и VLB2y представляет вектор вертикального движения нижнего левого несоседнего блока.
[0272] Третий аффинный исходный вектор может быть получен с использованием вектора движения нижнего левого несоседнего блока только тогда, когда вектор движения левого несоседнего блока не является доступным.
[0273] Как и в примере, показанном на фиг. 20B, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока больше, чем координата x (xCb) верхнего левого отсчета текущего блока, или равняется ей, третий аффинный исходный вектор может быть получен на основании вектора движения соседнего блока, который является смежным с нижним левым углом текущего блока или с его левой стороной. Подробно третий аффинный исходный вектор может быть получен на основании вектора движения левого соседнего блока, содержащего отсчет (xCb, yCb+CbH-1), смежный с левой стороной текущего блока, или нижнего левого соседнего блока, содержащего отсчет, расположенный в (xCb, yCb+CbH), смежный с нижним левым углом текущего блока.
[0274] Местоположение опорного отсчета левого соседнего блока или левого несоседнего блока может быть установлено отлично от показанного на фиг. 18-20. В качестве примера, блок, содержащий отсчет (xCb-1, yCb+subH-1), смежный с текущим блоком, может быть установлен в качестве левого соседнего блока, и блок, содержащий отсчет (xNb, yCb+subH-1), который не является смежным с текущим блоком, может быть установлен в качестве левого несоседнего блока. В этом случае subH представляет минимальную высоту блока, в котором сохраняется информация о движении, и может представлять собой натуральное число, такое как 2, 4 или 8.
[0275] На фиг. 21 представлено схематическое изображение, показывающее местоположение блока для получения аффинного исходного вектора аффинного кандидата на слияние.
[0276] Например, как и в примере, показанном на фиг. 21A, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока меньше, чем координата x (xCb) верхнего левого отсчета текущего блока, третий аффинный исходный вектор может быть получен на основании вектора движения несоседнего блока, который не является смежным с левой стороной текущего блока. Подробно третий аффинный исходный вектор может быть получен на основании вектора движения левого несоседнего блока, содержащего отсчет (xNb, yCb+subH-1), который имеет такую же координату x, как и верхний левый отсчет верхнего соседнего блока, и который расположен на предварительно определенном расстоянии (например, subH) от нижнего левого отсчета верхнего соседнего блока. В уравнении 18 показан пример получения третьего аффинного исходного вектора на основании вектора движения несоседнего блока.
[0277] [Уравнение 18]
[0278] В уравнении 18 VLeftT2x представляет вектор горизонтального движения левого несоседнего блока, содержащего отсчет, расположенный на предварительно определенном расстоянии от нижнего левого отсчета верхнего соседнего блока. VLeftT2y представляет вектор вертикального движения левого несоседнего блока, содержащего отсчет, расположенный на предварительно определенном расстоянии от нижнего левого отсчета верхнего соседнего блока.
[0279] Альтернативно, как и в примере, показанном на фиг. 21B, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока больше, чем координата x (xCb) верхнего левого отсчета текущего блока, или равняется ей, третий аффинный исходный вектор может быть получен на основании вектора движения левого соседнего блока, который является смежным с левой стороной текущего блока и который содержит отсчет (xCb-1, yCb+subH-1), горизонтально расположенный на предварительно определенном расстоянии (например, subH-1) от верхнего левого отсчета текущего блока. В уравнении 19 показан пример получения третьего аффинного исходного вектора на основании вектора движения соседнего блока.
[0280] [Уравнение 19]
[0281] В уравнении 19 VLeftTx представляет вектор горизонтального движения левого соседнего блока, который является смежным с левой стороной текущего блока и который содержит отсчет, вертикально расположенный на предварительно определенном расстоянии от верхнего левого отсчета текущего блока. VLeftTy представляет вектор вертикального движения левого соседнего блока, который является смежным с левой стороной текущего блока и который содержит отсчет, вертикально расположенный на предварительно определенном расстоянии от верхнего левого отсчета текущего блока.
[0282] Альтернативно опорный отсчет может быть установлен в местоположении, отличном от показанных на фиг. 18-21. В качестве примера, отсчет (xCb-1, yCb), который является смежным с левой стороной текущего блока и который имеет такую же координату y, как и верхний левый отсчет текущего блока, или отсчет (xNb, yCb), который не является смежным с левой стороной текущего блока и который имеет такую же координату y, как и верхний левый отсчет текущего блока, может быть установлен в качестве опорного отсчета.
[0283] Как и в описанном примере, первый аффинный исходный вектор и второй аффинный исходный вектор аффинного кандидата на слияние могут быть получены из соседнего блока, расположенного над текущим блоком, и третий аффинный исходный вектор аффинного кандидата на слияние может быть получен из соседнего блока, расположенного слева от текущего блока. Первый аффинный исходный вектор и третий аффинный исходный вектор аффинного кандидата на слияние могут быть получены из соседнего блока, расположенного слева от текущего блока, и второй аффинный исходный вектор аффинного кандидата на слияние может быть получен из соседнего блока, расположенного над текущим блоком.
[0284] В примерах, показанных в уравнениях 11-13, аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании значения разницы между вектором VLB движения нижнего левого подблока верхнего соседнего блока и вектора VRB движения нижнего правого подблока верхнего соседнего блока. В этом случае аффинный исходный вектор аффинного кандидата на слияние может быть получен с использованием вектора движения другого блока вместо вектора движения нижнего левого подблока или нижнего правого подблока. В качестве примера, когда вектор VLB движения нижнего левого подблока верхнего соседнего блока имеет такое же значение, как и вектор VRB движения нижнего правого подблока верхнего соседнего блока, VRB может быть заменен вектором движения блока, содержащего отсчет, расположенный справа от нижнего правого подблока или под ним. В качестве примера, вектор движения аффинного кандидата на слияние может быть получен с использованием вектора движения блока, содержащего отсчет, расположенный в (xNb+NbW, yNb+NbH-1), вместо использования вектора VRB движения нижнего правого подблока.
[0285] Альтернативно, когда вектор VLB движения нижнего левого подблока верхнего соседнего блока имеет такое же значение, как и вектор VRB движения нижнего правого подблока верхнего соседнего блока, VLB может быть заменен вектором движения блока, содержащего отсчет, расположенный слева от нижнего левого подблока или под ним. В качестве примера, вектор движения аффинного кандидата на слияние может быть получен с использованием вектора движения блока, содержащего отсчет, расположенный в (xNb, yNb+NbH-1+offset), вместо использования вектора VLB движения нижнего левого подблока. В этом случае смещение (offset) может представлять собой целое число, которое больше чем или равняется 1.
[0286] Альтернативно VRB может быть заменен вектором движения блока, содержащего отсчет, расположенный слева от нижнего левого подблока или под ним, или VLB может быть заменен вектором движения блока, содержащего отсчет, расположенный справа от нижнего правого подблока или под ним.
[0287] Кандидат на слияние может быть получен путем комбинирования векторов движения множества соседних векторов, смежных с текущим блоком. Кандидат на слияние, сгенерированный путем комбинирования векторов движения множества соседних векторов, может называться комбинированным кандидатом на слияние. Когда получают комбинированного кандидата на слияние, аффинный исходный вектор для контрольной точки может быть получен из одного соседнего блока, смежного с окрестностями контрольной точки.
[0288] На фиг. 22 представлено схематическое изображение для описания примера комбинирования векторов движения множества соседних блоков для получения комбинированного кандидата на слияние.
[0289] Множество соседних блоков могут содержать верхние соседние блоки, расположенные над текущим блоком, и левые соседние блоки, расположенные слева от текущего блока. Верхние соседние блоки могут содержать по меньшей мере один из блока B0, содержащего отсчет, расположенный в (xCb+CbW, yCb-1), блока B1, содержащего отсчет, расположенный в (xCb+CbW-1, yCb-1), или блока B3, содержащего отсчет, расположенный в (xCb, yCb-1). В этом случае (xCb, yCb) представляет местоположение верхнего левого отсчета текущего блока, и CbW представляет ширину текущего блока. Левые соседние блоки могут содержать по меньшей мере один из блока A0, содержащего отсчет, расположенный в (xCb-1, yCb+CbH), блока A1, содержащего отсчет, расположенный в (xCb-1, yCb+CbH-1), или блока A2, содержащего отсчет, расположенный в (xCb-1, yCb). В этом случае CbH представляет высоту текущего блока.
[0290] Кроме того, множество соседних блоков могут дополнительно содержать временные соседние блоки текущего блока.
[0291] Комбинированный кандидат на слияние может быть получен путем комбинирования частей информации о движении двух или более из множества соседних блоков. Комбинированный кандидат на слияние может быть получен путем комбинирования частей информации о движении двух или трех соседних блоков. Подробно комбинированный кандидат на слияние может быть получен путем комбинирования по меньшей мере двух или более из элементов информации о движении соседнего блока, смежного с первой контрольной точкой, элементов информации о движении соседнего блока, смежного со второй контрольной точкой, или элементов информации о движении соседнего блока, смежного с третьей контрольной точкой.
[0292] В качестве примера, комбинированный кандидат на слияние может быть получен путем комбинирования векторов движения по меньшей мере двух или более из соседнего блока A2, B2 или B3, смежного с верхней левой контрольной точкой CP0, соседнего блока B1 или B0, смежного с верхней правой контрольной точкой CP1, или временного соседнего блока T для нижней левой контрольной точки CP2.
[0293] В этом случае вектор движения доступного соседнего блока, который находят первым, когда соседние блоки, смежные с контрольной точкой, сканируют в предварительно заданном порядке сканирования, может быть установлен в качестве аффинного исходного вектора для контрольной точки. В качестве примера, первый аффинный исходный вектор комбинированного кандидата на слияние для CP0 может быть установлен равным вектору движения доступного соседнего блока, который находят первым, когда соседние блоки обнаруживают в порядке B2, B3 и A2. Второй аффинный исходный вектор комбинированного кандидата на слияние для CP1 может быть установлен равным вектору движения доступного соседнего блока, который находят первым, когда соседние блоки обнаруживают в порядке B1 и B0. Третий аффинный исходный вектор комбинированного кандидата на слияние для CP2 может быть установлен равным вектору движения доступного соседнего блока, который находят первым, когда соседние блоки обнаруживают в порядке A1 и A0.
[0294] Когда получают комбинированного кандидата на слияние, соседний блок, кодированный с помощью модели аффинного движения, или соседний блок, полученный в качестве аффинного кандидата на слияние, может быть установлен как недоступный.
[0295] На фиг. 23 представлено схематическое изображение, показывающее недоступный соседний блок.
[0296] Когда получают аффинного кандидата на слияние из соседнего блока B1, расположенного над текущим блоком, может быть определено то, что соседний блок B1 не является доступным для получения комбинированного кандидата на слияние. Таким образом, когда получают аффинный исходный вектор комбинированного кандидата на слияние для CP1, вектор движения B1 может не использоваться.
[0297] Альтернативно, когда соседний блок кодируют в модели аффинного движения, комбинированный кандидат на слияние может быть получен на основании аффинного вектора подблока, содержащего опорный отсчет. В качестве примера, когда соседний блок, содержащий отсчет, расположенный в B1, кодируют в модели аффинного движения, комбинированный кандидат на слияние может быть получен с использованием аффинного вектора подблока соседнего блока, содержащего отсчет, расположенный в B1.
[0298] Альтернативно порядок сканирования может быть определен с учетом того, кодирую ли соседний блок с помощью модели аффинного движения или получают ли соседний блок в качестве аффинного кандидата на слияние. В качестве примера, соседний блок, кодированный с помощью модели аффинного движения, или соседний блок, кодированный с помощью аффинного кандидата на слияние, может быть установлен равным последнему сканированному. В качестве примера, когда соседний блок, расположенный в B1, кодируют с помощью модели аффинного движения, второй аффинный исходный вектор комбинированного кандидата на слияние для CP2 может быть получен путем обнаружения соседних блоков в порядке B0 и B1.
[0299] Когда соседние блоки имеют разные индексы опорного изображения, векторы движения могут масштабироваться в отношении опорного изображения с наибольшим индексом или опорного изображения с наименьшим индексом. Масштабирование может быть выполнено на основании значения разницы порядкового номера изображения (POC) между опорным изображением и текущим изображением.
[0300] Альтернативно комбинирование соседних блоков может быть выполнено с использованием только соседних блоков, имеющих одинаковый индекс опорного изображения, из соседних блоков. В качестве примера, когда по меньшей мере один из соседних блоков имеет отличный индекс опорного изображения, комбинирование может быть установлено как недоступное в качестве комбинированного кандидата на слияние. Кроме того, доступность комбинирования может быть определена вне зависимости от того, имеют ли соседние блоки одинаковые информацию о движении или вектор движения. В качестве примера, комбинированный кандидат на слияние может быть получен путем комбинирования соседних блоков, имеющих одинаковый индекс опорного изображения, даже когда соседние блоки имеют одинаковый вектор движения (например, аффинный исходный вектор CP0 и аффинный исходный вектор CP1). Альтернативно порядок сканирования соседних блоков может быть определен с учетом индексов опорного изображения соседних блоков. Альтернативно комбинирование может быть выполнено с использованием только соседних блоков, имеющих одинаковое направление предсказания, из соседних блоков.
[0301] Кандидат на слияние может быть сгенерирован в предварительно определенном порядке комбинирования. В качестве примера порядок комбинирования может быть установлен следующим образом.
[0302] 1. {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP2}
[0303] 2. {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP3}
[0304] 3. {аффинный исходный вектор CP0, аффинный исходный вектор CP2, аффинный исходный вектор CP3}
[0305] 4. {аффинный исходный вектор CP1, аффинный исходный вектор CP2, аффинный исходный вектор CP3}
[0306] 5. {аффинный исходный вектор CP0, аффинный исходный вектор CP1}
[0307] 6. {аффинный исходный вектор CP0, аффинный исходный вектор CP2}
[0308] Хотя показаны шесть примеров комбинирования, также можно использовать меньшее или большее количество примеров комбинирования.
[0309] Комбинированный кандидат на слияние, сгенерированный путем комбинирования трех аффинных исходных векторов, может называться 6-параметрическим комбинированным кандидатом на слияние, и комбинированный кандидат на слияние, сгенерированный путем комбинирования двух аффинных исходных векторов, может называться 4-параметрическим комбинированным кандидатом на слияние.
[0310] Порядок комбинирования может быть предварительно задан в кодере и декодере. Альтернативно порядок комбинирования может быть определен на основании по меньшей мере одного из размера, формы, формы раздела или модели аффинного движения текущего блока, местоположения текущего блока в элементе кодового дерева или POC опорного изображения. В качестве примера, когда 4-параметрическая модель аффинного движения применяется к текущему блоку, установка может быть выполнена таким образом, что примеры комбинирования для 4-параметрического комбинированного кандидата на слияние имеют более высокий приоритет, чем примеры комбинирования для 6-параметрического комбинированного кандидата на слияние.
[0311] Хотя комбинированный кандидат на слияние генерируется в порядке комбинирования, только кандидат на слияние, сгенерированный путем комбинирования соседних блоков, имеющих одинаковое опорное изображение, может быть определен как доступный. Альтернативно, когда по меньшей мере один из соседних блоков имеет отличное опорное изображение, векторы движения могут масштабироваться в отношении опорного изображения с наибольшим индексом или опорного изображения с наименьшим индексом для получения кандидата на слияние. Масштабирование может быть выполнено на основании разницы POC между опорным изображением и текущим изображением. Альтернативно, когда два из соседних блоков имеют одинаковое опорное изображение, а другой соседний блок имеет отличное опорное изображение, вектор движения соседнего блока, имеющего отличное опорное изображение, может масштабироваться в отношении опорного изображения, применяемого в общем к двумя соседним блокам, для получения комбинированного кандидата на слияние.
[0312] Количество комбинированных кандидатов на слияние, добавляемых в список кандидатов на слияние, может быть определено на основании по меньшей мере одного из максимального количества кандидатов на слияние или количества кандидатов на слияние, ранее включенных в список кандидатов на слияние. Альтернативно, в зависимости от модели аффинного движения текущего блока, только 6-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние, или только 4-параметрические комбинированные кандидаты на слияние могут быть добавлены в список комбинированных кандидатов на слияние.
[0313] В качестве примера, когда количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, равняется единице, и 6-параметрическая модель движения применяется к текущему блоку, один 6-параметрический комбинированный кандидат на слияние может быть добавлен в список кандидатов на слияние в предварительно установленном порядке комбинирования. Подробно, когда все из аффинного исходного вектора CP0, аффинного исходного вектора CP1 и аффинного исходного вектора CP2 доступны, комбинированный кандидат на слияние {аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP2} может быть добавлен в список кандидатов на слияние. Альтернативно, когда аффинный исходный вектор CP2 не является доступным, и аффинный исходный вектор CP3 доступен, комбинированный кандидат на слияние {аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP3} может быть добавлен в список кандидатов на слияние.
[0314] Альтернативно, когда количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, равняется единице, и 6-параметрическая модель движения применяется к текущему блоку, один 4-параметрический комбинированный кандидат на слияние может быть добавлен в список кандидатов на слияние в предварительно установленном порядке комбинирования.
[0315] В качестве другого примера, количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, может быть установлено по-другому в зависимости от модели аффинного движения текущего блока. В качестве примера, когда 6-параметрическая модель движения применяется к текущему блоку, комбинированный кандидат на слияние может быть добавлен в список кандидатов на слияние. С другой стороны, когда 4-параметрическая модель движения применяется к текущему блоку, два комбинированных кандидата на слияние могут быть добавлены в список кандидатов на слияние.
[0316] Комбинированный кандидат на слияние, подлежащий добавлению в список кандидатов на слияние, может быть выбран в зависимости от количества доступных аффинных кандидатов на слияние. В качестве примера, когда количество доступных аффинных кандидатов на слияние равняется двум или более, только 4-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние. С другой стороны, когда количество доступных аффинных кандидатов на слияние равняется одному или меньше, только 6-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние. Альтернативно, когда количество доступных аффинных кандидатов на слияние равняется одному или меньше, N 6-параметрических комбинированных кандидатов на слияние и M 4-параметрических комбинированных кандидатов на слияние могут быть добавлены в список кандидатов на слияние. В этом случае N и M являются натуральным числами, и M может быть получено на основании максимального количества кандидатов на слияние минус N. Альтернативно, когда количество доступных аффинных кандидатов на слияние равняется одному или меньше, только 4-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние.
[0317] Альтернативно порядок комбинирования может быть определен на основании доступности аффинных исходных векторов. В качестве примера, комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние с учетом доступности аффинных исходных векторов в следующем порядке.
[0318] 1. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP2 доступны.
[0319] {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP2}
[0320] 2. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP3 доступны.
[0321] {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP3}
[0322] 3. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP2 и аффинный исходный вектор CP3 доступны.
[0323] {аффинный исходный вектор CP0, аффинный исходный вектор CP2, аффинный исходный вектор CP3}
[0324] 4. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP2 и аффинный исходный вектор CP3 доступны.
[0325] {аффинный исходный вектор CP1, аффинный исходный вектор CP2, аффинный исходный вектор CP3}
[0326] 5. Случай, в котором аффинный исходный вектор CP0 и аффинный исходный вектор CP1 доступны.
[0327] {аффинный исходный вектор CP0, аффинный исходный вектор CP1}
[0328] 6. Случай, в котором аффинный исходный вектор CP0 и аффинный исходный вектор CP2 доступны.
[03329] {аффинный исходный вектор CP0, аффинный исходный вектор CP2}
[0330] Когда количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, равняется единице, комбинированный кандидат на слияние, соответствующий условию, которое удовлетворяется первым из условий с первого по шестое, может быть добавлен в список кандидатов на слияние. Когда ни один из кандидатов с первого по шестой не удовлетворяет условию, комбинированный кандидат на слияние может не добавляться в список кандидатов на слияние.
[0331] В качестве другого примера, максимальное количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, может быть определено в зависимости от количества доступных аффинных кандидатов на слияние.
[0332] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, нулевой кандидат на слияние, который имеет вектор движения, составляющий 0, может быть добавлен в список кандидатов на слияние. Таким образом, кандидат на слияние может быть получен в аффинном режиме слияния в следующем порядке.
[0333] 1. Получение аффинного кандидата на слияние.
[0334] 2. Комбинированный кандидат на слияние.
[0335] 3. Нулевой кандидат на слияние.
[0336] Следующим будет подробно описан ниже способ предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении.
[0337] Информация о движении текущего блока может быть получена из информации о движении блока, отличного от текущего блока. В этом случае другой блок может представлять собой блок, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок. Установка информации о движении текущего блока такой же, как информация о движении другого блока, может быть задана как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть задана как режим предсказания вектора движения.
[0338] На фиг. 24 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.
[0339] Может быть получен (S2401) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок.
[0340] Кандидатные блоки, используемые для получения блока слияния, могут включать соседние блоки, содержащие отсчет, смежный с текущим блоком. В качестве примера, когда координаты верхнего левого отсчета текущего блока равны (0, 0), по меньшей мере один из блока, содержащего опорный отсчет, расположенный в (-1, H-1), блока, содержащего опорный отсчет, расположенный в (W-1, -1), блока, содержащего опорный отсчет, расположенный в (W, -1), блока, содержащего опорный отсчет, расположенный в (-1, H), или блока, содержащего опорный отсчет, расположенный в (-1, -1), может использоваться в качестве кандидатного блока.
[0341] Альтернативно кандидатный блок, который не принадлежит тому же элементу кодового дерева, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние. В качестве примера, когда опорный отсчет отклоняется от верхнего края элемента кодового дерева, которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен как недоступный в качестве кандидата на слияние.
[0342] Кандидат на слияние может быть получен из временного соседнего блока, включенного в изображение, отличное от изображения текущего блока. В качестве примера, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение. Одно опорное изображение, включенное в список опорных изображений, может быть установлено как совмещаемое изображение. Информация об индексах для идентификации совмещаемого изображения из опорных изображений может передаваться в битовом потоке. Альтернативно опорное изображение, имеющее предварительно заданный индекс, из опорных изображений может быть определено в качестве совмещаемого изображения.
[0343] Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. В качестве примера, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.
[0344] Может генерироваться (S2402) список кандидатов на слияние, содержащий кандидатов на слияние.
[0345] Кандидатам на слияние из списка кандидатов на слияние могут быть присвоены индексы в предварительно определенном порядке. В качестве примера, индексы могут последовательно присваиваться кандидату на слияние, полученному из левого соседнего блока, кандидату на слияние, полученному из верхнего соседнего блока, кандидату на слияние, полученному из верхнего правого соседнего блока, кандидату на слияние, полученному из нижнего левого соседнего блока, кандидату на слияние, полученному из верхнего левого соседнего блока, и кандидату на слияние, полученному из временного соседнего блока.
[0346] Когда множество кандидатов на слияние включены в кандидата на слияние, может быть выбран (S2403) по меньшей мере один из множества кандидатов на слияние. Подробно информация для указания одного из множества кандидатов на слияние может передаваться в битовом потоке. В качестве примера, информация merge_idx, указывающая индекс одного из кандидатов на слияние, включенных в список кандидатов на слияние, может передаваться в битовом потоке.
[0347] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидат на слияние, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. В данном случае пороговое значение может представлять собой максимальное количество кандидатов на слияние, которое кандидат на слияние может содержать, или значение, полученное путем вычитания смещения из максимального количества кандидатов на слияние. Смещение может представлять собой натуральное число, такое как 1 или 2. Таблица информации о движении между участками может содержать кандидата на слияние, полученного на основании блока, который кодирован или декодирован раньше текущего блока.
[0348] Таблица информации о движении между участками содержит кандидата на слияние, полученного из блока, который кодируется или декодируется на основании предсказания, осуществляемого между изображениями, в текущем изображении. В качестве примера, информация о движении кандидата на слияние, включенная в таблицу информации о движении между участками, может быть установлена равной информации о движении блока, кодированного или декодированного на основании предсказания, осуществляемого между изображениями. В этом случае информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса.
[0349] Для удобства описания кандидат на слияние, включенный в таблицу информации о движении между участками, будет называться кандидатом на слияние между участками.
[0350] Максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может быть предварительно задано в кодере и декодере. В качестве примера, максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или более (например, 16).
[0351] Альтернативно информация, указывающая максимальное количество кандидатов на слияние таблицы информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне последовательности, изображения или слайса.
[0352] Альтернативно максимальное количество кандидатов на слияние таблицы информации о движении между участками может быть определено в зависимости от размера изображения, размера слайса или размера элемента кодового дерева.
[0353] Таблица информации о движении между участками может быть инициализирована в элементах изображений, слайсов, пакетов, элементов кодового дерева или линий элементов кодового дерева (строк и столбцов). В качестве примера, при инициализации слайса таблица информации о движении между участками также инициализируется и может не содержать кандидата на слияние.
[0354] Альтернативно информация, указывающая, следует ли инициализировать таблицу информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне слайса, тайла, пакета или блока. Предварительно сконфигурированная таблица информации о движении между участками может использоваться до тех пор, пока информация не укажет на инициализацию таблицы информации о движении между участками.
[0355] Альтернативно информация, касающаяся начального кандидата на слияние между участками, может передаваться посредством набора параметров изображения или заголовка слайса. Даже если слайс инициализирован, таблица информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно, кандидат на слияние между участками может использоваться для блока, который подлежит кодированию или декодированию первым в слайсе.
[0356] Блоки могут быть кодированы или декодированы в порядке кодирования или декодирования, и блоки, кодированные или декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидатов на слияние между участками в порядке кодирования или декодирования.
[0357] На фиг. 25 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.
[0358] Когда предсказание, осуществляемое между изображениями, выполняется (S2501) в отношении текущего блока, кандидат на слияние между участками может быть получен (S2502) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.
[0359] Когда таблица информации о движении между участками пуста (S2503), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2504) в таблицу информации о движении между участками.
[0360] Когда таблица информации о движении между участками уже содержит кандидата на слияние между участками (S2503), контроль по избыточности может выполняться в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании информации о движении) (S2505). Контроль по избыточности предназначен для определения, совпадает ли информация о движении текущего блока с информацией о движении кандидата на слияние между участками, предварительно сохраненного в таблице информации о движении между участками. Контроль по избыточности может выполняться в отношении всех кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками. Альтернативно контроль по избыточности может выполняться в отношении кандидатов на слияние между участками, с индексами, превышающими или равными пороговому значению, или индексами, меньшими или равными пороговому значению, из кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками.
[0361] Когда не включен кандидат на слияние предсказания, осуществляемого между изображениями, имеющий такую же информацию о движении, что и текущий блок, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2508) в таблицу информации о движении между участками. То, идентичны ли кандидаты на слияние предсказания, осуществляемого между изображениями, можно определить на основании того, имеют ли кандидаты на слияние предсказания, осуществляемого между изображениями, одинаковую информацию о движении (например, вектор движения и/или индекс опорного изображения).
[0362] В этом случае, когда максимальное количество кандидатов на слияние между участками предварительно сохранено в таблице информации о движении между участками (S2506), самый старый кандидат на слияние между участками удаляется (S2507), а кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2508) в таблицу информации о движении между участками.
[0363] Кандидаты на слияние между участками могут быть идентифицированы по своим индексам. Когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, наименьший индекс (например, 0) присваивается кандидату на слияние между участками, а индексы предварительно сохраненных кандидатов на слияние между участками могут быть увеличены на единицу. В этом случае, когда максимальное количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохранено в таблице информации о движении между участками, кандидат на слияние между участками с наибольшим индексом удаляется.
[0364] Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, кандидату на слияние между участками может быть присвоен наибольший индекс. В качестве примера, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, меньше максимального значения, индекс, имеющий то же значение, что и количество предварительно сохраненных кандидатов на слияние предсказания, осуществляемого между изображениями, может быть присвоен кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, равно максимальному значению, кандидату на слияние между участками может быть присвоен индекс, имеющий максимальное значение минус 1. Кроме того, кандидат на слияние между участками с наименьшим индексом удаляется, а индексы других предварительно сохраненных кандидатов на слияние между участками уменьшаются на 1.
[0365] На фиг. 26 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.
[0366] Поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками, предполагается, что наибольший индекс присваивается кандидату на слияние между участками. Также предполагается, что максимальное количество кандидатов на слияние между участками хранится в таблице кандидатов на слияние между участками.
[0367] Когда кандидат на слияние между участками HmvpCand[n+1], полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], который имеет наименьший индекс из предварительно сохраненных кандидатов на слияние между участками, может быть удален, а индексы других кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n+1], который получается из текущего блока, может быть установлен в качестве максимального значения (n в примере, показанном на фиг. 26).
[0368] Когда кандидат на слияние между участками, идентичный кандидату на слияние между участками, полученному на основании текущего блока, предварительно сохранен (S2505), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S2509) в таблицу информации о движении между участками.
[0369] Альтернативно, в то время как кандидат на слияние между участками, полученный на основании текущего блока, добавляется в таблицу информации о движении между участками, предварительно сохраненный кандидат на слияние между участками, идентичный кандидату на слияние между участками, может быть удален. Это вызывает тот же эффект, что и обновление индексов предварительно сохраненных кандидатов на слияние между участками.
[0370] На фиг. 27 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.
[0371] Когда индекс предварительно сохраненного кандидата на слияние предсказания, осуществляемого между изображениями, который идентичен кандидату на слияние между участками mvCand, который получается на основании текущего блока, равен hIdx, предварительно сохраненный кандидат на слияние предсказания, осуществляемого между изображениями, может быть удален, а индексы кандидатов на слияние предсказания, осуществляемого между изображениями, превышающие hIdx, могут быть уменьшены на 1. В качестве примера, на фиг. 27 показано, что HmvpCand[2], который идентичен mvCand, удален из таблицы информации о движении между участками HvmpCandList, и что индексы HmvpCand[3] - HmvpCand[n] уменьшены на 1.
[0372] Кроме того, кандидат на слияние между участками mvCand, который получается на основании текущего блока, может быть добавлен в конец таблицы информации о движении между участками.
[0373] Альтернативно индекс, присвоенный предварительно сохраненному кандидату на слияние между участками, который идентичен кандидату на слияние между участками, полученному на основании текущего блока, может быть обновлен. Например, индекс предварительно сохраненного кандидата на слияние между участками может быть изменен на минимальное значение или максимальное значение.
[0374] Установка может быть выполнена таким образом, чтобы информация о движении блоков, включенных в предварительно определенный участок, не добавлялась в таблицу информации о движении между участками. В качестве примера, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в участок обработки слияния, может не добавляться в таблицу информации о движении между участками. Поскольку порядок кодирования или декодирования не задан для блоков, включенных в участок обработки слияния, неуместно использовать информацию о движении одного из блоков для выполнения предсказания, осуществляемого между изображениями, в отношении других блоков. Соответственно, кандидаты на слияние между участками, полученные на основании блоков, включенных в участок обработки слияния, могут не добавляться в таблицу информации о движении между участками.
[0375] Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из множества подблоков, включенных в текущий блок. В качестве примера, когда кандидат на слияние подблока используется для текущего блока, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из подблоков.
[0376] Векторы движения подблоков могут быть получены в следующем порядке. Сначала один кандидат на слияние может быть выбран из числа кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига shVector может быть получен на основании вектора движения выбранного кандидата на слияние. Затем подблок сдвига, имеющий опорный отсчет, расположенный в (xColSb, yColSb), может быть получен путем сложения начального вектора сдвига с местоположением (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или среднего отсчета) каждого подблока в блоке кодирования. В уравнении 20 ниже приведено уравнение для получения подблока сдвига.
[0377] [Уравнение 20]
[0378] Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, содержащего (xColSb, yColSb), может быть установлен как вектор движения подблока, содержащего (xSb, ySb).
[0379] Репрезентативный подблок может относиться к подблоку, содержащему верхний левый отсчет или центральный отсчет текущего блока.
[0380] На фиг. 28 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.
[0381] На фиг. 28A показан пример, в котором подблок, расположенный слева от текущего блока и над ним, установлен как репрезентативный подблок, и на фиг. 28B показан пример, в котором подблок, расположенный в центре текущего блока, установлен как репрезентативный подблок. Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего центральный отсчет текущего блока.
[0382] То, использовать ли текущий блок в качестве кандидата на слияние между участками, также может быть определено на основании режима предсказания, осуществляемого между изображениями, текущего блока. В качестве примера, блок, который кодируется или декодируется на основании модели аффинного движения, может быть установлен как недоступный в качестве кандидата на слияние между участками. Соответственно, хотя текущий блок кодируется или декодируется посредством предсказания, осуществляемого между изображениями, таблица информации о движении с предсказанием, осуществляемым между изображениями, может не обновляться на основании текущего блока, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания.
[0383] Альтернативно кандидат на слияние между участками может быть получен на основании вектора подблока по меньшей мере одного подблока, включенного в блок, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, кандидат на слияние между участками может быть получен с использованием подблока, расположенного в верхнем левом углу текущего блока, подблока, расположенного в центре текущего блока, или подблока, расположенного в правом верхнем углу текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.
[0384] Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, среднее значение по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора или третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.
[0385] Альтернативно таблица информации о движении между участками может быть сконфигурирована для каждого режима предсказания, осуществляемого между изображениями. В качестве примера, может быть задано по меньшей мере одно из таблицы информации о движении между участками для блока, кодированного или декодированного с помощью внутриблочного копирования, таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели поступательного движения, или таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели аффинного движения. Одна из множества таблиц информации о движении между участками может быть выбрана согласно режиму предсказания, осуществляемого между изображениями, текущего блока.
[0386] На фиг. 29 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.
[0387] Когда блок кодируется или декодируется на основании модели неаффинного движения, кандидат на слияние между участками mvCand, который получается на основании блока, может быть добавлен в таблицу информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок кодируется или декодируется на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, который получается на основании блока, может быть добавлен в таблицу информации об аффинном движении между участками HmvpAfCandList.
[0388] Аффинные исходные векторы блока могут храниться в кандидате на слияние между участками, полученном из блока, который кодируется или декодируется на основании модели аффинного движения. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.
[0389] В дополнение к описанной выше таблице информации о движении между участками может быть задана дополнительная таблица информации о движении между участками. В дополнение к описанной выше таблице информации о движении между участками (далее называемой первой таблицей информации о движении между участками) может быть задана долговременная таблица информации о движении (далее называемая второй таблицей информации о движении между участками). В этом случае долговременная таблица информации о движении содержит долговременных кандидатов на слияние.
[0390] Когда и первая таблица информации о движении между участками, и вторая таблица информации о движении между участками пусты, кандидаты на слияние между участками могут быть предпочтительно добавлены во вторую таблицу информации о движении между участками. Пока количество кандидатов на слияние между участками, разрешенное для второй таблицы информации о движении между участками, не достигнет максимального количества, кандидаты на слияние между участками могут не добавляться в первую таблицу информации о движении между участками.
[0391] Альтернативно один кандидат на слияние предсказания, осуществляемого между изображениями, может быть добавлен как в первую таблицу информации о движении между участками, так и во вторую таблицу информации о движении между участками.
[0392] В этом случае вторая таблица информации о движении между участками, где осуществлена конфигурация, может больше не выполнять обновление. Альтернативно, когда декодированный участок больше или равен предварительно определенной пропорции слайса, может быть обновлена вторая таблица информации о движении между участками. Альтернативно вторая таблица информации о движении между участками может обновляться каждые N линий элементов кодового дерева.
[0393] С другой стороны, первая таблица информации о движении между участками может обновляться всякий раз, когда генерируется блок, кодированный или декодированный посредством предсказания, осуществляемого между изображениями. Однако установка может быть выполнена таким образом, чтобы кандидаты на слияние между участками, добавленные во вторую таблицу информации о движении между участками, не использовались для обновления первой таблицы информации о движении между участками.
[0394] Информация для выбора одной из первой таблицы информации о движении между участками или второй таблицы информации о движении между участками может передаваться в битовом потоке. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидаты на слияние, включенные в таблицу информации о движении между участками, указанную информацией, могут быть добавлены в список кандидатов на слияние.
[0395] Альтернативно таблица информации о движении между участками может быть выбрана на основании размера, формы или режима предсказания, осуществляемого между изображениями, текущего блока, наличия двунаправленного предсказания, наличия уточнения вектора движения или наличия треугольного разделения.
[0396] Альтернативно, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, связанное со слиянием, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные во вторую таблицу информации о движении между участками, могут быть добавлены в список кандидатов на слияние.
[0397] На фиг. 30 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.
[0398] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше максимального количества, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долгосрочную таблицу информации о движении HmvpLTCandList, могут быть добавлены в список кандидатов на слияние.
[0399] Таблица 1 показывает процесс добавления кандидатов на слияние между участками, включенных в долговременную таблицу информации о движении, в список кандидатов на слияние.
[0400] [Таблица 1]
[0401] Установка может быть выполнена таким образом, чтобы кандидат на слияние между участками содержал дополнительную информацию, а также информацию о движении. В качестве примера, размер, форма или информация о разделении блока могут быть дополнительно сохранены для кандидата на слияние между участками. При конфигурации списка кандидатов на слияние для текущего блока могут использоваться только кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, из кандидатов на слияние предсказания, осуществляемого между изображениями, или кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, могут быть предпочтительно добавлены в список кандидатов на слияние.
[0402] Альтернативно таблица информации о движении между участками может быть сгенерирована для каждого размера, формы или части информации о разделении блока. Список кандидатов на слияние текущего блока может быть сгенерирован с использованием таблицы информации о движении между участками, соответствующей форме, размеру или информации о разделении текущего блока, из множества таблиц информации о движении между участками.
[0403] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может добавляться в список кандидатов на слияние. Процесс добавления может выполняться в порядке возрастания или убывания на основании индексов. В качестве примера, кандидат на слияние между участками с наибольшим индексом может быть предпочтительно добавлен в список кандидатов на слияние.
[0404] Когда кандидат на слияние между участками, включенный в таблицу информации о движении между участками, должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности в отношении кандидата на слияние между участками относительно кандидатов на слияние, предварительно сохраненных в списке кандидатов на слияние.
[0405] В качестве примера, в таблице 2 показан процесс добавления кандидата на слияние между участками в список кандидатов на слияние.
[0406] [Таблица 2]
[0407] Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в таблицу информации о движении между участками. В качестве примера, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками с индексами, большими или равными пороговому значению, или индексами, меньшими или равными пороговому значению. Альтернативно контроль по избыточности может выполняться только в отношении N кандидатов на слияние, имеющих наибольшие индексы или имеющих наименьшие индексы.
[0408] Альтернативно контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние, предварительно сохраненных в списке кандидатов на слияние. В качестве примера, контроль по избыточности может выполняться только в отношении кандидата на слияние с индексом, большим или равным пороговому значению, или индексом, меньшим или равным пороговому значению, или кандидата на слияние, полученного из блока в конкретном местоположении. В этом случае конкретное местоположение может включать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока или нижнего левого соседнего блока текущего блока.
[0409] На фиг. 31 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.
[0410] Когда кандидат на слияние между участками HmvpCand[j] должен быть добавлен в список кандидатов на слияние, контроль по избыточности может быть выполнен в отношении кандидата на слияние между участками в отношении двух кандидатов на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge -1], имеющих наибольшие индексы. В этом случае NumMerge может представлять количество доступных пространственных кандидатов на слияние и временных кандидатов на слияние.
[0411] В отличие от показанного примера, когда кандидат на слияние между участками HmvpCand[j] должен быть добавлен в список кандидатов на слияние, контроль по избыточности может быть выполнен в отношении кандидата на слияние между участками относительно по меньшей мере двух кандидатов на слияние, имеющих наименьшие индексы. Например, можно проверить, являются ли mergeCandList[0] и mergeCandList[1] идентичными HmvpCand[j]. Альтернативно контроль по избыточности может выполняться только в отношении кандидата на слияние, полученного в конкретном местоположении. В качестве примера, контроль по избыточности может выполняться в отношении по меньшей мере одного из кандидата на слияние, полученного из ближайшего блока, расположенного слева от текущего блока, или кандидата на слияние, полученного из ближайшего блока, расположенного над текущим блоком. Когда кандидат на слияние, полученный в конкретном местоположении, не находится в списке кандидатов на слияние, кандидаты на слияние между участками могут добавляться в список кандидатов на слияние без контроля по избыточности.
[0412] Когда найден кандидат на слияние, идентичный первому кандидату на слияние между участками, контроль по избыточности в отношении кандидата на слияние, идентичного первому кандидату на слияние между участками, может быть пропущен, в то время как контроль по избыточности в отношении второго кандидата на слияние между участками выполняется.
[0413] На фиг. 32 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.
[0414] Когда кандидат на слияние между участками HmvpCand[i] с индексом i должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности между кандидатом на слияние между участками и кандидатами на слияние, предварительно сохраненными в списке кандидатов на слияние. В этом случае, когда найден кандидат на слияние mergeCandList[j], идентичный кандидату на слияние между участками HmvpCand[i], кандидат на слияние между участками HmvpCand[i] может не добавляться в список кандидатов на слияние, и может быть выполнен контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может быть пропущен.
[0415] Например, в примере, показанном на фиг. 32, определяется, что HmvpCand[i] и mergeCandList[2] идентичны друг другу. Соответственно, HmvpCand[i] может не добавляться в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может быть пропущен.
[0416] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, по меньшей мере один из парного кандидата на слияние или нулевого кандидата на слияние может быть дополнительно включен в дополнение к кандидату на слияние между участками. Парный кандидат на слияние относится к кандидату на слияние с вектором движения, равным среднему из векторов движения двух или более кандидатов на слияние, а нулевой кандидат на слияние относится к кандидату на слияние с вектором движения, равным 0.
[0417] Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.
[0418] Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияние.
[0419] Пространственный кандидат на слияние относится к кандидату на слияние, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат на слияние относится к кандидату на слияние, полученному из предшествующего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату на слияние между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения.
[0420] Таблица информации о движении между участками может использоваться даже в режиме предсказания вектора движения. В качестве примера, когда количество кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, меньше, чем пороговое значение, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть установлен как кандидат предсказания вектора движения для текущего блока. Подробно вектор движения кандидата на слияние между участками может быть установлен в качестве кандидата предсказания вектора движения.
[0421] Когда выбирается один из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, выбранный кандидат может быть установлен как предсказатель вектора движения текущего блока. Впоследствии вектор движения текущего блока может быть получен путем декодирования остаточного значения вектора движения текущего блока и последующего сложения предсказателя вектора движения и остаточного значения вектора движения.
[0422] Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.
[0423] Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние в участке декодирования между изображениями - (Кандидат на аффинное слияние в участке декодирования между изображениями) - Нулевой кандидат предсказания вектора движения.
[0424] Пространственный кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из предыдущего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату предсказания вектора движения между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения. Нулевой кандидат предсказания вектора движения представляет кандидата, имеющего вектор движения, равный 0.
[0425] Блок кодирования может быть разбит на множество элементов предсказания, и элементы предсказания могут быть подвергнуты предсказанию. В этом случае элемент предсказания указывает базовый элемент для выполнения предсказания.
[0426] Блок кодирования может быть разбит с использованием по меньшей мере одной из вертикальной линии, горизонтальной линии, наклонной линии или диагональной линии. Информация для определения по меньшей мере одного из количества, углов или местоположений линий, которые разбивают блок кодирования, может передаваться в битовом потоке. В качестве примера, информация, указывающая одного из множества кандидатов типа раздела блока кодирования, может передаваться в битовом потоке, или информация, указывающая одного из множества кандидатов линий, которые разбивают блок кодирования, может передаваться в битовом потоке. Альтернативно информация для определения количества или типов кандидатов линий, разделяющих блок кодирования, может передаваться в битовом потоке. В качестве примера, то, следует ли использовать наклонную линию, имеющую больший угол, чем диагональная линия, и/или наклонную линию, имеющую меньший угол, чем диагональная линия, в качестве кандидата линии, может быть определено с использованием 1-битного флага.
[0427] Альтернативно по меньшей мере одно из количества, углов или местоположений линий, разделяющих блок кодирования, может быть адаптивно определено на основании по меньшей мере одного из режима предсказания, осуществляемого между изображениями, блока кодирования, режима предсказания, осуществляемого между изображениями, местоположения доступного кандидата на слияние или аспекта разделения соседнего блока.
[0428] Когда блок кодирования разбивают на множество элементов предсказания, внутреннее предсказание или предсказание, осуществляемое между изображениями, может быть выполнено в отношении элементов предсказания.
[0429] На фиг. 33 представлено схематическое изображение, показывающее пример разделения блока кодирования на множество элементов предсказания с использованием диагональной линии.
[0430] Как и в примерах, показанных на фиг. 33A и 33B, блок кодирования может быть разбит на два треугольных элемента предсказания с использованием диагональной линии.
[0431] На фиг. 33A и 33B показано, что блок кодирования разбит на два элемента предсказания с использованием диагональной линии, соединяющей две вершины блока кодирования. Однако блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, имеющей по меньшей мере один конец, который не проходит через вершину блока кодирования.
[0432] На фиг. 34 представлено схематическое изображение, показывающее пример разделения блока кодирования на два элемента предсказания.
[0433] Как и в примерах, показанных на фиг. 34A и 34B, блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой прилегают к верхнему краю и нижнему краю блока кодирования.
[0434] льтернативно, как и в примерах, показанных на фиг. 34C и 34D, блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой прилегают к левому краю и правому краю блока кодирования.
[0435] Альтернативно блок кодирования может быть разбит на два блока предсказания разных размеров. В качестве примера, путем установки наклонной линии, разделяющей блок кодирования, так, чтобы она прилегала к двум краям, образуя одну вершину, блок кодирования может быть разбит на два элемента предсказания разных размеров.
[0436] На фиг. 35 показаны примеры, в которых блок кодирования разбивается на множество блоков предсказания разных размеров.
[0437] Как и в примерах, показанных на фиг. 35A и 35B, путем установки диагональной линии, соединяющей верхнюю левую часть и нижнюю правую часть блока кодирования, для прохождения через левый край, правый край, верхний край или нижний край блока кодирования, а не прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания разных размеров.
[0438] Альтернативно, как и в примерах, показанных на фиг. 35C и 35D, путем установки диагональной линии, соединяющей верхнюю правую часть и нижнюю левую часть блока кодирования, для прохождения через левый край, правый край, верхний край или нижний край блока кодирования, а не прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания разных размеров.
[0439] Каждый из элементов предсказания, сгенерированных путем разделения блока кодирования, называется «N-м элементом предсказания». В качестве примера, в примерах, показанных на фиг. 33-35, PU1 может быть задан в качестве первого элемента предсказания, и PU2 может быть задан в качестве второго элемента предсказания. Первый элемент предсказания может относиться к элементу предсказания, содержащему отсчет, расположенный в нижней левой части блока кодирования, или отсчет, расположенный в верхней левой части блока кодирования, и второй элемент предсказания может относиться к элементу предсказания, содержащему отсчет, расположенный в верхней правой части блока кодирования, или отсчет, расположенный в нижней правой части блока кодирования.
[0440] И наоборот, элемент предсказания, содержащий отсчет, расположенный в верхней правой части блока кодирования, или отсчет, расположенный в нижней правой части блока кодирования, может быть задан в качестве первого элемента предсказания, и элемент предсказания, содержащий отсчет, расположенный в нижней левой части блока кодирования, или отсчет, расположенный в верхней левой части блока кодирования, может быть задан в качестве второго элемента предсказания.
[0441] Следующие варианты осуществления будут описаны с фокусировкой на пример разделения с использованием диагональной линии. В частности, разделение блока кодирования на два элемента предсказания с использованием диагональной линии называется диагональным разделением или треугольным разделением, и элемент предсказания, сгенерированный на основании диагонального разделения, называется треугольным элементом предсказания. Однако, следует понимать, что следующие варианты осуществления могут применяться даже к примеру разделения с использованием наклонной линии, имеющей угол, отличный от угла вертикальной линии, горизонтальной линии или диагональной линии.
[0442] То, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании по меньшей мере одного из типа слайса, максимального количества кандидатов на слияние, которое может включать список кандидатов на слияние, размера блока кодирования, формы блока кодирования, режима предсказательного кодирования блока кодирования или аспекта разделения порождающего узла.
[0443] В качестве примера, то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании того, имеет ли текущий слайс тип B. Диагональное разделение может быть разрешено только тогда, когда текущий слайс имеет тип B.
[0444] Альтернативно то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании того, составляет ли максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, два или более. Диагональное разделение может быть разрешено только тогда, когда максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, составляет два или более.
[0445] Альтернативно, когда по меньшей мере одна из ширины или высоты больше чем 64 в аппаратной реализации, неблагоприятно то, что к элементу обработки данных, имеющему размер 64×64, осуществляют избыточный доступ. Соответственно, когда по меньшей мере одна из ширины или высоты блока кодирования больше, чем пороговое значение, может быть не разрешено разбивать блок кодирования на множество блоков предсказания. В качестве примера, когда по меньшей мере одна из ширины или высоты блока кодирования больше чем 64, диагональное разделение может не использоваться.
[0446] Альтернативно то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании по меньшей мере одного из того, меньше или равняется ли количество отсчетов, включенных в блок кодирования, первому пороговому значению, или того, больше или равняется ли количество отсчетов, включенных в блок кодирования, второму пороговому значению. В качестве примера, когда количество отсчетов, включенных в блок кодирования, меньше или равняется первому пороговому значению или когда количество отсчетов, включенных в блок кодирования, больше или равняется второму пороговому значению, установка может быть выполнена так, что диагональное разделение не применяется к блоку кодирования. Альтернативно то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании того, меньше ли соотношение ширины и высоты блока кодирования, чем первое пороговое значение, или того, больше ли соотношение ширины и высоты блока кодирования, чем второе пороговое значение. В этом случае соотношение ширины и высоты whRatio блока кодирования может быть определено в качестве соотношения между шириной CbW и высотой CbH блока кодирования, как показано в уравнении 21 ниже.
[0447] [Уравнение 21]
[0448] Второе пороговое значение может представлять собой обратное число первого порогового значения. В качестве примера, когда первое пороговое значение равняется k, второе пороговое значение может равняться 1/k.
[0449] Диагональное разделение может быть применено к блоку кодирования только тогда, когда соотношение ширины и высоты блока кодирования находится между первым пороговым значением и вторым пороговым значением.
[0450] Альтернативно треугольное разделение может быть использовано только тогда, когда соотношение ширины и высоты блока кодирования меньше, чем первое пороговое значение, или больше, чем второе пороговое значение. В качестве примера, когда первое пороговое значение равняется 16, диагональное разделение может не быть разрешено для блока кодирования с размером 64×4 или 4×64.
[0451] Альтернативно то, разрешать ли диагональное разделение, может быть определено на основании аспекта разделения порождающего узла. В качестве примера, когда блок кодирования, который представляет собой порождающий узел, разбивают на основании разделения на основе четвертичного дерева, диагональное разделение может быть применено к блоку кодирования, который представляет собой листовой узел. С другой стороны, когда блок кодирования, который представляет собой порождающий узел, разбивают на основании разделения на основе двоичного дерева или разделения на основе троичного дерева, установка может быть выполнена так, что диагональное разделение не разрешают для блока кодирования, который представляет собой листовой узел.
[0452] Альтернативно то, разрешать ли диагональное разделение, может быть определено на основании режима предсказательного кодирования блока кодирования. В качестве примера, диагональное разделение может быть разрешено только тогда, когда блок кодирования кодируют с помощью внутреннего предсказания, когда блок кодирования кодируют с помощью предсказания, осуществляемого между изображениями, или когда блок кодирования кодируют в предварительно заданном режиме предсказания, осуществляемого между изображениями. В этом случае заданный режим предсказания, осуществляемого между изображениями, может указывать по меньшей мере один из режима слияния, режима предсказания вектора движения, аффинного режима слияния или режима предсказания вектора аффинного движения.
[0453] Альтернативно то, разрешать ли диагональное разделение, может быть определено на основании размера участка параллельной обработки. В качестве примера, когда размер блока кодирования больше, чем размер участка параллельной обработки, диагональное разделение может не использоваться.
[0454] То, следует ли применять диагональное разделение к блоку кодирования, может быть определено с учетом двух или более перечисленных выше условий.
[0455] Кроме того, информация, указывающая то, разрешать ли диагональное разделение, может передаваться в битовом потоке. Информация может передаваться на уровне последовательности, изображения, слайса или блока. Информация указывает, что диагональное разделение разрешено, и диагональное разделение может быть применено к блоку кодирования только тогда, когда по меньшей мере одно из перечисленных выше условий удовлетворяется.
[0456] Когда определяется, что следует применять диагональное разделение к блоку кодирования, информация, указывающая количество или местоположения линий, разделяющих блок кодирования, может передаваться в битовом потоке.
[0457] В качестве примера, когда блок кодирования разбивают путем диагональной линии, информация, указывающая направление диагональной линии, разделяющей блок кодирования, может передаваться в битовом потоке. В качестве примера, флаг triangle_partition_type_flag, который указывает направление диагональной линии, может передаваться в битовом потоке. Флаг указывает то, разбит ли блок кодирования диагональной линией, соединяющей верхнюю левую часть и нижнюю правую часть, или диагональной линией, соединяющей верхнюю правую часть и нижнюю левую часть. Разделение блока кодирования диагональной линией, соединяющей верхнюю левую часть и нижнюю правую часть, может называться левым треугольным типом раздела, и разделение блока кодирования диагональной линией, соединяющей верхнюю правую часть и нижнюю левую часть, может называться правым треугольным типом раздела. В качестве примера, флаг, имеющий значение 0, может указывать, что тип раздела блока кодирования имеет левый треугольный тип раздела, и флаг, имеющий значение 1, может указывать, что тип раздела блока кодирования имеет правый треугольный тип раздела.
[0458] Информация, указывающая тип раздела блока кодирования, может передаваться на уровне блока кодирования. Соответственно, тип раздела может быть определен для каждого блока кодирования, к которому применяется диагональное разделение.
[0459] В качестве другого примера, может передаваться информация, указывающая тип раздела для последовательности, изображения, слайса, тайла или элемента кодового дерева. В этом случае тип раздела блоков кодирования, к которым применяется диагональное разделение, может быть установлен идентичным образом в последовательности, изображении, слайсе, тайле или элементе кодового дерева.
[0460] Альтернативно может быть кодирована и передана информация для определения типа раздела первого элемента кодирования, к которому применяется диагональное разделение в элементе кодового дерева, и установка может быть выполнена так, что второй и последующие элементы кодирования, к которым применяется диагональное разделение, используют одинаковый тип раздела в качестве первого элемента кодирования.
[0461] В качестве другого примера, тип раздела блока кодирования может быть определен на основании типа раздела соседнего блока. В этом случае соседний блок может содержать по меньшей мере один из соседнего блока, смежного с верхним левым углом блока кодирования, соседнего блока, смежного с верхним правым углом блока кодирования, соседнего блока, смежного с нижним левым углом блока кодирования, соседнего блока, расположенного над блоком кодирования, или соседнего блока, расположенного слева от блока кодирования. В качестве примера, тип раздела текущего блока может быть установлен таким же, как тип раздела соседнего блока. Альтернативно тип раздела текущего блока может быть определен на основании того, применяется ли левый треугольный тип раздела к верхнему левому соседнему блоку, или того, применяется ли правый треугольный тип раздела к верхнему правому соседнему блоку или нижнему левому соседнему блоку.
[0462] Чтобы выполнить компенсацию предсказания движения для первого треугольного элемента предсказания и второго треугольного элемента предсказания, может быть получена информация о движении каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. В этом случае информация о движении первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получена от кандидатов на слияние, включенных в список кандидатов на слияние. Чтобы отличать общий список кандидатов на слияние от списка кандидатов на слияние, используемого для получения информации о движении треугольных элементов предсказания, список кандидатов на слияние для получения информации о движении треугольных элементов предсказания называется списком треугольных кандидатов на слияние, и кандидат на слияние, включенный в список треугольных кандидатов на слияние называется треугольным кандидатом на слияние. Однако использование вышеописанных способа получения кандидата на слияние и способа получения списка кандидатов на слияние для способа конфигурирования треугольных кандидатов на слияние и списка треугольных кандидатов на слияние также включено в сущность настоящего изобретения.
[0463] Информация для определения максимального количества треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, может быть передано в потоке. Информация может указывать разницу между максимальным количеством кандидатов на слияние, которое может содержать список кандидатов на слияние, и максимальным количеством треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние.
[0464] Треугольные кандидаты на слияние могут быть получены от пространственных соседних блоков и временных соседних блоков блока кодирования.
[0465] На фиг. 36 представлено схематическое изображение, показывающее соседние блоки, используемые для получения треугольного кандидата на слияние.
[0466] Треугольный кандидат на слияние может быть получен с использованием по меньшей мере одного из соседнего блока, расположенного над блоком кодирования, соседнего блока, расположенного слева от блока кодирования, или совмещаемого блока, включенного в изображение, отличное от изображения блока кодирования. Верхний соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (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), расположенный в центре блока кодирования в совмещаемом изображении.
[0467] Соседние блоки могут быть обнаружены в предварительно заданном порядке, и треугольные кандидаты на слияние могут образовывать список треугольных кандидатов на слияние в предварительно заданном порядке. В качестве примера, треугольные кандидаты на слияние могут быть обнаружены в порядке B1, A1, B0, A0, C0, B2 и C1 для образования списка треугольных кандидатов на слияние.
[0468] Информация о движении треугольных элементов предсказания может быть получена на основании списка треугольных кандидатов на слияние. То есть треугольные элементы предсказания могут находиться в одном списке треугольных кандидатов на слияние.
[0469] Информация для указания по меньшей мере одного из треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние, может передаваться в битовом потоке для получения информации о движении треугольного элемента сияния. В качестве примера, информация об индексах merge_triangle_idx, которая предназначена для указания по меньшей мере одного из треугольных кандидатов на слияние, может передаваться в битовом потоке.
[0470] Информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания и кандидата на слияние второго треугольного элемента предсказания. В качестве примера, таблица 3 представляет комбинации кандидатов на слияние, соответствующие информации об индексах merge_triangle_idx.
[0471] [Таблица 3]
[0472] Информация об индексах merge_triangle_idx, имеющая значение 1, представляет то, что информация о движении первого треугольного элемента предсказания получена от кандидата на слияние с индексом 1, и то, что информация о движении второго треугольного элемента предсказания получена от кандидата на слияние с индексом 0. С помощью информации об индексах merge_triangle_idx могут быть получены треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания и треугольный кандидат на слияние для получения информации о движении второго треугольного элемента предсказания.
[0473] Тип раздела блока кодирования, к которому применяется диагональное разделение, может быть определен с помощью информации об индексах. То есть информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разделения блока кодирования. Когда тип раздела блока кодирования определен с помощью информации об индексах, информация triangle_partition_type_flag, которая указывает направление диагональной линии, разделяющей блок кодирования, может не кодироваться. Таблица 4 представляет тип раздела блока кодирования в информации об индексах merge_triangle_idx.
[0474] [Таблица 4]
[0475] Переменная TriangleDir, равная 0, представляет то, что левый треугольный тип раздела применяется к блоку кодирования, и переменная TriangleDir, равная 1, представляет то, что правый треугольный тип раздела применяется к блоку кодирования. В комбинации таблицы 3 и таблицы 4 информация об индексах merge_triangle_idx может быть установлена так, чтобы указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разделения блока кодирования.
[0476] В качестве другого примера, может передаваться только информация об индексах для одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания, и индекс треугольного кандидата на слияние для другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть определена на основании информации об индексах. В качестве примера, треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен на основании информации об индексах merge_triangle_idx, которая указывает индекс одного из треугольных кандидатов на слияние. Кроме того, треугольный кандидат на слияние второго треугольного элемента предсказания может быть указан на основании merge_triangle_idx. В качестве примера, треугольный кандидат на слияние второго треугольного элемента предсказания может быть получен путем добавления смещения к информации об индексах merge_triangle_idx или вычитания из нее. Смещение может представлять собой целое, такое как 1 или 2. В качестве примера, треугольный кандидат на слияние с индексом, равным merge_traingle_idx плюс 1, может быть определен в качестве треугольного кандидата на слияние второго треугольного элемента предсказания. Когда merge_triangle_idx указывает треугольного кандидата на слияние с наибольшим значением индекса из треугольных кандидатов на слияние, информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние с индексом, равным 0, или треугольного кандидата на слияние с индексом, равным merge_triangle_idx минус 1.
[0477] Альтернативно информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, имеющего такое же опорное изображение, как и треугольный кандидат на слияние первого треугольного элемента предсказания, который указан с помощью информации об индексах. В этом случае треугольный кандидат на слияние, имеющий такое же опорное изображение, как и треугольный кандидат на слияние первого треугольного элемента предсказания, может указывать треугольного кандидата на слияние, в котором по меньшей мере одно из опорного изображения L0 или опорного изображения L1 является таким же, как и у треугольного кандидата на слияние первого треугольного элемента предсказания. Когда имеются множество треугольных кандидатов на слияние, имеющих такое же опорное изображение, как и у треугольного кандидата на слияние первого треугольного элемента предсказания, один из множества треугольных кандидатов на слияние может быть выбран на основании по меньшей мере одного из того, содержит ли кандидат на слияние информацию о двунаправленном движении, или значения разницы между информацией об индексах и индексом кандидата на слияние.
[0478] В качестве другого примера, информация об индексах может передаваться в каждый из первого треугольного элемента предсказания и второго треугольного элемента предсказания. В качестве примера, первая информация об индексах 1st_merge_idx, которая предназначена для определения треугольного кандидата на слияние первого треугольного элемента предсказания, и вторая информация об индексах 2nd_merge_idx, которая предназначена для определения треугольного кандидата на слияние второго треугольного элемента предсказания, могут передаваться в битовом потоке. Информация о движении первого треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании первой информации об индексах 1st_merge_idx, и информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании второй информации об индексах 2nd_merge_idx.
[0479] Первая информация об индексах 1st_merge_idx может указывать индекс одного из треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. Треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен в качестве треугольного кандидата на слияние, указанного с помощью первой информации об индексах 1st_merge_idx.
[0480] Установка может быть выполнена так, что треугольный кандидат на слияние, указанный с помощью первой информации об индексах 1st_merge_idx, не может использоваться в качестве треугольного кандидата на слияние второго треугольного элемента предсказания. Соответственно, вторая информация об индексах 2nd_merge_idx второго треугольного элемента предсказания может указывать индекс одного из остальных треугольных кандидатов на слияние, отличных от треугольного кандидата на слияние, указанного с помощью первой информации об индексах. Когда значение второй информации об индексах 2nd_merge_idx меньше, чем значение первой информации об индексах 1st_merge_idx, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние, имеющий информацию об индексах, указанную с помощью второй информации об индексах 2nd_merge_idx. С другой стороны, когда значение второй информации об индексах 2nd_merge_idx больше, чем значение первой информации об индексах 1st_merge_idx, или равняется ему, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние с индексом, имеющим значение, полученное путем добавления единицы к значению второй информации об индексах 2nd_merge_idx.
[0481] Альтернативно то, следует ли передавать вторую информацию об индексах, может быть определено согласно количеству треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. В качестве примера, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, не превышает двух, передача второй информации об индексах может быть пропущена. Когда передача второй информации об индексах пропущена, второй треугольный кандидат на слияние может быть получен путем добавления смещения к первой информации об индексах или вычитания из нее. В качестве примера, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно двум, и первая информация об индексах указывает индекс, равный 0, второй треугольный кандидат на слияние может быть получен путем добавления единицы к первой информации об индексах. Альтернативно, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно двум, и первая информация об индексах указывает единицу, второй треугольный кандидат на слияние может быть получен путем вычитания единицы из первой информации об индексах.
[0482] Альтернативно, когда передача второй информации об индексах пропущена, вторая информация об индексах может быть установлена в качестве значения по умолчанию. В этом случае значение по умолчанию может равняться нулю. Второй треугольный кандидат на слияние может быть получен путем сравнения первой информации об индексах и второй информации об индексах. В качестве примера, кандидат на слияние с индексом 0 может быть установлен в качестве второго треугольного кандидата на слияние, когда вторая информация об индексах меньше, чем первая информация об индексах, и кандидат на слияние с индексом 1 может быть установлен в качестве второго треугольного кандидата на слияние, когда вторая информация об индексах больше, чем первая информация об индексах, или равняется ей.
[0483] Когда треугольный кандидат на слияние имеет информацию об однонаправленном движении, информация об однонаправленном движении треугольного кандидата на слияние может быть установлена в качестве информации о движении треугольного элемента предсказания. С другой стороны, когда треугольный кандидат на слияние имеет информацию о двунаправленном движении, только одна из информации о движении L0 или информации о движении L1 может быть установлена в качестве информации о движении треугольного элемента предсказания. То, выбирать ли информацию о движении L0 или информацию о движении L1, может быть определено на основании индекса треугольного кандидата на слияние или информации о движении других треугольных элементов предсказания.
[0484] В качестве примера, когда индекс треугольного кандидата на слияние является четным числом, информация о движении L0 треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L1 треугольного кандидата на слияние может быть установлена как информация о движении L1 треугольного элемента предсказания. С другой стороны, когда индекс треугольного кандидата на слияние является нечетным числом, информация о движении L1 треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L0 треугольного кандидата на слияние может быть установлена равной нулю. И наоборот, информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 треугольного элемента предсказания, когда индекс треугольного кандидата на слияние является четным числом, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 треугольного элемента предсказания, когда индекс треугольного кандидата на слияние является нечетное число. Альтернативно информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 первого треугольного элемента предсказания, когда треугольный кандидат на слияние для первого треугольного элемента предсказания является четным числом, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 второго треугольного элемента предсказания, когда треугольный кандидат на слияние для второго треугольного элемента предсказания является нечетным числом.
[0485] Альтернативно, когда первый треугольный элемент предсказания имеет информацию о движении L0, информация о движении L0 второго треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации L1 второго треугольного элемента предсказания. С другой стороны, когда первый треугольный элемент предсказания имеет информацию о движении L1, информация о движении L1 второго треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 второго треугольного элемента предсказания.
[0486] Установка может быть выполнена так, что список треугольных кандидатов на слияние для получения информации о движении первого треугольного элемента предсказания отличается от списка треугольных кандидатов на слияние для получения информации о движении второго треугольного элемента предсказания.
[0487] В качестве примера, когда треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания указан из списка треугольных кандидатов на слияние на основании информации об индексах для первого треугольного элемента предсказания, информация о движении второго треугольного элемента предсказания может быть получена с использованием списка треугольных кандидатов на слияние, содержащего остальных треугольных кандидатов на слияние, отличных от треугольного кандидата на слияние, указанного с помощью информации об индексах. Подробно информация о движении второго треугольного элемента предсказания может быть получена от одного из остальных треугольных кандидатов на слияние.
[0488] Соответственно, максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние первого треугольного элемента предсказания, может отличаться от максимального количества треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние второго треугольного элемента предсказания. В качестве примера, когда список треугольных кандидатов на слияние первого треугольного элемента предсказания содержит M кандидатов на слияние, список треугольных кандидатов на слияние второго треугольного элемента предсказания может содержать M-1 кандидатов на слияние, отличных от треугольного кандидата на слияние, указанного с помощью информации об индексах первого треугольного элемента предсказания.
[0489] В качестве другого примера, пока кандидатов на слияние треугольных элементов предсказания получают на основании соседних блоков, смежных с блоком кодирования, доступность соседних блоков может быть определена с учетом форм или местоположений треугольных элементов предсказания.
[0490] На фиг. 37 представлено схематическое изображение для описания примера определения доступности соседнего блока для каждого треугольного элемента предсказания.
[0491] Соседний блок, который не является смежным с первым треугольным элементом предсказания, может быть установлен как недоступный для первого треугольного элемента предсказания, и соседний блок, который не является смежным со вторым треугольным элементом предсказания, может быть установлен как недоступный для второго треугольного элемента предсказания.
[0492] Например, как и в примере, показанном на фиг. 37A, когда левый треугольный тип раздела применяется к блоку кодирования, может быть определено, что блоки A1, A0 и A2, смежные с первым треугольным элементом предсказания, из блоков, соседних с блоками кодирования, доступны для первого треугольного элемента предсказания, и что блоки B0 и B1 не являются доступными для первого треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для первого треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2, но может не содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1.
[0493] Как и в примере, показанном на фиг. 37B, когда левый треугольный тип раздела применяется к блоку кодирования, может быть определено, что блоки B0 и B1, смежные со вторым треугольным элементом предсказания, доступны для второго треугольного элемента предсказания, и что блоки A1, A0 и A2 не являются доступными для второго треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для второго треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1, но может не содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2.
[0494] Следовательно, количество или диапазон треугольных кандидатов на слияние, которые может использовать треугольный элемент предсказания, могут быть определены на основании по меньшей мере одного из местоположения треугольного элемента предсказания или типа раздела блока кодирования.
[0495] В качестве другого примера, режим слияния может быть применен только к одному из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Кроме того, информация о движении другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть установлена такой же, как информация о движении треугольного элемента предсказания, к которому применяется режим слияния, или может быть получена путем уточнения информации о движении треугольного элемента предсказания, к которому применяется режим слияния.
[0496] В качестве примера, индекс опорного изображения и вектор движения первого треугольного элемента предсказания могут быть получены на основании треугольного кандидата на слияние, и вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. В качестве примера, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.
[0497] Информация для определения уточненного вектора движения, указывающего разницу между вектором движения первого треугольного элемента предсказания и вектором движения второго треугольного элемента предсказания, может передаваться в битовом потоке. Информация может содержать по меньшей мере одно из информации, указывающей размер уточненного вектора движения, или информации, указывающей знак уточненного вектора движения.
[0498] Альтернативно знак уточненного вектора движения может быть получен на основании по меньшей мере одного из типа раздела, применяемого к блоку кодирования, местоположения треугольного элемента предсказания или индекса треугольного элемента предсказания.
[0499] В качестве другого примера, могут передаваться вектор движения и индекс опорного изображения одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Вектор движения другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получен путем уточнения переданного вектора движения.
[0500] В качестве примера, индекс опорного изображения и вектор движения первого треугольного элемента предсказания могут быть определены на основании информации, переданной из битового потока. Кроме того, вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. В качестве примера, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.
[0501] Предсказание с компенсацией движения может быть выполнено в отношении блока кодирования на основании информации о движении первого треугольного элемента предсказания и информации о движении второго треугольного элемента предсказания. В этом случае ухудшение качества изображения может возникать на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. В качестве примера, непрерывность качества изображения может ухудшаться рядом с краем, присутствующим на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. Для снижения ухудшения качества изображения на границе, отсчет предсказания может быть получен с помощью взвешенного предсказания или фильтра сглаживания.
[0502] Отсчет предсказания в блоке кодирования, к которому применяется диагональное разделение, может быть получен на основании операции взвешенной суммы первого отсчета предсказания, выбранного на основании информации о движении первого треугольного элемента предсказания, и второго отсчета предсказания, выбранного на основании информации о движении второго треугольного элемента предсказания. Альтернативно отсчет предсказания первого треугольного элемента предсказания может быть получен от первого блока предсказания, определенного на основании информации о движении первого треугольного элемента предсказания, и отсчет предсказания второго треугольного элемента предсказания может быть получен от второго блока предсказания, определенного на основании информации о движении второго треугольного элемента предсказания. В этом случае отсчет предсказания, расположенный в находящемся на границе участке между первым треугольным элементом предсказания и вторым треугольным элементом предсказания, может быть получен на основании операции взвешенной суммы первого отсчета предсказания, включенного в первый блок предсказания, и второго отсчета предсказания, включенного во второй блок предсказания. В качестве примера, уравнение 22 ниже представляет пример получения отсчетов предсказания первого треугольного элемента предсказания и второго треугольного элемента предсказания.
[0503] [Уравнение 22]
[0504] В уравнении 22, P1 представляет первый отсчет предсказания, и P2 представляет второй отсчет предсказания. w1 представляет весовой коэффициент, применяемый к первому отсчету предсказания, и (1-w1) представляет весовой коэффициент, применяемый ко второму отсчету предсказания. Как и в примере, показанном в уравнении 22, весовой коэффициент, применяемый ко второму отсчету предсказания, может быть получен путем вычитания весового коэффициента, применяемого к первому отсчету предсказания, из постоянного значения.
[0505] Когда левый треугольный тип раздела применяется к блоку кодирования, находящий на границе участок может содержать отсчеты предсказания, имеющие одинаковую координату x и одинаковую координату y. С другой стороны, когда правый треугольный тип раздела применяется к блоку кодирования, находящий на границе участок может содержать отсчеты предсказания, каждый из которых имеет координату x и координату y, сумма которых больше или равняется первому пороговому значению и меньше или равняется второму пороговому значению.
[0506] Размер находящего на границе участка может быть определен на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования, информации о движении треугольных элементов предсказания, значения разницы вектора движения треугольных элементов предсказания, POC опорного изображения или значения разницы между первым отсчетом предсказания и вторым отсчетом предсказания в диагональной границе.
[0507] На фиг. 38 и 39 представлены схематические изображения, показывающие пример получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. На фиг. 38 проиллюстрирован случай, в котором левый треугольный тип раздела применяется к блоку кодирования, и на фиг. 39 проиллюстрирован случай, в котором правый треугольный тип раздела применяется к блоку кодирования. Кроме того, на фиг. 38A и 39A представлены схематические изображения, показывающие аспект предсказания для компонента яркости, и на фиг. 38B и 39B представлены схематические изображения, показывающие аспект предсказания для компонента цветности.
[0508] На графических материалах показано, что число, записанное в отсчете предсказания, расположенном рядом с границей между первым элементом предсказания и вторым элементом предсказания, указывает весовой коэффициент, применяемый к первому отсчету предсказания. В качестве примера, когда число, записанное в отсчете предсказания, равняется N, отсчет предсказания может быть получен путем применения весового коэффициента N/8 к первому отсчету предсказания и применения весового коэффициента 1-(N/8) ко второму отсчету предсказания.
[0509] В находящемся не на границе участке первый отсчет предсказания или второй отсчет предсказания может быть определен в качестве отсчета предсказания. Как показано в примере по фиг. 38, в участке, принадлежащем к первому треугольному элементу предсказания, из участков, где абсолютная разница между координатой x и координатой y больше, чем пороговое значение, первый отсчет предсказания, получаемый на основании информации о движении первого треугольного элемента предсказания, может быть задан в качестве отсчета предсказания. С другой стороны, в участке, принадлежащем ко второму треугольному элементу предсказания, из участков, где разница между координатой x и координатой y больше, чем пороговое значение, второй отсчет предсказания, получаемый на основании информации о движении второго треугольного элемента предсказания, может быть определен в качестве отсчета предсказания.
[0510] Как показано в примере по фиг. 39, в участке, где сумма координаты x и координаты y меньше, чем первое пороговое значение, первый отсчет предсказания, получаемый на основании информации о движении первого треугольного элемента предсказания, может быть задан в качестве отсчета предсказания. С другой стороны, в участке, где сумма координаты x и координаты y больше, чем второе пороговое значение, второй отсчет предсказания, получаемый на основании информации о движении второго треугольного элемента предсказания, может быть задан в качестве отсчета предсказания.
[0511] Пороговое значение для определения находящегося не на границе участка может быть определено на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования или цветового компонента. В качестве примера, когда пороговое значение для компонента яркости может быть установлено равным N, пороговое значение для компонента цветности может быть установлено равным N/2.
[0512] Отсчеты предсказания, включенные в находящийся на границе участок, могут быть получены на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае весовой коэффициент, применяемый к первому отсчету предсказания и второму отсчету предсказания, может быть определен на основании по меньшей мере одного из местоположения отсчета предсказания, размера блока кодирования, формы блока кодирования или цветового компонента.
[0513] Например, как и в примере, показанном на фиг. 38A, отсчеты предсказания, расположенные на одинаковой координате x и одинаковой координате y, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых абсолютная разница между координатой x и координатой y равна единице, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равного (3:1) или (1:3). Кроме того, отсчеты предсказания, в которых абсолютная разница между координатой x и координатой y равна двум, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).
[0514] Альтернативно, как и в примере, показанном на фиг. 38B, отсчеты предсказания, расположенные на одинаковой координате x и одинаковой координате y, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания, и отсчеты предсказания, в которых абсолютная разница между координатой x и координатой y равна единице, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).
[0515] Например, как и в примере, показанном на фиг. 39A, отсчеты предсказания, в которых сумма координаты x и координаты y на единицу меньше, чем ширина или высота блока кодирования, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты x и координаты y равняется или на два меньше, чем ширина или высота блока кодирования, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равным (3:1) или (1:3). Отсчеты предсказания, в которых сумма координаты x и координаты y на единицу больше или на три меньше, чем ширина или высота блока кодирования, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равным (7:1) или (1:7).
[0516] Альтернативно, как и в примере, показанном на фиг. 39B, отсчеты предсказания, в которых сумма координаты x и координаты y на единицу меньше, чем ширина или высота блока кодирования, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты x и координаты y равняется или на два меньше, чем ширина или высота блока кодирования, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равным (7:1) или (1:7).
[0517] В качестве другого примера, весовой коэффициент может быть определен с учетом местоположения отсчета предсказания или формы блока кодирования. В уравнениях 23-25 показаны примеры получения весового коэффициента, когда левый треугольный тип раздела применяется к блоку кодирования. В уравнении 23 показан пример получения весового коэффициента, применяемого к первому отсчету предсказания, когда блок кодирования является квадратным.
[0518] [Уравнение 23]
[0519] В уравнении 23 x и y представляют местоположение отсчета предсказания. Когда блок кодирования является неквадратным, весовой коэффициент, применяемый к первому отсчету предсказания, может быть получен с использованием уравнения 24 или уравнения 25 ниже. В уравнении 24 представлен случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 25 представлен случай, в котором ширина блока кодирования меньше, чем высота.
[0520] [Уравнение 24]
[0521] [Уравнение 25]
[0522] Когда правый треугольный тип раздела применяется к блоку кодирования, весовой коэффициент, применяемый к первому отсчету предсказания, может быть определен с использованием уравнений 26-28. В уравнении 26 показан пример получения весового коэффициента, применяемого к первому отсчету предсказания, когда блок кодирования является квадратным.
[0523] [Уравнение 26]
[0524] В уравнении 26 CbW представляет ширину блока кодирования. Когда блок кодирования является неквадратным, весовой коэффициент, применяемый к первому отсчету предсказания, может быть получен с использованием уравнения 27 или уравнения 28 ниже. В уравнении 27 представлен случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 28 представлен случай, в котором ширина блока кодирования меньше, чем высота.
[0525] [Уравнение 27]
[0526] [Уравнение 28]
[0527] В уравнении 27 CbH представляет высоту блока кодирования.
[0528] Как и в показанном примере, отсчет предсказания, включенный в первый треугольный элемент предсказания, из отсчетов предсказания в находящемся на границе участке может быть получен путем присваивания большего весового коэффициента первому отсчету предсказания, чем второму отсчету предсказания, и отсчет предсказания, включенный во второй треугольный элемент предсказания, может быть получен путем присваивания большего весового коэффициента второму отсчету предсказания, чем первому отсчету предсказания.
[0529] Когда диагональное разделение применяется к блоку кодирования, установка может быть выполнена так, что комбинированный режим предсказания, который представляет собой комбинацию режима внутреннего предсказания и режима слияния, не применяется к блоку кодирования.
[0530]
[0531] Внутреннее предсказание предназначено для предсказания текущего блока с использованием восстановленного отсчета, в котором осуществлено кодирование или декодирование, и который находится рядом с текущим блоком. В этом случае восстановленный отсчет до применения фильтра в контуре может использоваться для внутреннего предсказания текущего блока.
[0532] Метод внутреннего предсказания включает внутреннее предсказание на основании матрицы и нормальное внутреннее предсказание с учетом направленности по отношению к ближайшему восстановленному отсчету. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг. Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из местоположения, размера или формы текущего блока или метода внутреннего предсказания соседнего блока. В качестве примера, когда текущий блок присутствует на границе изображения, установка может быть выполнена таким образом, чтобы внутреннее предсказание на основании матрицы не применялось к текущему блоку.
[0533] Внутреннее предсказание на основании матрицы может представлять собой способ получения блока предсказания текущего блока на основании произведения матриц между матрицей, предварительно сохраненной в кодере и декодере, и восстановленными отсчетами, находящимися рядом с текущим блоком. Информация для указания одной из множества предварительно сохраненных матриц может передаваться в битовом потоке. Декодер может определять матрицу для внутреннего предсказания текущего блока на основании информации и размера текущего блока.
[0534] Нормальное внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Процесс выполнения внутреннего предсказания на основании нормального внутреннего предсказания будет подробно описан ниже со ссылкой на графические материалы.
[0535] На фиг. 40 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.
[0536] Может быть определена (S4001) линия опорных отсчетов текущего блока. Линия опорных отсчетов относится к набору опорных отсчетов, включенных в
k-ю линию от верхней и/или левой стороны текущего блока. Опорные отсчеты могут быть получены из восстановленных отсчетов, в которых осуществлено кодирование или декодирование, и которые находятся рядом с текущим блоком.
[0537] Информация об индексах для идентификации линии опорных отсчетов текущего блока из множества линий опорных отсчетов может передаваться в битовом потоке. В качестве примера, информация об индексах intra_luma_ref_idx, которая предназначена для указания линии опорных отсчетов текущего блока, может передаваться в битовом потоке. Информация об индексах может передаваться в элементах блоков кодирования.
[0538] Множество линий опорных отсчетов может содержать по меньшей мере одну из первой линии, второй линии, третьей линии или четвертой линии сверху и/или слева от текущего блока. Линия опорных отсчетов, состоящая из строки, смежной с верхней стороной текущего блока, и столбца, смежного с левой стороной текущего блока, из множества линий опорных отсчетов может называться смежной линией опорных отсчетов, и другие линии опорных отсчетов могут называться несмежными линиями опорных отсчетов.
[0539] Только некоторые из множества линий опорных отсчетов могут быть выбраны как линия опорных отсчетов текущего блока. В качестве примера, остальные линии опорных отсчетов, отличные от третьей несмежной линии опорных отсчетов, из множества линий опорных отсчетов, могут быть установлены в качестве кандидатных линий опорных отсчетов. В таблице 5 представлены индексы, присвоенные кандидатным линиям опорных отсчетов.
[0540] [Таблица 5]
[0541] Может быть установлено большее количество кандидатных линий опорных отсчетов или меньшее количество кандидатных линий опорных отсчетов, чем описано выше. Кроме того, количество или местоположения несмежных линий опорных отсчетов, установленных как кандидатные линии опорных отсчетов, не ограничиваются описанным выше примером. В качестве примера, первая несмежная линия опорных отсчетов и третья несмежная линия опорных отсчетов могут быть установлены как кандидатные линии опорных отсчетов, и вторая несмежная линия опорных отсчетов и третья несмежная линия опорных отсчетов могут быть установлены как кандидатные линии опорных отсчетов. Альтернативно все из первой несмежной линии опорных отсчетов, второй несмежной линии опорных отсчетов и третьей несмежной линии опорных отсчетов могут быть установлены как кандидатные линии опорных отсчетов.
[0542] Количество или типы кандидатных линий опорных отсчетов могут быть определены на основании по меньшей мере одного из размера, формы или местоположения текущего блока, наличия разделения на подблоки или режима внутреннего предсказания текущего блока.
[0543] Линия опорных отсчетов текущего блока может быть определена на основании по меньшей мере одного из местоположения, размера или формы текущего блока или режима предсказательного кодирования соседнего блока. В качестве примера, когда текущий блок прилегает к краю изображения, тайла, слайса или элемента кодового дерева, в качестве линии опорных отсчетов текущего блока может быть определена смежная линия опорных отсчетов.
[0544] Альтернативно, когда текущий блок является неквадратным, смежная линия опорных отсчетов может быть определена как линия опорных отсчетов текущего блока. Альтернативно, когда соотношение ширины и высоты текущего блока равняется или больше, чем пороговое значение, или равняется или меньше, чем пороговое значение, смежная линия опорных отсчетов может быть определена как линия опорных отсчетов текущего блока.
[0545] Линия опорных отсчетов может содержать верхние опорные отсчеты, расположенные над текущим блоком, и левые опорные отсчеты, расположенные слева от текущего блока. Верхние опорные отсчеты и левые опорные отсчеты могут быть получены из восстановленных отсчетов рядом с текущим блоком. Восстановленные отсчеты могут находиться в состоянии до применения фильтра в контуре.
[0546] Затем может быть определен (S4002) режим внутреннего предсказания текущего блока. Как режим внутреннего предсказания текущего блока может быть определен по меньшей мере один из режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Режим ненаправленного внутреннего предсказания включает планарный режим и режим DC, а направленное внутреннее предсказание включает 33 или 65 режимов от диагонального направления вниз и влево до диагонального направления вверх и вправо.
[0547] На фиг. 41 представлено схематическое изображение, показывающее режимы внутреннего предсказания.
[0548] На фиг. 41A показаны 35 режимов внутреннего предсказания, и на фиг. 41B показаны 67 режимов внутреннего предсказания.
[0549] Может быть задано большее количество режимов внутреннего предсказания или меньшее количество режимов внутреннего предсказания, чем показано на фиг. 41.
[0550] Наиболее вероятный режим (MPM) может быть установлен на основании режима внутреннего предсказания блока, соседнего с текущим блоком. В данном случае соседний блок может включать левый соседний блок, смежный с левой стороной текущего блока, и верхний соседний блок, смежный с верхней стороной текущего блока.
[0551] Количество MPM, включенных в список MPM, может быть предварительно установлено в кодере и декодере. В качестве примера, количество MPM может составлять три, четыре, пять или шесть. Альтернативно информация, указывающая количество МРМ, может передаваться в битовом потоке. Альтернативно количество МРМ может быть определено на основании по меньшей мере одного из режима предсказательного кодирования соседнего блока или размера, формы или индекса линии опорных отсчетов текущего блока. В качестве примера, когда смежная линия опорных отсчетов определена как линия опорных отсчетов текущего блока, могут быть использованы N MPM, а когда несмежная линия опорных отсчетов определена как линия опорных отсчетов текущего блока, могут быть использованы M MPM. M представляет собой натуральное число, которое меньше, чем N. В качестве примера, N может быть равно шести, и M может быть равно пяти, четырем или трем. Соответственно, один из шести кандидатных режимов внутреннего предсказания определен в качестве режима внутреннего предсказания текущего блока, когда индекс линии опорных отсчетов текущего блока равен нулю, и флаг MPM имеет значение true, и один из пяти кандидатных режимов внутреннего предсказания определен в качестве режима внутреннего предсказания текущего блока, когда индекс линии опорных отсчетов текущего блока больше чем ноль, и флаг MPM имеет значение true.
[0552] Альтернативно фиксированное количество (например, шесть или пять) MPM-кандидатов может быть использовано независимо от индекса линии опорных отсчетов текущего блока.
[0553] Создается список MPM, содержащий множество MPM, и информация, указывающая, включен ли MPM, идентичный режиму внутреннего предсказания текущего блока, в список MPM, может передаваться в битовом потоке. Информация представляет собой 1-битный флаг, и флаг может называться флагом MPM. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM, информация об индексах для указания одного из MPM, может передаваться в битовом потоке. В качестве примера, информация об индексах intra_luma_ref_idx, которая предназначена для указания одного из множества MPM, может передаваться в битовом потоке. В качестве режима внутреннего предсказания текущего блока может быть установлен МРМ, указанный информацией об индексах. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, не включен в список MPM, информация об остаточных режимах, указывающая один из оставшихся режимов внутреннего предсказания, отличных от MPM, может быть передана в битовом потоке. Информация об остаточных режимах указывает индексное значение, соответствующее режиму внутреннего предсказания текущего блока, когда индексы повторно присвоены оставшимся режимам внутреннего предсказания, отличным от MPM. Для определения режима внутреннего предсказания текущего блока, декодер может сортировать МРМ в порядке возрастания и сравнивать МРМ с информацией об остаточных режимах. В качестве примера, когда информация об остаточных режимах меньше или равна MPM, режим внутреннего предсказания текущего блока может быть получен путем добавления единицы к информации об остаточных режимах.
[0554] При получении режима внутреннего предсказания текущего блока сравнение между информацией об остаточных режимах и некоторым из MPM может быть пропущено. В качестве примера, MPM, которые представляют собой ненаправленные режимы внутреннего предсказания, из MPM могут быть исключены из сравнения. Когда ненаправленные режимы внутреннего предсказания установлены в качестве MPM, очевидно, что информация об остаточных режимах указывает направленный режим внутреннего предсказания. Таким образом, режим внутреннего предсказания текущего блока может быть получен посредством сравнения между информацией об остаточных режимах и остальными MPM, отличными от ненаправленных режимов внутреннего предсказания. Вместо исключения ненаправленных режимов внутреннего предсказания из сравнения, количество ненаправленных режимов внутреннего предсказания может быть добавлено в информацию об остаточных режимах, и, таким образом, результирующее значение может быть сравнено с остальными MPM.
[0555] Вместо установки MPM в качестве режима по умолчанию, в битовом потоке может быть передана информация, указывающая, является ли режим внутреннего предсказания текущего блока режимом по умолчанию. Информация может представлять собой 1-битный флаг, и флаг может называться флагом режима по умолчанию. Флаг режима по умолчанию может быть передан только тогда, когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM. Как описано выше, режим по умолчанию может включать по меньшей мере один из планарного режима, режима DC, вертикального режима или горизонтального режима. В качестве примера, когда в качестве режима по умолчанию установлен планарный режим, флаг режима по умолчанию может указывать, является ли режим внутреннего предсказания текущего блока планарным режимом. Когда флаг режима по умолчанию указывает, что режим внутреннего предсказания текущего блока не является режимом по умолчанию, в качестве режима внутреннего предсказания текущего блока может быть установлен один из MPM, указанных информацией об индексах.
[0556] Когда используют флаг режима по умолчанию, установка может быть выполнена так, что режим внутреннего предсказания, идентичный режиму по умолчанию, не устанавливается в качестве MPM. В качестве примера, когда флаг режима по умолчанию указывает то, является ли режим внутреннего предсказания текущего блока планарным, режим внутреннего предсказания текущего блока может быть получен с использованием пяти MPM, за исключением MPM, соответствующего планарному.
[0557] Когда в качестве режимов по умолчанию установлены множество режимов внутреннего предсказания, дальше может быть передана информация об индексах, указывающая один из режимов по умолчанию. Режим внутреннего предсказания текущего блока может быть установлен в качестве режима по умолчанию, указанного информацией об индексах.
[0558] Когда индекс линии опорных отсчетов текущего блока является ненулевым, установка может быть выполнена так, что режим по умолчанию не используется. В качестве примера, когда несмежная линия опорных отсчетов определена как линия опорных отсчетов текущего блока, установка может быть выполнена так, что ненаправленный режим внутреннего предсказания, такой как режим DC или планарный режим, не используется. Соответственно, когда индекс линии опорных отсчетов является ненулевым, флаг режима по умолчанию может не передаваться, и значение флага режима по умолчанию может быть установлено равным предварительно заданному значению (т. е. false).
[0559] Когда режим внутреннего предсказания текущего блока определен, отсчеты предсказания для текущего блока могут быть получены (S4003) на основании определенного режима внутреннего предсказания.
[0560] Когда выбран режим DC, отсчеты предсказания для текущего блока могут генерироваться на основании среднего значения опорных отсчетов. Подробно значения всех отсчетов в блоке предсказания могут генерироваться на основании среднего значения опорных отсчетов. Среднее значение может быть получено с использованием по меньшей мере одного из верхних опорных отсчетов, расположенных над текущим блоком, и левых опорных отсчетов, расположенных слева от текущего блока.
[0561] Количество или диапазон опорных отсчетов, используемых для получения среднего значения, может меняться в зависимости от формы текущего блока. В качестве примера, когда текущий блок представляет собой блок неквадратной формы, в котором ширина больше высоты, среднее значение может быть рассчитано с использованием только верхних опорных отсчетов. С другой стороны, когда текущий блок представляет собой блок неквадратной формы, в котором ширина меньше высоты, среднее значение может быть рассчитано с использованием только левых опорных отсчетов. То есть, когда ширина и высота текущего блока отличаются друг от друга, среднее значение может быть рассчитано с использованием только опорных отсчетов, смежных с большей из ширины и высоты. Альтернативно то, следует ли рассчитывать среднее значение с использованием верхних опорных отсчетов или рассчитывать среднее значение с использованием левых опорных отсчетов, можно определить на основании соотношения ширины и высоты текущего блока.
[0562] Когда выбран планарный режим, отсчет предсказания может быть получен с использованием отсчета горизонтального предсказания и отсчета вертикального предсказания. В данном случае отсчет горизонтального предсказания получается на основании левого опорного отсчета и правого опорного отсчета, расположенных на той же горизонтальной линии, что и отсчет предсказания, а отсчет вертикального предсказания получается на основании верхнего опорного отсчета и нижнего опорного отсчета, расположенных на той же вертикальной линии, что и отсчет предсказания. В данном случае правый опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с верхним правым углом текущего блока, а нижний опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с нижним левым углом текущего блока. Отсчет горизонтального предсказания может быть получен на основании операции взвешенной суммы левого опорного отсчета и правого опорного отсчета, а отсчет вертикального предсказания может быть получен на основании операции взвешенной суммы верхнего опорного отсчета и нижнего опорного отсчета. В этом случае весовой коэффициент, присваиваемый каждому опорному отсчету, может быть определен в зависимости от местоположения отсчета предсказания. Отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы отсчета горизонтального предсказания и отсчета вертикального предсказания. При выполнении операции взвешенной суммы весовые коэффициенты, присваиваемые отсчету горизонтального предсказания и отсчету вертикального предсказания, могут быть определены на основании местоположения отсчета предсказания.
[0563] Когда выбран режим направленного предсказания, может быть определен параметр, указывающий направление предсказания (или угол предсказания) выбранного режима направленного предсказания. Ниже в таблице 6 представлен параметр внутреннего направления intraPredAng для каждого режима внутреннего предсказания.
[0564] [Таблица 6]
[0565] В таблице 6 представлен параметр внутреннего направления для каждого режима внутреннего предсказания с индексом от 2 до 34, когда заданы 35 режимов внутреннего предсказания. Когда задано более 33 режимов направленного внутреннего предсказания, таблицу 6 можно подразделить с целью установки параметров внутреннего направления для каждого режима направленного внутреннего предсказания.
[0566] После расположения верхних опорных отсчетов и левых опорных отсчетов текущего блока в линию отсчет предсказания может быть получен на основании значения параметра внутреннего направления. В этом случае левые опорные отсчеты и верхние опорные отсчеты могут быть расположены в линию, когда значение параметра внутреннего направления является отрицательным.
[0567] На фиг. 42 и 43 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.
[0568] На фиг. 42 показан пример одномерного вертикального массива, в котором опорные отсчеты расположены вертикально, а на фиг. 43 показан пример одномерного горизонтального массива, в котором опорные отсчеты расположены горизонтально. Варианты осуществления, представленные на фиг. 42 и 43, будут описаны в предположении, что заданы 35 режимов внутреннего предсказания.
[0569] Одномерный горизонтальный массив, в котором верхние опорные отсчеты поворачиваются против часовой стрелки, может применяться тогда, когда индекс режима внутреннего предсказания находится между 11 и 18, а одномерный вертикальный массив, в котором левые опорные отсчеты поворачиваются по часовой стрелке, может применяться тогда, когда индекс режима внутреннего предсказания находится между 19 и 25. Когда опорные отсчеты расположены в линию, может учитываться угол режима внутреннего предсказания.
[0570] На основании параметра внутреннего направления может быть определен параметр определения опорного отсчета. Параметр определения опорного отсчета может содержать индекс опорного отсчета для указания опорного отсчета и параметр весового коэффициента для определения весового коэффициента, подлежащего применению к опорному отсчету.
[0571] Индекс опорного отсчета iIdx и параметр весового коэффициента ifact могут быть получены с помощью приведенных ниже уравнений 30 и 31.
[0572] [Уравнение 30]
[0573] [Уравнение 31]
[0574] В уравнениях 30 и 31 Pang представляет параметр внутреннего направления. Опорный отсчет, указываемый индексом опорного отсчета iIdx, соответствует целому пикселю.
[0575] Для получения отсчета предсказания может быть указан по меньшей мере один опорный отсчет. Подробно местоположение опорного отсчета для использования при получении отсчета предсказания может быть указано с учетом наклона режима предсказания. В качестве примера, опорный отсчет для использования при получении отсчета предсказания может быть указан с использованием индекса опорного отсчета iIdx.
[0576] В этом случае, когда наклон режима внутреннего предсказания нельзя выразить одним опорным отсчетом, отсчет предсказания может быть сгенерирован путем интерполяции множества опорных отсчетов. В качестве примера, когда наклон режима внутреннего предсказания представляет собой значение между наклоном между отсчетом предсказания и первым опорным отсчетом и наклоном между отсчетом предсказания и вторым опорным отсчетом, отсчет предсказания может быть получен путем интерполяции первого опорного отсчета и второго опорного отсчета. То есть угловая линия, соответствующая углу внутреннего предсказания, не проходит через опорный отсчет, расположенный в целом пикселе, отсчет предсказания может быть получен путем интерполяции опорных отсчетов, смежных с левой, правой, верхней или нижней сторонами местоположения, через которое проходит угловая линия.
[0577] Ниже в уравнении 32 показан пример получения отсчета предсказания на основании опорных отсчетов.
[0578] [Уравнение 32]
[0579] В уравнении 32 P представляет отсчет предсказания, и Ref_1D представляет один из опорных отсчетов, расположенных в одном измерении. В этом случае местоположение опорного отсчета может быть определено по индексу опорного отсчета iIdx и местоположению (х, у) отсчета предсказания.
[0580] Когда наклон режима внутреннего предсказания может быть выражен одним опорным отсчетом, параметр весового коэффициента ifact может быть установлен равным нулю. Соответственно, уравнение 32 можно упростить до приведенного ниже уравнения 33.
[0581] [Уравнение 33]
[0582] Внутреннее предсказание может быть выполнено в отношении текущего блока на основании множества режимов внутреннего предсказания. В качестве примера, режим внутреннего предсказания может быть получен для каждого отсчета предсказания, а отсчет предсказания может быть получен на основании режима внутреннего предсказания, присвоенного соответствующему отсчету предсказания.
[0583] Альтернативно режим внутреннего предсказания может быть получен для каждого участка, и внутреннее предсказание может быть выполнено в отношении соответствующего участка на основании режима внутреннего предсказания, присвоенного соответствующему участку. В этом случае участок может содержать по меньшей мере один отсчет. По меньшей мере одно из размера или формы участка может быть адаптивно определено на основании по меньшей мере одного из размера, формы или режима внутреннего предсказания текущего блока. Альтернативно по меньшей мере одно из размера или формы участка может быть предварительно задано в кодере и декодере независимо от размера или формы текущего блока.
[0584] Альтернативно внутреннее предсказание может выполняться многократно, и конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы множества отсчетов предсказания, полученных путем многократного выполнения внутреннего предсказания. В качестве примера, первый отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании первого режима внутреннего предсказания, а второй отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании второго режима внутреннего предсказания. Затем конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае весовые коэффициенты, присваиваемые первому отсчету предсказания и второму отсчету предсказания, могут быть определены с учетом по меньшей мере одного из того, является ли первый режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, того, является ли второй режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, или режима внутреннего предсказания соседнего блока.
[0585] Множество режимов внутреннего предсказания могут представлять собой комбинацию режима ненаправленного внутреннего предсказания и режима направленного внутреннего предсказания, комбинацию режимов направленного внутреннего предсказания или комбинацию режимов ненаправленного внутреннего предсказания.
[0586] На фиг. 44 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.
[0587] В примере, показанном на фиг. 44, режимы направленного предсказания могут находиться в диапазоне от диагонального направления вниз и влево до диагонального направления вверх и вправо. Там, где следующее описание предполагает угол, образованный между осью x и режимом направленного предсказания, режимы направленного предсказания могут находиться в диапазоне от 45 градусов (в диагональном направлении вниз и влево) до -135 градусов (в диагональном направлении вверх и вправо).
[0588] Когда текущий блок имеет неквадратную форму, отсчет предсказания может быть получен с использованием опорного отсчета вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу внутреннего предсказания, вместо опорного отсчета вблизи отсчета предсказания в зависимости от режима внутреннего предсказания текущего блока.
[0589] На фиг. 45 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.
[0590] Например, как и в примере, показанном на фиг. 45A, предполагается, что текущий блок имеет неквадратную форму, в которой ширина больше высоты, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от 0 градусов до 45 градусов. В этом случае при получении отсчета А предсказания рядом с правым столбцом текущего блока может использоваться левый опорный отсчет L вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу, вместо верхнего опорного отсчета T вблизи отсчета предсказания.
[0591] В качестве другого примера, как и в примере, показанном на фиг. 45B, предполагается, что текущий блок имеет неквадратную форму, в которой высота больше ширины, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от -90 градусов до -135 градусов. В этом случае при получении отсчета А предсказания рядом с нижней строкой текущего блока может использоваться верхний опорный отсчет Т вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу, вместо левого опорного отсчета L вблизи отсчета предсказания.
[0592] Для решения данной проблемы, когда текущий блок имеет неквадратную форму, режим внутреннего предсказания текущего блока может быть заменен режимом внутреннего предсказания в противоположном направлении. Таким образом, для блоков неквадратной формы могут быть использованы режимы направленного предсказания, имеющие угол, который больше или меньше, чем у режимов направленного предсказания, показанных на фиг. 41. Такой режим направленного внутреннего предсказания может быть задан в качестве широкоугольного режима внутреннего предсказания. Широкоугольный режим внутреннего предсказания представляет режим направленного внутреннего предсказания, не находящийся в диапазоне от 45 градусов до -135 градусов.
[0593] На фиг. 46 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.
[0594] В примере, показанном на фиг. 46, широкоугольные режимы внутреннего предсказания указаны режимами внутреннего предсказания с индексом от -1 до
-14 и режимами внутреннего предсказания с индексом от 67 до 80.
[0595] На фиг. 46 проиллюстрированы 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который больше 45 градусов (от -1 до -14), и 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который меньше -135 градусов (от 67 до 80), однако может быть задано большее или меньшее количество широкоугольных режимов внутреннего предсказания.
[0596] Когда используется широкоугольный режим внутреннего предсказания, длина верхних опорных отсчетов может быть установлена равной 2W+1, и длина левых опорных отсчетов может быть установлена равной 2H+1.
[0597] Когда используется широкоугольный режим внутреннего предсказания, отсчет А, показанный на фиг. 45A, может быть предсказан с использованием опорного отсчета Т, а отсчет А, показанный на фиг. 45B, может быть предсказан с использованием опорного отсчета L.
[0598] Путем добавления N широкоугольных режимов внутреннего предсказания к существующим режимам внутреннего предсказания может использоваться в общем 67+N режимов внутреннего предсказания. В качестве примера, в таблице 7 показаны параметры внутреннего направления режимов внутреннего предсказания, когда заданы 20 широкоугольных режимов внутреннего предсказания.
[0599] [Таблица 7]
[0600] Когда текущий блок имеет неквадратную форму, и режим внутреннего предсказания текущего блока, полученный на этапе S4002, находится в пределах диапазона преобразования, режим внутреннего предсказания текущего блока может быть преобразован в широкоугольный режим внутреннего предсказания. Диапазон преобразования может быть определен на основании по меньшей мере одного из размера, формы или соотношения текущего блока. В данном случае соотношение может указывать соотношение между шириной и высотой текущего блока.
[0601] Когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вверх и вправо (например, 66) до индекса режима внутреннего предсказания в диагональном направлении вверх и вправо минус N. В данном случае N может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой вычитание предварительно заданного значения из режима внутреннего предсказания, и предварительно заданное значение может представлять собой общее количество (например, 67) режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.
[0602] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от № 66 до № 53 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от № -1 до № -14 соответственно.
[0603] Когда текущий блок имеет неквадратную форму, в которой высота больше ширины, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вниз и влево (например, 2) до индекса режима внутреннего предсказания в диагональном направлении вниз и влево плюс M. В этом случае М может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой добавление предварительно заданного значения к режиму внутреннего предсказания, а предварительно заданное значение может представлять собой общее количество (например, 65) режимов направленного внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.
[0604] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от № 2 до № 15 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от № 67 до № 80 соответственно.
[0605] Режимы внутреннего предсказания, находящиеся в пределах диапазона преобразования, будут называться альтернативными широкоугольными режимами внутреннего предсказания.
[0606] Диапазон преобразования может быть определен на основании соотношения текущего блока. В качестве примера, в таблице 8 и таблице 9 представлен диапазон преобразования, когда заданы 35 режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания, и диапазон предсказания, когда заданы 67 режимов внутреннего предсказания.
[0607] [Таблица 8]
[0608] [Таблица 9]
[0609] В примерах, показанных в таблице 8 и таблице 9, количество альтернативных широкоугольных режимов внутреннего предсказания, находящихся в пределах диапазона преобразования, может отличаться в зависимости от соотношения текущего блока.
[0610] Диапазон преобразования, как показано в таблице 10 ниже, может быть установлен путем подразделения соотношения текущего блока.
[0611] [Таблица 10]
[0612] Когда несмежная линия опорных отсчетов определена в качестве линии опорных отсчетов текущего блока, или когда используется способ кодирования с внутренним предсказанием с несколькими линиями для выбора одной из множества линий опорных отсчетов, установка может быть выполнена так, что широкоугольный режим внутреннего предсказания не используется. То есть, даже когда текущий блок имеет неквадратную форму, и режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания текущего блока может не быть преобразован в широкоугольный режим внутреннего предсказания.
[0613] Альтернативно, когда режим внутреннего предсказания текущего блока определен в качестве широкоугольного режима внутреннего предсказания, установка может быть выполнена так, что несмежные линии опорных отсчетов не являются доступными в качестве линии опорных отсчетов текущего блока, или установка может быть выполнена так, что способ кодирования с внутренним предсказанием с несколькими линиями для выбора одной из множества линий опорных отсчетов не используется. Когда способ кодирования с внутренним предсказанием с несколькими линиями не используется, смежная линия опорных отсчетов может быть определена как линия опорных отсчетов текущего блока.
[0614] Когда широкоугольный режим внутреннего предсказания не используется, refW и refH могут быть установлены равными сумме nTbW и nTbH. Соответственно, за исключением верхних левых опорных отсчетов, несмежный опорный отсчет, находящийся на расстоянии i от текущего блока, может включать (nTbW + nTbH + offsetX[i]) верхних опорных отсчетов и (nTbW + nTbH + offsetY[i]) левых опорных отсчетов. То есть несмежный опорный отсчет, находящийся на расстоянии i от текущего блока, может включать (2nTbW + 2nTbH + offsetX[i] + offsetY[i] + 1) опорных отсчетов. Например, когда значение whRatio больше чем 1, установка может выполнена так, что значение offsetX больше, чем значение offsetY. В качестве примера, значение offsetX может быть установлено равным 1, и значение offsetY может быть установлено равным 0. С другой стороны, когда значение whRatio меньше чем 1, установка может выполнена так, что значение offsetY больше, чем значение offsetX. В качестве примера, значение offsetX может быть установлено равным 0, и значение offsetY может быть установлено равным 1.
[0615] Так как широкоугольные режимы внутреннего предсказания используются в дополнение к существующим режимам внутреннего предсказания, ресурсы, необходимые для кодирования широкоугольных режимов внутреннего предсказания, могут увеличиваться, и, таким образом, может снижаться эффективность кодирования. Соответственно, эффективность кодирования можно повысить путем кодирования альтернативных режимов внутреннего предсказания для широкоугольных режимов внутреннего предсказания вместо кодирования широкоугольных режимов внутреннего предсказания как есть.
[0616] В качестве примера, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания № 67, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания № 2, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для № 67. Кроме того, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания № -1, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания № 66, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для № -1.
[0617] Декодер может декодировать режим внутреннего предсказания текущего блока и может определять, находится ли декодированный режим внутреннего предсказания в пределах диапазона преобразования. Когда декодированный режим внутреннего предсказания представляет собой альтернативный широкоугольный режим внутреннего предсказания, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания.
[0618] Альтернативно, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания, широкоугольный режим внутреннего предсказания может кодироваться как есть.
[0619] Кодирование режима внутреннего предсказания может выполняться на основании вышеописанного списка МРМ. Подробно, когда соседний блок кодирован в широкоугольном режиме внутреннего предсказания, MPM может быть установлен на основании альтернативного широкоугольного режима внутреннего предсказания, соответствующего широкоугольному режиму внутреннего предсказания.
[0620] Остаточное изображение может быть получено путем вычитания изображения предсказания из исходного изображения. В этом случае, когда остаточное изображение изменяется на частотную область, субъективное качество изображения значительно не снижается, даже если из частотных компонентов удалены высокочастотные компоненты. Соответственно, когда значения высокочастотных компонентов изменяются на небольшие значения, или когда значения высокочастотных компонентов установлены равными 0, можно повысить эффективность сжатия, не вызывая значительное зрительное искажение. С учетом вышеописанных характеристик, текущий блок может быть преобразован с целью разложения остаточного изображения на двумерные частотные компоненты. Преобразование может выполняться с использованием такого метода преобразования, как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).
[0621] В DCT для разложения (или преобразования) остаточного изображения на (в) двумерные частотные компоненты используется косинусное преобразование, и в DST для разложения (или преобразования) остаточного изображения на (в) двумерные частотные компоненты используется синусное преобразование. В результате преобразования остаточного изображения частотные компоненты могут быть выражены с помощью базовой схемы. В качестве примера, когда DCT выполняется в отношении блока N×N, может быть получено N2 компонентов базовой схемы. Размер каждого из компонентов базовой схемы, включенных в блок N×N, может быть получен с помощью преобразования. В соответствии с используемым методом преобразования, размер компонента базовой схемы может называться коэффициентом DCT или коэффициентом DST.
[0622] Метод преобразования DCT используется главным образом для преобразования изображения, в котором распределены множество ненулевых низкочастотных компонентов. Метод преобразования DST используется главным образом для изображения, в котором распределены множество высокочастотных компонентов.
[0623] Остаточное изображение может преобразовываться с использованием метода преобразован
[0624] Преобразование остаточного изображения в двумерные частотные компоненты будет называться двумерным преобразованием. В дополнение, размер компонентов базовой схемы, полученных с помощью результата преобразования, будет называться коэффициентом преобразования. В качестве примера, коэффициент преобразования может называться коэффициентом DCT или коэффициентом DST. Когда применяются оба из первого преобразования и второго преобразования, которые будут описаны ниже, коэффициент преобразования может относиться к размеру компонента базовой схемы, сгенерированного в результате второго преобразования.
[0625] Метод преобразования может быть определен в элементах блоков. Метод преобразования может быть определен на основании по меньшей мере одного из режима предсказательного кодирования текущего блока или размера текущего блока. В качестве примера, когда текущий блок кодируется в режиме внутреннего предсказания, и размер текущего блока меньше N×N, преобразование может выполняться с использованием метода преобразования DST. С другой стороны, когда вышеприведенное условие не удовлетворяется, преобразование может выполняться с использованием метода преобразования DCT.
[0626] Двумерное преобразование может не выполняться в отношении некоторых блоков остаточного изображения. Невыполнение двумерного преобразования может называться пропуском преобразования. При применении пропуска преобразования квантование может применяться к остаточным значениям, в отношении которых преобразование не выполняется.
[0627] После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может подвергаться повторному преобразованию. В этом случае преобразование на основании DCT или DST может быть задано в качестве первого преобразования, а повторное преобразование блока, подвергнутого первому преобразованию, может быть задано в качестве второго преобразования.
[0628] Первое преобразование может выполняться с использованием одной из множества основ-кандидатов преобразования. В качестве примера, первое преобразование может выполняться с использованием одной из DCT2, DCT8 и DCT7.
[0629] В горизонтальном направлении и вертикальном направлении могут использоваться разные основы преобразования. Информация, указывающая комбинацию основы вертикального преобразования и основы горизонтального преобразования, может передаваться в битовом потоке.
[0630] Первое преобразование и второе преобразование могут выполняться в разных элементах. В качестве примера, первое преобразование может выполняться в отношении блока 8×8, и второе преобразование может выполняться в отношении подблока 4×4 преобразованного блока 8×8. В этом случае коэффициент преобразования остаточных участков, в которых второе преобразование не выполняется, может быть установлен равным 0.
[0631] Альтернативно первое преобразование может выполняться в отношении блока 4×4, а второе преобразование может выполняться в отношении участка блока 8×8, содержащего преобразованный блок 4×4.
[0632] Информация, указывающая, выполнять ли второе преобразование, может быть передана в битовом потоке.
[0633] Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата второго обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.
[0634] Квантование выполняется с целью снижения энергии блока, и процесс квантования включает деление коэффициента преобразования на конкретное постоянное значение. Это постоянное значение может быть получено посредством параметра квантования, а параметр квантования может быть задан как значение от 1 до 63.
[0635] Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.
[0636] При получении восстановленного блока текущего блока потеря информации, происходящая в ходе квантования и кодирования, может быть уменьшена с помощью фильтрации в контуре. Фильтр в контуре может содержать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) или адаптивного контурного фильтра (ALF). Восстановленный блок до применения фильтра в контуре будет называться первым восстановленным блоком, а восстановленный блок после применения фильтра в контуре будет называться вторым восстановленным блоком.
[0637] Второй восстановленный блок может быть получен путем применения по меньшей мере одного из деблочного фильтра, SAO или ALF к первому восстановленному блоку. В этом случае SAO или ALF может быть применен после применения деблочного фильтра.
[0638] Деблочный фильтр предназначен для ослабления ухудшения качества изображения (блочного артефакта), возникающего на крае блока при выполнении квантования в элементах блоков. Для применения деблочного фильтра может быть определен качественный показатель блока (BS) между первым восстановленным блоком и соседним восстановленным блоком.
[0639] На фиг. 47 представлена блок-схема, показывающая процесс определения качественного показателя блока.
[0640] В примере, показанном на фиг. 47, P представляет первый восстановленный блок, и Q представляет соседний восстановленный блок. В данном случае соседний восстановленный блок может представлять собой блок, соседний с текущим блоком слева или сверху.
[0641] В примере, показанном на фиг. 47, показано, что качественный показатель блока определяется с учетом режимов предсказательного кодирования P и Q, того, включены ли ненулевые коэффициенты преобразования, того, выполнено ли предсказание, осуществляемое между изображениями, с использованием того же опорного изображения, или того, является ли значение разницы между векторами движения большим или равным пороговому значению.
[0642] На основании качественного показателя блока можно определить, применять ли деблочный фильтр. В качестве примера, фильтрация может не выполняться, когда качественный показатель блока равен 0.
[0643] SAO предназначено для ослабления артефакта в виде колец, возникающего при выполнении квантования в частотной области. SAO может быть выполнено путем добавления или вычитания смещения, определенного с учетом схемы первого восстановленного изображения. Способ определения смещения включает смещение по краю (EO) или смещение по полосам (ВО). EO указывает способ определения смещения текущего отсчета согласно схеме ближайших пикселей. BO указывает способ применения общего смещения к набору пикселей, имеющих подобные значения яркости в участке. Подробно яркость пикселей делится на 32 равные секции, и как один набор могут быть установлены пиксели, имеющие подобные значения яркости. В качестве примера, как одна группа могут быть установлены четыре смежные полосы из 32 полос, и к отсчетам, принадлежащим четырем полосам, может быть применено одинаковое значение смещения.
[0644] ALF представляет собой способ генерирования второго восстановленного изображения путем применения фильтра предварительно заданного размера или формы к первому восстановленному изображению или к восстановленному изображению, к которому был применен деблочный фильтр. В приведенном ниже уравнении 34 представлен пример применения ALF.
[0645] [Уравнение 34]
[0646] Один из предварительно заданных фильтров-кандидатов может быть выбран в элементах изображения, элементах кодового дерева, блоках кодирования, блоках предсказания или блоках преобразования. Фильтры-кандидаты могут отличаться по размеру или форме.
[0647] На фиг. 48 показаны предварительно заданные фильтры-кандидаты.
[0648] В примере, показанном на фиг. 48, может быть выбрана по меньшей мере одна из ромбовидной формы 5×5, ромбовидной формы 7×7 или ромбовидной формы 9×9.
[0649] Для компонента цветности может быть использована только ромбовидная форма 5×5.
[0650]
[0651] Применение вариантов осуществления, которые были описаны как направленные на процесс декодирования или процесс кодирования, к процессу декодирования или процессу кодирования находится в пределах объема настоящего изобретения. Изменение предварительно определенного порядка, в котором были описаны варианты осуществления, на порядок, отличный от вышеописанного, также находится в пределах объема настоящего изобретения.
[0652] Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или последовательностей операций, этапы или последовательности операций не ограничивают порядок настоящего изобретения во временном ряду и при необходимости могут выполняться одновременно или в других порядках. Кроме того, каждый из компонентов (например, элементы, модули и т. д.), составляющих блок-схему в вышеописанных вариантах осуществления, может быть реализован аппаратным устройством или программным обеспечением, и множество компонентов могут быть скомбинированы и реализованы одним аппаратным устройством или программным обеспечением. Вышеописанные варианты осуществления могут быть реализованы в форме программных команд, которые могут исполняться посредством различных компьютерных средств и записываться в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программную команду, файл данных, структуру данных и т. п. отдельно или в комбинации. Примеры машиночитаемого носителя данных включают магнитные носители, такие как жесткий диск, дискета и магнитная лента, оптические носители, таки как постоянное запоминающее устройство на компакт-диске (CD-ROM) и цифровой универсальный диск (DVD), магнитооптические носители, такие как гибкий магнитооптический диск, и аппаратные устройства, такие как ROM, оперативное запоминающее устройство (RAM) и флеш-память, которые специально рассчитаны на хранение и исполнение программных команд. Аппаратное устройство может быть выполнено с возможностью работы в качестве одного или более модулей программного обеспечения для выполнения операций настоящего изобретения, и наоборот.
Промышленная применимость
[0653] Настоящее изобретение может быть применено к электронному устройству для кодирования или декодирования видео.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛА ИЗОБРАЖЕНИЯ | 2019 |
|
RU2805056C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛА ИЗОБРАЖЕНИЯ | 2019 |
|
RU2806152C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ | 2019 |
|
RU2802731C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ | 2019 |
|
RU2809582C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ | 2019 |
|
RU2809324C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ | 2019 |
|
RU2810054C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ | 2023 |
|
RU2824092C1 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ | 2019 |
|
RU2799079C2 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ | 2019 |
|
RU2819080C2 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛОВ ИЗОБРАЖЕНИЙ | 2019 |
|
RU2819393C2 |
Изобретение относится к области обработки видеоданных, в частности к кодированию или декодированию видеосигналов. Техническим результатом является повышение эффективности декодирования и получение кандидата на слияние с использованием таблицы информации о движении между участками при кодировании или декодировании видеосигналов. Предложен способ декодирования изображения, применяемый в видеодекодере, который включает этапы: определение того, следует ли разбивать блок кодирования на первый элемент предсказания и второй элемент предсказания; определение типа раздела блока кодирования, когда определяют то, что блок кодирования разбит; определение индекса второго кандидата на слияние на основании сравнения между значением второй информации об индексах и значением первой информации об индексах; получение первой информации о движении в отношении первого элемента предсказания и второй информации о движении в отношении второго элемента предсказания в блоке кодирования; и выборка отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении. 4 н. и 11 з.п. ф-лы, 48 ил., 10 табл.
1. Способ декодирования видео, включающий:
определение того, следует ли разбивать блок кодирования для получения первого элемента предсказания и второго элемента предсказания;
определение типа разбивки блока кодирования, когда определено то, что следует разбить блок кодирования;
получение первой информации о движении в отношении первого элемента предсказания блока кодирования и второй информации о движении в отношении второго элемента предсказания блока кодирования; и
выборку отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении,
при этом
первую информацию о движении в отношении первого элемента предсказания получают от первого кандидата на слияние, указанного с помощью первой информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние, и
вторую информацию о движении в отношении второго элемента предсказания получают от второго кандидата на слияние, указанного с помощью второй информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние;
при этом, когда значение второй информации об индексах больше, чем значение первой информации об индексах, или равняется ему, второй кандидат на слияние имеет индекс, равный значению второй информации об индексах плюс единица.
2. Способ декодирования видео по п. 1, отличающийся тем, что второй кандидат на слияние имеет индекс, равный значению второй информации об индексах, когда значение второй информации об индексах меньше, чем значение первой информации об индексах.
3. Способ декодирования видео по п. 1, отличающийся тем, что отсчет предсказания получают на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго отсчета предсказания, полученного на основании второй информации о движении, когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания.
4. Способ декодирования видео по п. 3, отличающийся тем, что первый весовой коэффициент, применяемый к первому отсчету предсказания, определяют на основании координаты x и координаты y отсчета предсказания.
5. Способ декодирования видео по п. 4, отличающийся тем, что второй весовой коэффициент, применяемый ко второму отсчету предсказания, получают путем вычитания первого весового коэффициента из постоянного значения.
6. Способ декодирования видео по п. 3, отличающийся тем, что размер граничного участка определяют на основании по меньшей мере одного из размера блока кодирования или формы блока кодирования.
7. Способ кодирования видео, включающий:
определение того, следует ли разбивать блок кодирования для получения первого элемента предсказания и второго элемента предсказания;
определение типа разбивки блока кодирования, когда определено то, что следует разбить блок кодирования;
получение первой информации о движении в отношении первого элемента предсказания блока кодирования и второй информации о движении в отношении второго элемента предсказания блока кодирования; и
выборку отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении,
при этом
первая информация о движении в отношении первого элемента предсказания получена от первого кандидата на слияние из множества кандидатов на слияние, включенных в список кандидатов на слияние,
вторая информация о движении в отношении второго элемента предсказания получена от второго кандидата на слияние из множества кандидатов на слияние, включенных в список кандидатов на слияние, и
первая информация об индексах для указания первого кандидата на слияние и вторая информация об индексах для указания второго кандидата на слияние соответственно кодированы;
при этом, когда индекс второго кандидата на слияние больше, чем индекс первого кандидата на слияние, вторую информацию об индексах кодируют с помощью значения, полученного путем вычитания единицы из индекса второго кандидата на слияние.
8. Способ кодирования видео по п. 7, отличающийся тем, что вторую информацию об индексах кодируют с помощью значения индекса второго кандидата на слияние, когда индекс второго кандидата на слияние меньше, чем индекс первого кандидата на слияние.
9. Способ кодирования видео по п. 7, отличающийся тем, что отсчет предсказания получают на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго отсчета предсказания, полученного на основании второй информации о движении, когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания.
10. Устройство декодирования видео, содержащее
элемент предсказания, осуществляемого между изображениями, выполненный с возможностью определения того, следует ли разбивать блок кодирования для получения первого элемента предсказания и второго элемента предсказания, определения типа раздела блока кодирования, когда определено то, что следует разбить блок кодирования, получения первой информации о движении в отношении первого элемента предсказания блока кодирования и второй информации о движении в отношении второго элемента предсказания блока кодирования и выборки отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении,
при этом
первая информация о движении в отношении первого элемента предсказания получена от первого кандидата на слияние, указанного с помощью первой информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние, и вторая информация о движении в отношении второго элемента предсказания получена от второго кандидата на слияние, указанного с помощью второй информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние;
когда значение второй информации об индексах больше, чем значение первой информации об индексах, или равняется ему, второй кандидат на слияние имеет индекс, равный значению второй информации об индексах плюс единица.
11. Устройство декодирования видео по п. 10, отличающееся тем, что второй кандидат на слияние имеет индекс, равный значению второй информации об индексах, когда значение второй информации об индексах меньше, чем значение первой информации об индексах.
12. Устройство декодирования видео по п. 10, отличающееся тем, что выборку отсчета предсказания получают на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго отсчета предсказания, полученного на основании второй информации о движении, когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания.
13. Видеокодер, содержащий
процессор, при этом процессор выполнен с возможностью:
определения того, следует ли разбивать блок кодирования для получения первого элемента предсказания и второго элемента предсказания;
определения типа разбивки блока кодирования, когда определено то, что следует разбить блок кодирования;
получения первой информации о движении в отношении первого элемента предсказания блока кодирования и второй информации о движении в отношении второго элемента предсказания блока кодирования; и
выборки отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении,
при этом
первая информация о движении в отношении первого элемента предсказания получена от первого кандидата на слияние из множества кандидатов на слияние, включенных в список кандидатов на слияние,
вторая информация о движении в отношении второго элемента предсказания получена от второго кандидата на слияние из множества кандидатов на слияние, включенных в список кандидатов на слияние, и
первая информация об индексах для указания первого кандидата на слияние и вторая информация об индексах для указания второго кандидата на слияние соответственно кодированы;
при этом, когда индекс второго кандидата на слияние больше, чем индекс первого кандидата на слияние, вторую информацию об индексах кодируют с помощью значения, полученного путем вычитания единицы из индекса второго кандидата на слияние.
14. Видеокодер по п. 13, отличающийся тем, что вторая информация об индексах кодирована с помощью значения индекса второго кандидата на слияние, когда индекс второго кандидата на слияние меньше, чем индекс первого кандидата на слияние.
15. Видеокодер по п. 13, отличающийся тем, что отсчет предсказания получают на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго отсчета предсказания, полученного на основании второй информации о движении, когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания.
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 11, JVET-L0124-v2, 12th Meeting: Macao, 03-12 Oct | |||
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
MAX BLASER et al., Description of SDR and 360 video coding technology proposal by RWTH Aachen University, Joint Video Experts Team (JVET) of |
Авторы
Даты
2024-04-15—Публикация
2019-11-07—Подача