СПОСОБ И УСТРОЙСТВО ВЗАИМНОГО ПРОГНОЗИРОВАНИЯ НА ОСНОВЕ DMVR И BDOF
METHOD AND DEVICE FOR MUTUAL FORECASTING BASED ON DVD AND BDOF

Уровень техники
Область техники, к которой относится изобретение
[1] Этот документ относится к технологии кодирования изображений, а более конкретно, к способу и оборудованию для выполнения взаимного прогнозирования на основе детализации векторов движения на стороне декодера (DMVR) и двунаправленного оптического потока (BDOF).
Описание предшествующего уровня техники
[2] Потребности в высококачественных изображениях и видео высокого разрешения, таких как изображение сверхвысокой четкости (UHD) и видео в формате 4K или 8K или выше, в последнее время растут в различных областях техники. По мере того, как данные изображений и видеоданных обладают высоким разрешением и высоким качеством, объем информации или число битов, которые относительно передаются, увеличивается по сравнению с существующими данными изображений и видеоданными. Соответственно, если данные изображений передаются с использованием такой среды, как существующая проводная или беспроводная широкополосная линия, либо данные изображений и видеоданные сохраняются с использованием существующего носителя хранения данных, затраты на передачу и затраты на хранение увеличиваются.
[3] Кроме того, интересы и потребности в иммерсивном мультимедиа, таком как контент виртуальной реальности (VR), искусственной реальности (AR) или голограмма, в последнее время растут. Широковещательная передача изображения и видео, имеющих характеристики изображений, отличающиеся от характеристик реальных изображений, таких как игровые изображения, возрастает.
[4] Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений и видео, чтобы эффективно сжимать и передавать или сохранять и воспроизводить информацию высококачественных изображений и видео высокого разрешения, имеющих такие различные характеристики.
Сущность изобретения
[5] Этот документ предоставляет способ и оборудование для повышения эффективности кодирования изображений.
[6] Этот документ также предоставляет способ и оборудование эффективного взаимного прогнозирования.
[7] Этот документ также предоставляет способ и оборудование для выполнения взаимного прогнозирования на основе детализации векторов движения (DMVR) на стороне декодера.
[8] Этот документ также предоставляет способ и оборудование для выполнения взаимного прогнозирования на основе двунаправленного оптического потока (BDOF).
[9] Этот документ также предоставляет способ и оборудование для повышения производительности прогнозирования посредством предоставления условия для определения того, следует или нет применять DMVR, для повышения эффективности кодирования изображений и/или условия для определения того, следует или нет применять BDOF.
[10] Согласно одному примерному варианту осуществления этого документа, предоставляется способ декодирования изображений, осуществляемый посредством оборудования декодирования. Способ включает в себя: извлечение детализированного L0-вектора движения и детализированного L1-вектора движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока; извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения; и формирование восстановленных выборок для текущего блока на основе прогнозных выборок, при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения, при этом извлечение прогнозных выборок содержит определение того, следует или нет применять процесс извлечения двунаправленных оптических потоков (BDOF), на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром.
[11] Согласно другому примерному варианту осуществления этого документа, предоставляется способ кодирования изображений, осуществляемый посредством оборудования кодирования. Способ включает в себя: извлечение детализированного L0-вектора движения и детализированного L1-вектора движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока; извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения; и извлечение остаточных выборок на основе прогнозных выборок; и кодирование информации изображений, включающей в себя информацию относительно остаточных выборок; при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения, при этом извлечение прогнозных выборок содержит определение того, следует или нет применять процесс извлечения двунаправленных оптических потоков (BDOF), на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром.
[12] Согласно этому документу, общая эффективность сжатия изображений/видео может увеличиваться.
[13] Согласно этому документу, вычислительная сложность может уменьшаться, и общая эффективность кодирования может повышаться через эффективное взаимное прогнозирование.
[14] Согласно этому документу, различные условия применения предлагаются при применении DMVR и/или BDOF для детализации информации движения во время процесса компенсации движения, чтобы повышать эффективность с точки зрения сложности и производительности.
Краткое описание чертежей
[15] Фиг. 1 схематично иллюстрирует пример системы кодирования видео/изображений, которая является применимой к вариантам осуществления этого документа.
[16] Фиг. 2 является схематичным пояснением конфигурации схемы оборудования кодирования видео/изображений, которое является применимым к вариантам осуществления этого документа.
[17] Фиг. 3 является схематичным пояснением конфигурации схемы оборудования декодирования видео/изображений, которое является применимым к вариантам осуществления этого документа.
[18] Фиг. 4 является схемой, поясняющей вариант осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) в истинном бипрогнозировании.
[19] Фиг. 5 является схемой, поясняющей вариант осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) с использованием суммы абсолютных разностей (SAD).
[20] Фиг. 6 иллюстрирует пример, представляющий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[21] Фиг. 7 и 8 иллюстрируют другой пример, представляющий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[22] Фиг. 9 является схемой, проиллюстрированной для того, чтобы пояснять понятие BDOF.
[23] Фиг. 10 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ кодирования, который может осуществляться посредством оборудования кодирования согласно варианту осуществления этого документа.
[24] Фиг. 11 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ декодирования, который может осуществляться посредством оборудования декодирования согласно варианту осуществления этого документа.
[25] Фиг. 12 иллюстрирует пример системы потоковой передачи контента, к которой являются применимыми варианты осуществления, раскрытые в этом документе.
Подробное описание вариантов осуществления
[26] Этот документ может модифицироваться различными способами и может иметь различные варианты осуществления, и в дальнейшем конкретные варианты осуществления иллюстрируются на чертежах и подробно описываются. Тем не менее, отсутствует намерение ограничивать этот документ конкретными вариантами осуществления. Термины, широко используемые в этом подробном описании, используются для того, чтобы описывать конкретный вариант осуществления, и не используются для того, чтобы ограничивать техническую сущность этого документа. Выражение в единственном числе включает в себя выражения во множественном числе, если иное не является очевидным из контекста. Следует понимать, что такой термин, как "включать в себя" или "иметь" в этом подробном описании указывает существование характеристики, числа, этапа, операции, элемента, части либо их комбинации, приведенной в описании изобретения, а не исключает существование или возможность добавления одной или более других характеристик, чисел, этапов, операций, элементов, частей либо их комбинации.
[27] Между тем, элементы, на чертежах описанные в этом документе, независимо иллюстрируются для удобства описания с связи с различными характеристическими функциями. Это не означает то, что каждый из элементов реализуется как отдельные аппаратные средства либо как отдельное программное обеспечение. Например, по меньшей мере, два элемента могут комбинироваться, чтобы формировать один элемент, либо один элемент может разделяться на множество элементов. Вариант осуществления, в котором элементы комбинируются и/или разделяются, также включается в объем прав этого документа, если он не отступает от сущности этого документа.
[28] В дальнейшем в этом документе, подробнее описываются предпочтительные варианты осуществления этого документа со ссылкой на прилагаемые чертежи. В дальнейшем в этом документе, на чертежах, идентичная ссылка с номером используется в идентичном элементе, и избыточное описание идентичного элемента может опускаться.
[29] Фиг. 1 схематично иллюстрирует пример системы кодирования видео/изображений, к которой могут применяться варианты осуществления этого документа.
[30] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое устройство (исходное устройство) и второе устройство (приемное устройство). Исходное устройство может доставлять кодированную информацию или данные видео/изображений в форме файла или потоковой передачи в приемное устройство через цифровой носитель хранения данных или сеть.
[31] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[32] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[33] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[34] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.
[35] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.
[36] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[37] Этот документ относится к кодированию видео/изображений. Например, способы/варианты осуществления, раскрытые в этом документе, могут применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте EVC (фундаментального кодирования видео), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267 или H.268 и т.д.).
[38] Этот документ представляет различные варианты осуществления кодирования видео/изображений, и варианты осуществления могут выполняться в комбинации между собой, если не указано иное.
[39] В этом документе, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретной временной зоне, и срез/плитка представляет собой единицу, составляющую часть кадра при кодировании. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Один кадр может состоять из одной или более групп плиток. Одна группа плиток может включать в себя одну или более плиток. Кирпич может представлять прямоугольную область CTU-строк в плитке в кадре. Плитка может сегментироваться на несколько кирпичей, каждый из которых состоит из одной или более CTU-строк в плитке. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Кирпичное сканирование представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно в растровом CTU-сканировании в кирпиче, кирпичи внутри плитки упорядочиваются последовательно в растровом сканировании кирпичей плитки, и плитки в кадре упорядочиваются последовательно в растровом сканировании плиток кадра. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез включает в себя собой целое число кирпичей кадра, которые могут содержаться исключительно в одной NAL-единице. Срез может состоять либо из определенного числа полных плиток, либо только из жесткой последовательности полных кирпичей одной плитки. Группы плиток и срезы могут использоваться взаимозаменяемо в этом документе. Например, в этом документе, группа плиток/заголовок группы плиток может называться "срезом/заголовком среза".
[40] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
[41] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[42] В этом документе, знак "/" и "," должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" может означать "A и/или B". Дополнительно, "A, B" может означать "A и/или B". Дополнительно, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C". Кроме того, "A, B, C" может означать "по меньшей мере, одно из A, B и/или C".
[43] Дополнительно, в документе, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только A, 2) только B и/или 3) как A, так и B. Другими словами, термин "или" в этом документе должен интерпретироваться как указывающий "дополнительно или альтернативно".
[44] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего документа. В дальнейшем в этом документе, оборудование кодирования видео может включать в себя оборудование кодирования изображений.
[45] Ссылаясь на фиг. 2, оборудование 200 кодирования включает в себя модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230 и энтропийный кодер 240, сумматор 250, фильтр 260 и запоминающее устройство 270. Модуль 220 прогнозирования может включать в себя модуль 221 взаимного прогнозирования и модуль 222 внутреннего прогнозирования. Остаточный процессор 230 может включать в себя преобразователь 232, квантователь 233, деквантователь 234 и обратный преобразователь 235. Остаточный процессор 230 дополнительно может включать в себя вычитатель 231. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230, энтропийный кодер 240, сумматор 250 и фильтр 260 могут быть сконфигурированы, по меньшей мере, посредством одного аппаратного компонента (например, набора микросхем или процессора кодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 270 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 270 в качестве внутреннего/внешнего компонента.
[46] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в оборудование 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно этому документу может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя единицу прогнозирования (PU) или единицу преобразования (TU). В этом случае, единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[47] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.
[48] В оборудовании 200 кодирования, прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, вычитается из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания прогнозного сигнала (прогнозированного блока, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Как описано ниже в описании каждого режима прогнозирования, модуль прогнозирования может формировать различную информацию, связанную с прогнозированием, к примеру, информацию режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно прогнозирования может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.
[49] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 222 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[50] Модуль 221 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.
[51] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять как внутренние прогнозирование, так и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[52] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[53] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для видео/восстановления изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В этом документе, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.
[54] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[55] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.
[56] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[57] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием декодирования может исключаться, и эффективность кодирования может повышаться.
[58] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.
[59] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию оборудования декодирования видео/изображений, которое является применимым к вариантам осуществления этого документа.
[60] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340, фильтр 350, запоминающее устройство 360. Модуль 330 прогнозирования может включать в себя модуль 331 взаимного прогнозирования и модуль 332 внутреннего прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[61] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в оборудовании кодирования по фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в оборудовании кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[62] Оборудование 300 декодирования может принимать сигнал, выводимый из оборудования кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через энтропийный декодер 310. Например, энтропийный декодер 310 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Оборудование декодирования дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные далее в этом документе, могут декодироваться, может декодировать процедуру декодирования и получаться из потока битов. Например, энтропийный декодер 310 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования целевого блока декодирования или информации символа/элемента разрешения, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством прогнозирования вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с прогнозированием, из информации, декодированной посредством энтропийного декодера 310, может предоставляться в модуль прогнозирования (модуль 332 взаимного прогнозирования и модуль 331 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 310, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в остаточный процессор 320. Остаточный процессор 320 может извлекать остаточный сигнал (остаточный блок, остаточные выборки, массив остаточных выборок). Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 310, может предоставляться в фильтр 350. Между тем, приемник (не показан) для приема сигнала, выводимого из оборудования кодирования, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента оборудования 300 декодирования, либо приемник может представлять собой компонент энтропийного декодера 310. Между тем, оборудование декодирования согласно этому документу может называться "оборудованием декодирования видео/изображений/кадров", и оборудование декодирования может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 310, и выборочный декодер может включать в себя, по меньшей мере, одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, запоминающего устройства 360, модуля 332 взаимного прогнозирования и модуля 331 внутреннего прогнозирования.
[63] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[64] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[65] Модуль прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и может определять конкретный режим внутреннего/взаимного прогнозирования.
[66] Модуль 320 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[67] Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[68] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 332 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[69] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.
[70] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для взаимного прогнозирования следующего кадра.
[71] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.
[72] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[73] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.
[74] В этом документе, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования оборудования 300 декодирования. То же также может применяться к модулю 332 и модулю 331 внутреннего прогнозирования.
[75] Как описано выше, при выполнении кодирования видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. Прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, т.е. целевого блока кодирования, может формироваться через прогнозирование. В этом случае, прогнозированный блок включает в себя прогнозные выборки в пространственную область (или пиксельную область). Прогнозированный блок идентично извлекается в оборудовании кодирования и оборудовании декодирования. Оборудование кодирования может повышать эффективность кодирования изображений посредством передачи в служебных сигналах, в оборудование декодирования, информации относительно остатка (остаточной информации) между исходным блоком, а не непосредственно исходным выборочным значением исходного блока, и прогнозированным блоком. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, может формировать восстановленный блок, включающий в себя восстановленные выборки, посредством суммирования остаточного блока с прогнозированным блоком и может формировать восстановленный кадр, включающий в себя восстановленные блоки.
[76] Остаточная информация может формироваться через процедуру преобразования и квантования. Например, оборудование кодирования может извлекать остаточный блок между исходным блоком и прогнозированным блоком, может извлекать коэффициенты преобразования посредством выполнения процедуры преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, может извлекать квантованные коэффициенты преобразования посредством выполнения процедуры квантования для коэффициентов преобразования, и может передавать в служебных сигналах ассоциированную остаточную информацию в оборудование декодирования (через поток битов). В этом случае, остаточная информация может включать в себя такую информацию, как информация значений, информация местоположения, схема преобразования, ядро преобразования и параметр квантования для квантованных коэффициентов преобразования. Оборудование декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и может извлекать остаточные выборки (или остаточный блок). Оборудование декодирования может формировать восстановленное изображение на основе прогнозированного блока и остаточного блока. Кроме того, оборудование кодирования может извлекать остаточный блок посредством деквантования/обратного преобразования квантованных коэффициентов преобразования для ссылки на взаимное прогнозирование последующего кадра и может формировать восстановленный кадр.
[77] Между тем, как описано выше, внутреннее прогнозирование или взаимное прогнозирование может применяться при выполнении прогнозирования для текущего блока. В дальнейшем в этом документе, описывается случай применения взаимного прогнозирования к текущему блоку. Между тем, как описано выше, внутреннее прогнозирование или взаимное прогнозирование может применяться при выполнении прогнозирования для текущего блока. В дальнейшем в этом документе, описывается случай применения взаимного прогнозирования к текущему блоку.
[78] Модуль прогнозирования (более конкретно, модуль взаимного прогнозирования) оборудования кодирования/декодирования может извлекать прогнозные выборки посредством выполнения взаимного прогнозирования в единицах блоков. Взаимное прогнозирование может представлять прогнозирование, извлекаемое посредством способа, зависимого от элементов данных (например, выборочных значений или информации движения) кадра(ов), отличного от текущего кадра. Когда взаимное прогнозирование применяется к текущему блоку, прогнозированный блок (массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения в опорном кадре в опорном кадре, указываемом посредством индекса опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае применения взаимного прогнозирования соседний блок может включать в себя пространственный соседний блок, который присутствует в текущем кадре и временном соседнем блоке, который присутствует в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными друг другу или отличающимися друг от друга. Временной соседний блок может упоминаться под таким названием, как "совместно размещенный опорный блок", "совместно размещенная CU (colCU)", и т.д., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, список возможных вариантов информации движения может быть сконфигурирован на основе соседних блоков относительно текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, с тем чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования и, например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть идентичной информации движения выбранного соседнего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. В случае режима прогнозирования векторов движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться посредством использования суммы предиктора вектора движения и разности векторов движения.
[79] Информация движения дополнительно может включать в себя L0-информацию движения и/или L1-информацию движения согласно типу взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Вектор движения для L0-направления может называться "L0-вектором движения" или "MVL0", и вектор движения для L1-направления может называться "L1-вектором движения" или "MVL1". Прогнозирование на основе L0-вектора движения может называться "L0-прогнозированием", прогнозирование на основе L1-вектора движения может называться "L1-прогнозированием", и прогнозирование на основе как L0-вектора движения, так и L1-вектора движения может называться "бипрогнозированием". Здесь, L0-вектор движения может указывать вектор движения, ассоциированный со списком L0 опорных кадров, и L1-вектор движения может указывать вектор движения, ассоциированный со списком L1 опорных кадров. Список L0 опорных кадров может включать в себя кадры до текущего кадра в порядке вывода, и список L1 опорных кадров может включать в себя кадры, последующие за текущим кадром в порядке вывода, в качестве опорных кадров. Предшествующие кадры могут называться "прямым (опорным) кадром", и последующие кадры могут называться "обратным (опорным) кадром". Список L0 опорных кадров дополнительно может включать в себя кадры, последующие за текущим кадром в порядке вывода в качестве опорных кадров. В этом случае, предшествующие кадры могут сначала индексироваться в списке L0 опорных кадров, и последующие кадры затем могут индексироваться. Список L1 опорных кадров дополнительно может включать в себя кадры до текущего кадра в порядке вывода в качестве опорных кадров. В этом случае, последующие кадры могут сначала индексироваться в списке L1 опорных кадров, и предшествующие кадры затем могут индексироваться. Здесь, порядок вывода может соответствовать порядку номеров в последовательности кадров (POC).
[80] Дополнительно, различные режимы взаимного прогнозирования могут использоваться при применении взаимного прогнозирования к текущему блоку. Например, могут использоваться различные режимы, включающие в себя режим объединения, режим пропуска, режим прогнозирования векторов движения (MVP), аффинный режим, режим статистического прогнозирования векторов движения (HMVP) и т.п. Режим детализации векторов движения на стороне декодера (DMVR), режим адаптивного разрешения векторов движения (AMVR), двунаправленный оптический поток (BDOF) и т.д. дополнительно могут использоваться в качестве вспомогательного режима. Аффинный режим может называться "режимом аффинного прогнозирования движения". MVP-режим может называться "режимом усовершенствованного прогнозирования векторов движения (AMVP)". В этом документе, некоторые режимы и/или возможные варианты информации движения, извлекаемые посредством некоторых режимов, могут включаться в один из связанных с информацией движения возможных вариантов других режимов.
[81] Информация режима прогнозирования, указывающая режим взаимного прогнозирования текущего блока, может передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. В этом случае, информация режима прогнозирования может включаться в поток битов и приниматься посредством оборудования декодирования. Информация режима прогнозирования может включать в себя информацию индекса, указывающую один из нескольких возможных вариантов режимов. Альтернативно, режим взаимного прогнозирования может указываться через иерархическую передачу в служебных сигналах информации флага. В этом случае, информация режима прогнозирования может включать в себя один или более флагов. Например, то, следует или нет применять режим пропуска, может указываться посредством передачи в служебных сигналах флага пропуска, то, следует или нет применять режим объединения, может указываться посредством передачи в служебных сигналах флага объединения, когда режим пропуска не применяется, и указывается то, что MVP-режим применяется, или флаг для дополнительного различения дополнительно может передаваться в служебных сигналах, когда режим объединения не применяется. Аффинный режим может передаваться в служебных сигналах в качестве независимого режима или передаваться в служебных сигналах в качестве зависимого режима на режиме объединения или MVP-режиме. Например, аффинный режим может включать в себя аффинный режим объединения и аффинный MVP-режим.
[82] Дополнительно, информация движения текущего блока может использоваться при применении взаимного прогнозирования к текущему блоку. Устройство кодирования может извлекать оптимальную информацию движения для текущего блока через процедуру оценки движения. Например, устройство кодирования может выполнять поиск в аналогичном опорном блоке, имеющем высокую корреляцию в единицах дробного пиксела, в предварительно определенном диапазоне поиска в опорном кадре посредством использования исходного блока в исходном кадре для текущего блока, и извлекать информацию движения через искомый опорный блок. Подобие блока может извлекаться на основе разности выборочных значений на основе фазы. Например, подобие блока может вычисляться на основе суммы абсолютных разностей (SAD) между текущим блоком (или эталоном текущего блока) и опорным блоком (или эталоном опорного блока). В этом случае, информация движения может извлекаться на основе опорного блока, имеющего наименьшую SAD в зоне поиска. Извлеченная информация движения может передаваться в служебных сигналах в устройство декодирования согласно различным способам на основе режима взаимного прогнозирования.
[83] Прогнозированный блок для текущего блока может извлекаться на основе информации движения, извлекаемой согласно режиму прогнозирования. Прогнозированный блок может включать в себя прогнозные выборки (массив прогнозных выборок) текущего блока. Когда вектор движения (MV) текущего блока указывает дробную единицу выборок, процедура интерполяции может выполняться, и прогнозные выборки текущего блока могут извлекаться на основе опорных выборок с дробной единицей выборок в опорном кадре через процедуру интерполяции. Когда аффинное взаимное прогнозирование применяется к текущему блоку, прогнозные выборки могут формироваться на основе MV в единицах выборок/субблоков. Когда бипрогнозирование применяется, прогнозные выборки, извлекаемые через взвешенную сумму или среднее взвешенное прогнозных выборок, извлекаемых на основе L0-прогнозирования (т.е. прогнозирование с использованием опорного кадра в списке L0 опорных кадров и MVL0), и прогнозные выборки (согласно фазе), извлекаемые на основе L1-прогнозирования (т.е. прогнозирование с использованием опорного кадра в списке L1 опорных кадров и MVL1), могут использоваться в качестве прогнозных выборок текущего блока. Когда бипрогнозирование применяется, если опорный кадр, используемый для L0-прогнозирования, и опорный кадр, используемый для L1-прогнозирования, расположены в различных временных направлениях на основе текущего кадра (т.е. если прогнозирование соответствует бипрогнозированию и двунаправленному прогнозированию), оно может называться "истинным бипрогнозированием".
[84] Восстановленные выборки и восстановленные кадры могут формироваться на основе извлеченных прогнозных выборок, и после этого может выполняться такая процедура, как внутриконтурная фильтрация и т.д., как описано выше.
[85] Между тем, поскольку движение текущего блока прогнозируется на основе вектора движения соседнего блока без разности векторов движения (MVD) в режиме пропуска и/или режиме объединения, режим пропуска и/или режим объединения показывают ограничение в прогнозировании движения. Чтобы улучшать ограничение режима пропуска и/или режима объединения, вектор движения может детализироваться посредством применения режима детализации векторов движения на стороне декодера (DMVR), режима извлечения двунаправленных оптических потоков (BDOF) и т.д. DMVR- и BDOF-режимы могут использоваться, когда истинное бипрогнозирование применяется к текущему блоку.
[86] Фиг. 4 является схемой для описания варианта осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) в истинном парном прогнозировании.
[87] DMVR представляет собой способ, в котором декодер выполняет прогнозирование движения посредством детализации информации движения соседнего блока. Когда DMVR применяется, декодер может извлекать детализированную информацию движения через сравнение затрат на основе эталона, сформированного посредством использования информации движения соседнего блока в режиме объединения/пропуска. В этом случае, точность прогнозирования движения может увеличиваться, и производительность сжатия может повышаться без дополнительной служебной информации.
[88] В этом документе, для удобства описания, главным образом описывается оборудование декодирования, но DMVR согласно варианту осуществления этого документа может выполняться идентичным способом даже в оборудовании кодирования.
[89] Ссылаясь на фиг. 4, оборудование декодирования может извлекать блоки прогнозирования (т.е. опорные блоки), идентифицированные посредством начальных векторов движения для направления списка 0 и списка 1 (или информации движения) (например, MV0 и MV1), и формировать эталон (или билатеральный шаблон) посредством взвешенной суммы (например, усреднения) извлеченных прогнозных выборок (этап 1). Здесь, начальные векторы движения (MV0 и MV1) могут представлять векторы движения, извлекаемые посредством использования информации движения соседнего блока в режиме объединения/пропуска.
[90] Помимо этого, оборудование декодирования может извлекать векторы движения (например, MV0' и MV1') для минимизации разности между эталоном и выборочной зоной опорного кадра через операцию сопоставления с шаблонами (этап 2). Здесь, выборочная зона может указывать соседнюю зону начального блока прогнозирования в опорном кадре, и выборочная зона может называться "соседней зоной", "опорной зоной", "зоной поиска", "диапазоном поиска", "пространством поиска" и т.д. Операция сопоставления с шаблонами может включать в себя операцию вычисления значения измерения затрат между эталоном и выборочной зоной опорного кадра. Например, сумма абсолютных разностей (SAD) может использоваться для измерения затрат. В качестве одного примера, в качестве функции затрат, может использоваться нормализованная SAD. В этом случае, затраты на сопоставление могут задаваться как SAD (T-mean(T), 2*P[x]-2*mean(P[x])). Здесь, T представляет эталон, и P[x] представляет блок в зоне поиска. Помимо этого, вектор движения для вычисления минимальных затрат на эталон для каждого из двух опорных кадров может рассматриваться как обновленный вектор движения (заменяющий начальный вектор движения). Как проиллюстрировано на фиг. 8, оборудование декодирования может формировать конечный результат билатерального прогнозирования (т.е. конечный блок билатерального прогнозирования) посредством использования обновленных векторов MV0' и MV1' движения. В качестве варианта осуществления, мультиитерация для извлечения обновленного (или нового) вектора движения может использоваться для получения конечного результата билатерального прогнозирования.
[91] В варианте осуществления, оборудование декодирования может вызывать DMVR-процесс, чтобы повышать точность начального прогнозирования с компенсацией движения (т.е. прогнозирования с компенсацией движения через традиционный режим объединения/пропуска). Например, оборудование декодирования может выполнять DMVR-процесс, когда режим прогнозирования текущего блока представляет собой режим объединения или режим пропуска, и билатеральное бипрогнозирование, при котором билатеральные опорные кадры расположены в противоположных направлениях на основе текущего кадра в порядке отображения, применяется к текущему блоку.
[92] Фиг. 5 является схемой, поясняющей вариант осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) посредством использования суммы абсолютных разностей (SAD).
[93] Как описано выше, оборудование декодирования может измерять затраты на сопоставление посредством использования SAD в выполнении DMVR. В качестве варианта осуществления, на фиг. 5, в дальнейшем описывается способ для детализации вектора движения посредством вычисления средней суммы абсолютных разностей (MRSAD) между прогнозными выборками в двух опорных кадрах без формирования эталона. Другими словами, способ по фиг. 5 показывает вариант осуществления билатерального сопоставления с использованием MRSAD.
[94] Ссылаясь на фиг. 5, оборудование декодирования может извлекать смежный пиксел относительно пиксела (выборки), указываемого посредством вектора MV0 движения для направления списка 1 (L0) в опорном L0-кадре, и извлекать смежный пиксел относительно пиксела (выборки), указываемого посредством вектора MV1 движения для направления списка 1 (L1) в опорном L1-кадре. Помимо этого, оборудование декодирования может измерять затраты на сопоставление посредством вычисления MRSAD между L0-блоком прогнозирования (т.е. опорным L0-блоком), идентифицированным посредством вектора движения, указывающего смежный пиксел, извлекаемый в опорном L0-кадре, и L1-блоком прогнозирования (т.е. опорным L1-блоком), идентифицированным посредством вектора движения, указывающего смежный пиксел, извлекаемый в опорном L1-кадре. В этом случае, оборудование декодирования может выбирать точку поиска (т.е. зону поиска, имеющую минимальную SAD между L0-блоком прогнозирования и L1-блоком прогнозирования), имеющую минимальные затраты, в качестве пары детализированных векторов движения. Другими словами, пара детализированных векторов движения может включать в себя детализированный L0-вектор движения, указывающий пиксельную позицию (L0-блок прогнозирования), имеющую минимальные затраты в опорном L0-кадре, и детализированный L1-вектор движения, указывающий пиксельную позицию (L1-блок прогнозирования), имеющую минимальные затраты в опорном L1-кадре.
[95] В качестве варианта осуществления, при вычислении затрат на сопоставление, после того, как зона поиска опорного кадра задается, одностороннее прогнозирование может выполняться посредством использования регулярного 8-отводного интерполяционного DCTIF-фильтра. Дополнительно, в качестве одного примера, 16-битовая точность может использоваться для вычисления MRSAD, и операции отсечения и/или округления могут не применяться перед вычислением MRSAD с учетом внутреннего буфера.
[96] Когда истинное бипрогнозирование применяется к текущему блоку, как описано выше, BDOF может использоваться для того, чтобы детализировать бипрогнозный сигнал. Когда бипрогнозирование применяется к текущему блоку, двунаправленный оптический поток (BDOF) может использоваться для того, чтобы вычислять улучшенную информацию движения и формировать прогнозные выборки на основе вычисленной информации движения. Например, BDOF может применяться на уровне субблока 4×4. Другими словами, BDOF может выполняться в единицах субблоков 4×4 в текущем блоке. Альтернативно, BDOF может применяться только к компоненту сигнала яркости. Альтернативно, BDOF может применяться только к компоненту сигнала цветности и применяться к компоненту сигнала яркости и компоненту сигнала цветности.
[97] BDOF-режим основан на понятии оптического потока при условии, что движение объекта является плавным, как указано в силу названия "BDOF-режима". Детализация (vx, vy) движения может вычисляться посредством минимизации разностного значения между прогнозными L0- и L1-выборками для каждого из субблоков 4×4. Помимо этого, детализация движения может использоваться для регулирования выборочных значений бипрогнозирования в субблоках 4×4.
[98] Между тем, можно видеть, что DMVR и BDOF в качестве технологий, которые выполняют прогнозирование посредством детализации информации движения (в этом случае, истинное бипрогнозирование представляет случай выполнения прогнозирования/компенсации движения в опорном кадре другого направления на основе кадра текущего блока) во время применения истинного бипрогнозирования представляет собой технологию детализации, имеющую аналогичное понятие в том, что предполагается то, что движение объекта в кадре выполняется с предварительно определенной скоростью и в предварительно определенном направлении. Тем не менее, когда истинное бипрогнозирование выполняется, поскольку условие для применения DMVR и условие для применения BDOF отличаются друг от друга, процесс проверки условий многократно несколько раз для каждой технологии должен выполняться. Следовательно, этот документ предлагает способ, который может повышать эффективность с точки зрения сложности декодера и производительность за счет улучшения процесса проверки условия при определении режима прогнозирования, применяемого к текущему блоку.
[99] Нижеприведенная таблица 1 показывает условие для применения DMVR во время традиционного истинного бипрогнозирования. Когда все перечисленные ниже условия удовлетворяются, DMVR может применяться.
[100] Таблица 1
- sps_dmvr_enabled_flag задается равным 1: Передача служебных сигналов в SPS- merge_flag[xCb][yCb] равен 1: Применяется в случае объединения/пропуска- mmvd_flag[xCb][yCb] равен 0: Применяется в случае не MMVD- predFlagL0[0][0]=1 и predFlagL0[1][1]=1: Двунаправленное прогнозирование- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0: TrueBi и расстояния от текущего кадра и двунаправленного опорного кадра равны друг другу (в дальнейшем в этом документе, "расстояние до опорного кадра" может представлять вышеописанный смысл).- CbHeight превышает или равен 8: В случае если длина (или размер) блока больше порогового значения (например, 8) (здесь, пороговое значение может примерно иллюстрироваться различными способами),- CbHeight*CbWidth превышает или равен 64: В случае если размер блока (или абсолютная величина) больше порогового значения (например, 64) (здесь, пороговое значение может примерно иллюстрироваться различными способами)
[101] Ссылаясь на таблицу 1, 1) то, следует или нет применять DMVR, может определяться на основе информации флага (например, sps_dmvr_enabled_flag), передаваемой в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Здесь, информация флага (например, sps_dmvr_enabled_flag) может представлять то, активируется или нет DMVR на основе истинного бипрогнозирования. Например, когда sps_dmvr_enabled_flag равен 1 (т.е. когда DMVR на основе истинного бипрогнозирования активируется), может определяться то, что условие для того, активируется или нет DMVR, удовлетворяется.
[102] 2) То, следует или нет применять DMVR, может определяться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. Например, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), может определяться то, что условие для того, следует или нет применять режим объединения/режим пропуска, удовлетворяется.
[103] 3) То, следует или нет применять DMVR, может определяться на основе информации флага (например, mmvd_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения с разностью векторов движения (MMVD). Например, когда mmvd_flag равен 0 (т.е. когда MMVD-режим не используется), может определяться то, что условие для того, следует или нет применять MMVD-режим, удовлетворяется.
[104] 4) То, следует или нет применять DMVR, может определяться на основе того, используется или нет билатеральное прогнозирование (бипрогнозирование). Здесь, билатеральное прогнозирование может представлять взаимное прогнозирование, выполняемое на основе опорных кадров, которые существуют в различных направлениях на основе текущего кадра. Например, когда predFlagL0[0][0]=1 и predFlagL0[1][1]=1, может определяться то, что билатеральное прогнозирование применяется, и может определяться то, что условие для того, следует или нет выполнять билатеральное прогнозирование, удовлетворяется.
[105] 5) То, следует или нет применять DMVR, может определяться на основе того, выполняется или нет истинное бипрогнозирование, и расстояние между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу. Другими словами, может определяться то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Например, когда DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1])=0, определяется то, что истинное бипрогнозирование выполняется, и расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, чтобы определять то, что удовлетворяется условие для того, являются или нет расстояния билатеральных опорных кадров идентичными друг другу.
[106] 6) То, следует или нет применять DMVR, может определяться на основе того, больше или нет высота текущего блока порогового значения. Например, когда высота текущего блока равна или выше 8, может определяться то, что условие по размеру (высоте) текущего блока удовлетворяется.
[107] 7) То, следует или нет применять DMVR, может определяться на основе того, больше или нет размер текущего блока порогового значения. Например, когда размер текущего блока, высота*ширина равна или выше 64, может определяться то, что условие по размеру текущего блока (высота*ширина) удовлетворяется.
[108] Оборудование декодирования может определять то, следует или нет применять DMVR, согласно тому, удовлетворяются или нет условия 1)-7) вышеприведенной таблицы 1. Другими словами, когда условия 1)-7) вышеприведенной таблицы 1 удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR, и когда даже любое из условий вышеприведенной таблицы 1 не удовлетворяется, оборудование декодирования не применяет DMVR.
[109] Нижеприведенная таблица 2 показывает условие для применения BDOF во время традиционного истинного бипрогнозирования. Когда все перечисленные ниже условия удовлетворяются, BDOF может применяться.
[110] Таблица 2
- sps_bdof_enabled_flag равен 1: Передача служебных сигналов через SPS- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1: Двунаправленное прогнозирование- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0: TrueBi- MotionModelIdc[xCb][yCb] равен 0: В случае не аффинного режима- merge_subblock_flag[xCb][yCb] равен 0: субблок andand w>=8 andand h>=8- GbiIdx[xCb][yCb] равен 0: В случае если GBi-индекс составляет значение по умолчанию- cIdx равен 0: Применяется только к сигналу яркости
[111] Ссылаясь на вышеприведенную таблицу 2, 1) то, следует или нет применять BDOF, может определяться на основе информации флага (например, sps_bdof_enabled_flag), передаваемой в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Здесь, информация флага (например, sps_dmvr_enabled_flag) может представлять тор, активируется или нет BDOF на основе истинного бипрогнозирования. Например, когда sps_bdof_enabled_flag равен 1 (т.е. когда BDOF на основе истинного бипрогнозирования активируется), может определяться то, что условие для того, активируется или нет BDOF, удовлетворяется.
[112] 2) То, следует или нет применять BDOF, может определяться на основе того, используется или нет билатеральное прогнозирование. Здесь, билатеральное прогнозирование может представлять взаимное прогнозирование, выполняемое на основе опорных кадров, которые существуют в различных направлениях на основе текущего кадра. Например, когда predFlagL0] и predFlagL1 равны 1, может определяться то, что билатеральное прогнозирование применяется, и может определяться то, что условие для того, следует или нет выполнять билатеральное прогнозирование, удовлетворяется.
[113] 3) То, следует или нет применять BDOF, может определяться на основе того, выполняется или нет истинное бипрогнозирование. Другими словами, может определяться то, расположены или нет опорный L0-кадр (т.е. опорный кадр в списке L0 опорных кадров) и опорный L1-кадр (т.е. опорный кадр в списке L1 опорных кадров) во временно различных направлениях на основе текущего кадра. Например, когда DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0, определяется то, что билатеральные опорные кадры расположены в различных направлениях на основе текущего кадра, чтобы определять то, что удовлетворяется условие для того, выполняется или нет истинное vi-прогнозирование.
[114] 4) То, следует или нет применять BDOF, может определяться на основе того, используется или нет аффинный режим. Здесь, то, используется или нет аффинный режим, может определяться посредством извлечения MotionModelIdc. Например, когда извлеченный MotionModelIdc равен 0, может определяться то, что аффинный режим не используется, и в этом случае, может определяться то, что условие для того, следует или нет применять аффинный режим, удовлетворяется.
[115] 5) То, следует или нет применять BDOF, может определяться на основе информации флага (например, merge_subblock_flag), представляющей то, выполняется или нет взаимное прогнозирование в единицах субблоков. Например, когда merge_subblock_flag равен 0 (т.е. когда режим объединения не применяется в единицах субблоков), может определяться то, что условие для того, следует или нет применять режим объединения в единицах субблоков, удовлетворяется.
[116] 6) То, следует или нет применять BDOF, может определяться на основе того, существует или нет GBi. Здесь, то, существует или нет GBi, может определяться на основе информации GBi-индекса (например, GbiIdx). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), может определяться то, что условие для того, существует или нет GBi, удовлетворяется.
[117] 7) То, следует или нет применять BDOF, может определяться на основе того, представляет или нет текущий блок собой блок сигналов яркости, включающий в себя компонент сигнала яркости. Например, когда индекс (например, cIdx), указывающий то, представляет текущий блок собой или нет блок сигналов яркости (т.е. когда текущий блок представляет собой блок сигналов яркости), может определяться то, что условие для того, представляет текущий блок собой или нет блок сигналов яркости, удовлетворяется.
[118] Оборудование декодирования может определять то, следует или нет применять DMVR, согласно тому, удовлетворяются или нет условия 1)-7) вышеприведенной таблицы 2. Другими словами, когда условия 1)-7) вышеприведенной таблицы 2 удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF и когда даже любое из условий вышеприведенной таблицы 2 не удовлетворяется, оборудование декодирования не применяет BDOF.
[119] Как описано выше, некоторые условия применения DMVR и BDOF являются идентичными, и некоторые являются аналогичными или отличаются. В традиционной схеме, поскольку проверка состояния выполняется для каждой технологии, даже когда условие является идентичным, сложность для выполнения бипрогнозирования увеличивается. Следовательно, настоящее раскрытие сущности предлагает эффективное условие для применения DMVR и BDOF во время бипрогнозирования.
[120] Когда режим объединения/пропуска сравнивается с AMVP-режимом, режим объединения/пропуска имеет относительно меньшую точность, чем AMVP-режим, и как результат, детализация информации движения посредством использования способа DMVR является эффективной с точки зрения производительности. Тем не менее, BDOF-режим может применяться даже в AMVP-режиме в дополнение к режиму объединения/пропуска в отличие от DMVR, и по сути, сложность для выполнения BDOF по сравнению с производительностью может увеличиваться при применении BDOF в AMVP-режиме. Соответственно, вариант осуществления предлагает способ для применения даже BDOF в режиме объединения/пропуска аналогично в DMVR.
[121] В этом случае, в качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 3.
[122] Таблица 3
- sps_bdof_enabled_flag равен 1.- merge_flag[xCb][yCb] равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- cIdx равен 0.
[123] Ссылаясь на вышеприведенную таблицу 3, то, следует или нет применять BDOF, может определяться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. Например, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), может определяться то, что условие для того, следует или нет применять режим объединения/режим пропуска, удовлетворяется. Соответственно, BDOF также может применяться в режиме объединения/пропуска, аналогично DMVR.
[124] Другими словами, в варианте осуществления, вместе с условием, применяемым в случае режима объединения/пропуска, то, следует или нет применять BDOF, может определяться на основе условия, применяемого, когда BDOF активируется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого, когда истинное бипрогнозирование выполняется, условия, применяемого, когда аффинное прогнозирование используется, условия, применяемого, когда режим объединения на основе субблоков не применяется, условия, применяемого, когда GBi-индекс составляет значение по умолчанию, и условия, применяемого, когда текущий блок представляет собой блок сигналов яркости.
[125] Соответственно, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 3, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 3, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 3, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[126] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 3, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[127] Между тем, когда условия, перечисленные в варианте осуществления, являются идентичными условиям, описанным в вышеприведенных таблицах 1 и 2, подробная работа или смысл аналогично применяются, и как результат, подробное описание для каждого условия опускается. Дополнительно, дублированное содержимое даже в вариантах осуществления, которые описываются ниже, опускается.
[128] Оборудование кодирования/декодирования может быть сконфигурировано посредством различных аппаратных средств, и предпочтение по отношению сложности к производительности может отличаться. Следовательно, вариант осуществления предлагает способ, который может детализировать информацию движения посредством применения DMVR даже в AMVP-режиме в дополнение к режиму объединения/пропуска.
[129] В этом случае, в качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 4.
[130] Таблица 4
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1. (Удаление условий, ограниченных режимом объединения/пропуска)),- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.
[131] Ссылаясь на вышеприведенную таблицу 4, процесс определения того, следует или нет применять DMVR, может опускаться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. В связи с этим, посредством опускания условия для того, следует или нет применять режим объединения/режим пропуска, DMVR может применяться даже в AMVP-режиме в дополнение к режиму объединения/режиму пропуска.
[132] Согласно вышеприведенной таблице 4, то, следует или нет применять DMVR, может определяться на основе условия, применяемого, когда DMVR активируется, условия, применяемого, когда MMVD-режим не используется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условия, применяемого, когда высота текущего блока равна или выше 8, и условия, применяемого, когда размер (высота*ширина) текущего блока равен или выше 64.
[133] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 4, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 4, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 4, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[134] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 4, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[135] Между тем, в качестве варианта осуществления настоящего раскрытия сущности, как DMVR, так и BDOF могут применяться к режиму нормального объединения. Другими словами, DMVR и BDOF могут применяться, когда режим усовершенствованного временного прогнозирования векторов движения (ATMVP) не используется, аффинный режим не используется, и CPR не используется. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 5.
[136] Таблица 5
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.- MotionModelIdc[xCb][yCb] равен 0: ! Аффинный- merge_subblock_flag[xCb][yCb] равен 0: субблок andand w>=8 andand h>=8
[137] Ссылаясь на вышеприведенную таблицу 5, то, удовлетворяются или нет условие, применяемое, когда аффинный режим не используется (например, когда MotionModelIdc равен 0), и условие, применяемое, когда режим объединения на основе субблоков не используется (например, когда merge_subblock_flag равен 0), определяется, чтобы применять DMVR только в режиме нормального объединения.
[138] Дополнительно, в варианте осуществления, вместе с условием для того, используется или нет аффинный режим, и условием для того, используется или нет режим объединения на основе субблоков, то, следует или нет применять DMVR, может определяться на основе условия, применяемого, когда DMVR активируется, условия, применяемого, когда режим объединения/режим пропуска используется, условия, применяемого, когда MMVD-режим не используется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условия, применяемого, когда высота текущего блока равна или выше 8, и условия, применяемого, когда размер (высота*ширина) текущего блока равен или выше 64.
[139] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 5, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 5, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 5, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[140] Условие для того, следует или нет применять режим объединения на основе субблоков (например, merge_subblock_flag), из условий применения вышеприведенной таблицы 5, включает в себя дублированное условие из числа традиционных условий применения DMVR. Соответственно, в качестве варианта осуществления настоящего раскрытия сущности, условие, дублированное с условием (например, merge_subblock_flag) для того, следует или нет применять режим объединения на основе субблоков, может удаляться. В этом случае, соответствующее условие может удаляться, как предложено в нижеприведенной таблице 6.
[141] Таблица 6
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.- MotionModelIdc[xCb][yCb] равен 0: ! Аффинный- merge_subblock_flag[xCb][yCb] равен 0: субблок andand w>=8 andand h>=8
[142] Ссылаясь на вышеприведенную таблицу 6, режим объединения на основе субблоков может применяться, когда размер текущего блока равен или выше 8×8. Соответственно, поскольку условие (например, merge_subblock_flag=0) для того, следует или нет применять режим объединения на основе субблоков, включает в себя условие, связанное с размером текущего блока, условия (например, CbHeight и CbHeight*CbWidth), связанные с размером текущего блока, из условий применения традиционной DMVR могут исключаться. Например, условие для того, равна или выше либо нет высота текущего блока 8, и условие для того, равна или выше либо нет высота*ширина текущего блока 64, может опускаться, и то, следует или нет применять DMVR, может определяться посредством использования оставшихся условий, перечисленных в вышеприведенной таблице 6.
[143] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 6, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 6, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 6, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[144] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 5 или 6, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[145] В качестве варианта осуществления настоящего раскрытия сущности, чтобы увеличивать точность вектора движения при низкой сложности, когда размер блока является небольшим, технологии детализации, такие как DMVR и BDOF, могут не применяться. В традиционной схеме, технология детализации может применяться, когда текущий блок представляет собой блок, который равен или выше 8×8, и в случае DMVR технологий детализации, когда размер текущего блока является большим, детализация применяется посредством разделения текущего блока на единицы 16×16, и как результат, DMVR может не применяться к блоку, который меньше 16×16. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 7.
[146] Таблица 7
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- IntraPredMode превышает или равен 16- CbWidth превышает или равен 16.
[147] Ссылаясь на вышеприведенную таблицу 7, DMVR может не применяться к блоку, который меньше 16×16, посредством изменения условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 16, и условие, применяемое, когда ширина текущего блока (например, CbWidth) равна или выше 16. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда размер текущего блока равен или выше 16×16, DMVR может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются (т.е. когда размер текущего блока меньше 16×16), DMVR может не применяться.
[148] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 7.
[149] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 7, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 7, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 7, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[150] В качестве варианта осуществления настоящего раскрытия сущности, когда текущий блок представляет собой блок, который меньше 16×16, BDOF может не применяться в дополнение к DMVR. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 8.
[151] Таблица 8
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- IntraPredMode превышает или равен 16- CbWidth превышает или равен 16- GbiIdx[xCb][yCb] равен 0.- cIdx равен 0.
[152] Ссылаясь на вышеприведенную таблицу 8, BDOF может не применяться к блоку, который меньше 16×16, посредством изменения условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 16, и условие, применяемое, когда ширина текущего блока (например, CbWidth) равна или выше 16. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда размер текущего блока равен или выше 16×16), BDOF может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются (т.е. когда размер текущего блока меньше 16×16), BDOF может не применяться.
[153] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 8.
[154] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 8, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 8, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 8, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[155] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 7 или 8, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[156] Как описано выше, DMVR применяется, когда расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, в то время как BDOF непрерывно применяется в случае истинного бипрогнозирования, даже если расстояния между текущим кадром и билатеральными опорными кадрами отличаются друг от друга. Соответственно, настоящее раскрытие сущности предлагает способ, который может интегрально применять условие, связанное с расстоянием между билатеральными опорными кадрами в DMVR и BDOF, чтобы повышать эффективность кодирования.
[157] В качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 9.
[158] Таблица 9
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0: TrueBi и расстояния до двунаправленного опорного кадра равны друг другу- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- cIdx равен 0.
[159] Ссылаясь на вышеприведенную таблицу 9, условие, связанное с расстоянием до опорного кадра, из условий применения BDOF (например, DiffPicOrderCnt), изменяется, чтобы аналогично применять соответствующее условие к DMVR и BDOF. Например, равен или нет DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) 0, определяется, чтобы определять то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Другими словами, BDOF может применяться только тогда, когда расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу. В связи с этим, в качестве условия, при котором истинное бипрогнозирование выполняется, и расстояния между билатеральными опорными кадрами являются идентичными друг другу, добавляется, диапазон BDOF-применения ограничен, за счет этого снижая сложность декодирования.
[160] Дополнительно, в варианте осуществления, вместе с условиями (например, DiffPicOrderCnt), связанными с расстоянием до опорного кадра, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 9.
[161] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 9, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 9, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 9, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[162] В качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 10.
[163] Таблица 10
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0: TrueBi и расстояния до двунаправленного опорного кадра равны друг другу- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0: TrueBi- CbHeight превышает или равен 8- CbHeight*CbWidth превышает или равен 64
[164] Ссылаясь на вышеприведенную таблицу 10, условие, связанное с расстоянием до опорного кадра, из условий применения DMVR (например, DiffPicOrderCnt), изменяется, чтобы аналогично применять соответствующее условие к DMVR и BDOF. Например, определяется меньше или нет DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1])0, чтобы определять то, выполняется или нет истинное бипрогнозирование, при котором билатеральные опорные кадры расположены в различных направлениях на основе текущего кадра. Другими словами, DMVR может непрерывно применяться в случае истинного бипрогнозирования, даже если расстояния между текущим кадром и билатеральными опорными кадрами не являются идентичными между собой. В связи с этим, когда условие для того, выполняется или нет истинное бипрогнозирование, применяется, вектор движения, извлекаемый с учетом сложности декодирования, может использоваться без масштабирования, даже когда расстояния между билатеральными опорными кадрами отличаются.
[165] Дополнительно, в варианте осуществления, вместе с условием (например, DiffPicOrderCnt), связанным с расстоянием до опорного кадра, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 10.
[166] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 10, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 10, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 10, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[167] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 9 или 10, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[168] Между тем, в каждом опорном блоке, может возникать случай, в котором компенсация движения выполняется посредством взвешенной суммы посредством изменения света. В этом случае, поскольку явление может определяться посредством GBi или компенсации локальной освещенности (LIC), условия применения DMVR и BDOF могут определяться с учетом GBi- или LIC-условия.
[169] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять DMVR с учетом GBi- и LIC-условий. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 11.
[170] Таблица 11
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.- GbiIdx[xCb][yCb] равен 0.- LICFlag равен 0.
[171] Ссылаясь на таблицу 11, можно определять то, следует или нет применять DMVR,посредством добавления GBi-условия (например, GbiIdx) и LIC-условия (например, LICFlag). Здесь, GBi может представлять обобщенное бипрогнозирование, допускающее применение различных весовых коэффициентов к L0-прогнозированию и L1-прогнозированию, и, например, представлять обобщенное бипрогнозирование с использованием GbiIdx. GbiIdx может существовать в случае бипрогнозирования и представлять весовой индекс бипрогнозирования. Например, GbiIdx может извлекаться из соседнего блока в режиме объединения или передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования через синтаксический элемент GbiIdx (например, gbi_idx) в MVP-режиме. В качестве примера, GbiIdx может указывать весовой коэффициент w, применяемый к L1-прогнозированию, и в этом случае, весовой коэффициент (1-w) может применяться к L0-прогнозированию. В качестве другого примера, GbiIdx может указывать весовой коэффициент w, применяемый к L0-прогнозированию, и в этом случае, весовой коэффициент (1-w) может применяться к L1-прогнозированию.
[172] Согласно таблице 11, если GbiIdx равен 0 (т.е. если GbiIdx составляет значение по умолчанию), он может определяться как удовлетворяющий GBi-условию, и если LICFlag равен 0 (т.е. если LIC существует), он может определяться как удовлетворяющий LIC-условию.
[173] Дополнительно, в варианте осуществления, вместе с GBi-условием (например, GbiIdx) и LIC-условием (например, LICFlag), то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 11.
[174] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 11, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 11, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 11, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[175] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять BDOF с учетом GBi- и LIC-условий. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 12.
[176] Таблица 12
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- LICFlag равен 0.- cIdx равен 0.
[177] Согласно вышеприведенной таблице 12, то, следует или нет применять BDOF, может определяться посредством добавления LIC-условия (например, LICFlag) вместе с традиционным GBi-условием (например, GbiIdx). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), определяется то, что условие для того, существует или нет GBi, удовлетворяется, и когда LICFlag равен 0 (т.е. когда LIC существует), может определяться то, что условие для того, существует или нет LIC, удовлетворяется.
[178] Соответственно, в варианте осуществления, вместе с GBi-условием (например, GbiIdx) и LIC-условием (например, LICFlag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 12.
[179] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 12, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 12, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 12, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[180] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 11 или 12, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[181] Между тем, поскольку DMVR и BDOF извлекают информацию движения посредством процесса детализации в оборудовании декодирования, возникает проблема сложности декодирования. Соответственно, настоящее раскрытие сущности предлагает способ, который может уменьшать сложность декодирования посредством предоставления возможности определения того, следует или нет применять DMVR и BDOF, посредством использования индекса объединения. В этом случае, поскольку как DMVR, так и BDOF выполняют детализацию вектора движения в ограниченном диапазоне, преимущество детализации может уменьшаться, когда вектор движения является неточным. Соответственно, настоящее раскрытие сущности предлагает способ, который может ограниченно применять DMVR и BDOF только тогда, когда значение, указывающее индекс объединения, является небольшим с учетом эффективности детализации.
[182] Здесь, индекс объединения может представлять собой синтаксический элемент, передаваемый в служебных сигналах из оборудования кодирования в оборудование декодирования. Например, оборудование кодирования/декодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока, когда режим объединения/режим пропуска применяется к текущему блоку. В этом случае, оборудование кодирования может выбирать оптимальный возможный вариант объединения из возможных вариантов объединения, включенных в список возможных вариантов объединения, на основе функции затрат на искажение в зависимости от скорости передачи (RD), и передавать в служебных сигналах информацию индекса объединения, указывающую выбранный возможный вариант объединения, в оборудование декодирования. Оборудование декодирования может выбирать возможный вариант объединения, применяемый к текущему блоку, на основе списка возможных вариантов объединения и информации индекса объединения.
[183] В качестве варианта осуществления настоящего раскрытия сущности, способ для определения того, следует или нет применять DMVR посредством использования индекса объединения, может включать в себя условия, представленные в нижеприведенной таблице 13.
[184] Таблица 13
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- merge_idx[xCb][yCb]<2.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.
[185] Ссылаясь на вышеприведенную таблицу 13, то, следует или нет применять DMVR, может определяться посредством добавления условия по индексу объединения (например, merge_idx). Например, когда индекс объединения (например, merge_idx) меньше 2, может определяться то, что условие по индексу объединения удовлетворяется. Здесь, значение (пороговое значение) индекса объединения может задаваться равным 2, но это представляет собой только один пример, и соответствующее значение может изменяться согласно эффективности кодирования.
[186] Соответственно, в варианте осуществления, вместе с условием по индексу объединения (например, merge_idx), то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 13.
[187] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 13, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 13, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 13, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[188] В качестве варианта осуществления настоящего раскрытия сущности, способ для определения того, следует или нет применять BDOF посредством использования индекса объединения, может включать в себя условия, представленные в нижеприведенной таблице 14.
[189] Таблица 14
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.-! (merge_flag[xCb][yCb] равен 1 andand merge_idx[xCb][yCb]>=2)- cIdx равен 0.
[190] Ссылаясь на вышеприведенную таблицу 14, то, следует или нет применять BDOF, может определяться посредством добавления условия для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условия по индексу объединения (например, merge_idx). Например, когда merge_flag не равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), и merge_idex не равен или превышает 2, только если значение индекса объединения является небольшим, может определяться то, что условие для ограниченного применения BDOF удовлетворяется. Другими словами, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), и merge_idex меньше 2, только если значение индекса объединения является небольшим, может определяться то, что условие по индексу объединения удовлетворяется, и BDOF может применяться. Здесь, значение (пороговое значение) индекса объединения может задаваться равным 2, но это представляет собой только один пример, и соответствующее значение может изменяться согласно эффективности кодирования.
[191] Другими словами, в варианте осуществления, вместе с условием для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условием по индексу объединения (например, merge_idx), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 14.
[192] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 14, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 14, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 14, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[193] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 13 или 14, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[194] Между тем, в режиме объединения/пропуска, информация движения может детализироваться через MMVD, и в этом случае, поскольку сложность декодирования увеличивается, DMVR не выполняется, когда применяется MMVD. Тем не менее, когда DMVR применяется без учета MMVD, DMVR может применяться без MMVD-условия с учетом повышения производительности. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 15.
[195] Таблица 15
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.
[196] Ссылаясь на вышеприведенную таблицу 15, условие (например, mmvd_flag) для того, следует или нет применять MMVD-режим, из условий применения традиционной DMVR, может исключаться. Другими словами, процесс определения того, равен или нет mmvd_flag 0 (т.е. не используется или используется MMVD-режим), может опускаться, и то, следует или нет применять DMVR, может определяться на основе условий, перечисленных в вышеприведенной таблице 15.
[197] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 15, (за исключением условия (например, mmvd_flag) для того, следует или нет применять MMVD-режим), и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 15, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 15, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[198] Дополнительно, в отличие от варианта осуществления таблицы 15, описанной выше, когда информация движения детализируется через MMVD в режиме объединения/пропуска, то, следует или нет выполнять BDOF, может определяться с учетом сложности декодирования. Соответственно, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять BDOF, с учетом MMVD-условия. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 16.
[199] Таблица 16
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- mmvd_flag[xCb][yCb] равен 0- cIdx равен 0.
[200] Ссылаясь на вышеприведенную таблицу 16, BDOF может не применяться, когда информация движения детализируется через MMVD посредством добавления условия (например, mmvd_flag) для того, следует или нет применять MMVD-режим. Например, когда mmvd_flag равен 0 (т.е. когда MMVD-режим не используется), может определяться то, что условие для того, следует или нет применять MMVD-режим, удовлетворяется.
[201] Соответственно, в варианте осуществления, вместе с условием (например, mmvd_flag) для того, следует или нет применять MMVD-режим, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 16.
[202] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 16, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 16, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 16, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[203] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 15 или 16, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[204] Между тем, в случае AMVP, технология адаптивного разрешения векторов движения (AMVR) может применяться. В этом случае, когда разрешение вектора движения является высоким, т.е. когда целочисленно-точечное округление или 4 целочисленно-точечных округления предоставляются, может не быть уместным применять технологию в случае BDOF выполнения детализации в ограниченной зоне. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять выполнение BDOF согласно AMVR-условию. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 17.
[205] Таблица 17
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- amvr_flag!=0- GbiIdx[xCb][yCb] равен 0.- cIdx равен 0.
[206] Ссылаясь на вышеприведенную таблицу 17, то, следует или нет применять BDOF, может определяться посредством добавления AMVR-условия (например, amvr_flag). Здесь, amvr_flag может представлять собой информацию, представляющую решение для разности векторов движения (MVD). Например, в случае если amvr_flag равен 0, случай может указывать то, что разрешение MVD извлекается в единицах выборки 1/4 (четверть выборки сигнала яркости), и в случае, если amvr_flag не равен 0, случай может указывать то, что разрешение MVD извлекается в единицах целочисленной выборки сигнала яркости или четырех выборок сигнала яркости. Альтернативно, может определяться обратный случай по отношению к означенному. Согласно варианту осуществления, как представлено в вышеприведенной таблице 20, в случае если amvr_flag не равен 0, такое условие, что BDOF применяется, может задаваться. Другими словами, в случае если amvr_flag равен 0, BDOF может быть ограничен таким образом, что он не применяется.
[207] Соответственно, в варианте осуществления, вместе с AMVR-условием (например, amvr_flag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 17.
[208] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 17, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 17, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 17, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[209] Между тем, DMVR и BDOF могут передаваться в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Нижеприведенная таблица 18 показывает один пример синтаксического элемента, указывающего то, активируется или нет DMVR, передаваемая в служебных сигналах через SPS-cинтаксис, и то, активируется или нет BDOF.
[210] Таблица 18
seq_parameter_set_rbsp(){
Дескриптор
......
......
sps_dmvr_enabled_flag
u(1)
sps_bdof_enabled_flag
u(1)
......
......
}
[211] Ссылаясь на вышеприведенную таблицу 18, sps_dmvr_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе, и то, активируется или нет DMVR на основе истинного бипрогнозирования, может представляться на основе синтаксического элемента. Например, в случае если sps_dmvr_enabled_flag равен 1, случай может указывать то, что DMVR на основе истинного бипрогнозирования активируется, и в случае, если sps_dmvr_enabled_flag равен 0, случай может указывать то, что DMVR на основе истинного бипрогнозирования не активируется.
[212] Дополнительно, sps_bdof_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе, и то, активируется или нет BDOF на основе истинного бипрогнозирования, может представляться на основе синтаксического элемента. Например, в случае если sps_bdof_enabled_flag равен 1, случай может указывать то, что BDOF на основе истинного бипрогнозирования активируется, и в случае, если sps_bdof_enabled_flag равен 0, случай может указывать то, что BDOF на основе истинного бипрогнозирования не активируется.
[213] Как показано в таблице 18, условия применения DMVR и BDOF могут проверяться посредством использования синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR, и синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF.
[214] Фиг. 6 иллюстрирует один пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[215] Как показано в таблице 18, способ по фиг. 6 может применяться при использовании синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR, и синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF.
[216] Ссылаясь на фиг. 6, оборудование декодирования может извлекать информацию движения (например, вектор движения, индекс опорного кадра и т.д.) для текущего блока (S600).
[217] Оборудование декодирования может проверять применение DMVR (S610). В этом случае, условие применения DMVR может проверяться на основе синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR. Например, когда DMVR активируется (например, когда sps_dmvr_enabled_flag равен 1), условие применения DMVR может проверяться.
[218] Оборудование декодирования может определять то, следует или нет применять DMVR-процесс согласно тому, удовлетворяется или нет условие применения DMVR (S620).
[219] Когда все условия применения DMVR удовлетворяются, оборудование декодирования может извлекать детализированную информацию движения посредством применения DMVR-процесса (S630). Когда, по меньшей мере, одно из условий применения DMVR не удовлетворяется, оборудование декодирования может не применять DMVR-процесс.
[220] Оборудование декодирования может извлекать прогнозные выборки текущего блока на основе извлекаемой информации движения (не детализированной), когда детализированная информация движения или DMVR, извлекаемая при применении DMVR, не применяется (S640).
[221] Помимо этого, оборудование декодирования может проверять условие применения BDOF (S650). В этом случае, условие применения BDOF DMVR может проверяться на основе синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF. Например, когда DMVR активируется (например, когда sps_bdof_enabled_flag равен 1), условие применения DMVR может проверяться.
[222] Когда все условия применения BDOF удовлетворяются, оборудование декодирования может детализировать прогнозные выборки посредством применения BDOF-процесса (S670). Когда, по меньшей мере, одно из условий применения BDOF не удовлетворяется, оборудование декодирования может не применять BDOF-процесс.
[223] Оборудование декодирования может извлекать остаточные выборки для текущего блока (S680) и извлекать восстановленные выборки на основе детализированных прогнозных выборок, извлекаемых при применении остаточных выборок и BDOF или прогнозных выборок (не детализированных), извлекаемые при неприменении BDOF (S690).
[224] Настоящее раскрытие сущности предлагает различные варианты осуществления, которые могут повышать эффективность кодирования и уменьшать сложность посредством гармонизации взаимных условий применения DMVR и BDOF во время применения DMVR и BDOF, как описано выше. При проверке условий применения DMVR и BDOF согласно вариантам осуществления настоящего раскрытия сущности и применения условий применения в процесс декодирования, соответствующие условия могут отдельно проверяться и применяться, но условия применения могут проверяться сразу, чтобы повышать эффективность кодирования. Другими словами, настоящее раскрытие сущности предлагает способ, который может интегрировать и проверять условия применения DMVR и BDOF сразу.
[225] В качестве варианта осуществления настоящего раскрытия сущности, информация (например), указывающая то, следует или нет применять детализацию в оборудовании декодирования в синтаксисе наборов параметров последовательности (SPS), передается в служебных сигналах, чтобы выполнять процесс проверки условия применения DMVR/BDOF. Затем, таблица 19 показывает один пример синтаксического элемента (например, sps_refinement_enabled_flag), представляющего то, следует или нет применять детализацию в оборудовании декодирования, передаваемого в служебных сигналах через SPS-cинтаксис.
[226] Таблица 19
seq_parameter_set_rbsp(){
Дескриптор
......
......
sps_refinement_enabled_flag
u(1)
if(sps_refinement_enabled_flag){
sps_dmvr_enabled_flag
u(1)
sps_bdof_enabled_flag
u(1)
}
......
......
}
[227] Ссылаясь на вышеприведенную таблицу 19, sps_refinement_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе и может представлять то, является или нет детализация применимой в оборудовании декодирования, на основе синтаксического элемента. Например, когда sps_refinement_enabled_flag существует (т.е. когда sps_refinement_enabled_flag представляет собой "истина"), может определяться то, что детализация является применимой в оборудовании декодирования. В этом случае, оборудование декодирования получает синтаксический элемент sps_dmvr_enabled_flag, представляющий то, активируется или нет DMVR, и синтаксический элемент sps_bdof_enabled_flag, представляющий то, активируется или нет BDOF, с тем чтобы определять условия применения DMVR и BDOF.
[228] Фиг. 7 и 8 иллюстрируют другой пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[229] Способ по фиг. 7 и способ по фиг. 8 могут применяться, когда используется синтаксический элемент (например, sps_refinement_enabled_flag), представляющий то, является или нет детализация применимой в оборудовании декодирования, как показано в вышеприведенной таблице 19. Дополнительно, описание дублированного содержимого по фиг. 7 и 8 с фиг. 6, описанным выше, опускается.
[230] Ссылаясь на фиг. 7, можно видеть, что условия применения проверяются сразу на предыдущей стадии без проверки соответствующих условий применения DMVR и BDOF посредством сравнения с вышеприведенным процессом по фиг. 6. В качестве варианта осуществления, на этапе S710 по фиг. 7, оборудование декодирования может проверять условие применения детализации. В этом случае, условие применения детализации может проверяться на основе sps_refinement_enabled_flag, показанного в вышеприведенной таблице 19. Например, оборудование декодирования может получать синтаксический элемент sps_dmvr_enabled_flag, представляющий то, активируется или нет DMVR, и синтаксический элемент sps_bdof_enabled_flag, представляющий то, активируется или нет BDOF тогда, когда sps_refinement_enabled_flag равен 1, и проверять условия применения DMVR и BDOF на основе полученных синтаксических элементов.
[231] Дополнительно, ссылаясь на фиг. 8, условия применения проверяются сразу на предыдущей стадии без проверки соответствующих условий применения DMVR и BDOF посредством сравнения с вышеприведенным процессом по фиг. 6, и простой процесс проверки (условие применения BDOF) может выполняться относительно другого условия. В качестве варианта осуществления, на этапе S810 по фиг. 8, оборудование декодирования может проверять условие применения детализации. После этого, на этапе S850 по фиг. 8, оборудование декодирования дополнительно может просто проверять условие применения BDOF, имеющего условие, отличающееся от условия применения детализации.
[232] Между тем, когда высота или размер (высота*ширина) текущего блока меньше конкретной длины или конкретного размера, отношение вычисления умножения/суммирования для компенсации движения увеличивается. Соответственно, в варианте осуществления настоящего раскрытия сущности, применение BDOF в блок, имеющий небольшую высоту или небольшой размер, может быть ограничено в качестве в условии применения DMVR, чтобы уменьшать наихудший случай. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 20.
[233] Таблица 20
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- CbHeight превышает или равен 8: В случае если длина (или размер) блока больше порогового значения (здесь, пороговое значение может примерно иллюстрироваться различными способами),- CbHeight*CbWidth превышает или равен 64: В случае если размер блока (или абсолютная величина) больше порогового значения (здесь, пороговое значение может примерно иллюстрироваться различными способами),- cIdx равен 0.
[234] Ссылаясь на вышеприведенную таблицу 20, BDOF может не применяться к блоку, который меньше конкретного размера, посредством добавления условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 8, и условие, применяемое, когда размер текущего блока (например, CbHeight*CbWidth) равен или выше 64. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда высота текущего блока равна или выше 8, и высота*ширина текущего блока равна или выше 64), BDOF может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются, BDOF может не применяться.
[235] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbHeight*CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 20.
[236] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 20, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 20, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 20, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[237] Между тем, когда MMVD применяется к текущему блоку, информация движения может извлекаться на основе информации (например, MMVD-индекса) относительно MMVD. Здесь, информация относительно MMVD может включать в себя индекс базового MV, индекс расстояния, индекс направления и т.п. В частности, индекс расстояния (более конкретно, mmvd_distance_index[xCb][yCb])) может использоваться для представления расстояния от базового MV, и, например, индексы 0-7 расстояния могут представляться как {1/4, 1/2, 1, 2, 4, 8, 16, 32}, соответственно. При определении детализации информации движения в DMVR и BDOF, то, выполняется или нет детализация с учетом смежного пиксела (смежной выборки), и в этом случае, когда расстояние между смежным пикселом и базовым MV является большим, значение индекса расстояния также увеличивается. В таком случае, затруднительно то, что учет смежного пиксела помогает в повышении производительности DMVR и BDOF. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять то, следует или нет применять DMVR и BDOF, согласно индексу расстояния (более конкретно, значению mmvd_distance_index[xCb][yCb]).
[238] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом индекса расстояния, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 21.
[239] Таблица 21
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- mmvd_flag[xCb][yCb] равен 1 и mmvd_distance_index[xCb][yCb])>4.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.
[240] Ссылаясь на вышеприведенную таблицу 21, условие (например, mmvd_flag), связанное с MMVD, из условий применения DMVR, изменяется, чтобы ограниченно применять DMVR в MMVD-режиме. Например, когда mmvd_flag равен 1, и mmvd_distance_index больше 4, может определяться то, что условие по индексу расстояния MMVD удовлетворяется. Соответственно, когда MMVD-режим применяется, то, следует или нет применять DMVR, может определяться согласно индексу расстояния (более конкретно, значению mmvd_distance_index[xCb][yCb]).
[241] Здесь, значение (пороговое значение) mmvd_distance_index может задаваться равным 4, но это представляет собой только один пример, и соответствующее значение может изменяться на различные значения согласно производительности и эффективности кодирования.
[242] Соответственно, в варианте осуществления, вместе с условием (например, mmvd_flag) для того, следует или нет применять MMVD, и условием по индексу расстояния (например, mmvd_distance_index) mMVD, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 21.
[243] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 21, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 21, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 21, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[244] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом индекса расстояния, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 22.
[245] Таблица 22
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.-! merge_flag || (merge_flag andand mmvd_flag[xCb][yCb] равен 1 и mmvd_distance_index[xCb][yCb])>4)- GbiIdx[xCb][yCb] равен 0.- cIdx равен 0.
[246] Ссылаясь на вышеприведенную таблицу 22, BDOF может ограниченно применяться в MMVD-режиме посредством добавления условия для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условий (например, mmvd_flag и mmvd_distance_index), связанных с MMVD. Например, когда merge_flag не существует (т.е. когда merge_flag не равен 1), или когда merge_flag равен 1, mmvd_flag равен 1, и mmvd_distance_index больше 4, может определяться то, что условие ограниченного применения BDOF в MMVD-режиме удовлетворяется. Соответственно, когда MMVD-режим применяется, то, следует или нет применять BDOF, может определяться согласно индексу расстояния (например, значению mmvd_distance_index[xCb][yCb]).
[247] Здесь, значение (пороговое значение) mmvd_distance_index может задаваться равным 4, но это представляет собой только один пример, и соответствующее значение может изменяться на различные значения согласно производительности и эффективности кодирования.
[248] Соответственно, в варианте осуществления, вместе с условием для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условием, связанным с MMVD (например, mmvd_flag, mmvd_distance_index), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 22.
[249] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 22, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 22, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 22, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[250] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 21 или 22, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[251] Между тем, режим комбинированного внутренне-взаимного прогнозирования (CIIP) для одновременного выполнения внутреннего прогнозирования и взаимного прогнозирования может применяться к текущему блоку, как описано выше. В этом случае, блок прогнозирования (взаимный блок), в котором выполняется взаимное прогнозирование, комбинируется со способом внутреннего прогнозирования, чтобы в итоге формировать прогнозные выборочные значения, за счет этого повышая точность прогнозирования. Тем не менее, поскольку DMVR и BDOF представляют собой технологии детализации взаимного блока, применение CIIP-режима может не требоваться с точки зрения производительности по сравнению со сложностью. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять то, следует или нет применять DMVR и BDOF, с учетом CIIP.
[252] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом CIIP, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 23.
[253] Таблица 23
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.- ciip_flag равен 0: Таким образом, когда CIIP не применяется, DMVR может применяться.
[254] Ссылаясь на вышеприведенную таблицу 23, DMVR может ограниченно применяться согласно тому, следует или нет применять CIIP, посредством добавления условия для того, следует или не применять CIIP-режим (например, ciip_flag). Например, когда ciip_flag равен 0 (т.е. когда CIIP-режим не применяется), DMVR может применяться посредством определения того, что условие для того, следует или не применять CIIP-режим, удовлетворяется.
[255] Соответственно, в варианте осуществления, вместе с условием (например, ciip_flag) для того, следует или нет применять CIIP-режим, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 23.
[256] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 23, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 23, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 23, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[257] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом CIIP, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 24.
[258] Таблица 24
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- ciip_flag равен 0: Таким образом, когда CIIP не применяется, BDOF может применяться.- cIdx равен 0.
[259] Ссылаясь на вышеприведенную таблицу 24, BDOF может ограниченно применяться согласно тому, следует или нет применять CIIP, посредством добавления условия для того, следует или не применять CIIP-режим (например, ciip_flag). Например, когда ciip_flag равен 0 (т.е. когда CIIP-режим не применяется), BDOF может применяться посредством определения того, что условие для того, следует или не применять CIIP-режим, удовлетворяется.
[260] Соответственно, в варианте осуществления, вместе с условием (например, ciip_flag) для того, следует или нет применять CIIP-режим, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 24.
[261] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 24, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 24, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 24, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[262] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 23 или 24, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[263] Способы, перечисленные в таблицах 3 - 24 согласно варианту осуществления настоящего раскрытия сущности, описанному выше, могут применяться в комбинации. Другими словами, то, следует или не применять DMVR и BDOF, может определяться посредством проверки условия применения детализации, и условия, показанные в нижеприведенной таблице 25, могут применяться.
[264] Таблица 25
DMVR
- sps_dmvr_enabled_flag задается равным 1.- merge_flag[xCb][yCb] равен 1.- mmvd_flag[xCb][yCb] равен 0.- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- CbHeight превышает или равен 8.- CbHeight*CbWidth превышает или равен 64.
BDOF
- sps_bdof_enabled_flag равен 1.- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.- cIdx равен 0.
DMVR+BDOF
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.- mmvd_flag[xCb][yCb] равен 0.- MotionModelIdc[xCb][yCb] равен 0.- merge_subblock_flag[xCb][yCb] равен 0.- GbiIdx[xCb][yCb] равен 0.
[265] Ссылаясь на вышеприведенную таблицу 25, могут использоваться условие при билатеральном прогнозировании, когда DMVR или BDOF применяются, условие, применяемое в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условие, применяемое, когда MMVD-режим не используется, условие, применяемое, когда аффинное прогнозирование не выполняется, условие, применяемое, когда режим объединения на основе субблоков применяется, и условие, применяемое, когда GBi-индекс составляет значение по умолчанию. Другими словами, то, следует или не применять DMVR или BDOF, может определяться согласно тому, удовлетворяются или нет условия.
[266] Дополнительно, условие для определения того, удовлетворяются или нет режим объединения для DMVR, или для определения того, представляет или нет текущий блок собой блок сигналов яркости для BDOF, может добавляться.
[267] Условия применения, перечисленные в вышеприведенной таблице 25, представляют собой примеры, и очевидно, что различные условия, перечисленные в вышеуказанных вариантах осуществления (в вариантах осуществления в вышеприведенных таблицах 3-24), могут использоваться в комбинации.
[268] Между тем, в DMVR, SAD-функция приспосабливается в качестве функции затрат вместо функции SAD с удаленным средним (MRSAD) с учетом сложности декодирования. Тем не менее, когда GBi-индекс не составляет значение по умолчанию (например, когда GbiIdx не равен 0), два опорных блока могут иметь различные весовые коэффициенты, и как результат, DMVR с использованием SAD может не быть предпочтительной. Соответственно, условие DMVR может быть фиксированным с учетом GBi-индекса. Согласно экспериментальному результату, изменение RD-скорости на 0,00% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.
[269] В случае стандарта универсального кодирования видео (VVC), DMVR-процесс может выполняться, когда удовлетворяются все условия, перечисленные в нижеприведенной таблице 26.
[270] Таблица 26
- sps_dmvr_enabled_flag равен 1- merge_flag[xCb][yCb] равен 1- и predFlagL0[0][0] и predFlagL1[0][0] равны 1- mmvd_flag[xCb][yCb] равен 0DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)- cbHeight превышает или равен 8- cbHeight*cbWidth превышает или равен 64
[271] В текущей DMVR в блоке, который не совпадает, можно выполнять поиск посредством сравнения с SAD опорных блоков, которые должны взвешиваться и усредняться в дальнейшем. В настоящем раскрытии сущности, поскольку два опорных блока могут иметь различные весовые коэффициенты, условие DMVR может определяться с учетом такого случая. Согласно варианту осуществления настоящего раскрытия сущности, DMVR может не выполняться для блока, в котором GBi-индекс не составляет значение по умолчанию. В этом случае, условие применения DMVR может быть показано в нижеприведенной таблице 27.
[272] Таблица 27
- sps_dmvr_enabled_flag равен 1- merge_flag[xCb][yCb] равен 1- и predFlagL0[0][0] и predFlagL1[0][0] равны 1- mmvd_flag[xCb][yCb] равен 0- GbiIdx[xCb][yCb] равен 0.- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)- cbHeight превышает или равен 8- cbHeight*cbWidth превышает или равен 64
[273] Как показано в вышеприведенной таблице 27, когда значение GBi-индекса (например, GbiIdx) равно 0, условие выполнения DMVR может добавляться. Другими словами, когда значение GBi-индекса (например, GbiIdx) не равно 0, различные весовые коэффициенты применяются к двум опорным блокам (т.е. к опорному блоку, на который ссылаются для L0-прогнозирования, и к опорному блоку, на который ссылаются для L1-прогнозирования), и как результат, в этом случае, DMVR может быть ограничена таким образом, что она не выполняется.
[274] Между тем, BDOF выполняется, когда текущий блок (т.е. текущая единица кодирования; текущая CU), удовлетворяет условию истинного бипрогнозирования. Когда считается, что уравнение оптического потока проектируется с возможностью прогнозировать движение объекта, который перемещается с предварительно определенной скоростью (т.е. импульсе), текущее условие истинного бипрогнозирования не представляет собой оптимальное условие для применения BDOF. Соответственно, условие BDOF может быть фиксированным с учетом расстояния опорного кадра. Согласно экспериментальному результату, изменение RD-скорости на 0,01% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.
[275] Фиг. 9 является схемой, проиллюстрированной для описания принципа BDOF.
[276] Как описано выше, BDOF проектируется с возможностью повышать производительность компенсации движения посредством использования понятия оптического потока. Согласно BDOF, как проиллюстрировано на фиг. 9, можно предполагать, что объект перемещается с предварительно определенной скоростью (постоянное движение), и в то время когда объект перемещается, яркость каждого пиксела не изменяется. В случае предположения, уравнение оптического потока может выражаться как нижеприведенное уравнение 1.
[277] уравнение 1
δ(i, j)=A-B
=I(x+δx, y+δy, t+δt) - I(x-δx, y-δy, t-δt)
[278] Как описано выше, когда текущая CU удовлетворяет условию истинного бипрогнозирования, BDOF выполняется. Тем не менее, условие истинного бипрогнозирования не означает случай, в котором объект перемещается с предварительно определенной скоростью. Соответственно, настоящее раскрытие сущности предлагает способ, который может применять BDOF, когда объект имеет предварительно определенное движение, и может повышать производительность компенсации движения.
[279] Согласно варианту осуществления настоящего раскрытия сущности, в вышеприведенном уравнении 1, в качестве δt, BDOF может применяться, когда расстояние от опорного L0-кадра (ссылка 0 по фиг. 9) и расстояние от опорного L1-кадра (ссылка 1 по фиг. 9) на основе текущего кадра являются идентичными друг другу. В этом случае, условие применения BDOF может изменяться, как показано в нижеприведенной таблице 28.
[280] Таблица 28
Переменная currPic указывает текущий кадр, и переменная bdofFlag извлекается следующим образом:- Если все следующие условия представляют собой "истина", bdofFlag задается равным "истина".--- sps_bdof_enabled_flag равен 1.--- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)--- MotionModelIdc[xCb][yCb] равен 0.--- merge_subblock_flag[xCb][yCb] равен 0.--- GbiIdx[xCb][yCb] равен 0.--- cIdx равен 0.- В противном случае, bdofFlag задается равным "ложь".
[281] Ссылаясь на вышеприведенную таблицу 28, условие, связанное с расстоянием до опорного кадра, из условий применения BDOF (например, DiffPicOrderCnt), изменяется, чтобы применять BDOF только тогда, когда объект имеет предварительно определенную скорость движения. Например, то, являются или нет DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) и DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic) идентичными друг другу, определяется, чтобы определять то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Другими словами, BDOF может применяться только тогда, когда расстояние от опорного L0-кадра и расстояние от опорного L1-кадра на основе текущего кадра являются идентичными друг другу. В связи с этим, условие, в котором расстояния между билатеральными опорными кадрами являются идентичными на основе текущего кадра, используется для того, чтобы определять то, выполняется или нет истинное бипрогнозирование, и объект, который перемещается в предварительно определенную скорость, включается. BDOF применяется к блоку, удовлетворяющему условию, чтобы получать более усовершенствованный результат детализации информации движения.
[282] Дополнительно, в варианте осуществления, вместе с условиями (например, DiffPicOrderCnt), связанными с расстоянием до опорного кадра, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 28.
[283] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 28, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 28, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 28, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[284] Между тем, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять BDOF согласно размеру блока. Нижеприведенная таблица 29 показывает случай, когда предел по размеру блока согласно варианту осуществления настоящего раскрытия сущности включается в качестве условия применения.
[285] Таблица 29
Переменная currPic указывает текущий кадр, и переменная bdofFlag извлекается следующим образом:- Если все следующие условия представляют собой "истина", bdofFlag задается равным "истина".--- sps_bdof_enabled_flag равен 1.--- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.--- MotionModelIdc[xCb][yCb] равен 0.--- merge_subblock_flag[xCb][yCb] равен 0.--- GbiIdx[xCb][yCb] равен 0.--- cIdx равен 0.--- cbHeight превышает или равен 8--- cbHeight*cbWidth превышает или равен 64- В противном случае, bdofFlag задается равным "ложь".
[286] Ссылаясь на вышеприведенную таблицу 29, при применении BDOF, когда высота текущего блока (например, CbHeight) равна или выше 8, случай, в котором размер (например, CbHeight*CbWidth) текущего блока равен или выше 64, может добавляться в качестве условия.
[287] Соответственно, в варианте осуществления, вместе с условием для того, равна или выше либо нет высота текущего блока 8, и условием для того, равна или выше либо нет высота*ширина текущего блока 64, то, следует или нет применять BDOF, может определяться посредством использования оставшихся условий, перечисленных в вышеприведенной таблице 29.
[288] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 29, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 29, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 29, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[289] DMVR-процесс, описанный в настоящем раскрытии сущности, может реализовываться согласно спецификации, показанной в нижеприведенной таблице 30. Нижеприведенная таблица 30 показывает один пример процесса детализации векторов движения на основе SAD в качестве варианта осуществления настоящего раскрытия сущности.
[290] Таблица 30
<i>8.5.3.1. Общие сведения</i>Вводы в этот процесс представляют собой следующее:- местоположение (xSb, ySb) сигнала яркости, указывающее левую верхнюю выборку текущего субблока кодирования относительно левой верхней выборки сигнала яркости текущего кадра,- переменная sbWidth, указывающая ширину текущего субблока кодирования в выборках сигнала яркости,- переменная sbHeight, указывающая высоту текущего субблока кодирования в выборках сигнала яркости,- векторы mvL0 и mvL1 движения сигнала яркости с дробновыборочной точностью в 1/16,- выбранные массивы refPicL0L и refPicL1L выборок опорных кадров сигналов яркости. Выводы этого процесса представляют собой:- дельта-векторы dMvL0 и dMvL1 движения сигнала яркости. Переменная subPelFlag задается равной 0. и переменные srRange, offsetH0, offsetH1, offsetV0 и offsetV1 задаются равными 2.Оба компонента дельта-векторов dMvL0 и dMvL1 движения сигнала яркости задаются равными нулю и модифицируются следующим образом:Для каждого X, равного 0 или 1, массив predSamplesLXL выборочных значений сигнала яркости прогнозирования в (sbWidth+2*srRange)x (sbHeight+2*srRange) извлекается посредством активации дробного примерного процесса билинейной интерполяции, указываемого в 8.5.3.2.1, с местоположением (xSb, ySb) сигнала яркости, шириной блока прогнозирования, равной (sbWidth+2*srRange), высотой блока прогнозирования, равной (sbHeight+2*srRange), массивом refPicLXL выборок опорных кадров, вектором mvLX движения и диапазоном srRange поиска детализации в качестве вводов.Список sadList[i] с i=0...8 извлекается посредством активации процесса вычисления суммы абсолютных разностей, указываемого в 8.5.3.3, с sbWidth, sbHeight, offsetH0, offsetH1, offsetV0, offsetV1, predSamplesL0L и predSamplesL1L в качестве вводов.Когда sadList[4] превышает или равен 4*(sbHeight>>1)*sbWidth, применимо следующее:Переменная bestIdx извлекается посредством активации процесса выбора записей массива, указываемого в разделе 8.5.3.4, со списком sadList[i] с i=0...8 в качестве ввода.Если bestIdx равен 4, subPelFlag задается равным 1.Иначе, применимо следующее: dX=bestIdx% 3-1 (8 436)- dY=bestIdx/3-l (8 437)- dMvL0[0]+=16*dX (8 438)- dMvL0[1]+=16*dY (8 439)- offsetH0+=dX (8 440)- offsetV0+=dY (8 441)- offsetH1 -=dX (8 442)- offsetV1 -=dY (8 443)Список sadList[i] с i=0...8 модифицируется посредством активации процесса вычисления суммы абсолютных разностей, указываемого в 8.5.3.3, с sbWidth, sbHeight, offsetH0, offsetH1, offsetV0, offsetV1, predSamplesL0L и predSamplesL1L в качестве вводов.[291] Переменная bestIdx модифицируется посредством активации процесса выбора записей массива, указываемого в разделе 8.5.3.4, со списком sadList[i] с i=0... 8 в качестве ввода.Если bestIdx равен 4, subPelFlag задается равным 1Иначе (bestIdx не равно 4), применимо следующее:- dMvL0[0]+=16*(bestIdx% 3-1) (8 444)- dMvL0[1]+=16*(bestIdx/3-1) (8 445)Когда subPelFlag равен 1, параметрический процесс детализации векторов движения, указываемый в разделе 8.5.3.5, активируется, со списком sadList[i] с i=0...8 и дельта-вектор dMvL0 движения в качестве вводов и модифицированным dMvL0 в качестве вывода.Дельта-вектор dMvL1 движения извлекается следующим образом:- dMvL1[0]=-dMvL0[0] (8 446)- dMvL1[1]=-dMvL0[1] (8 447)
[292] Фиг. 10 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ кодирования, который может осуществляться посредством оборудования кодирования согласно варианту осуществления этого раскрытия сущности.
[293] Способ, раскрытый на фиг. 10, может осуществляться посредством оборудования 200 кодирования, раскрытого на фиг. 2. В частности, этапы S1000-S1010 по фиг. 10 могут выполняться посредством модуля 220 прогнозирования и модуля 221 взаимного прогнозирования, раскрытых на фиг. 2, и этап S1020 по фиг. 10 может выполняться посредством остаточного процессора 230, раскрытого на фиг. 2, и этап S1030 по фиг. 10 может выполняться посредством энтропийного кодера 240, раскрытого на фиг. 2. Дополнительно, способ, раскрытый на фиг. 10, может включать в себя вышеописанные варианты осуществления в этом раскрытии сущности. Соответственно, подробное пояснение содержимого, дублированного относительно вышеописанных вариантов осуществления на фиг. 10, опускается или упрощается.
[294] Ссылаясь на фиг. 10, оборудование кодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения DMVR на основе L0-вектора движения и L1-вектора движения текущего блока (S1000).
[295] В качестве варианта осуществления, когда взаимное прогнозирование выполняется для текущего блока, оборудование кодирования может извлекать информацию движения (вектор движения, индекс опорного кадра и т.д.) текущего блока. Например, оборудование кодирования может выполнять поиск блоков, аналогичных текущему блоку, в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и может извлекать опорный блок, имеющий разность относительно текущего блока, которая является минимальной либо равной или меньшей предварительно определенного уровня. На основе этого, оборудование кодирования может извлекать индекс опорного кадра, указывающий опорный кадр, в котором расположен опорный блок, и может извлекать вектор движения на основе разности в местоположении между опорным блоком и текущим блоком.
[296] Дополнительно, оборудование кодирования может определять режим взаимного прогнозирования, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование кодирования может сравнивать RD-затраты для различных режимов прогнозирования друг с другом и может определять оптимальный режим прогнозирования для текущего блока.
[297] Например, оборудование кодирования может определять то, следует или нет применять режим объединения в качестве оптимального режима прогнозирования для текущего блока. В случае применения режима объединения к текущему блоку, оборудование кодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока и может формировать информацию индекса объединения. В частности, оборудование кодирования может извлекать опорный блок, имеющий разность относительно текущего блока, которая является минимальной либо равной или меньшей предварительно определенного уровня, из опорных блоков (т.е. соседних блоков), указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, связанный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в оборудование декодирования. Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения.
[298] Здесь, информация движения может включать в себя такую информацию, как вектор движения, индекс опорного кадра и т.п. и может включать в себя L0-информацию движения и/или L1-информацию движения в зависимости от типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.п.). Когда бипрогнозирование применяется к текущему блоку, информация движения может включать в себя вектор движения (L0-вектор движения) в L0-направлении и вектор движения (L1-вектор движения) в L1-направлении. Дополнительно, информация движения может включать в себя индекс опорного L0-кадра и опорный L0-кадр, указываемый посредством индекса опорного L0-кадра в списке опорных L0-кадров, и индекс опорного L1-кадра и опорный L1-кадр, указываемый посредством индекса опорного L1-кадра в списке опорных L1-кадров.
[299] Таким образом, когда режим объединения применяется, оборудование кодирования может извлекать L0-вектор движения и L1-вектор движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков относительно текущего блока, и может использовать их в качестве L0- и L1-векторов движения текущего блока.
[300] Оборудование кодирования может извлекать детализированные L0- и L1-векторы движения посредством применения DMVR к L0- и L1-векторам движения текущего блока, извлекаемого так, как описано выше, с учетом эффективности кодирования, сложности, производительности прогнозирования и т.п. В этом случае, оборудование кодирования может определять то, следует или нет применять DMVR к текущему блоку, с использованием различных условий применения, описанных в вышеприведенных таблицах 1-30.
[301] В качестве варианта осуществления, оборудование кодирования может извлекать информацию DMVR-флага, связанную с указанием того, применяется DMVR или нет, и может определять то, следует или нет применять DMVR, на основе информации DMVR-флага. Например, когда режим объединения применяется к текущему блоку, оборудование кодирования может задавать значение (например, "истина" или 1) информации DMVR-флага, чтобы указывать то, что DMVR применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование кодирования может извлекать информацию DMVR-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное бипрогнозирование на основе DMVR активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором режим объединения с разностью векторов движения (MMVD) не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации DMVR-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации DMVR-флага может задаваться как "ложь" или 0.
[302] Здесь, при извлечении информации DMVR-флага, упомянутые выше условия применения DMVR являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.
[303] Когда определяется то, что DMVR применяется, на основе информации DMVR-флага (например, когда значение информации DMVR-флага извлекается ка "истина" или 1), оборудование кодирования может применять DMVR к L0- и L1-векторам движения текущего блока.
[304] В варианте осуществления, оборудование кодирования может извлекать минимальную сумму абсолютных разностей (SAD) на основе опорных выборок (т.е. прогнозных L0-выборок) в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок (т.е. прогнозных L1-выборок) в опорном L1-кадре, извлекаемом на основе L1-вектора движения. Так же, оборудование кодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе выборочной позиции, соответствующей минимальной SAD. Таким образом, детализированный L0-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L0-кадре, и детализированный L1-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L1-кадре. Поскольку процесс извлечения детализированного вектора движения посредством применения DMVR описывается подробно со ссылкой на фиг. 4 и 5, его пояснение опускается далее.
[305] Оборудование кодирования может извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения (S1010).
[306] Здесь, прогнозные L0-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L0-вектора движения в опорном L0-кадре, и прогнозные L1-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L1-вектора движения в опорном L1-кадре.
[307] При извлечении прогнозных выборок, оборудование кодирования может применять BDOF-процесс к текущему блоку с учетом эффективности кодирования, сложности, производительности прогнозирования и т.п.
[308] Например, оборудование кодирования может определять то, следует или нет применять BDOF-процесс, на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром. Здесь, номер в последовательности кадров (POC) может представлять порядок, выводимый из DPB. Первый POC может представлять расстояние между текущим кадром и опорным L0-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList0[refIdxL0]). Второй POC может представлять расстояние между текущим кадром и опорным L1-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]).
[309] В этом случае, оборудование кодирования может определять то, следует или нет применять BDOF к текущему блоку, посредством использования различных условий применения, описанных в вышеприведенных таблицах 1-30.
[310] В варианте осуществления, оборудование кодирования может извлекать информацию BDOF-флага, связанную с указанием того, применяется BDOF или нет, и может определять то, следует или нет применять BDOF, на основе информации BDOF-флага. Например, когда первая POC-разность и вторая POC-разность являются идентичными, оборудование кодирования может задавать значение (например, "истина" или 1) информации BDOF-флага, чтобы указывать то, что BDOF применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование кодирования может извлекать информацию BDOF-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное прогнозирование на основе BDOF активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором аффинный режим не применяется к текущему блоку, случай, в котором режим объединения на основе субблоков не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации BDOF-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации BDOF-флага может задаваться как "ложь" или 0.
[311] Здесь, при извлечении информации BDOF-флага, упомянутые выше условия BDOF-применения являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.
[312] Когда BDOF-процесс применяется к текущему блоку на основе значения информации BDOF-флага (например, когда значение информации BDOF-флага извлекается ка "истина" или 1), оборудование кодирования может вычислять градиент для прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и градиент для прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения. Так же, оборудование кодирования может наконец извлекать (детализированные) прогнозные выборки на основе градиента для прогнозных L0-выборок и градиента для прогнозных L1-выборок.
[313] Оборудование кодирования может извлекать остаточные выборки на основе прогнозных выборок (S1020) и может кодировать информацию изображений, включающую в себя информацию относительно остаточных выборок (S1030).
[314] Таким образом, оборудование кодирования может извлекать остаточные выборки на основе исходных выборок текущего блока и прогнозных выборок текущего блока. Так же, оборудование кодирования может формировать информацию относительно остаточных выборок. Здесь, информация относительно остаточных выборок может включать в себя информацию значений, информацию местоположения, технологию преобразования, ядро преобразования и информацию параметров квантования для квантованных коэффициентов преобразования, извлекаемых посредством выполнения преобразования и квантования остаточных выборок.
[315] Оборудование кодирования может кодировать информацию относительно остаточных выборок, чтобы выводить кодированную информацию в форме потока битов, и может передавать кодированную информацию в оборудование декодирования через сеть или носитель хранения данных.
[316] Дополнительно, оборудование кодирования может кодировать информацию, извлекаемую на этапах S1000-S1030, описанных выше, и выводить кодированную информацию в качестве потока битов. Например, информация флага объединения, информация индекса объединения, индекс опорного L0-кадра, индекс опорного L1-кадра и т.д. может включаться в информацию изображений, которая должна кодироваться, и кодированная информация изображений может передаваться в служебных сигналах в оборудование декодирования.
[317] Фиг. 11 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ декодирования, который может осуществляться посредством оборудования декодирования согласно варианту осуществления этого документа.
[318] Способ, раскрытый на фиг. 11, может осуществляться посредством оборудования 300 декодирования, раскрытого на фиг. 3. В частности, этапы, S1100-S1110 по фиг. 11 может выполняться посредством модуля 330 прогнозирования и модуля 332 взаимного прогнозирования, раскрытых на фиг. 3, и этап S1120 по фиг. 11 может выполняться посредством сумматора 340, раскрытого на фиг. 3. Дополнительно, способ, раскрытый на фиг. 11, может включать в себя вышеописанные варианты осуществления в этом документе. Соответственно, подробное пояснение содержимого, дублированного относительно вышеописанных вариантов осуществления на фиг. 11, опускается или упрощается.
[319] Ссылаясь на фиг. 11, оборудование декодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения DMVR на основе L0-вектора движения и L1-вектора движения текущего блока (S1100).
[320] В варианте осуществления, оборудование декодирования может определять режим прогнозирования для текущего блока на основе информации прогнозирования, передаваемой в служебных сигналах из оборудования кодирования. Так же, оборудование декодирования может извлекать информацию движения (вектор движения, индекс опорного кадра и т.д.) текущего блока на основе режима прогнозирования. Здесь, режим прогнозирования может включать в себя режим пропуска, режим объединения и (A)MVP-режим и т.п.
[321] Например, когда режим объединения применяется к текущему блоку, оборудование декодирования может конструировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока и выбирать один возможный вариант объединения из числа возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, один возможный вариант объединения может выбираться из списка возможных вариантов объединения на основе вышеописанной информации индекса объединения. Оборудование декодирования может извлекать информацию движения текущего блока посредством использования информации движения выбранного возможного варианта объединения. Таким образом, информация движения возможного варианта объединения, выбранного посредством индекса объединения, из возможных вариантов объединения, включенных в список возможных вариантов объединения, может использоваться в качестве информации движения текущего блока.
[322] Здесь, информация движения может включать в себя такую информацию, как вектор движения, индекс опорного кадра и т.п. и может включать в себя L0-информацию движения и/или L1-информацию движения в зависимости от типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.п.). Когда бипрогнозирование применяется к текущему блоку, информация движения может включать в себя вектор движения (L0-вектор движения) в L0-направлении и вектор движения (L1-вектор движения) в L1-направлении. Дополнительно, информация движения может включать в себя индекс опорного L0-кадра и опорный L0-кадр, указываемый посредством индекса опорного L0-кадра в списке опорных L0-кадров, и индекс опорного L1-кадра и опорный L1-кадр, указываемый посредством индекса опорного L1-кадра в списке опорных L1-кадров.
[323] Таким образом, когда режим объединения применяется, оборудование декодирования может извлекать L0-вектор движения и L1-вектор движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков относительно текущего блока, и может использовать их в качестве L0- и L1-векторов движения текущего блока.
[324] Оборудование декодирования может извлекать детализированные L0- и L1-векторы движения посредством применения DMVR к L0- и L1-векторам движения текущего блока, извлекаемого так, как описано выше. В этом случае, оборудование декодирования может определять то, следует или нет применять DMVR к текущему блоку, с использованием различных условий применения, описанных в вышеприведенных таблицах 1-30.
[325] В варианте осуществления, оборудование декодирования может извлекать информацию DMVR-флага, связанную с указанием того, применяется DMVR или нет, и определять то, следует или нет применять DMVR, на основе информации DMVR-флага. Например, когда режим объединения применяется к текущему блоку, оборудование декодирования может задавать значение (например, "истина" или 1) информации DMVR-флага, чтобы указывать то, что DMVR применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование декодирования может извлекать информацию DMVR-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное бипрогнозирование на основе DMVR активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором режим объединения с разностью векторов движения (MMVD) не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации DMVR-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации DMVR-флага может задаваться как "ложь" или 0.
[326] Здесь, при извлечении информации DMVR-флага, упомянутые выше условия применения DMVR являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.
[327] Когда определяется то, что DMVR применяется, на основе информации DMVR-флага (например, когда значение информации DMVR-флага извлекается ка "истина" или 1), оборудование декодирования может применять DMVR к L0- и L1-векторам движения текущего блока.
[328] В варианте осуществления, оборудование декодирования может извлекать минимальную сумму абсолютных разностей (SAD) на основе опорных выборок (т.е. прогнозных L0-выборок) в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок (т.е. прогнозных L1-выборок) в опорном L1-кадре, извлекаемом на основе L1-вектора движения. Так же, оборудование декодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе выборочной позиции, соответствующей минимальной SAD. Таким образом, детализированный L0-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L0-кадре, и детализированный L1-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L1-кадре. Поскольку процесс извлечения детализированного вектора движения посредством применения DMVR описывается подробно со ссылкой на фиг. 4 и 5, его пояснение опускается далее.
[329] Оборудование декодирования может извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения (S1110).
[330] Здесь, прогнозные L0-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L0-вектора движения в опорном L0-кадре, и прогнозные L1-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L1-вектора движения в опорном L1-кадре.
[331] При извлечении прогнозных выборок, оборудование декодирования может применять BDOF-процесс к текущему блоку для детализации прогнозных выборок.
[332] Например, оборудование декодирования может определять то, следует или нет применять BDOF-процесс, на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром. Здесь, номер в последовательности кадров (POC) может представлять порядок, выводимый из DPB. Первый POC может представлять расстояние между текущим кадром и опорным L0-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList0[refIdxL0]). Второй POC может представлять расстояние между текущим кадром и опорным L1-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]).
[333] В этом случае, оборудование декодирования может определять то, следует или нет применять BDOF к текущему блоку, посредством использования различных условий применения, описанных в вышеприведенных таблицах 1-30.
[334] В варианте осуществления, оборудование декодирования может извлекать информацию BDOF-флага, связанную с указанием того, применяется BDOF или нет, и может определять то, следует или нет применять BDOF, на основе информации BDOF-флага. Например, когда первая POC-разность и вторая POC-разность являются идентичными, оборудование декодирования может задавать значение (например, "истина" или 1) информации BDOF-флага, чтобы указывать то, что BDOF применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование декодирования может извлекать информацию BDOF-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное прогнозирование на основе BDOF активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором аффинный режим не применяется к текущему блоку, случай, в котором режим объединения на основе субблоков не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации BDOF-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации BDOF-флага может задаваться как "ложь" или 0.
[335] Здесь, при извлечении информации BDOF-флага, упомянутые выше условия BDOF-применения являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.
[336] Когда BDOF-процесс применяется к текущему блоку на основе значения информации BDOF-флага (например, когда значение информации BDOF-флага извлекается ка "истина" или 1), оборудование декодирования может вычислять градиент для прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и градиент для прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения. Так же, оборудование декодирования может в завершение извлекать (детализированные) прогнозные выборки на основе градиента для прогнозных L0-выборок и градиента для прогнозных L1-выборок.
[337] Оборудование декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок (S1120).
[338] В варианте осуществления, оборудование декодирования может непосредственно использовать прогнозные выборки в качестве восстановленных выборок согласно режиму прогнозирования или может формировать восстановленные выборки посредством добавления остаточных выборок в прогнозные выборки.
[339] Если остаточная выборка для текущего блока существует, оборудование декодирования может принимать информацию относительно остатка для текущего блока. Информация относительно остатка может включать в себя коэффициенты преобразования относительно остаточных выборок. Оборудование декодирования может извлекать остаточные выборки (или массив остаточных выборок) для текущего блока на основе остаточной информации. Оборудование декодирования может формировать восстановленные выборки на основе прогнозных выборок и остаточных выборок и может извлекать восстановленный блок или восстановленный кадр на основе восстановленных выборок.
[340] В вышеуказанных вариантах осуществления, хотя способы описываются на основе блок-схем последовательности операций способа в форме последовательности этапов или единиц, варианты осуществления этого документа не ограничены порядком этапов, и некоторые этапы могут выполняться в порядке, отличающемся от порядка других этапов, либо могут выполняться одновременно с другими этапами. Кроме того, специалисты в данной области техники должны понимать, что этапы, показанные на блок-схеме последовательности операций способа, не являются единственно возможными, и этапы могут включать в себя дополнительные этапы, либо что один или более этапов на блок-схеме последовательности операций способа могут удаляться, без влияния на объем прав этого документа.
[341] Вышеуказанный способ согласно этому документу может реализовываться в программной форме, и оборудование кодирования и/или оборудование декодирования согласно этому документу может включаться в оборудование для выполнения обработки изображений, например, телевизор, компьютер, смартфон, абонентскую приставку или устройство отображения.
[342] В этом документе, когда варианты осуществления реализуются в программной форме, вышеуказанный способ реализовываться как модуль (процесс, функция и т.д.) для выполнения вышеуказанной функции. Модуль может сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может размещаться внутри или снаружи процессора и соединяться с процессором посредством различных известных средств. Процессор может включать в себя специализированные интегральные схемы (ASIC), другие наборы микросхем, логические схемы и/или устройства обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карты памяти, носители хранения данных и/или другие устройства хранения данных. Таким образом, варианты осуществления, описанные в этом документе могут реализовываться и выполняться на/в процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, проиллюстрированные на чертежах, могут реализовываться и выполняться на/в компьютере, процессоре, микропроцессоре, контроллере или микросхеме. В этом случае, информация относительно инструкций или алгоритма для реализации может сохраняться на цифровом носителе хранения данных.
[343] Кроме того, оборудование декодирования и оборудование кодирования, к которым применяется этот документ, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру для мониторинга, диалоговое видеоустройство, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу (VoD)", видеоустройство поверх сетей (OTT), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, устройство в стиле виртуальной реальности (VR), устройство в стиле дополненной реальности (AR), устройство системы видеотелефонии, терминал в средстве транспортировки (например, терминал в транспортном средстве (в том числе в автономном транспортном средстве), терминал в воздушном судне и терминал в морском судне) и медицинское видеоустройство и могут использоваться для того, чтобы обрабатывать видеосигнал или сигнал данных. Например, видеоустройство поверх сетей (OTT) может включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC и цифровое записывающее видеоустройство (DVR).
[344] Кроме того, способ обработки, к которому применяется этот документ, может создаваться в форме программы, выполняемой посредством компьютера, и может сохраняться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно этому документу, также могут сохраняться на машиночитаемом носителе записи. Машиночитаемый носитель записи включает в себя все типы устройств хранения данных, на которых сохраняются машиночитаемые данные. Машиночитаемый носитель может включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EEPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемый носитель записи включает в себя среду, реализованную в форме несущих (например, при передаче через Интернет). Кроме того, поток битов, сформированный с использованием способа кодирования, может сохраняться на машиночитаемом носителе записи или может передаваться по сетям проводной и беспроводной связи.
[345] Кроме того, вариант осуществления этого документа может реализовываться как компьютерный программный продукт с помощью программного кода. Программный код может выполняться посредством компьютера согласно варианту осуществления этого документа. Программный код может сохраняться на носителе, считываемом посредством компьютера.
[346] Фиг. 12 иллюстрирует пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в этом документе.
[347] Ссылаясь на фиг. 12, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[348] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы формировать поток битов и передавать поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
[349] Поток битов может формироваться посредством способа кодирования или способа формирования потока битов, к которому применяется вариант(ы) осуществления настоящего документа, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[350] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер доставляет ее на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
[351] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
[352] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.
[353] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.