Уровень техники
Область техники, к которой относится изобретение
[1] Это раскрытие сущности относится к технологии кодирования изображений, а более конкретно, к способу и оборудованию для выполнения взаимного прогнозирования на основе детализации векторов движения на стороне декодера (DMVR) и/или двунаправленного оптического потока (BDOF).
Описание предшествующего уровня техники
[2] Потребности в высококачественных изображениях и видео высокого разрешения, таких как изображение сверхвысокой четкости (UHD) и видео в формате 4K или 8K или выше, в последнее время растут в различных областях техники. По мере того, как данные изображений и видеоданных обладают высоким разрешением и высоким качеством, объем информации или число битов, которые относительно передаются, увеличивается по сравнению с существующими данными изображений и видеоданными. Соответственно, если данные изображений передаются с использованием такой среды, как существующая проводная или беспроводная широкополосная линия, либо данные изображений и видеоданные сохраняются с использованием существующего носителя хранения данных, затраты на передачу и затраты на хранение увеличиваются.
[3] Кроме того, интересы и потребности в иммерсивном мультимедиа, таком как контент виртуальной реальности (VR), искусственной реальности (AR) или голограмма, в последнее время растут. Широковещательная передача изображения и видео, имеющих характеристики изображений, отличающиеся от характеристик реальных изображений, таких как игровые изображения, возрастает.
[4] Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений и видео, чтобы эффективно сжимать и передавать или сохранять и воспроизводить информацию высококачественных изображений и видео высокого разрешения, имеющих такие различные характеристики.
Сущность изобретения
[5] Это раскрытие сущности предоставляет способ и оборудование для повышения эффективности кодирования изображений.
[6] Это раскрытие сущности также предоставляет способ и оборудование эффективного взаимного прогнозирования.
[7] Это раскрытие сущности также предоставляет способ и оборудование для выполнения взаимного прогнозирования на основе детализации векторов движения (DMVR) на стороне декодера.
[8] Это раскрытие сущности также предоставляет способ и оборудование для выполнения взаимного прогнозирования на основе двунаправленного оптического потока (BDOF).
[9] Это раскрытие сущности также предоставляет способ и оборудование для повышения производительности прогнозирования посредством предоставления условия для определения того, следует или нет применять DMVR для повышения эффективности кодирования изображений, и/или условия для определения того, следует или нет применять BDOF.
[10] В аспекте, предоставляется способ декодирования видео, осуществляемый посредством оборудования декодирования. Способ включает в себя: извлечение L0-вектора движения и L1-вектора движения для текущего блока; извлечение детализированного L0-вектора движения и детализированного L1-вектора движения на основе L0-вектора движения и L1-вектора движения, посредством применения DMVR (детализации векторов движения на стороне декодера) к текущему блоку на основе информации DMVR-флага для представления того, следует или нет применять DMVR к текущему блоку; извлечение прогнозных L0-выборок текущего блока на основе детализированного L0-вектора движения и прогнозных L1-выборок текущего блока на основе детализированного L1-вектора движения; извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок, посредством применения BDOF (двунаправленного оптического потока) к текущему блоку на основе информации BDOF-флага для представления того, следует или нет применять BDOF к текущему блоку; и формирование восстановительных выборок для текущего блока на основе прогнозных выборок, при этом информация DMVR-флага извлекается на основе предварительно определенного условия DMVR-применения, и информация BDOF-флага извлекается на основе предварительно определенного условия BDOF-применения.
[11] В другом аспекте, предоставляется способ кодирования видео, осуществляемый посредством оборудования кодирования. Способ включает в себя: извлечение L0-вектора движения и L1-вектора движения для текущего блока; извлечение детализированного L0-вектора движения и детализированного L1-вектора движения на основе L0-вектора движения и L1-вектора движения, посредством применения DMVR (детализации векторов движения на стороне декодера) к текущему блоку на основе информации DMVR-флага для представления того, следует или нет применять DMVR к текущему блоку; извлечение прогнозных L0-выборок текущего блока на основе детализированного L0-вектора движения и прогнозных L1-выборок текущего блока на основе детализированного L1-вектора движения; извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок, посредством применения BDOF (двунаправленного оптического потока) к текущему блоку на основе информации BDOF-флага для представления того, следует или нет применять BDOF к текущему блоку; извлечение остаточных выборок на основе прогнозных выборок; и кодирование видеоинформации, включающей в себя информацию относительно остаточных выборок, при этом информация DMVR-флага извлекается на основе предварительно определенного условия DMVR-применения, и информация BDOF-флага извлекается на основе предварительно определенного условия BDOF-применения.
[12] Согласно этому раскрытию сущности, общая эффективность сжатия изображений/видео может повышаться.
[13] Согласно этому раскрытию сущности, вычислительная сложность может уменьшаться, и общая эффективность кодирования может повышаться через эффективное взаимное прогнозирование.
[14] Согласно этому раскрытию сущности, различные условия применения предлагаются при применении DMVR и/или BDOF для детализации информации движения во время процесса компенсации движения, чтобы повышать эффективность с точки зрения сложности и производительности.
Краткое описание чертежей
[15] Фиг. 1 схематично иллюстрирует систему кодирования видео/изображений, которая может применяться к вариантам осуществления настоящего раскрытия сущности.
[16] Фиг. 2 является схемой для схематичного описания оборудования кодирования видео/изображений, которое может применяться к вариантам осуществления настоящего раскрытия сущности.
[17] Фиг. 3 является схемой для схематичного описания конфигурации оборудования кодирования видео/изображений, которое может применяться к вариантам осуществления настоящего раскрытия сущности.
[18] Фиг. 4 иллюстрирует один пример способа кодирования видео/изображений на основе взаимного прогнозирования, и фиг. 5 иллюстрирует один пример, схематично иллюстрирующий модуль взаимного прогнозирования в оборудовании кодирования.
[19] Фиг. 6 иллюстрирует один пример способа декодирования видео/изображений на основе взаимного прогнозирования, и фиг. 7 иллюстрирует один пример, схематично иллюстрирующий модуль взаимного прогнозирования в оборудовании декодирования.
[20] Фиг. 8 является схемой для описания варианта осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) в истинном бипрогнозировании.
[21] Фиг. 9 является схемой для описания варианта осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) посредством использования суммы абсолютных разностей (SAD).
[22] Фиг. 10 иллюстрирует один пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[23] Фиг. 11 и 12 иллюстрируют другой пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[24] Фиг. 13 является схемой, проиллюстрированной для описания принципа BDOF.
[25] Фиг. 14 является блок-схемой последовательности операций способа, схематично показывающей способ кодирования, который может осуществляться посредством оборудования кодирования согласно варианту осуществления настоящего раскрытия сущности.
[26] Фиг. 15 является блок-схемой последовательности операций способа, схематично показывающей способ декодирования, который может осуществляться посредством оборудования декодирования согласно варианту осуществления настоящего раскрытия сущности.
[27] Фиг. 16 иллюстрирует один пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в настоящем раскрытии сущности.
[28] Фиг. 17 является схемой, принципиально иллюстрирующей один пример системы предоставления услуг, включающей в себя цифровое устройство.
[29] Фиг. 18 является блок-схемой, проиллюстрированной для описания одного варианта осуществления цифрового устройства.
[30] Фиг. 19 является блок-схемой, проиллюстрированной для описания другого варианта осуществления цифрового устройства.
[31] Фиг. 20 схематично иллюстрирует архитектуру для предоставления услуги передачи трехмерных изображений/видео, в которой может использоваться вариант(ы) осуществления настоящего раскрытия сущности.
[32] Фиг. 21 является схемой для схематичного описания конфигурации первого цифрового устройства, к которому может применяться способ.
[33] Фиг. 22 является схемой для схематичного описания конфигурации второго цифрового устройства, к которому может применяться способ.
Подробное описание вариантов осуществления
[34] Настоящее раскрытие сущности может модифицироваться различными способами и может иметь различные варианты осуществления, и в дальнейшем конкретные варианты осуществления иллюстрируются на чертежах и подробно описываются. Тем не менее, отсутствует намерение ограничивать настоящее раскрытие сущности конкретными вариантами осуществления. Термины, широко используемые в этом подробном описании, используются для того, чтобы описывать конкретный вариант осуществления, и не используются для того, чтобы ограничивать техническую сущность настоящего раскрытия сущности. Выражение в единственном числе включает в себя выражения во множественном числе, если иное не является очевидным из контекста. Следует понимать, что такой термин, как "включать в себя" или "иметь" в этом подробном описании указывает существование характеристики, числа, этапа, операции, элемента, части либо их комбинации, приведенной в описании изобретения, а не исключает существование или возможность добавления одной или более других характеристик, чисел, этапов, операций, элементов, частей либо их комбинации.
[35] Между тем элементы на чертежах, описанных в настоящем раскрытии сущности, иллюстрируются независимо для удобства описания, связанного с различными характеристическими функциями. Это не означает то, что каждый из элементов реализуется как отдельные аппаратные средства либо как отдельное программное обеспечение. Например, по меньшей мере, два элемента могут комбинироваться, чтобы формировать один элемент, либо один элемент может разделяться на множество элементов. Вариант осуществления, в котором элементы комбинируются и/или разделяются, также включается в объем прав настоящего раскрытия сущности, если он не отступает от сущности настоящего раскрытия сущности.
[36] В настоящем раскрытии сущности, термин "/" и "," должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" может означать "A и/или B". Дополнительно, "A, B" может означать "A и/или B". Дополнительно, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C". Кроме того, "A, B, C" может означать "по меньшей мере, одно из A, B и/или C".
[37] Дополнительно, в настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только A, 2) только B и/или 3) как A, так и B. Другими словами, термин "или" в настоящем раскрытии сущности должен интерпретироваться как указывающий "дополнительно или альтернативно".
[38] Настоящее раскрытие сущности относится к кодированию видео/изображений. Например, способы/варианты осуществления, раскрытые в настоящем раскрытии сущности, могут применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте EVC (фундаментального кодирования видео), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267 или H.268 и т.д.).
[39] Настоящее раскрытие сущности представляет различные варианты осуществления кодирования видео/изображений, и варианты осуществления могут выполняться в комбинации между собой, если не указано иное.
[40] В настоящем раскрытии сущности, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретной временной зоне, и срез/плитка представляет собой единицу, составляющую часть кадра при кодировании. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Один кадр может состоять из одной или более групп плиток. Одна группа плиток может включать в себя одну или более плиток. Кирпич может представлять прямоугольную область CTU-строк в плитке в кадре. Плитка может сегментироваться на несколько кирпичей, каждый из которых состоит из одной или более CTU-строк в плитке. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Кирпичное сканирование представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно в растровом CTU-сканировании в кирпиче, кирпичи внутри плитки упорядочиваются последовательно в растровом сканировании кирпичей плитки, и плитки в кадре упорядочиваются последовательно в растровом сканировании плиток кадра. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез включает в себя собой целое число кирпичей кадра, которые могут содержаться исключительно в одной NAL-единице. Срез может состоять либо из определенного числа полных плиток, либо только из жесткой последовательности полных кирпичей одной плитки. Группы плиток и срезы могут использоваться взаимозаменяемо в настоящем раскрытии сущности. Например, в настоящем раскрытии сущности, группа плиток/заголовок группы плиток может называться "срезом/заголовком среза".
[41] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности. Альтернативно, выборка может означать пиксельное значение в пространственной области, и когда пиксельное значение преобразуется в частотную область, выборка может означать коэффициент преобразования в частотной области.
[42] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[43] В дальнейшем в этом документе, подробнее описываются предпочтительные варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи. В дальнейшем в этом документе, на чертежах, идентичная ссылка с номером используется в идентичном элементе, и избыточное описание идентичного элемента может опускаться.
[44] Фиг. 1 схематично иллюстрирует пример системы кодирования видео/изображений, к которой могут применяться варианты осуществления настоящего раскрытия сущности.
[45] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое устройство (исходное устройство) и второе устройство (приемное устройство). Исходное устройство может доставлять кодированную информацию или данные видео/изображений в форме файла или потоковой передачи в приемное устройство через цифровой носитель хранения данных или сеть.
[46] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[47] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[48] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[49] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.
[50] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.
[51] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[52] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего документа. В дальнейшем в этом документе, оборудование кодирования видео может включать в себя оборудование кодирования изображений.
[53] Ссылаясь на фиг. 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 в качестве внутреннего/внешнего компонента.
[54] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в оборудование 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя единицу прогнозирования (PU) или единицу преобразования (TU). В этом случае, единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[55] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.
[56] В оборудовании 200 кодирования, прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, вычитается из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания прогнозного сигнала (прогнозированного блока, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Как описано ниже в описании каждого режима прогнозирования, модуль прогнозирования может формировать различную информацию, связанную с прогнозированием, к примеру, информацию режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно прогнозирования может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.
[57] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 222 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[58] Модуль 221 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.
[59] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять как внутренние прогнозирование, так и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в настоящем раскрытии сущности. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[60] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[61] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для видео/восстановления изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В настоящем раскрытии сущности, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.
[62] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[63] Между тем преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.
[64] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[65] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием декодирования может исключаться, и эффективность кодирования может повышаться.
[66] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.
[67] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего документа.
[68] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340, фильтр 350, запоминающее устройство 360. Модуль 330 прогнозирования может включать в себя модуль 331 взаимного прогнозирования и модуль 332 внутреннего прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[69] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в оборудовании кодирования по фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в оборудовании кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[70] Оборудование 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 внутреннего прогнозирования.
[71] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[72] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[73] Модуль 230 прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и может определять конкретный режим внутреннего/взаимного прогнозирования.
[74] Модуль 320 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в настоящем раскрытии сущности. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[75] Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[76] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 332 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[77] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.
[78] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для взаимного прогнозирования следующего кадра.
[79] Между тем преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.
[80] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[81] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.
[82] В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования оборудования 300 декодирования. То же также может применяться к модулю 332 и модулю 331 внутреннего прогнозирования.
[83] Как описано выше, при выполнении кодирования видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. Прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, т.е. целевого блока кодирования, может формироваться через прогнозирование. В этом случае, прогнозированный блок включает в себя прогнозные выборки в пространственную область (или пиксельную область). Прогнозированный блок идентично извлекается в оборудовании кодирования и оборудовании декодирования. Оборудование кодирования может повышать эффективность кодирования изображений посредством передачи в служебных сигналах, в оборудование декодирования, информации относительно остатка (остаточной информации) между исходным блоком, а не непосредственно исходным выборочным значением исходного блока, и прогнозированным блоком. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, может формировать восстановленный блок, включающий в себя восстановленные выборки, посредством суммирования остаточного блока с прогнозированным блоком и может формировать восстановленный кадр, включающий в себя восстановленные блоки.
[84] Остаточная информация может формироваться через процедуру преобразования и квантования. Например, оборудование кодирования может извлекать остаточный блок между исходным блоком и прогнозированным блоком, может извлекать коэффициенты преобразования посредством выполнения процедуры преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, может извлекать квантованные коэффициенты преобразования посредством выполнения процедуры квантования для коэффициентов преобразования, и может передавать в служебных сигналах ассоциированную остаточную информацию в оборудование декодирования (через поток битов). В этом случае, остаточная информация может включать в себя такую информацию, как информация значений, информация местоположения, схема преобразования, ядро преобразования и параметр квантования для квантованных коэффициентов преобразования. Оборудование декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и может извлекать остаточные выборки (или остаточный блок). Оборудование декодирования может формировать восстановленное изображение на основе прогнозированного блока и остаточного блока. Кроме того, оборудование кодирования может извлекать остаточный блок посредством деквантования/обратного преобразования квантованных коэффициентов преобразования для ссылки на взаимное прогнозирование последующего кадра и может формировать восстановленный кадр.
[85] Между тем, как описано выше, внутреннее прогнозирование или взаимное прогнозирование может применяться при выполнении прогнозирования для текущего блока. В дальнейшем в этом документе, описывается случай применения взаимного прогнозирования к текущему блоку.
[86] Модуль прогнозирования (более конкретно, модуль взаимного прогнозирования) оборудования кодирования/декодирования может извлекать прогнозные выборки посредством выполнения взаимного прогнозирования в единицах блоков. Взаимное прогнозирование может представлять прогнозирование, извлекаемое посредством способа, зависимого от элементов данных (например, выборочных значений или информации движения) кадра(ов), отличного от текущего кадра. Когда взаимное прогнозирование применяется к текущему блоку, прогнозированный блок (массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения в опорном кадре в опорном кадре, указываемом посредством индекса опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае применения взаимного прогнозирования соседний блок может включать в себя пространственный соседний блок, который присутствует в текущем кадре и временном соседнем блоке, который присутствует в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными друг другу или отличающимися друг от друга. Временной соседний блок может упоминаться под таким названием, как "совместно размещенный опорный блок", "совместно размещенная CU (colCU)", и т.д., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, список возможных вариантов информации движения может быть сконфигурирован на основе соседних блоков относительно текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, с тем чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования и, например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть идентичной информации движения выбранного соседнего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. В случае режима прогнозирования векторов движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться посредством использования суммы предиктора вектора движения и разности векторов движения.
[87] Информация движения дополнительно может включать в себя 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).
[88] Информация, указывающая то, используются либо нет прогнозирование на основе списка 0 (L0), прогнозирование на основе списка 1 (L1) или бипрогнозирование в текущем блоке (текущей единице кодирования), может передаваться в служебных сигналах. Информация, например, может называться "информацией направления прогнозирования движения", "информацией направления взаимного прогнозирования" или "информацией индикатора взаимного прогнозирования" и может конфигурироваться/кодироваться/передаваться в служебных сигналах в форме синтаксического элемента inter_pred_idc. Другими словами, синтаксический элемент inter_pred_idc может указывать то, используются либо нет прогнозирование на основе списка 0 (L0), прогнозирование на основе списка 1 (L1) или бипрогнозирование в текущем блоке (текущей единице кодирования). В настоящем раскрытии сущности, для удобства описания, тип взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование), указываемый посредством синтаксического элемента inter_pred_idc, может выражаться как направление прогнозирования движения. L0-прогнозирование может представляться посредством pred_L0, L1-прогнозирование может представляться посредством pred_L1, и бипрогнозирование может представляться посредством pred_BI. Например, тип прогнозирования, показанный в нижеприведенной таблице 1, может представляться согласно значению синтаксического элемента inter_pred_idc.
[89] Табл. 1
[90] Дополнительно, различные режимы взаимного прогнозирования могут использоваться при применении взаимного прогнозирования к текущему блоку. Например, могут использоваться различные режимы, включающие в себя режим объединения, режим пропуска, режим прогнозирования векторов движения (MVP), аффинный режим, режим статистического прогнозирования векторов движения (HMVP) и т.п. Режим детализации векторов движения на стороне декодера (DMVR), режим адаптивного разрешения векторов движения (AMVR), двунаправленный оптический поток (BDOF) и т.д. дополнительно могут использоваться в качестве вспомогательного режима. Аффинный режим может называться "режимом аффинного прогнозирования движения". MVP-режим может называться "режимом усовершенствованного прогнозирования векторов движения (AMVP)". В настоящем раскрытии сущности, некоторые режимы и/или возможные варианты информации движения, извлекаемые посредством некоторых режимов, могут включаться в один из связанных с информацией движения возможных вариантов других режимов.
[91] Информация режима прогнозирования, указывающая режим взаимного прогнозирования текущего блока, может передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. В этом случае, информация режима прогнозирования может включаться в поток битов и приниматься посредством оборудования декодирования. Информация режима прогнозирования может включать в себя информацию индекса, указывающую один из нескольких возможных вариантов режимов. Альтернативно, режим взаимного прогнозирования может указываться через иерархическую передачу в служебных сигналах информации флага. В этом случае, информация режима прогнозирования может включать в себя один или более флагов. Например, то, следует или нет применять режим пропуска, может указываться посредством передачи в служебных сигналах флага пропуска, то, следует или нет применять режим объединения, может указываться посредством передачи в служебных сигналах флага объединения, когда режим пропуска не применяется, и указывается то, что MVP-режим применяется, или флаг для дополнительного различения дополнительно может передаваться в служебных сигналах, когда режим объединения не применяется. Аффинный режим может передаваться в служебных сигналах в качестве независимого режима или передаваться в служебных сигналах в качестве зависимого режима на режиме объединения или MVP-режиме. Например, аффинный режим может включать в себя аффинный режим объединения и аффинный MVP-режим.
[92] Дополнительно, информация движения текущего блока может использоваться при применении взаимного прогнозирования к текущему блоку. Устройство кодирования может извлекать оптимальную информацию движения для текущего блока через процедуру оценки движения. Например, устройство кодирования может выполнять поиск в аналогичном опорном блоке, имеющем высокую корреляцию в единицах дробного пиксела, в предварительно определенном диапазоне поиска в опорном кадре посредством использования исходного блока в исходном кадре для текущего блока, и извлекать информацию движения через искомый опорный блок. Подобие блока может извлекаться на основе разности выборочных значений на основе фазы. Например, подобие блока может вычисляться на основе суммы абсолютных разностей (SAD) между текущим блоком (или эталоном текущего блока) и опорным блоком (или эталоном опорного блока). В этом случае, информация движения может извлекаться на основе опорного блока, имеющего наименьшую SAD в зоне поиска. Извлеченная информация движения может передаваться в служебных сигналах в устройство декодирования согласно различным способам на основе режима взаимного прогнозирования.
[93] Прогнозированный блок для текущего блока может извлекаться на основе информации движения, извлекаемой согласно режиму прогнозирования. Прогнозированный блок может включать в себя прогнозные выборки (массив прогнозных выборок) текущего блока. Когда вектор движения (MV) текущего блока указывает дробную единицу выборок, процедура интерполяции может выполняться, и прогнозные выборки текущего блока могут извлекаться на основе опорных выборок с дробной единицей выборок в опорном кадре через процедуру интерполяции. Когда аффинное взаимное прогнозирование применяется к текущему блоку, прогнозные выборки могут формироваться на основе MV в единицах выборок/субблоков. Когда бипрогнозирование применяется, прогнозные выборки, извлекаемые через взвешенную сумму или среднее взвешенное прогнозных выборок, извлекаемых на основе L0-прогнозирования (т.е. прогнозирование с использованием опорного кадра в списке L0 опорных кадров и MVL0), и прогнозные выборки (согласно фазе), извлекаемые на основе L1-прогнозирования (т.е. прогнозирование с использованием опорного кадра в списке L1 опорных кадров и MVL1), могут использоваться в качестве прогнозных выборок текущего блока. Когда бипрогнозирование применяется, если опорный кадр, используемый для L0-прогнозирования, и опорный кадр, используемый для L1-прогнозирования, расположены в различных временных направлениях на основе текущего кадра (т.е. если прогнозирование соответствует бипрогнозированию и двунаправленному прогнозированию), оно может называться "истинным бипрогнозированием".
[94] Восстановительные выборки и восстановительные кадры могут формироваться на основе извлеченных прогнозных выборок, и после этого может выполняться такая процедура, как внутриконтурная фильтрация и т.д., как описано выше.
[95] Фиг. 4 иллюстрирует один пример способа кодирования видео/изображений на основе взаимного прогнозирования, и фиг. 5 иллюстрирует один пример, схематично иллюстрирующий модуль взаимного прогнозирования в оборудовании кодирования. Модуль взаимного прогнозирования в оборудовании кодирования по фиг. 5 также может применяться таким образом, что он является идентичным или соответствует модулю 221 взаимного прогнозирования оборудования 200 кодирования по фиг. 2.
[96] Ссылаясь на фиг. 4 и 5, оборудование кодирования выполняет взаимное прогнозирование для текущего блока (S400). Оборудование кодирования может извлекать режим взаимного прогнозирования и информацию движения текущего блока и формировать прогнозные выборки текущего блока. Здесь, процедура определения режима взаимного прогнозирования, процедура извлечения информации движения и процедура формирования прогнозных выборок могут выполняться одновременно, и любая процедура может выполняться раньше других процедур.
[97] Например, модуль 221 взаимного прогнозирования оборудования кодирования может включать в себя модуль 221_1 определения режима прогнозирования, модуль 221_2 извлечения информации движения и модуль 221_3 извлечения прогнозных выборок, и модуль 221_1 определения режима прогнозирования может определять режим прогнозирования для текущего блока, модуль 221_2 извлечения информации движения может извлекать информацию движения текущего блока, и модуль 221_3 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль 221 взаимного прогнозирования оборудования кодирования может выполнять поиск блока, аналогичного текущему блоку в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и извлекать опорный блок, в котором разность относительно текущего блока является минимальной, равна или меньше предварительно определенного критерия. Индекс опорного кадра, указывающий опорный кадр, в котором позиционируется опорный блок, может извлекаться на основе этого, и вектор движения может извлекаться на основе разности в местоположении между опорным блоком и текущим блоком. Оборудование кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование кодирования может сравнивать RD-затраты для различных режимов прогнозирования и определять оптимальный режим прогнозирования для текущего блока.
[98] Например, когда режим пропуска или режим объединения применяется к текущему блоку, устройство кодирования может конфигурировать список возможных вариантов объединения, который описывается ниже, и извлекать опорный блок, в котором разность относительно текущего блока является минимальной либо равна или меньше предварительно определенного критерия, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в устройство декодирования. Информация движения текущего блока может извлекаться посредством использования информации движения выбранного возможного варианта объединения.
[99] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, устройство кодирования может конфигурировать список возможных (A)MVP-вариантов и использовать вектор движения выбранного возможного MVP-варианта из числа возможных вариантов предикторов векторов движения (MVP), включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант, имеющий вектор движения с наименьшей разностью относительно вектора движения текущего блока из возможных MVP-вариантов, может становиться выбранным возможным MVP-вариантом. Разность векторов движения (MVD), которая представляет собой разность, полученную посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация относительно MVD может передаваться в служебных сигналах в оборудование декодирования. Дополнительно, когда (A)MVP-режим применяется, значение индекса опорного кадра может быть сконфигурировано как информация индекса опорного кадра и отдельно передаваться в служебных сигналах в оборудование декодирования.
[100] Оборудование кодирования может извлекать остаточные выборки на основе прогнозированных выборок (S410). Оборудование кодирования может извлекать остаточные выборки посредством сравнения исходных выборок и прогнозных выборок текущего блока.
[101] Оборудование кодирования кодирует информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S420). Оборудование кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию относительно информации режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима и т.д.) и информацию относительно информации движения в качестве информации, связанной с процедурой прогнозирования. Информация относительно информации движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Дополнительно, информация относительно информации движения может включать в себя информацию относительно MVD и/или информации индекса опорного кадра. Дополнительно, информация относительно информации движения может включать в себя информацию, указывающую то, следует либо нет применять L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[102] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в устройство декодирования либо передаваться в устройство декодирования через сеть.
[103] Между тем, как описано выше, устройство кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленные блоки) на основе опорных выборок и остаточных выборок. Это служит для того, чтобы извлекать результат прогнозирования, идентичный результату прогнозирования, выполняемого посредством устройства декодирования, и как результат, эффективность кодирования может повышаться. Соответственно, оборудование кодирования может сохранять восстановительный кадр (либо восстановительные выборки или восстановительные блоки) в запоминающем устройстве и использовать восстановительный кадр в качестве опорного кадра. Процедура внутриконтурной фильтрации дополнительно может применяться к восстановительному кадру, как описано выше.
[104] Фиг. 6 иллюстрирует один пример способа декодирования видео/изображений на основе взаимного прогнозирования, и фиг. 7 иллюстрирует один пример, схематично иллюстрирующий модуль взаимного прогнозирования в оборудовании декодирования. Модуль взаимного прогнозирования в оборудовании декодирования по фиг. 7 также может применяться таким образом, что он является идентичным или соответствует модулю 332 взаимного прогнозирования оборудования 300 декодирования по фиг. 3.
[105] Ссылаясь на фиг. 6 и 7, оборудование декодирования может выполнять операцию, соответствующую операции, выполняемой посредством оборудования кодирования. Оборудование декодирования может выполнять прогнозирование для текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[106] В частности, оборудование декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S600). Оборудование декодирования может определять то, какой режим взаимного прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[107] Например, может определяться то, применяется режим объединения или (A)MVP-режим к текущему блоку, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов взаимного прогнозирования может выбираться на основе индекса режима. Возможные варианты режимов взаимного прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим или могут включать в себя различные режимы взаимного прогнозирования, описанные выше.
[108] Оборудование декодирования извлекает информацию движения текущего блока на основе определенного режима взаимного прогнозирования (S610). Например, когда режим пропуска или режим объединения применяется к текущему блоку, устройство декодирования может конфигурировать список возможных вариантов объединения и выбирать один возможный вариант объединения из возможных вариантов объединения, включенных в список возможных вариантов объединения. Здесь, выбор может выполняться на основе информации выбора (индекса объединения). Информация движения текущего блока может извлекаться посредством использования информации движения выбранного возможного варианта объединения. Информация движения выбранного возможного варианта объединения может использоваться как информация движения текущего блока.
[109] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, оборудование декодирования может конфигурировать список возможных (A)MVP-вариантов и использовать вектор движения выбранного возможного MVP-варианта из числа возможных вариантов предикторов векторов движения (MVP), включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Здесь, выбор может выполняться на основе информации выбора (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP текущего блока и MVD. Дополнительно, индекс опорного кадра текущего блока может извлекаться на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров для текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для взаимного прогнозирования текущего блока.
[110] Между тем информация движения текущего блока может извлекаться без конфигурирования списка возможных вариантов, и в этом случае, информация движения текущего блока может извлекаться согласно процедуре, раскрытой в режиме прогнозирования. В этом случае, конфигурирование списка возможных вариантов может опускаться.
[111] Оборудование декодирования может формировать прогнозные выборки для текущего блока на основе информации движения текущего блока (S620). В этом случае, опорный кадр может извлекаться на основе индекса опорного кадра текущего блока, и прогнозные выборки текущего блока могут извлекаться посредством использования выборок опорного блока, указываемого посредством вектора движения текущего блока на опорном кадре. В этом случае, в некоторых случаях, процедура фильтрации прогнозированной выборки для всех или некоторых прогнозных выборок текущего блока дополнительно может выполняться.
[112] Например, модуль 332 взаимного прогнозирования оборудования декодирования может включать в себя модуль 332_1 определения режима прогнозирования, модуль 332_2 извлечения информации движения и модуль 332_3 извлечения прогнозных выборок, и модуль 332_1 определения режима прогнозирования может определять режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль 332_2 извлечения информации движения может извлекать информацию движения (вектор движения и/или индекс опорного кадра) текущего блока на основе информации относительно принимаемой информации движения, и модуль 332_3 извлечения прогнозных выборок может извлекать прогнозированные выборки текущего блока.
[113] Оборудование декодирования формирует остаточные выборки для текущего блока на основе принимаемой остаточной информации (S630). Оборудование декодирования может формировать восстановительные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановительный кадр на основе сформированных восстановительных выборок (S640). После этого процедура внутриконтурной фильтрации дополнительно может применяться к восстановительному кадру, как описано выше.
[114] Как описано выше, процедура взаимного прогнозирования может включать в себя этап определения режима взаимного прогнозирования, этап извлечения информации движения в зависимости от определенного режима прогнозирования и этап выполнения прогнозирования (формирования прогнозированных выборок) на основе извлеченной информации движения. Процедура взаимного прогнозирования может выполняться посредством оборудования кодирования и оборудования декодирования, как описано выше.
[115] Между тем, поскольку движение текущего блока прогнозируется на основе вектора движения соседнего блока без разности векторов движения (MVD) в режиме пропуска и/или режиме объединения, режим пропуска и/или режим объединения показывают ограничение в прогнозировании движения. Чтобы улучшать ограничение режима пропуска и/или режима объединения, вектор движения может детализироваться посредством применения режима детализации векторов движения на стороне декодера (DMVR), режима извлечения двунаправленных оптических потоков (BDOF) и т.д. DMVR- и BDOF-режимы могут использоваться, когда истинное бипрогнозирование применяется к текущему блоку.
[116] Фиг. 8 является схемой для описания варианта осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) в истинном парном прогнозировании.
[117] DMVR представляет собой способ, в котором декодер выполняет прогнозирование движения посредством детализации информации движения соседнего блока. Когда DMVR применяется, декодер может извлекать детализированную информацию движения через сравнение затрат на основе эталона, сформированного посредством использования информации движения соседнего блока в режиме объединения/пропуска. В этом случае, точность прогнозирования движения может увеличиваться, и производительность сжатия может повышаться без дополнительной служебной информации.
[118] В настоящем раскрытии сущности, для удобства описания, главным образом описывается оборудование декодирования, но DMVR согласно варианту осуществления настоящего раскрытия сущности может выполняться идентичным способом даже в оборудовании кодирования.
[119] Ссылаясь на фиг. 8, оборудование декодирования может извлекать блоки прогнозирования (т.е. опорные блоки), идентифицированные посредством начальных векторов движения для направления списка 0 и списка 1 (или информации движения) (например, MV0 и MV1), и формировать эталон (или билатеральный шаблон) посредством взвешенной суммы (например, усреднения) извлеченных прогнозных выборок (этап 1). Здесь, начальные векторы движения (MV0 и MV1) могут представлять векторы движения, извлекаемые посредством использования информации движения соседнего блока в режиме объединения/пропуска.
[120] Помимо этого, оборудование декодирования может извлекать векторы движения (например, MV0' и MV1') для минимизации разности между эталоном и выборочной зоной опорного кадра через операцию сопоставления с шаблонами (этап 2). Здесь, выборочная зона может указывать соседнюю зону начального блока прогнозирования в опорном кадре, и выборочная зона может называться "соседней зоной", "опорной зоной", "зоной поиска", "диапазоном поиска", "пространством поиска" и т.д. Операция сопоставления с шаблонами может включать в себя операцию вычисления значения измерения затрат между эталоном и выборочной зоной опорного кадра. Например, сумма абсолютных разностей (SAD) может использоваться для измерения затрат. В качестве одного примера, в качестве функции затрат, может использоваться нормализованная SAD. В этом случае, затраты на сопоставление могут задаваться как SAD (T-mean(T), 2*P[x]-2*mean(P[x])). Здесь, T представляет эталон, и P[x] представляет блок в зоне поиска. Помимо этого, вектор движения для вычисления минимальных затрат на эталон для каждого из двух опорных кадров может рассматриваться как обновленный вектор движения (заменяющий начальный вектор движения). Как проиллюстрировано на фиг. 8, оборудование декодирования может формировать конечный результат билатерального прогнозирования (т.е. конечный блок билатерального прогнозирования) посредством использования обновленных векторов MV0' и MV1' движения. В качестве варианта осуществления, мультиитерация для извлечения обновленного (или нового) вектора движения может использоваться для получения конечного результата билатерального прогнозирования.
[121] В варианте осуществления, оборудование декодирования может вызывать DMVR-процесс, чтобы повышать точность начального прогнозирования с компенсацией движения (т.е. прогнозирования с компенсацией движения через традиционный режим объединения/пропуска). Например, оборудование декодирования может выполнять DMVR-процесс, когда режим прогнозирования текущего блока представляет собой режим объединения или режим пропуска, и билатеральное бипрогнозирование, при котором билатеральные опорные кадры расположены в противоположных направлениях на основе текущего кадра в порядке отображения, применяется к текущему блоку.
[122] Фиг. 9 является схемой для описания варианта осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) посредством использования суммы абсолютных разностей (SAD).
[123] Как описано выше, оборудование декодирования может измерять затраты на сопоставление посредством использования SAD в выполнении DMVR. В качестве варианта осуществления, на фиг. 9, в дальнейшем описывается способ для детализации вектора движения посредством вычисления средней суммы абсолютных разностей (MRSAD) между прогнозными выборками в двух опорных кадрах без формирования эталона. Другими словами, способ по фиг. 9 показывает вариант осуществления билатерального сопоставления с использованием MRSAD.
[124] Ссылаясь на фиг. 9, оборудование декодирования может извлекать смежный пиксел относительно пиксела (выборки), указываемого посредством вектора MV0 движения для направления списка 1 (L0) в опорном L0-кадре, и извлекать смежный пиксел относительно пиксела (выборки), указываемого посредством вектора MV1 движения для направления списка 1 (L1) в опорном L1-кадре. Помимо этого, оборудование декодирования может измерять затраты на сопоставление посредством вычисления MRSAD между L0-блоком прогнозирования (т.е. опорным L0-блоком), идентифицированным посредством вектора движения, указывающего смежный пиксел, извлекаемый в опорном L0-кадре, и L1-блоком прогнозирования (т.е. опорным L1-блоком), идентифицированным посредством вектора движения, указывающего смежный пиксел, извлекаемый в опорном L1-кадре. В этом случае, оборудование декодирования может выбирать точку поиска (т.е. зону поиска, имеющую минимальную SAD между L0-блоком прогнозирования и L1-блоком прогнозирования), имеющую минимальные затраты, в качестве пары детализированных векторов движения. Другими словами, пара детализированных векторов движения может включать в себя детализированный L0-вектор движения, указывающий пиксельную позицию (L0-блок прогнозирования), имеющую минимальные затраты в опорном L0-кадре, и детализированный L1-вектор движения, указывающий пиксельную позицию (L1-блок прогнозирования), имеющую минимальные затраты в опорном L1-кадре.
[125] В качестве варианта осуществления, при вычислении затрат на сопоставление, после того, как зона поиска опорного кадра задается, одностороннее прогнозирование может выполняться посредством использования регулярного 8-отводного интерполяционного DCTIF-фильтра. Дополнительно, в качестве одного примера, 16-битовая точность может использоваться для вычисления MRSAD, и операции отсечения и/или округления могут не применяться перед вычислением MRSAD с учетом внутреннего буфера.
[126] Когда истинное бипрогнозирование применяется к текущему блоку, как описано выше, BDOF может использоваться для того, чтобы детализировать бипрогнозный сигнал. Когда бипрогнозирование применяется к текущему блоку, двунаправленный оптический поток (BDOF) может использоваться для того, чтобы вычислять улучшенную информацию движения и формировать прогнозные выборки на основе вычисленной информации движения. Например, BDOF может применяться на уровне субблока 4×4. Другими словами, BDOF может выполняться в единицах субблоков 4×4 в текущем блоке. Альтернативно, BDOF может применяться только к компоненту сигнала яркости. Альтернативно, BDOF может применяться только к компоненту сигнала цветности и применяться к компоненту сигнала яркости и компоненту сигнала цветности.
[127] BDOF-режим основан на понятии оптического потока при условии, что движение объекта является плавным, как указано в силу названия "BDOF-режима". Детализация (vx, vy) движения может вычисляться посредством минимизации разностного значения между прогнозными L0- и L1-выборками для каждого из субблоков 4×4. Помимо этого, детализация движения может использоваться для регулирования выборочных значений бипрогнозирования в субблоках 4×4.
[128] Более конкретно, при детализации прогнозного сигнала посредством применения BDOF, сначала могут вычисляться горизонтальные и вертикальные градиенты прогнозных L0-выборок и прогнозных L1-выборок. В этом случае, горизонтальные и вертикальные градиенты могут вычисляться на основе разности двух смежных выборок, позиционированных рядом с прогнозной выборкой (i, j), и вычисляться так, как показано в нижеприведенном уравнении 1.
[129] уравнение 1
[130] Здесь, представляет горизонтальный градиент, и представляет вертикальный градиент. Дополнительно, представляет прогнозное значение в координате (i, j) прогнозной выборки в списке k (k=0, 1).
[131] Затем, автокорреляция и взаимная корреляция горизонтальных и вертикальных градиентов могут вычисляться так, как показано в нижеприведенных уравнениях 2 и 3.
[132] уравнение 2
[133] уравнение 3
[134] Здесь, Ω представляет окно 6×6, смежное с субблоками 4×4.
[135] Затем, детализация (vx, vy) движения может вычисляться посредством использования автокорреляции и взаимной корреляции и вычисляться так, как показано в нижеприведенном уравнении 4.
[136] уравнение 4
[137] Здесь, , и представляет функцию минимального уровня.
[138] Затем, b(x, y) для детализации прогнозной BDOF-выборки может вычисляться так, как показано в нижеприведенном уравнении 5, на основе градиента и детализации движения.
[139] уравнение 5
[140] Помимо этого, в завершение, прогнозные BDOF-выборки (т.е. прогнозные выборочные значения, детализированные посредством применения BDOF) могут вычисляться так, как показано в нижеприведенном уравнении 6.
[141] уравнение 6
[142] Между тем, можно видеть, что DMVR и BDOF в качестве технологий, которые выполняют прогнозирование посредством детализации информации движения (в этом случае, истинное бипрогнозирование представляет случай выполнения прогнозирования/компенсации движения в опорном кадре другого направления на основе кадра текущего блока) во время применения истинного бипрогнозирования представляет собой технологию детализации, имеющую аналогичное понятие в том, что предполагается то, что движение объекта в кадре выполняется с предварительно определенной скоростью и в предварительно определенном направлении. Тем не менее, когда истинное бипрогнозирование выполняется, поскольку условие для применения DMVR и условие для применения BDOF отличаются друг от друга, процесс проверки условий многократно несколько раз для каждой технологии должен выполняться. Следовательно, настоящее раскрытие сущности предлагает способ, который может повышать эффективность с точки зрения сложности декодера и производительность за счет улучшения процесса проверки условия при определении режима прогнозирования, применяемого к текущему блоку.
[143] Нижеприведенная таблица 2 показывает условие для применения DMVR во время традиционного истинного бипрогнозирования. Когда все перечисленные ниже условия удовлетворяются, DMVR может применяться.
[144] Табл. 2
- 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) (здесь, пример порогового значения может диверсифицироваться)
[145] Ссылаясь на таблицу 2, 1) то, следует или нет применять DMVR, может определяться на основе информации флага (например, sps_dmvr_enabled_flag), передаваемой в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Здесь, информация флага (например, sps_dmvr_enabled_flag) может представлять то, активируется или нет DMVR на основе истинного бипрогнозирования. Например, когда sps_dmvr_enabled_flag равен 1 (т.е. когда DMVR на основе истинного бипрогнозирования активируется), может определяться то, что условие для того, активируется или нет DMVR, удовлетворяется.
[146] 2) То, следует или нет применять DMVR, может определяться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. Например, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), может определяться то, что условие для того, следует или нет применять режим объединения/режим пропуска, удовлетворяется.
[147] 3) То, следует или нет применять DMVR, может определяться на основе информации флага (например, mmvd_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения с разностью векторов движения (MMVD). Например, когда mmvd_flag равен 0 (т.е. когда MMVD-режим не используется), может определяться то, что условие для того, следует или нет применять MMVD-режим, удовлетворяется.
[148] 4) То, следует или нет применять DMVR, может определяться на основе того, используется или нет билатеральное прогнозирование (бипрогнозирование). Здесь, билатеральное прогнозирование может представлять взаимное прогнозирование, выполняемое на основе опорных кадров, которые существуют в различных направлениях на основе текущего кадра. Например, когда predFlagL0[0][0]=1 и predFlagL0[1][1]=1, может определяться то, что билатеральное прогнозирование применяется, и может определяться то, что условие для того, следует или нет выполнять билатеральное прогнозирование, удовлетворяется.
[149] 5) То, следует или нет применять DMVR, может определяться на основе того, выполняется или нет истинное бипрогнозирование, и расстояние между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу. Другими словами, может определяться то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Например, когда DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1])=0, определяется то, что истинное бипрогнозирование выполняется, и расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, чтобы определять то, что удовлетворяется условие для того, являются или нет расстояния билатеральных опорных кадров идентичными друг другу.
[150] 6) То, следует или нет применять DMVR, может определяться на основе того, больше или нет высота текущего блока порогового значения. Например, когда высота текущего блока равна или выше 8, может определяться то, что условие по размеру (высоте) текущего блока удовлетворяется.
[151] 7) То, следует или нет применять DMVR, может определяться на основе того, больше или нет размер текущего блока порогового значения. Например, когда размер текущего блока, высота*ширина равна или выше 64, может определяться то, что условие по размеру текущего блока (высота*ширина) удовлетворяется.
[152] Оборудование декодирования может определять то, следует или нет применять DMVR, согласно тому, удовлетворяются или нет условия 1)-7) вышеприведенной таблицы 2. Другими словами, когда условия 1)-7) вышеприведенной таблицы 2 удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR, и когда даже любое из условий вышеприведенной таблицы 2 не удовлетворяется, оборудование декодирования не применяет DMVR.
[153] Нижеприведенная таблица 3 показывает условие для применения BDOF во время традиционного истинного бипрогнозирования. Когда все перечисленные ниже условия удовлетворяются, BDOF может применяться.
[154] Табл. 3
- 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: subblock andand w>=8 andand h>=8
- GbiIdx[xCb][yCb] равен 0: когда GBi-индекс представляет собой значение по умолчанию
- cIdx равен 0: применяется только к сигналу яркости
[155] Ссылаясь на вышеприведенную таблицу 3, 1) то, следует или нет применять BDOF, может определяться на основе информации флага (например, sps_bdof_enabled_flag), передаваемой в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Здесь, информация флага (например, sps_dmvr_enabled_flag) может представлять то, активируется или нет BDOF на основе истинного бипрогнозирования. Например, когда sps_bdof_enabled_flag равен 1 (т.е. когда BDOF на основе истинного бипрогнозирования активируется), может определяться то, что условие для того, активируется или нет BDOF, удовлетворяется.
[156] 2) То, следует или нет применять BDOF, может определяться на основе того, используется или нет билатеральное прогнозирование. Здесь, билатеральное прогнозирование может представлять взаимное прогнозирование, выполняемое на основе опорных кадров, которые существуют в различных направлениях на основе текущего кадра. Например, когда predFlagL0] и predFlagL1 равны 1, может определяться то, что билатеральное прогнозирование применяется, и может определяться то, что условие для того, следует или нет выполнять билатеральное прогнозирование, удовлетворяется.
[157] 3) То, следует или нет применять BDOF, может определяться на основе того, выполняется или нет истинное бипрогнозирование. Другими словами, может определяться то, расположены или нет опорный L0-кадр (т.е. опорный кадр в списке L0 опорных кадров) и опорный L1-кадр (т.е. опорный кадр в списке L1 опорных кадров) во временно различных направлениях на основе текущего кадра. Например, когда DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0, определяется то, что билатеральные опорные кадры расположены в различных направлениях на основе текущего кадра, чтобы определять то, что удовлетворяется условие для того, выполняется или нет истинное vi-прогнозирование.
[158] 4) То, следует или нет применять BDOF, может определяться на основе того, используется или нет аффинный режим. Здесь, то, используется или нет аффинный режим, может определяться посредством извлечения MotionModelIdc. Например, когда извлеченный MotionModelIdc равен 0, может определяться то, что аффинный режим не используется, и в этом случае, может определяться то, что условие для того, следует или нет применять аффинный режим, удовлетворяется.
[159] 5) То, следует или нет применять BDOF, может определяться на основе информации флага (например, merge_subblock_flag), представляющей то, выполняется или нет взаимное прогнозирование в единицах субблоков. Например, когда merge_subblock_flag равен 0 (т.е. когда режим объединения не применяется в единицах субблоков), может определяться то, что условие для того, следует или нет применять режим объединения в единицах субблоков, удовлетворяется.
[160] 6) То, следует или нет применять BDOF, может определяться на основе того, существует или нет GBi. Здесь, то, существует или нет GBi, может определяться на основе информации GBi-индекса (например, GbiIdx). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), может определяться то, что условие для того, существует или нет GBi, удовлетворяется.
[161] 7) То, следует или нет применять BDOF, может определяться на основе того, представляет или нет текущий блок собой блок сигналов яркости, включающий в себя компонент сигнала яркости. Например, когда индекс (например, cIdx), указывающий то, представляет текущий блок собой или нет блок сигналов яркости (т.е. когда текущий блок представляет собой блок сигналов яркости), может определяться то, что условие для того, представляет текущий блок собой или нет блок сигналов яркости, удовлетворяется.
[162] Оборудование декодирования может определять то, следует или нет применять DMVR, согласно тому, удовлетворяются или нет условия 1)-7) вышеприведенной таблицы 3. Другими словами, когда условия 1)-7) вышеприведенной таблицы 3 удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF и когда даже любое из условий вышеприведенной таблицы 3 не удовлетворяется, оборудование декодирования не применяет BDOF.
[163] Здесь, GBi, например, может представлять обобщенное бипрогнозирование, при котором различные весовые коэффициенты могут применяться к L0-прогнозированию и L1-прогнозированию и могут представляться посредством использования GbiIdx. GbiIdx может существовать в случае бипрогнозирования и представлять весовой индекс бипрогнозирования. В настоящем раскрытии сущности, информация движения дополнительно может включать в себя GbiIdx. Например, GbiIdx может извлекаться из соседнего блока в случае режима объединения или передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования через синтаксический элемент GbiIdx (например, gbi_idx) в случае MVP-режима. В качестве одного примера, GbiIdx может указывать весовой коэффициент w, применяемый к L1-прогнозированию, и в этом случае, весовой коэффициент (1-w) может применяться к L0-прогнозированию. В качестве другого примера, GbiIdx может указывать весовой коэффициент w, применяемый к L0-прогнозированию, и в этом случае, весовой коэффициент 1-w может применяться к L1-прогнозированию. Весовой коэффициент, указываемый посредством GbiIdx, например, может конфигурироваться различными способами и может конфигурироваться так, как показано в нижеприведенных таблицах 4 и 5.
[164] Табл. 4
[165] Табл. 5
[166] Ссылаясь на вышеприведенные таблицы 4 и 5, весовой коэффициент w1 может представлять весовой коэффициент, применяемый к L1-прогнозированию, и значение GbiIdx может указывать весовой коэффициент w1, применяемый к L1-прогнозированию. Например, согласно варианту осуществления таблицы 4, когда значение GbiIdx представляет 0, весовой коэффициент в 1/2 может применяться к L1-прогнозированию, и весовой коэффициент в 1/2, который составляет значение (1-w1), может применяться к L0-прогнозированию. Согласно варианту осуществления, весовой коэффициент w1 может представлять весовой коэффициент, применяемый к L0-прогнозированию, и в этом случае, значение GbiIdx может указывать весовой коэффициент w1, применяемый к L0-прогнозированию.
[167] Как описано выше, некоторые условия применения DMVR и BDOF являются идентичными, и некоторые являются аналогичными или отличаются. В традиционной схеме, поскольку проверка состояния выполняется для каждой технологии, даже когда условие является идентичным, сложность для выполнения бипрогнозирования увеличивается. Следовательно, настоящее раскрытие сущности предлагает эффективное условие для применения DMVR и BDOF во время бипрогнозирования.
[168] Когда режим объединения/пропуска сравнивается с AMVP-режимом, режим объединения/пропуска имеет относительно меньшую точность, чем AMVP-режим, и как результат, детализация информации движения посредством использования способа DMVR является эффективной с точки зрения производительности. Тем не менее, BDOF-режим может применяться даже в AMVP-режиме в дополнение к режиму объединения/пропуска в отличие от DMVR, и по сути, сложность для выполнения BDOF по сравнению с производительностью может увеличиваться при применении BDOF в AMVP-режиме. Соответственно, вариант осуществления предлагает способ для применения даже BDOF в режиме объединения/пропуска, аналогично DMVR.
[169] В этом случае, в качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 6.
[170] Табл. 6
- 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.
[171] Ссылаясь на вышеприведенную таблицу 6, то, следует или нет применять BDOF, может определяться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. Например, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), может определяться то, что условие для того, следует или нет применять режим объединения/режим пропуска, удовлетворяется. Соответственно, BDOF также может применяться в режиме объединения/пропуска, аналогично DMVR.
[172] Другими словами, в варианте осуществления, вместе с условием, применяемым в случае режима объединения/пропуска, то, следует или нет применять BDOF, может определяться на основе условия, применяемого, когда BDOF активируется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого, когда истинное бипрогнозирование выполняется, условия, применяемого, когда аффинное прогнозирование используется, условия, применяемого, когда режим объединения на основе субблоков не применяется, условия, применяемого, когда GBi-индекс составляет значение по умолчанию, и условия, применяемого, когда текущий блок представляет собой блок сигналов яркости.
[173] Соответственно, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 6, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 6, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 6, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[174] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 6, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[175] Между тем, когда условия, перечисленные в варианте осуществления, являются идентичными условиям, описанным в вышеприведенных таблицах 2 и 3, подробная работа или смысл аналогично применяются, и как результат, подробное описание для каждого условия опускается. Дополнительно, дублированное содержимое даже в вариантах осуществления, которые описываются ниже, опускается.
[176] Оборудование кодирования/декодирования может быть сконфигурировано посредством различных аппаратных средств, и предпочтение по отношению сложности к производительности может отличаться. Следовательно, вариант осуществления предлагает способ, который может детализировать информацию движения посредством применения DMVR даже в AMVP-режиме в дополнение к режиму объединения/пропуска.
[177] В этом случае, в качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 7.
[178] Табл. 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.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
[179] Ссылаясь на вышеприведенную таблицу 7, процесс определения того, следует или нет применять DMVR, может опускаться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. В связи с этим, посредством опускания условия для того, следует или нет применять режим объединения/режим пропуска, DMVR может применяться даже в AMVP-режиме в дополнение к режиму объединения/режиму пропуска.
[180] Согласно вышеприведенной таблице 7, то, следует или нет применять DMVR, может определяться на основе условия, применяемого, когда DMVR активируется, условия, применяемого, когда MMVD-режим не используется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условия, применяемого, когда высота текущего блока равна или выше 8, и условия, применяемого, когда размер (высота*ширина) текущего блока равен или выше 64.
[181] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 7, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 7, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 7, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[182] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 7, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[183] Между тем в качестве варианта осуществления настоящего раскрытия сущности, как DMVR, так и BDOF могут применяться к режиму нормального объединения. Другими словами, DMVR и BDOF могут применяться, когда режим усовершенствованного временного прогнозирования векторов движения (ATMVP) не используется, аффинный режим не используется, и CPR не используется. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 8.
[184] Табл. 8
- 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: subblock andand w>=8 andand h>=8
[185] Ссылаясь на вышеприведенную таблицу 8, то, удовлетворяются или нет условие, применяемое, когда аффинный режим не используется (например, когда MotionModelIdc равен 0), и условие, применяемое, когда режим объединения на основе субблоков не используется (например, когда merge_subblock_flag равен 0), определяется, чтобы применять DMVR только в режиме нормального объединения.
[186] Дополнительно, в варианте осуществления, вместе с условием для того, используется или нет аффинный режим, и условием для того, используется или нет режим объединения на основе субблоков, то, следует или нет применять DMVR, может определяться на основе условия, применяемого, когда DMVR активируется, условия, применяемого, когда режим объединения/режим пропуска используется, условия, применяемого, когда MMVD-режим не используется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условия, применяемого, когда высота текущего блока равна или выше 8, и условия, применяемого, когда размер (высота*ширина) текущего блока равен или выше 64.
[187] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 8, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 8, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 8, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[188] Условие для того, следует или нет применять режим объединения на основе субблоков (например, merge_subblock_flag), из условий применения вышеприведенной таблицы 8, включает в себя дублированное условие из числа традиционных условий применения DMVR. Соответственно, в качестве варианта осуществления настоящего раскрытия сущности, условие, дублированное с условием (например, merge_subblock_flag) для того, следует или нет применять режим объединения на основе субблоков, может удаляться. В этом случае, соответствующее условие может удаляться, как предложено в нижеприведенной таблице 9.
[189] Табл. 9
- 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.
- MotionModelIdc[xCb][yCb] равен 0: !аффинный режим
- merge_subblock_flag[xCb][yCb] равен 0: subblock andand w>=8 andand h>=8
[190] Ссылаясь на вышеприведенную таблицу 9, режим объединения на основе субблоков может применяться, когда размер текущего блока равен или выше 8×8. Соответственно, поскольку условие (например, merge_subblock_flag=0) для того, следует или нет применять режим объединения на основе субблоков, включает в себя условие, связанное с размером текущего блока, условия (например, CbHeight и CbHeight*CbWidth), связанные с размером текущего блока, из условий применения традиционной DMVR могут исключаться. Например, условие для того, равна или выше либо нет высота текущего блока 8, и условие для того, равна или выше либо нет высота*ширина текущего блока 64, может опускаться, и то, следует или нет применять DMVR, может определяться посредством использования оставшихся условий, перечисленных в вышеприведенной таблице 9.
[191] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 9, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 9, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 9, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[192] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 8 или 9, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[193] В качестве варианта осуществления настоящего раскрытия сущности, чтобы увеличивать точность вектора движения при низкой сложности, когда размер блока является небольшим, технологии детализации, такие как DMVR и BDOF, могут не применяться. В традиционной схеме, технология детализации может применяться, когда текущий блок представляет собой блок, который равен или выше 8×8, и в случае DMVR технологий детализации, когда размер текущего блока является большим, детализация применяется посредством разделения текущего блока на единицы 16×16, и как результат, DMVR может не применяться к блоку, который меньше 16×16. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 10.
[194] Табл. 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.
- CbHeight превышает или равен 16.
- CbWidth превышает или равен 16.
[195] Ссылаясь на вышеприведенную таблицу 10, DMVR может не применяться к блоку, который меньше 16×16, посредством изменения условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 16, и условие, применяемое, когда ширина текущего блока (например, CbWidth) равна или выше 16. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда размер текущего блока равен или выше 16×16, DMVR может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются (т.е. когда размер текущего блока меньше 16×16), DMVR может не применяться.
[196] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 10.
[197] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 10, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 10, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 10, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[198] В качестве варианта осуществления настоящего раскрытия сущности, когда текущий блок представляет собой блок, который меньше 16×16, BDOF может не применяться в дополнение к DMVR. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 11.
[199] Табл. 11
- 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.
- CbHeight превышает или равен 16
- CbWidth превышает или равен 16
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
[200] Ссылаясь на вышеприведенную таблицу 11, BDOF может не применяться к блоку, который меньше 16×16, посредством изменения условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 16, и условие, применяемое, когда ширина текущего блока (например, CbWidth) равна или выше 16. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда размер текущего блока равен или выше 16×16), BDOF может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются (т.е. когда размер текущего блока меньше 16×16), BDOF может не применяться.
[201] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 11.
[202] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 11, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 11, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 11, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[203] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 10 или 11, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[204] Как описано выше, DMVR применяется, когда расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, в то время как BDOF непрерывно применяется в случае истинного бипрогнозирования, даже если расстояния между текущим кадром и билатеральными опорными кадрами отличаются друг от друга. Соответственно, настоящее раскрытие сущности предлагает способ, который может интегрально применять условие, связанное с расстоянием между билатеральными опорными кадрами в DMVR и BDOF, чтобы повышать эффективность кодирования.
[205] В качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 12.
[206] Табл. 12
- 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.
[207] Ссылаясь на вышеприведенную таблицу 12, условие, связанное с расстоянием до опорного кадра, из условий применения BDOF (например, DiffPicOrderCnt), изменяется, чтобы аналогично применять соответствующее условие к DMVR и BDOF. Например, то, равно или нет DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) 0, определяется, чтобы определять то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Другими словами, BDOF может применяться только тогда, когда расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу. В связи с этим, когда условие, при котором истинное бипрогнозирование выполняется, и расстояния между билатеральными опорными кадрами являются идентичными друг другу, добавляется, диапазон BDOF-применения ограничен, за счет этого снижая сложность декодирования.
[208] Дополнительно, в варианте осуществления, вместе с условиями (например, DiffPicOrderCnt), связанными с расстоянием до опорного кадра, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 12.
[209] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 12, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 12, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 12, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[210] В качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 13.
[211] Табл. 13
- 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
- CbHeight превышает или равен 8
- CbHeight*CbWidth превышает или равен 64
[212] Ссылаясь на вышеприведенную таблицу 13, условие, связанное с расстоянием до опорного кадра, из условий применения DMVR (например, DiffPicOrderCnt), изменяется, чтобы аналогично применять соответствующее условие к DMVR и BDOF. Например, определяется то, меньше или нет DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) 0, чтобы определять то, выполняется или нет истинное бипрогнозирование, при котором билатеральные опорные кадры расположены в различных направлениях на основе текущего кадра. Другими словами, DMVR может непрерывно применяться в случае истинного бипрогнозирования, даже если расстояния между текущим кадром и билатеральными опорными кадрами не являются идентичными между собой. В связи с этим, когда условие для того, выполняется или нет истинное бипрогнозирование, применяется, вектор движения, извлекаемый с учетом сложности декодирования, может использоваться без масштабирования, даже когда расстояния между билатеральными опорными кадрами отличаются.
[213] Дополнительно, в варианте осуществления, вместе с условием (например, DiffPicOrderCnt), связанным с расстоянием до опорного кадра, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 13.
[214] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 13, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 13, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 13, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[215] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 12 или 13, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[216] Между тем, в каждом опорном блоке, может возникать случай, в котором компенсация движения выполняется посредством взвешенной суммы посредством изменения света. В этом случае, поскольку явление может определяться посредством GBi или компенсации локальной освещенности (LIC), условия применения DMVR и BDOF могут определяться с учетом GBi- или LIC-условия.
[217] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять DMVR с учетом GBi- и LIC-условий. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 14.
[218] Табл. 14
- 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.
[219] Ссылаясь на вышеприведенную таблицу 14, то, следует или нет применять DMVR, может определяться посредством добавления GBi-условия (например, GbiIdx) и LIC-условия (например, LICFlag). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), определяется то, что условие для того, существует или нет GBi, удовлетворяется, и когда LICFlag равен 0 (т.е. когда LIC существует), может определяться то, что условие для того, существует или нет LIC, удовлетворяется.
[220] Дополнительно, в варианте осуществления, вместе с GBi-условием (например, GbiIdx) и LIC-условием (например, LICFlag), то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 14.
[221] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 14, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 14, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 14, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[222] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять BDOF с учетом GBi- и LIC-условий. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 15.
[223] Табл. 15
- 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.
[224] Согласно вышеприведенной таблице 15, то, следует или нет применять BDOF, может определяться посредством добавления LIC-условия (например, LICFlag) вместе с традиционным GBi-условием (например, GbiIdx). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), определяется то, что условие для того, существует или нет GBi, удовлетворяется, и когда LICFlag равен 0 (т.е. когда LIC существует), может определяться то, что условие для того, существует или нет LIC, удовлетворяется.
[225] Соответственно, в варианте осуществления, вместе с GBi-условием (например, GbiIdx) и LIC-условием (например, LICFlag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 15.
[226] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 15, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 15, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 15, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[227] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 14 или 15, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[228] Между тем, поскольку DMVR и BDOF извлекают информацию движения посредством процесса детализации в оборудовании декодирования, возникает проблема сложности декодирования. Соответственно, настоящее раскрытие сущности предлагает способ, который может уменьшать сложность декодирования посредством предоставления возможности определения того, следует или нет применять DMVR и BDOF, посредством использования индекса объединения. В этом случае, поскольку как DMVR, так и BDOF выполняют детализацию вектора движения в ограниченном диапазоне, преимущество детализации может уменьшаться, когда вектор движения является неточным. Соответственно, настоящее раскрытие сущности предлагает способ, который может ограниченно применять DMVR и BDOF только тогда, когда значение, указывающее индекс объединения, является небольшим с учетом эффективности детализации.
[229] Здесь, индекс объединения может представлять собой синтаксический элемент, передаваемый в служебных сигналах из оборудования кодирования в оборудование декодирования. Например, оборудование кодирования/декодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока, когда режим объединения/режим пропуска применяется к текущему блоку. В этом случае, оборудование кодирования может выбирать оптимальный возможный вариант объединения из возможных вариантов объединения, включенных в список возможных вариантов объединения, на основе функции затрат на искажение в зависимости от скорости передачи (RD), и передавать в служебных сигналах информацию индекса объединения, указывающую выбранный возможный вариант объединения, в оборудование декодирования. Оборудование декодирования может выбирать возможный вариант объединения, применяемый к текущему блоку, на основе списка возможных вариантов объединения и информации индекса объединения.
[230] В качестве варианта осуществления настоящего раскрытия сущности, способ для определения того, следует или нет применять DMVR посредством использования индекса объединения, может включать в себя условия, представленные в нижеприведенной таблице 16.
[231] Табл. 16
- 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.
[232] Ссылаясь на вышеприведенную таблицу 16, то, следует или нет применять DMVR, может определяться посредством добавления условия по индексу объединения (например, merge_idx). Например, когда индекс объединения (например, merge_idx) меньше 2, может определяться то, что условие по индексу объединения удовлетворяется. Здесь, значение (пороговое значение) индекса объединения может задаваться равным 2, но это представляет собой только один пример, и соответствующее значение может изменяться согласно эффективности кодирования.
[233] Соответственно, в варианте осуществления, вместе с условием по индексу объединения (например, merge_idx), то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 16.
[234] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 16, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 16, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 16, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[235] В качестве варианта осуществления настоящего раскрытия сущности, способ для определения того, следует или нет применять BDOF посредством использования индекса объединения, может включать в себя условия, представленные в нижеприведенной таблице 17.
[236] Табл. 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.
- GbiIdx[xCb][yCb] равен 0.
-! (merge_flag[xCb][yCb] равен 1 andand merge_idx[xCb][yCb]>=2)
- cIdx равен 0.
[237] Ссылаясь на вышеприведенную таблицу 17, то, следует или нет применять BDOF, может определяться посредством добавления условия для того, применяется или нет режим объединения/режим пропуска (например, merge_flag), и условия по индексу объединения (например, merge_idx). Например, когда merge_flag не равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), и merge_idex не равен или превышает 2, только если значение индекса объединения является небольшим, может определяться то, что условие для ограниченного применения BDOF удовлетворяется. Другими словами, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), и merge_idex меньше 2, только если значение индекса объединения является небольшим, может определяться то, что условие по индексу объединения удовлетворяется, и BDOF может применяться. Здесь, значение (пороговое значение) индекса объединения может задаваться равным 2, но это представляет собой только один пример, и соответствующее значение может изменяться согласно эффективности кодирования.
[238] Другими словами, в варианте осуществления, вместе с условием для того, применяется или нет режим объединения/режим пропуска (например, merge_flag), и условием по индексу объединения (например, merge_idx), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 17.
[239] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 17, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 17, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 17, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[240] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 16 или 17, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[241] Между тем в режиме объединения/пропуска, информация движения может детализироваться через MMVD, и в этом случае, поскольку сложность декодирования увеличивается, DMVR не выполняется, когда применяется MMVD. Тем не менее, когда DMVR применяется без учета MMVD, DMVR может применяться без MMVD-условия с учетом повышения производительности. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 18.
[242] Табл. 18
- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
[243] Ссылаясь на вышеприведенную таблицу 18, условие (например, mmvd_flag) для того, следует или нет применять MMVD-режим, из условий применения традиционной DMVR, может исключаться. Другими словами, процесс определения того, равен или нет mmvd_flag 0 (т.е. не используется или используется MMVD-режим), может опускаться, и то, следует или нет применять DMVR, может определяться на основе условий, перечисленных в вышеприведенной таблице 17.
[244] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 18, (за исключением условия (например, mmvd_flag) для того, следует или нет применять MMVD-режим), и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 18, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 18, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[245] Дополнительно, в отличие от варианта осуществления таблицы 18, описанной выше, когда информация движения детализируется через MMVD в режиме объединения/пропуска, то, следует или нет выполнять BDOF, может определяться с учетом сложности декодирования. Соответственно, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять BDOF, с учетом MMVD-условия. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 19.
[246] Табл. 19
- 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.
[247] Ссылаясь на вышеприведенную таблицу 19, BDOF может не применяться, когда информация движения детализируется через MMVD посредством добавления условия (например, mmvd_flag) для того, следует или нет применять MMVD-режим. Например, когда mmvd_flag равен 0 (т.е. когда MMVD-режим не используется), может определяться то, что условие для того, следует или нет применять MMVD-режим, удовлетворяется.
[248] Соответственно, в варианте осуществления, вместе с условием (например, mmvd_flag) для того, следует или нет применять MMVD-режим, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 19.
[249] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 19, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 19, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 19, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[250] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 18 или 19, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[251] Между тем, в случае AMVP, технология адаптивного разрешения векторов движения (AMVR) может применяться. В этом случае, когда разрешение вектора движения является высоким, т.е. когда целочисленнопелное округление или 4 целочисленнопелных округления предоставляются, может не быть уместным применять технологию в случае BDOF выполнения детализации в ограниченной зоне. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять выполнение BDOF согласно AMVR-условию. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 20.
[252] Табл. 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.
- amvr_flag!=0
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
[253] Ссылаясь на вышеприведенную таблицу 20, то, следует или нет применять 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 может быть ограничен таким образом, что он не применяется.
[254] Соответственно, в варианте осуществления, вместе с AMVR-условием (например, amvr_flag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 20.
[255] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 20, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 20, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 20, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[256] Между тем, DMVR и BDOF могут передаваться в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Нижеприведенная таблица 21 показывает один пример синтаксического элемента, указывающего то, активируется или нет DMVR, передаваемая в служебных сигналах через SPS-cинтаксис, и то, активируется или нет BDOF.
[257] Табл. 21
[258] Ссылаясь на вышеприведенную таблицу 21, sps_dmvr_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе, и то, активируется или нет DMVR на основе истинного бипрогнозирования, может представляться на основе синтаксического элемента. Например, в случае если sps_dmvr_enabled_flag равен 1, случай может указывать то, что DMVR на основе истинного бипрогнозирования активируется, и в случае, если sps_dmvr_enabled_flag равен 0, случай может указывать то, что DMVR на основе истинного бипрогнозирования не активируется.
[259] Дополнительно, sps_bdof_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе, и то, активируется или нет BDOF на основе истинного бипрогнозирования, может представляться на основе синтаксического элемента. Например, в случае если sps_bdof_enabled_flag равен 1, случай может указывать то, что BDOF на основе истинного бипрогнозирования активируется, и в случае, если sps_bdof_enabled_flag равен 0, случай может указывать то, что BDOF на основе истинного бипрогнозирования не активируется.
[260] Как показано в таблице 21, условия применения DMVR и BDOF могут проверяться посредством использования синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR, и синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF.
[261] Фиг. 10 иллюстрирует один пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[262] Как показано в таблице 21, способ по фиг. 10 может применяться при использовании синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR, и синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF.
[263] Ссылаясь на фиг. 10, оборудование декодирования может извлекать информацию движения (например, вектор движения, индекс опорного кадра и т.д.) для текущего блока (S1000).
[264] Оборудование декодирования может проверять применение DMVR (S1010). В этом случае, условие применения DMVR может проверяться на основе синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR. Например, когда DMVR активируется (например, когда sps_dmvr_enabled_flag равен 1), условие применения DMVR может проверяться.
[265] Оборудование декодирования может определять то, следует или нет применять DMVR-процесс, согласно тому, удовлетворяется или нет условие применения DMVR (S1020).
[266] Когда все условия применения DMVR удовлетворяются, оборудование декодирования может извлекать детализированную информацию движения посредством применения DMVR-процесса (S1030). Когда, по меньшей мере, одно из условий применения DMVR не удовлетворяется, оборудование декодирования может не применять DMVR-процесс.
[267] Оборудование декодирования может извлекать прогнозные выборки текущего блока на основе извлекаемой информации движения (не детализированной), когда детализированная информация движения или DMVR, извлекаемая при применении DMVR, не применяется (S1040).
[268] Помимо этого, оборудование декодирования может проверять условие применения BDOF (S1050). В этом случае, условие применения BDOF DMVR может проверяться на основе синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF. Например, когда DMVR активируется (например, когда sps_bdof_enabled_flag равен 1), условие применения DMVR может проверяться.
[269] Когда все условия применения BDOF удовлетворяются, оборудование декодирования может детализировать прогнозные выборки посредством применения BDOF-процесса (S1070). Когда, по меньшей мере, одно из условий применения BDOF не удовлетворяется, оборудование декодирования может не применять BDOF-процесс.
[270] Оборудование декодирования может извлекать остаточные выборки для текущего блока (S1080) и извлекать восстановленные выборки на основе детализированных прогнозных выборок, извлекаемых при применении остаточных выборок, и BDOF или прогнозных выборок (не детализированных), извлекаемых при неприменении BDOF (S1090).
[271] Настоящее раскрытие сущности предлагает различные варианты осуществления, которые могут повышать эффективность кодирования и уменьшать сложность посредством гармонизации взаимных условий применения DMVR и BDOF во время применения DMVR и BDOF, как описано выше. При проверке условий применения DMVR и BDOF согласно вариантам осуществления настоящего раскрытия сущности и применения условий применения в процесс декодирования, соответствующие условия могут отдельно проверяться и применяться, но условия применения могут проверяться сразу, чтобы повышать эффективность кодирования. Другими словами, настоящее раскрытие сущности предлагает способ, который может интегрировать и проверять условия применения DMVR и BDOF сразу.
[272] В качестве варианта осуществления настоящего раскрытия сущности, информация (например), указывающая то, следует или нет применять детализацию в оборудовании декодирования в синтаксисе наборов параметров последовательности (SPS), передается в служебных сигналах, чтобы выполнять процесс проверки условия применения DMVR/BDOF. Затем, таблица 22 показывает один пример синтаксического элемента (например, sps_refinement_enabled_flag), представляющего то, следует или нет применять детализацию в оборудовании декодирования, передаваемого в служебных сигналах через SPS-cинтаксис.
[273] Табл. 22
[274] Ссылаясь на вышеприведенную таблицу 22, 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.
[275] Фиг. 11 и 12 иллюстрируют другой пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.
[276] Способ по фиг. 11 и способ по фиг. 12 могут применяться, когда используется синтаксический элемент (например, sps_refinement_enabled_flag), представляющий то, является или нет детализация применимой в оборудовании декодирования, как показано в вышеприведенной таблице 22. Дополнительно, описание дублированного содержимого по фиг. 11 и 12 с фиг. 10, описанным выше, опускается.
[277] Ссылаясь на фиг. 11, можно видеть, что условия применения проверяются сразу на предыдущей стадии без проверки соответствующих условий применения DMVR и BDOF посредством сравнения с вышеприведенным процессом по фиг. 10. В качестве варианта осуществления, на этапе S1110 по фиг. 11, оборудование декодирования может проверять условие применения детализации. В этом случае, условие применения детализации может проверяться на основе sps_refinement_enabled_flag, показанного в вышеприведенной таблице 22. Например, оборудование декодирования может получать синтаксический элемент sps_dmvr_enabled_flag, представляющий то, активируется или нет DMVR, и синтаксический элемент sps_bdof_enabled_flag, представляющий то, активируется или нет BDOF тогда, когда sps_refinement_enabled_flag равен 1, и проверять условия применения DMVR и BDOF на основе полученных синтаксических элементов.
[278] Дополнительно, ссылаясь на фиг. 12, условия применения проверяются сразу на предыдущей стадии без проверки соответствующих условий применения DMVR и BDOF посредством сравнения с вышеприведенным процессом по фиг. 10, и простой процесс проверки (условие применения BDOF) может выполняться относительно другого условия. В качестве варианта осуществления, на этапе S1210 по фиг. 12, оборудование декодирования может проверять условие применения детализации. После этого, на этапе S1250 по фиг. 12, оборудование декодирования дополнительно может просто проверять условие применения BDOF, имеющего условие, отличающееся от условия применения детализации.
[279] Между тем, когда высота или размер (высота*ширина) текущего блока меньше конкретной длины или конкретного размера, отношение вычисления умножения/суммирования для компенсации движения увеличивается. Соответственно, в варианте осуществления настоящего раскрытия сущности, применение BDOF в блок, имеющий небольшую высоту или небольшой размер, может быть ограничено в качестве в условии применения DMVR, чтобы уменьшать наихудший случай. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 23.
[280] Табл. 23
- 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.
[281] Ссылаясь на вышеприведенную таблицу 23, BDOF может не применяться к блоку, который меньше конкретного размера, посредством добавления условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 8, и условие, применяемое, когда размер текущего блока (например, CbHeight*CbWidth) равен или выше 64. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда высота текущего блока равна или выше 8, и высота*ширина текущего блока равна или выше 64), BDOF может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются, BDOF может не применяться.
[282] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbHeight*CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 23.
[283] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 23, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 23, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 23, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[284] Между тем, когда 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]).
[285] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом индекса расстояния, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 24.
[286] Табл. 24
- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- 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.
[287] Ссылаясь на вышеприведенную таблицу 24, условие (например, mmvd_flag), связанное с MMVD, из условий применения DMVR, изменяется, чтобы ограниченно применять DMVR в MMVD-режиме. Например, когда mmvd_flag равен 1, и mmvd_distance_index больше 4, может определяться то, что условие по индексу расстояния MMVD удовлетворяется. Соответственно, когда MMVD-режим применяется, то, следует или нет применять DMVR, может определяться согласно индексу расстояния (более конкретно, значению mmvd_distance_index[xCb][yCb]).
[288] Здесь, значение (пороговое значение) mmvd_distance_index может задаваться равным 4, но это представляет собой только один пример, и соответствующее значение может изменяться на различные значения согласно производительности и эффективности кодирования.
[289] Соответственно, в варианте осуществления, вместе с условием (например, mmvd_flag) для того, следует или нет применять MMVD, и условием по индексу расстояния (например, mmvd_distance_index) mMVD, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 24.
[290] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 24, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 24, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 24, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[291] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом индекса расстояния, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 25.
[292] Табл. 25
- 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.
[293] Ссылаясь на вышеприведенную таблицу 25, 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]).
[294] Здесь, значение (пороговое значение) mmvd_distance_index может задаваться равным 4, но это представляет собой только один пример, и соответствующее значение может изменяться на различные значения согласно производительности и эффективности кодирования.
[295] Соответственно, в варианте осуществления, вместе с условием для того, применяется или нет режим объединения/режим пропуска (например, merge_flag), и условием, связанным с MMVD (например, mmvd_flag, mmvd_distance_index), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 25.
[296] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 25, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 25, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 25, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[297] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 24 или 25, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[298] Между тем режим комбинированного внутренне-взаимного прогнозирования (CIIP) для одновременного выполнения внутреннего прогнозирования и взаимного прогнозирования может применяться к текущему блоку, как описано выше. В этом случае блок прогнозирования (взаимный блок), в котором выполняется взаимное прогнозирование, комбинируется со способом внутреннего прогнозирования, чтобы в итоге формировать прогнозные выборочные значения, за счет этого повышая точность прогнозирования. Тем не менее, поскольку DMVR и BDOF представляют собой технологии детализации взаимного блока, применение CIIP-режима может не требоваться с точки зрения производительности по сравнению со сложностью. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять то, следует или нет применять DMVR и BDOF, с учетом CIIP.
[299] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом CIIP, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 26.
[300] Табл. 26
- 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 может применяться.
[301] Ссылаясь на вышеприведенную таблицу 26, DMVR может ограниченно применяться согласно тому, следует или не применять CIIP, посредством добавления условия для того, следует или не применять CIIP-режим (например, ciip_flag). Например, когда ciip_flag равен 0 (т.е. когда CIIP-режим не применяется), DMVR может применяться посредством определения того, что условие для того, следует или не применять CIIP-режим, удовлетворяется.
[302] Соответственно, в варианте осуществления, вместе с условием (например, ciip_flag) для того, следует или не применять CIIP-режим, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 26.
[303] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 26, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 26, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 26, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[304] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом CIIP, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 27.
[305] Табл. 27
- 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.
[306] Ссылаясь на вышеприведенную таблицу 27, BDOF может ограниченно применяться согласно тому, следует или не применять CIIP, посредством добавления условия для того, следует или не применять CIIP-режим (например, ciip_flag). Например, когда ciip_flag равен 0 (т.е. когда CIIP-режим не применяется), BDOF может применяться посредством определения того, что условие для того, следует или не применять CIIP-режим, удовлетворяется.
[307] Соответственно, в варианте осуществления, вместе с условием (например, ciip_flag) для того, следует или не применять CIIP-режим, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 27.
[308] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 27, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 27, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 27, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[309] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 26 или 27, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[310] Способы, перечисленные в таблицах 6 в 27 согласно варианту осуществления настоящего раскрытия сущности, описанному выше, могут применяться в комбинации. Другими словами, то, следует или не применять DMVR и BDOF, может определяться посредством проверки условия применения детализации, и условия, показанные в нижеприведенной таблице 28, могут применяться.
[311] Табл. 28
- 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.
- 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.
- 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.
[312] Ссылаясь на вышеприведенную таблицу 28, могут использоваться условие при билатеральном прогнозировании, когда DMVR или BDOF применяются, условие, применяемое в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условие, применяемое, когда MMVD-режим не используется, условие, применяемое, когда аффинное прогнозирование не выполняется, условие, применяемое, когда режим объединения на основе субблоков применяется, и условие, применяемое, когда GBi-индекс составляет значение по умолчанию. Другими словами, то, следует или не применять DMVR или BDOF, может определяться согласно тому, удовлетворяются или нет условия.
[313] Дополнительно, условие для определения того, удовлетворяются или нет режим объединения для DMVR, или для определения того, представляет или нет текущий блок собой блок сигналов яркости для BDOF, может добавляться.
[314] Условия применения, перечисленные в вышеприведенной таблице 28, представляют собой примеры, и очевидно, что различные условия, перечисленные в вышеуказанных вариантах осуществления (в вариантах осуществления в вышеприведенных таблицах 6-27), могут использоваться в комбинации.
[315] Между тем в DMVR SAD-функция приспосабливается в качестве функции затрат вместо функции SAD с удаленным средним (MRSAD) с учетом сложности декодирования. Тем не менее, когда GBi-индекс не составляет значение по умолчанию (например, когда GbiIdx не равен 0), два опорных блока могут иметь различные весовые коэффициенты, и как результат, DMVR с использованием SAD может не быть предпочтительной. Соответственно, условие DMVR может быть фиксированным с учетом GBi-индекса. Согласно экспериментальному результату, изменение RD-скорости на 0,00% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.
[316] В случае стандарта универсального кодирования видео (VVC), DMVR-процесс может выполняться, когда удовлетворяются все условия, перечисленные в нижеприведенной таблице 29.
[317] Табл. 29
- sps_dmvr_enabled_flag равен 1
- merge_flag[xCb][yCb] равен 1
- predFlagL0[0][0] и predFlagL1[0][0] равны 1
- mmvd_flag[xCb][yCb] равен 0
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает или равен 8
- cbHeight*cbWidth превышает или равен 64
[318] В текущей DMVR в блоке, который не совпадает, можно выполнять поиск посредством сравнения с SAD опорных блоков, которые должны взвешиваться и усредняться в дальнейшем. В настоящем раскрытии сущности, поскольку два опорных блока могут иметь различные весовые коэффициенты, условие DMVR может определяться с учетом такого случая. Согласно варианту осуществления настоящего раскрытия сущности, DMVR может не выполняться для блока, в котором GBi-индекс не составляет значение по умолчанию. В этом случае, условие применения DMVR может быть показано в нижеприведенной таблице 30.
[319] Табл. 30
- 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
[320] Как показано в вышеприведенной таблице 30, когда значение GBi-индекса (например, GbiIdx) равно 0, условие выполнения DMVR может добавляться. Другими словами, когда значение GBi-индекса (например, GbiIdx) не равно 0, различные весовые коэффициенты применяются к двум опорным блокам (т.е. к опорному блоку, на который ссылаются для L0-прогнозирования, и к опорному блоку, на который ссылаются для L1-прогнозирования), и как результат, в этом случае, DMVR может быть ограничена таким образом, что она не выполняется.
[321] Между тем, BDOF выполняется, когда текущий блок (т.е. текущая единица кодирования; текущая CU) удовлетворяет условию истинного бипрогнозирования. Когда считается, что уравнение оптического потока проектируется с возможностью прогнозировать движение объекта, который перемещается с предварительно определенной скоростью (т.е. импульсом), текущее условие истинного бипрогнозирования не представляет собой оптимальное условие для применения BDOF. Соответственно, условие BDOF может быть фиксированным с учетом расстояния опорного кадра. Согласно экспериментальному результату, изменение RD-скорости на 0,01% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.
[322] Фиг. 13 является схемой, проиллюстрированной для описания принципа BDOF.
[323] Как описано выше, BDOF проектируется с возможностью повышать производительность компенсации движения посредством использования понятия оптического потока. Согласно BDOF, как проиллюстрировано на фиг. 13, можно предполагать, что объект перемещается с предварительно определенной скоростью (постоянное движение), и в то время когда объект перемещается, яркость каждого пиксела не изменяется. В случае предположения, уравнение оптического потока может выражаться как нижеприведенное уравнение 7.
[324] уравнение 7
Δ(i, j)=A-B
=I(x+δx, y+δy, t+δt)-I(x-δx, y-δy, t-δt)
[325] Как описано выше, когда текущая CU удовлетворяет условию истинного бипрогнозирования, BDOF выполняется. Тем не менее, условие истинного бипрогнозирования не означает случай, в котором объект перемещается с предварительно определенной скоростью. Соответственно, настоящее раскрытие сущности предлагает способ, который может применять BDOF, когда объект имеет предварительно определенное движение, и может повышать производительность компенсации движения.
[326] Согласно варианту осуществления настоящего раскрытия сущности, в вышеприведенном уравнении 7, в качестве δt, BDOF может применяться, когда расстояние от опорного L0-кадра (ссылка 0 по фиг. 13) и расстояние от опорного L1-кадра (ссылка 1 по фиг. 13) на основе текущего кадра являются идентичными друг другу. В этом случае, условие применения BDOF может изменяться, как показано в нижеприведенной таблице 31.
[327] Табл. 31
Переменная currPic указывает текущий кадр, и переменная bdofFlag извлекается следующим образом:
- Если все следующие условия представляют собой "истина", bdofFlag задается равным "истина".
--- sps_bdof_enabled_flag равен 1.
--- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
--- 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 задается равным "ложь".
[328] Ссылаясь на вышеприведенную таблицу 31, условие, связанное с расстоянием до опорного кадра, из условий применения BDOF (например, DiffPicOrderCnt), изменяется, чтобы применять BDOF только тогда, когда объект имеет предварительно определенную скорость движения. Например, то, являются или нет DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) и DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic) идентичными друг другу, определяется, чтобы определять то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Другими словами, BDOF может применяться только тогда, когда расстояние от опорного L0-кадра и расстояние от опорного L1-кадра на основе текущего кадра являются идентичными друг другу. В связи с этим, условие, при котором расстояния между билатеральными опорными кадрами являются идентичными на основе текущего кадра, используется для того, чтобы определять то, выполняется или нет истинное бипрогнозирование, и объект, который перемещается в предварительно определенную скорость, включается. BDOF применяется к блоку, удовлетворяющему условию, чтобы получать более усовершенствованный результат детализации информации движения.
[329] Дополнительно, в варианте осуществления, вместе с условиями (например, DiffPicOrderCnt), связанными с расстоянием до опорного кадра, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 31.
[330] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 31, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 31, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 31, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[331] Между тем, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять BDOF согласно размеру блока. Нижеприведенная таблица 32 показывает случай, когда предел по размеру блока согласно варианту осуществления настоящего раскрытия сущности включается в качестве условия применения.
[332] Табл. 32
Переменная 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 задается равным "ложь".
[333] Ссылаясь на вышеприведенную таблицу 32, при применении BDOF, когда высота текущего блока (например, CbHeight) равна или выше 8, случай, в котором размер (например, CbHeight*CbWidth) текущего блока равен или выше 64, может добавляться в качестве условия.
[334] Соответственно, в варианте осуществления, вместе с условием для того, равна или выше либо нет высота текущего блока 8, и условием для того, равна или выше либо нет высота*ширина текущего блока 64, то, следует или нет применять BDOF, может определяться посредством использования оставшихся условий, перечисленных в вышеприведенной таблице 32.
[335] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 32, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 32, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 32, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[336] DMVR-процесс, описанный в настоящем раскрытии сущности, может реализовываться согласно спецификации, показанной в нижеприведенной таблице 32. Нижеприведенная таблица 33 показывает один пример процесса детализации векторов движения на основе SAD в качестве варианта осуществления настоящего раскрытия сущности.
[337] Табл. 33
8.5.3.1. Общие сведения
Вводы в этот процесс представляют собой следующее:
- местоположение (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 в качестве вводов.
[338] Переменная 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)
[339] Между тем, как описано выше, в DMVR, SAD-функция приспосабливается в качестве функции затрат вместо функции SAD с удаленным средним (MRSAD) с учетом сложности декодирования. Тем не менее, когда GBi-индекс не составляет значение по умолчанию (например, когда GbiIdx не равен 0), и флаг взвешивания посредством прогнозирования на основе явных весовых коэффициентов не равен 0, DMVR с использованием SAD может не быть предпочтительной. Соответственно, условие DMVR может быть фиксированным с учетом GBi-индекса и флага взвешивания прогнозирования на основе явных весовых коэффициентов. Дополнительно, идентичное условие может применяться даже к BDOF. Согласно экспериментальному результату, изменение RD-скорости на 0,00% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.
[340] В текущей DMVR в блоке, который не совпадает, можно выполнять поиск посредством сравнения с SAD опорных блоков, которые должны взвешиваться и усредняться в дальнейшем. В настоящем раскрытии сущности, поскольку два опорных блока могут иметь различные весовые коэффициенты, условие DMVR может определяться с учетом такого случая. Согласно варианту осуществления настоящего раскрытия сущности, DMVR может не выполняться для блока, в котором GBi-индекс не составляет значение по умолчанию. Дополнительно, DMVR может не выполняться для блока, в котором флаг взвешивания посредством прогнозирования на основе явных весовых коэффициентов не равен 0.
[341] В варианте осуществления настоящего раскрытия сущности, предлагается способ, который может определять то, следует или нет применять DMVR, с учетом того, что выполняется взвешенное бипрогнозирование. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 34.
[342] Табл. 34
- 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
- luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1] равны 0
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает или равен 8
- cbHeight*cbWidth превышает или равен 64
[343] Ссылаясь на вышеприведенную таблицу 34, условие, указывающее то, применяется явно или нет весовой коэффициент к L0-прогнозированию и L1-прогнозированию (например, luma_weight_l0_flag и luma_weight_l1_flag), и индексное условие (например, GbiIdx), указывающее весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, добавляются, чтобы определять то, следует или нет применять DMVR, согласно тому, выполняется или нет взвешенное бипрогнозирование.
[344] Например, может определяться то, применяется или нет прогнозирование на основе явных весовых коэффициентов к текущему блоку, на основе информации флага (например, luma_weight_l0_flag), представляющей то, следует или нет применять явно весовой коэффициент к L0-прогнозированию, и информации флага (например, luma_weight_l1_flag), представляющей то, следует или нет применять явно весовой коэффициент к L1-прогнозированию. Другими словами, когда значение luma_weight_l0_flag равно 0, и значение luma_weight_l1_flag равно 0, DMVR может ограниченно применяться. Другими словами, когда прогнозирование на основе весовых коэффициентов не применяется явно к L0- и L1-прогнозированиям, может определяться то, что DMVR применяется.
[345] Дополнительно, то, применяется или нет бипрогнозирование (т.е. L0-прогнозирование и L1-прогнозирование) с использованием различных весовых коэффициентов к текущему блоку, может определяться на основе значения весового индекса бипрогнозирования (например, GbiIdx), представляющего весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию. Другими словами, случай, в котором значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, может представлять собой случай по умолчанию, в котором различные весовые коэффициенты не применяются к L0-прогнозированию и L1-прогнозированию, как описано в варианте осуществления вышеприведенной таблицы 4. Соответственно, когда значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, DMVR может ограниченно применяться.
[346] Согласно варианту осуществления, когда прогнозирование на основе весовых коэффициентов не применяется явно к L0- и L1-прогнозированиям (когда значение luma_weight_l0_flag равно 0, и когда значение luma_weight_l1_flag равно 0), информация относительно весового индекса бипрогнозирования (например, GbiIdx) дополнительно получается, чтобы определять то, равно или нет значение весового индекса бипрогнозирования (например, GbiIdx) 0.
[347] В варианте осуществления, вместе с условием, указывающим то, применяется явно или нет весовой коэффициент к L0-прогнозированию и L1-прогнозированию (например, luma_weight_l0_flag и luma_weight_l1_flag), и индексным условием (например, GbiIdx), указывающим весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, может определяться то, следует или нет применять DMVR, на основе оставшихся условий, перечисленных в вышеприведенной таблице 34.
[348] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 34, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 34, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 34, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[349] Между тем в случае BDOF GBi-индекс учитывается, но флаг взвешивания прогнозирования на основе явных весовых коэффициентов не учитывается. Соответственно, настоящее раскрытие сущности предлагает способ для определения того, применять или нет BDOF, с учетом GBi-индекса и флага взвешивания прогнозирования на основе явных весовых коэффициентов.
[350] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом того, выполняется или нет взвешенное бипрогнозирование, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 35.
[351] Табл. 35
- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DiffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1] равны 0.
- cIdx равен 0.
[352] Ссылаясь на вышеприведенную таблицу 35, условие, указывающее то, применяется явно или нет весовой коэффициент к L0-прогнозированию и L1-прогнозированию (например, luma_weight_l0_flag и luma_weight_l1_flag), добавляется, чтобы определять то, следует или нет применять BDOF, согласно тому, выполняется или нет взвешенное бипрогнозирование.
[353] Например, может определяться то, применяется или нет прогнозирование на основе явных весовых коэффициентов к текущему блоку, на основе информации флага (например, luma_weight_l0_flag), представляющей то, следует или нет применять явно весовой коэффициент к L0-прогнозированию, и информации флага (например, luma_weight_l1_flag), представляющей то, следует или нет применять явно весовой коэффициент к L1-прогнозированию. Другими словами, когда значение luma_weight_l0_flag равно 0, и значение luma_weight_l1_flag равно 0, BDOF может ограниченно применяться. Другими словами, когда прогнозирование на основе весовых коэффициентов не применяется явно к L0- и L1-прогнозированиям, может определяться то, что BDOF применяется.
[354] В варианте осуществления, вместе с условием, указывающим то, применяется явно или нет весовой коэффициент к L0-прогнозированию и L1-прогнозированию (например, luma_weight_l0_flag и luma_weight_l1_flag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий, перечисленных в вышеприведенной таблице 35.
[355] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 35, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 35, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 35, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[356] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 34 или 35, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[357] Как описано выше, то, следует или нет применять DMVR и BDOF, может определяться с учетом весового коэффициента прогнозирования на основе явных весовых коэффициентов в дополнение к GBi-индексу. В этом случае, чтобы определять то, следует или нет применять прогнозирование на основе явных весовых коэффициентов, учитывается то, выполняется или нет прогнозирование на основе весовых коэффициентов для компонента сигнала яркости посредством использования luma_weight_lX_flag (здесь, X равен 0 или 1), но то, выполняется или нет прогнозирование на основе весовых коэффициентов, может учитываться даже для компонента сигнала цветности. Соответственно, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять DMVR и BDOF, с учетом весового коэффициента компонента сигнала цветности в дополнение к весовому коэффициенту компонента сигнала яркости.
[358] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом весового коэффициента прогнозирования на основе явных весовых коэффициентов для компонента сигнала яркости и компонента сигнала цветности текущего блока, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 36.
[359] Табл. 36
- 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
- luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1] равны 0
- chroma_weight_l0_flag[refIdxL0] и chroma_weight_l1_flag[refIdxL1] равны 0
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает или равен 8
- cbHeight*cbWidth превышает или равен 64
[360] Ссылаясь на вышеприведенную таблицу 36, условие (например, luma_weight_l0_flag, luma_weight_l1_flag), указывающее то, следует или нет применять явно весовой коэффициент к компоненту сигнала яркости (прогнозному значению сигналов яркости) L0-прогнозирования и компоненту сигнала яркости (прогнозному значению сигналов яркости) L1-прогнозирования, условие (например, chroma_weight_l0_flag, chroma_weight_l1_flag), указывающее то, следует или нет применять явно весовой коэффициент к компоненту сигнала цветности (прогнозному значению сигналов цветности) L0-прогнозирования и компоненту сигнала цветности (прогнозному значению сигналов цветности) L1-прогнозирования, и индексное условие (например, GbiIdx), указывающее весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, добавляются, чтобы ограниченно применять DMVR только тогда, когда весовые коэффициенты (т.е. весовые коэффициенты) для обоих компонентов сигнала яркости и сигнала цветности.
[361] Например, может определяться то, применяется или нет весовой коэффициент прогнозирования на основе явных весовых коэффициентов к компоненту сигнала яркости текущего, блока на основе информации флага (например, luma_weight_l0_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала яркости (прогнозному значению сигналов яркости) L0-прогнозирования, и информации флага (например, luma_weight_l1_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала яркости (прогнозному значению сигналов яркости) L1-прогнозирования.
[362] Дополнительно, может определяться то, применяется или нет весовой коэффициент прогнозирования на основе явных весовых коэффициентов к компоненту сигнала цветности текущего блока, на основе информации флага (например, chroma_weight_l0_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала цветности (прогнозному значению сигналов цветности) L0-прогнозирования, и информации флага (например, chroma_weight_l1_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала цветности (прогнозному значению сигналов цветности) L1-прогнозирования.
[363] Другими словами, когда значение luma_weight_l0_flag равно 0, и значение luma_weight_l1_flag равно 0, может определяться то, что весовой коэффициент явно не существует для компонента сигнала яркости, и когда значение chroma_weight_l0_flag равно 0, и значение chroma_weight_l1_flag равно 0, может определяться то, что весовой коэффициент явно не существует для компонента сигнала цветности. В связи с тем, когда явный весовой коэффициент не существует для компонента сигнала яркости и компонента сигнала цветности, DMVR может ограниченно применяться.
[364] Дополнительно, то, применяется или нет бипрогнозирование (т.е. L0-прогнозирование и L1-прогнозирование) с использованием различных весовых коэффициентов к текущему блоку, может определяться на основе значения весового индекса бипрогнозирования (например, GbiIdx), представляющего весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию. Другими словами, случай, в котором значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, может представлять собой случай по умолчанию, в котором различные весовые коэффициенты не применяются к L0-прогнозированию и L1-прогнозированию, как описано в варианте осуществления вышеприведенной таблицы 4. Соответственно, когда значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, DMVR может ограниченно применяться.
[365] Согласно варианту осуществления, когда прогнозирование на основе весовых коэффициентов не применяется явно к L0- и L1-прогнозированиям компонента сигнала яркости (когда значение luma_weight_l0_flag равно 0, и значение luma_weight_l1_flag равно 0), и когда прогнозирование на основе весовых коэффициентов не применяется явно к L0- и L1-прогнозированиям компонента сигнала цветности (когда значение chroma_weight_l0_flag равно 0, и значение chroma_weight_l1_flag равно 0), информация относительно весового индекса бипрогнозирования (например, GbiIdx) дополнительно получается, чтобы определять то, равно или нет значение весового индекса бипрогнозирования (например, GbiIdx) 0.
[366] В варианте осуществления, вместе с условием, указывающим то, применяется явно или нет весовой коэффициент к L0-прогнозированию и L1-прогнозированию компонента сигнала яркости (например, luma_weight_l0_flag и luma_weight_l1_flag), условием, указывающим то, следует или нет явно применять весовой коэффициент к L0-прогнозированию и L1-прогнозированию компонента сигнала цветности, и индексным условием (например, GbiIdx), указывающим весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, может определяться то, следует или нет применять DMVR, на основе оставшихся условий, перечисленных в вышеприведенной таблице 36.
[367] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 36, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 36, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 36, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[368] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом весового коэффициента прогнозирования на основе явных весовых коэффициентов для компонента сигнала яркости и компонента сигнала цветности текущего блока, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 37.
[369] Табл. 37
- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DiffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1] равны 0.
- chroma_weight_l0_flag[refIdxL0] и chroma_weight_l1_flag[refIdxL1] равны 0.
- cIdx равен 0.
[370] Ссылаясь на вышеприведенную таблицу 37, условие (например, luma_weight_l0_flag, luma_weight_l1_flag), указывающее то, следует или нет применять явно весовой коэффициент к компоненту сигнала яркости (прогнозному значению сигналов яркости) L0-прогнозирования и компоненту сигнала яркости (прогнозному значению сигналов яркости) L1-прогнозирования, и условие (например, chroma_weight_l0_flag, chroma_weight_l1_flag), указывающее то, следует или нет применять явно весовой коэффициент к компоненту сигнала цветности (прогнозному значению сигналов цветности) L0-прогнозирования и компоненту сигнала цветности (прогнозному значению сигналов цветности) L1-прогнозирования, добавляются, чтобы ограниченно применять BDOF только тогда, когда весовые коэффициенты (т.е. весовые коэффициенты) для обоих компонентов сигнала яркости и сигнала цветности.
[371] Например, может определяться то, что весовые коэффициенты L0-прогнозирования и L1-прогнозирования для компонента сигнала яркости текущего блока явно не существуют, когда значение информации флага (например, luma_weight_l0_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала яркости (прогнозному значению сигналов яркости) L0-прогнозирования, равно 0, и значение информации флага (например, luma_weight_l1_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала яркости (прогнозному значению сигналов яркости) L1-прогнозирования, равно 0.
[372] Дополнительно, может определяться то, что весовые коэффициенты L0-прогнозирования и L1-прогнозирования для компонента сигнала цветности текущего блока явно не существуют, когда значение информации флага (например, chroma_weight_l0_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигнала цветности (прогнозному значению сигналов цветности) L0-прогнозирования, равно 0, и значение информации флага (например, chroma_weight_l1_flag), представляющей то, следует или нет применять явно весовой коэффициент к компоненту сигналу цветности (прогнозному значению сигналов цветности) L1-прогнозирования, равно 0.
[373] В связи с тем, когда весовой коэффициент не существует для компонента сигнала яркости и компонента сигнала цветности, BDOF может ограниченно применяться.
[374] В варианте осуществления, вместе с условием, указывающим то, применяется явно или нет весовой коэффициент к L0-прогнозированию и L1-прогнозированию компонента сигнала яркости (например, luma_weight_l0_flag и luma_weight_l1_flag), и условием, указывающим то, следует или нет применять явно весовой коэффициент к L0-прогнозированию и L1-прогнозированию компонента сигнала цветности (например, chroma_weight_l0_flag и chroma_weight_l1_flag), может определяться то, следует или нет применять BDOF, на основе оставшихся условий, перечисленных в вышеприведенной таблице 37.
[375] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 37, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 37, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 37, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[376] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 36 или 37, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[377] Между тем, как описано выше согласно вариантам осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR и BDOF, может определяться с учетом прогнозирования на основе явных весовых коэффициентов. В этом случае, чтобы определять то, следует или нет применять прогнозирование на основе явных весовых коэффициентов, тип среза может учитываться. Соответственно, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять DMVR и BDOF, с учетом типа среза и того, следует или нет применять прогнозирование на основе весовых коэффициентов, соответственно.
[378] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR и BDOF, может определяться посредством использования информации флага, указывающей то, следует или нет применять прогнозирование на основе весовых коэффициентов, согласно типу текущего среза. Здесь, информация флага, указывающая то, следует или нет применять прогнозирование на основе весовых коэффициентов, согласно типу текущего среза, может передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования через синтаксис наборов параметров кадра (PPS) или наборов параметров последовательности (SPS). В качестве одного примера, нижеприведенная таблица 38 показывает информацию флага, передаваемую в служебных сигналах через PPS-синтаксис.
[379] Табл. 38
[380] Ссылаясь на вышеприведенную таблицу 38, weighted_pred_flag и weighted_bipred_flag могут передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. Здесь, weighted_pred_flag может представлять собой информацию, указывающую то, применяется или нет прогнозирование на основе весовых коэффициентов к срезу P, и weighted_bipred_flag может представлять собой информацию, указывающую то, применяется или нет прогнозирование на основе весовых коэффициентов к срезу B.
[381] Например, когда значение weighted_pred_flag равно 0, может указываться то, что прогнозирование на основе весовых коэффициентов не применяется к P-срезу, и когда значение weighted_pred_flag равно 1, может указываться то, что прогнозирование на основе весовых коэффициентов применяется к P-срезу. Дополнительно, когда значение weighted_bipred_flag равно 0, может указываться то, что прогнозирование на основе весовых коэффициентов не применяется к B-срезу, и когда значение weighted_bipred_flag равно 1, может указываться то, что прогнозирование на основе весовых коэффициентов применяется к B-срезу.
[382] Здесь, прогнозирующий (P) срез может означать срез, декодированный на основе взаимного прогнозирования (конец) с использованием одного вектора движения и одного индекса опорного кадра. Бипрогнозирующий (B) срез может означать срез, декодированный на основе взаимного прогнозирования с использованием одного или более, например, двух векторов движения и индексов опорных кадров.
[383] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться на основе информации флага (например, weighted_pred_flag), указывающей то, применяется или нет прогнозирование на основе весовых коэффициентов к P-срезу, и информации флага (например, weighted_bipred_flag), указывающей то, применяется или нет прогнозирование на основе весовых коэффициентов к B-срезу, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 39.
[384] Табл. 39
- 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
-! (weighted_pred_flag andand P_SLICE) andand! (weighted_bipred_flag andand B_SLICE)
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает или равен 8
- cbHeight*cbWidth превышает или равен 64
[385] Ссылаясь на вышеприведенную таблицу 39, условие (например, weighted_pred_flag), указывающее то, применяется или нет прогнозирование на основе весовых коэффициентов к P-срезу, условие (например, weighted_bipred_flag), указывающее то, применяется или нет прогнозирование на основе весовых коэффициентов к B-срезу, и индексное условие (например, GbiIdx), указывающее весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, добавляются, чтобы ограниченно применять DMVR только тогда, когда прогнозирование на основе весовых коэффициентов не применяется к P-срезу и B-срезу.
[386] Например, когда значение weighted_pred_flag равно 1, и текущий срез не представляет собой P-срез, и когда значение weighted_bipred_flag равно 1, и текущий срез не представляет собой B-срез, DMVR может применяться. Другими словами, когда прогнозирование на основе весовых коэффициентов не применяется к P-срезу, и прогнозирование на основе весовых коэффициентов не применяется к B-срезу, может определяться то, что DMVR применяется.
[387] Дополнительно, то, применяется или нет бипрогнозирование (т.е. L0-прогнозирование и L1-прогнозирование) с использованием различных весовых коэффициентов к текущему блоку, может определяться на основе значения весового индекса бипрогнозирования (например, GbiIdx), представляющего весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию. Другими словами, случай, в котором значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, может представлять собой случай по умолчанию, в котором различные весовые коэффициенты не применяются к L0-прогнозированию и L1-прогнозированию, как описано в варианте осуществления вышеприведенной таблицы 4. Соответственно, когда значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, DMVR может ограниченно применяться.
[388] В варианте осуществления, вместе с условием (например, weighted_pred_flag), указывающим то, применяется или нет прогнозирование на основе весовых коэффициентов к P-срезу, условием (например, weighted_bipred_flag), указывающим то, применяется или нет прогнозирование на основе весовых коэффициентов к B-срезу, и индексным условием (например, GbiIdx), указывающим весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, то, следует или нет применять DMVR, может определяться на основе оставшихся условий, перечисленных в вышеприведенной таблице 39.
[389] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 39, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 39, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 39, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[390] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться на основе информации флага (например, weighted_pred_flag), указывающей то, применяется или нет прогнозирование на основе весовых коэффициентов к P-срезу, и информации флага (например, weighted_bipred_flag), указывающей то, применяется или нет прогнозирование на основе весовых коэффициентов к B-срезу, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 40.
[391] Табл. 40
- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DiffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
-! (weighted_pred_flag andand P_SLICE) andand! (weighted_bipred_flag andand B_SLICE)
- cIdx равен 0.
[392] Ссылаясь на вышеприведенную таблицу 40, условие (например, weighted_pred_flag), указывающее то, применяется или нет прогнозирование на основе весовых коэффициентов к P-срезу, и условие (например, weighted_bipred_flag), указывающее то, применяется или нет прогнозирование на основе весовых коэффициентов к B-срезу, добавляются, чтобы ограниченно применять BDOF только тогда, когда прогнозирование на основе весовых коэффициентов не применяется к P-срезу и B-срезу.
[393] Например, когда значение weighted_pred_flag равно 1, и текущий срез не представляет собой P-срез, и когда значение weighted_bipred_flag равно 1, и текущий срез не представляет собой B-срез, BDOF может применяться. Другими словами, когда прогнозирование на основе весовых коэффициентов не применяется к P-срезу, и прогнозирование на основе весовых коэффициентов не применяется к B-срезу, может определяться то, что BDOF применяется.
[394] В варианте осуществления, вместе с условием (например, weighted_pred_flag), указывающим то, применяется или нет прогнозирование на основе весовых коэффициентов к P-срезу, условием (например, weighted_bipred_flag), указывающим то, применяется или нет прогнозирование на основе весовых коэффициентов к B-срезу, и индексным условием (например, GbiIdx), указывающим весовые коэффициенты, применяемые к L0-прогнозированию и L1-прогнозированию, то, следует или нет применять BDOF, может определяться на основе оставшихся условий, перечисленных в вышеприведенной таблице 40.
[395] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 40, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 40, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 40, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[396] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 39 или 40, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[397] Между тем то, следует выполнять бипрогнозирование или унипрогнозирование, может определяться согласно размеру блока. Например, когда размер текущего блока является небольшим (например, блок, имеющий размер 4×8 или 8×4), только унипрогнозирование может быть ограничено с возможностью активироваться, и когда размер текущего блока является большим, бипрогнозирование может быть выполнено с возможностью активироваться. В связи с этим, если только унипрогнозирование ограничено с возможностью выполняться, когда размер блока является небольшим, размер блока, ограниченный во время унипрогнозирования, должен учитываться даже для DMVR и BDOF, выполняемого в случае бипрогнозирования. Например, если только унипрогнозирование ограничено с возможностью активироваться, когда, размер текущего блока равен 4×8 или 8×4, бипрогнозирование может выполняться, когда, по меньшей мере, одно из высоты или ширины текущего блока больше 4. Соответственно, настоящее раскрытие сущности предлагает способ для применения DMVR и BDOF с учетом размера блока, применяемого во время бипрогнозирования или унипрогнозирования.
[398] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять BDOF, с учетом высоты (и/или ширины) текущего блока. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 41.
[399] Табл. 41
- Переменная 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 превышает 4
- В противном случае, bdofFlag задается равным "ложь".
[400] Ссылаясь на вышеприведенную таблицу 41, BDOF может применяться к блоку, который больше конкретного размера, посредством изменения условий (например, cbHeight), связанных с высотой (и/или шириной) текущего блока. Например, когда высота (например, CbHeight) текущего блока больше 4, условие применения BDOF может использоваться. Альтернативно, когда ширина (например, CbWidth) текущего блока больше 4, условие применения BDOF может использоваться. Когда условие, связанное с размером текущего блока (например, CbHeight или CbWidth), удовлетворяется (т.е. когда высота текущего блока больше 4), BDOF может применяться, и когда условие, связанное с размером текущего блока, не удовлетворяется (т.е. когда высота текущего блока равна или меньше 4), BDOF может не применяться.
[401] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 41. В этом случае, bdofFlag может извлекаться согласно условиям, перечисленным в вышеприведенной таблице 41, удовлетворяются. В этом случае, когда все условия, перечисленные в вышеприведенной таблице 41, удовлетворяются, значение bdofFlag может извлекаться в качестве 1 ("истина"), иначе значение bdofFlag может извлекаться в качестве 0 ("ложь"). Здесь, bdofFlag может представлять собой информацию флага, указывающую то, применяется или нет BDOF к текущему блоку.
[402] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 41, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 41, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 41, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[403] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять DMVR, с учетом высоты (и/или ширины) текущего блока. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 42.
[404] Табл. 42
Переменная currPic указывает текущий кадр, и переменная dmvrFlag извлекается следующим образом:
- Если все следующие условия представляют собой "истина", dmvrFlag задается равным "истина".
- sps_dmvr_enabled_flag равен 1
- merge_flag[xCb][yCb] равен 1
- predFlagL0[0][0] и predFlagL1[0][0] равны 1
- mmvd_flag[xCb][yCb] равен 0
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает 4
- В противном случае, dmvrFlag задается равным "ложь".
[405] Ссылаясь на вышеприведенную таблицу 42, DMVR может применяться к блоку, который больше конкретного размера, посредством изменения условий (например, cbHeight), связанных с высотой (и/или шириной) текущего блока. Например, когда высота (например, CbHeight) текущего блока больше 4, условие применения DMVR может использоваться. Альтернативно, когда ширина (например, CbWidth) текущего блока больше 4, условие применения DMVR может использоваться. Когда условие, связанное с размером текущего блока (например, CbHeight или CbWidth), удовлетворяется (т.е. когда высота текущего блока больше 4), DMVR может применяться, и когда условие, связанное с размером текущего блока, не удовлетворяется (т.е. когда высота текущего блока равна или меньше 4), DMVR может не применяться.
[406] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 42. В этом случае, dmvrFlag может извлекаться согласно условиям, перечисленным в вышеприведенной таблице 42, удовлетворяются. В этом случае, когда все условия, перечисленные в вышеприведенной таблице 42, удовлетворяются, значение dmvrFlag может извлекаться в качестве 1 ("истина"), иначе значение dmvrFlag может извлекаться в качестве 0 ("ложь"). Здесь, dmvrFlag может представлять собой информацию флага, указывающую то, применяется или нет DMVR к текущему блоку.
[407] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 42, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 42, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 42, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.
[408] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 41 или 42, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.
[409] В настоящем раскрытии сущности, информация DMVR-флага, указывающая то, следует или нет применять DMVR, и информация BDOF-флага, указывающая то, следует или нет применять BDOF, может извлекаться на основе условий применения таблиц 2-42, описанных выше.
[410] Например, информация DMVR-флага (например, dmvrFlag) может извлекаться на основе условий применения (по меньшей мере, одно из условий применения таблиц 2-42 либо комбинации условий применения). В этом случае, когда значение dmvrFlag равно 1 (или "истина"), может указываться то, что DMVR применяется, и когда значение dmvrFlag равно 0 (или "ложь"), может указываться то, что DMVR не применяется. Дополнительно, информация BDOF-флага (например, bdofFlag) может извлекаться на основе условий применения (по меньшей мере, одно из условий применения таблиц 2-42 либо комбинации условий применения) BDOF. В этом случае, когда значение bdofFlag равно 1 (или "истина"), может указываться то, что BDOF применяется, и когда значение bdofFlag равно 0 (или "ложь"), может указываться то, что BDOF не применяется.
[411] Фиг. 14 является блок-схемой последовательности операций способа, схематично показывающей способ кодирования, который может осуществляться посредством оборудования кодирования согласно варианту осуществления настоящего раскрытия сущности.
[412] Способ, раскрытый на фиг. 14, может осуществляться посредством оборудования 200 кодирования, раскрытого на фиг. 2. В частности, этапы S1400-S1430 по фиг. 14 могут выполняться посредством модуля 220 прогнозирования и модуля 221 взаимного прогнозирования, раскрытого на фиг. 2, этап S1440 по фиг. 14 может выполняться посредством остаточного процессора 230, раскрытого на фиг. 2, и этап S1450 по фиг. 14 может выполняться посредством энтропийного кодера 240, раскрытого на фиг. 2. Дополнительно, способ, раскрытый на фиг. 14, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии сущности. Соответственно, на фиг. 14, подробное описание дублированного контента с вариантами осуществления опускается или упрощается.
[413] Ссылаясь на фиг. 14, оборудование кодирования может извлекать L0-вектор движения и L1-вектор движения текущего блока (S1400).
[414] В качестве варианта осуществления, при выполнении взаимного прогнозирования для текущего блока, оборудование кодирования может извлекать информацию движения (вектор движения, индекс опорного кадра и т.д.) текущего блока. Например, оборудование кодирования может выполнять поиск блока, аналогичного текущему блоку в предварительно определенной зоне (зоне поиска) опорных кадров через, оценку движения, и извлекать опорный блок, в котором разность относительно текущего блока является минимальной либо равна или меньше предварительно определенного критерия. Индекс опорного кадра, указывающий опорный кадр, в котором позиционируется опорный блок, может извлекаться на основе этого, и вектор движения может извлекаться на основе разности в местоположении между опорным блоком и текущим блоком.
[415] Дополнительно, оборудование кодирования может определять режим взаимного прогнозирования, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование кодирования может сравнивать RD-затраты для различных режимов прогнозирования и определять оптимальный режим прогнозирования для текущего блока.
[416] Например, оборудование кодирования может определять то, следует или нет применять режим объединения в качестве оптимального режима прогнозирования для текущего блока. При применении режима объединения к текущему блоку, оборудование кодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока и формировать информацию индекса объединения. В частности, опорный блок может извлекаться, в котором разность относительно текущего блока является минимальной либо равна или меньше предварительно определенного критерия, из опорных блоков (т.е. соседних блоков), указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в оборудование декодирования. Информация движения текущего блока может извлекаться посредством использования информации движения выбранного возможного варианта объединения.
[417] Здесь, информация движения может включать в себя такую информацию, как вектор движения, индекс опорного кадра и т.д. и включать в себя L0-информацию движения и/или L1-информацию движения согласно типу взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Когда бипрогнозирование применяется к текущему блоку, информация движения может включать в себя вектор движения для L0-направления (L0-вектор движения) и вектор движения для L1-направления (L1-вектор движения). Дополнительно, информация движения может включать в себя индекс опорного L0-кадра и опорный L0-кадр, указываемый посредством индекса опорного L0-кадра в списке опорных L0-кадров, и индекс опорного L1-кадра и опорный L1-кадр, указываемый посредством индекса опорного L1-кадра в списке опорных L1-кадров.
[418] Другими словами, когда режим объединения применяется, оборудование кодирования может извлекать L0-вектор движения и L1-вектор движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков относительно текущего блока, и использовать извлеченные L0- и L1-векторы движения в качестве L0- и L1-векторов движения текущего блока.
[419] Оборудование кодирования применяет DMVR к текущему блоку на основе информации DMVR-флага, указывающей то, следует или нет применять DMVR к текущему блоку, чтобы извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе L0-вектора движения и L1-вектора движения (S1410).
[420] В этом случае, оборудование кодирования может определять то, следует или нет применять DMVR к текущему блоку, с учетом эффективности кодирования, сложности, производительности прогнозирования и т.д. Другими словами, оборудование кодирования может применять DMVR к текущему блоку на основе того, удовлетворяется или нет предварительно определенное условие применения DMVR для текущего блока. Здесь, условие применения предварительно определенной DMVR может состоять из некоторых (или всех) либо конкретных комбинаций различных условий применения, описанных в вышеприведенных таблицах 2-42. Дополнительно, оборудование кодирования может извлекать информацию DMVR-флага согласно тому, удовлетворяется или нет предварительно определенное условие применения DMVR. Информация DMVR-флага может представлять собой информацию (например, dmvrFlag, описанный выше), указывающую то, следует или нет применять DMVR к текущему блоку.
[421] В качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равны 0.
[422] В этом случае, когда случай, в котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l0_flag) и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l1_flag) равны 0, удовлетворяется, оборудование кодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, когда luma_weight_l0_flag и luma_weight_l1_flag равны 0, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. В противном случае, информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[423] Здесь, информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости может представлять собой информацию, указывающую то, присутствует или нет весовой коэффициент L0-прогнозирования для компонента сигнала яркости текущего блока, и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости представлять собой информацию, указывающую то, присутствует или нет весовой коэффициент L1-прогнозирования для компонента сигнала яркости текущего блока. Например, случай, в котором значение информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости равно 0, может указывать то, что весовой коэффициент не присутствует для компонента сигнала яркости L0-прогнозирования, и случай, в котором значение информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости равно 1, может указывать то, что весовой коэффициент присутствует для компонента сигнала яркости L0-прогнозирования. Например, случай, в котором значение информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равно 0, может указывать то, что весовой коэффициент не присутствует для компонента сигнала яркости L1-прогнозирования, и случай, в котором значение информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равно 1, может указывать то, что весовой коэффициент присутствует для компонента сигнала яркости L1-прогнозирования.
[424] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором равно 0 значение информации весового индекса бипрогнозирования текущего блока.
[425] В этом случае, когда значение информации весового индекса бипрогнозирования (например, GbiIdx) равно 0, оборудование кодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, когда GbiIdx равен 0, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. В противном случае, информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[426] Здесь, случай, в котором значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, может представлять собой случай по умолчанию, в котором различные весовые коэффициенты не применяются к L0-прогнозированию и L1-прогнозированию. В качестве одного примера, как показано в вышеприведенной таблице 4, случай, в котором значение информации весового индекса бипрогнозирования равно 0, может представлять собой случай, в котором весовой коэффициент в 1/2 применяется к каждому из L0-прогнозирования и L1-прогнозирования.
[427] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором режим прогнозирования (CIIP-режим), в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку.
[428] В этом случае, когда случай, в котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку (например, случай, в котором ciip_flag равен 0), удовлетворяется, информация DMVR-флага может извлекаться в качестве значения, указывающего то, что DMVR применяется к текущему блоку. Например, когда ciip_flag равен 0, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. Когда ciip_flag равен 1, информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[429] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором размер текущего блока равен или выше 16×16. Другими словами, предварительно определенное условие применения может означать случай, в котором высота текущего блока равна или выше 16, и ширина текущего блока равна или выше 16.
[430] В этом случае, когда случай, в котором размер текущего блока равен или выше 16×16, удовлетворяется, оборудование кодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, в случае если размер текущего блока равен или выше 16×16, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. Иначе (т.е. в случае, если размер текущего блока меньше 16×16), информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[431] Дополнительно, согласно варианту осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором взаимное бипрогнозирование на основе DMVR активируется, условие, при котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, условие, при котором первая разность номеров в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными друг другу, условие, при котором режим объединения применяется к текущему блоку, условие, при котором режим объединения с разностью векторов движения (MMVD) не применяется к текущему блоку, и т.д.
[432] Другими словами, условие применения DMVR может определяться как включающее в себя, по меньшей мере, одно из условий, и информация DMVR-флага может извлекаться на основе определенного условия DMVR-применения. В этом случае, когда условие DMVR-применения определяется как включающее одно или более условий, если все предварительно определенные условия DMVR-применения удовлетворяются, оборудование кодирования извлекает значение информации DMVR-флага как "истина" или 1, чтобы определять то, что DMVR применяется к текущему блоку. В противном случае, если даже какое-либо из предварительно определенных условий применения DMVR не удовлетворяется, значение информации DMVR-флага может извлекаться в качестве "ложь" или 0.
[433] Здесь, при извлечении информации DMVR-флага, перечисленные условия DMVR-применения представляют собой просто примеры, и условия таблиц 2-42, описанных выше, могут использоваться в различных комбинациях.
[434] Когда информация DMVR-флага указывает то, что DMVR применяется к текущему блоку (например, когда информация DMVR-флага извлекается в качестве значения "истина" или 1), оборудование кодирования применяет DMVR к текущему блоку, чтобы извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе L0-вектора движения и L1-вектора движения.
[435] В качестве варианта осуществления, оборудование кодирования минимальная сумма абсолютных разностей (SAD) посредством использования опорных выборок в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок в опорном L1-кадре, извлекаемом на основе L1-вектора движения. Помимо этого, оборудование кодирования может извлекать детализированный L0-вектор движения для L0-вектора движения и детализированный L1-вектор движения для L1-вектора движения на основе выборочной позиции, соответствующей минимальной SAD.
[436] Здесь, опорный L0-кадр представляет собой опорный кадр, указываемый посредством индекса опорного L0-кадра из опорных кадров, включенных в список опорных L0-кадров, и опорный L1-кадр представляет собой опорный кадр, указываемый посредством индекса опорного L1-кадра из опорных кадров, включенных в список опорных L1-кадров.
[437] Дополнительно, детализированный L0-вектор движения может представлять собой вектор движения, указывающий выборочную позицию, соответствующую минимальной SAD в опорном L0-кадре, и детализированный L1-вектор движения может представлять собой вектор движения, указывающий выборочную позицию, соответствующую минимальной SAD в опорном L1-кадре. Процесс извлечения детализированного вектора движения посредством применения DMVR описывается подробно на фиг. 8 и 9, так что его описание опускается в данном документе.
[438] Оборудование кодирования может извлекать прогнозные L0-выборки текущего блока на основе детализированного L0-вектора движения и прогнозную L1-выборку текущего блока на основе детализированного L1-вектора движения (S1420).
[439] Здесь, прогнозные L0-выборки могут извлекаться на основе опорных выборок, указываемых посредством детализированного L0-вектора движения в опорном L0-кадре, и прогнозные L1-выборки могут извлекаться на основе опорных выборок, указываемых посредством детализированного L1-вектора движения в опорном L1-кадре.
[440] Оборудование кодирования может извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок посредством применения BDOF к текущему блоку на основе информации BDOF-флага, указывающей то, следует или нет применять BDOF к текущему блоку (S1430).
[441] В этом случае, при извлечении прогнозных выборок, оборудование кодирования может определять то, следует или нет применять BDOF к текущему блоку, с учетом эффективности кодирования, сложности, производительности прогнозирования и т.д. Другими словами, оборудование кодирования может применять BDOF к текущему блоку на основе того, удовлетворяется или нет предварительно определенное условие применения BDOF для текущего блока. Здесь, предварительно определенное условие применения BDOF может состоять из некоторых (или всех) либо конкретных комбинаций различных условий применения, описанных в вышеприведенных таблицах 2-42. Дополнительно, оборудование кодирования может извлекать информацию BDOF-флага согласно тому, удовлетворяется или нет предварительно определенное условие применения BDOF. Информация BDOF-флага может представлять собой информацию (например, bdofFlag, описанный выше), указывающую то, следует или нет применять BDOF к текущему блоку.
[442] В качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равны 0.
[443] В этом случае, когда случай, в котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l0_flag) и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l1_flag) равны 0, удовлетворяется, оборудование кодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, когда luma_weight_l0_flag и luma_weight_l1_flag равны 0, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. В противном случае, информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[444] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором размер текущего блока равен или выше 16×16. Другими словами, предварительно определенное условие применения может означать случай, в котором высота текущего блока равна или выше 16, и ширина текущего блока равна или выше 16.
[445] В этом случае, когда случай, в котором размер текущего блока равен или выше 16×16, удовлетворяется, оборудование кодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, в случае если размер текущего блока равен или выше 16×16, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. Иначе (т.е. в случае, если размер текущего блока меньше 16×16), информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[446] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором высота текущего блока равна или выше 8.
[447] В этом случае, когда случай, в котором высота текущего блока равна или выше 8, удовлетворяется, оборудование кодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, в случае если высота текущего блока равна или выше 8, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. Иначе (т.е. в случае, если высота текущего блока меньше 8), информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[448] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя случай, в котором первый номер в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными друг другу.
[449] В этом случае, когда случай, в котором первая POC-разность (например, DiffPicOrderCnt(currPic, RefPicList0 [refIdxL0])) и вторая POC-разность (например, DiffPicOrderCnt(currPic, RefPicList1 [refIdxL1])) являются идентичными друг другу, удовлетворяется, оборудование кодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, когда DiffPicOrderCnt(currPic, RefPicList0 [refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1 [refIdxL1]) равен 0, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. В противном случае, информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[450] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором режим прогнозирования (CIIP-режим), в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку.
[451] В этом случае, когда случай, в котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку (например, случай, в котором ciip_flag равен 0), удовлетворяется, информация BDOF-флага может извлекаться в качестве значения, указывающего то, что BDOF применяется к текущему блоку. Например, когда ciip_flag равен 0, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. Когда ciip_flag равен 1, информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[452] Дополнительно, согласно варианту осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором взаимное прогнозирование на основе BDOF активируется, условие, при котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, условие, при котором значение информации весового индекса бипрогнозирования текущего блока равно 0, условие, при котором аффинный режим не применяется к текущему блоку, условие, при котором режим объединения на основе субблоков не применяется к текущему блоку, условие, при котором текущий блок представляет собой компонент сигнала яркости, и т.д.
[453] Другими словами, условие применения BDOF может определяться как включающее в себя, по меньшей мере, одно из условий, и информация BDOF-флага может извлекаться на основе определенного условия BDOF-применения. В этом случае, когда условие BDOF-применения определяется как включающее одно или более условий, если все предварительно определенные условия BDOF-применения удовлетворяются, оборудование кодирования извлекает значение информации BDOF-флага как "истина" или 1, чтобы определять то, что BDOF применяется к текущему блоку. В противном случае, если даже какое-либо из предварительно определенных условий применения BDOF не удовлетворяется, значение информации BDOF-флага может извлекаться в качестве "ложь" или 0.
[454] Здесь, при извлечении информации BDOF-флага, перечисленные условия BDOF-применения представляют собой просто примеры, и условия таблиц 2-42, описанных выше, могут использоваться в различных комбинациях.
[455] Когда информация BDOF-флага указывает то, что BDOF применяется к текущему блоку (например, когда информация BDOF-флага извлекается в качестве значения "истина" или 1), оборудование кодирования может извлекать прогнозные выборки посредством применения BDOF к текущему блоку.
[456] В качестве варианта осуществления, оборудование кодирования может вычислять первый градиент для прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и второй градиент для прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения. Помимо этого, оборудование кодирования может в завершение извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок, прогнозных L1-выборок, первого градиента и второго градиента. В качестве одного примера, такое вычисление, как уравнения 1-6, описанные выше, может использоваться для процесса извлечения прогнозных выборок посредством применения BDOF.
[457] Оборудование кодирования может извлекать остаточные выборки для текущего блока на основе прогнозных выборок (S1440) и кодировать информацию изображений, включающую в себя информацию относительно остаточных выборок (S1450).
[458] Другими словами, оборудование кодирования может извлекать остаточные выборки на основе исходных выборок для текущего блока и прогнозных выборок текущего блока. Помимо этого, оборудование кодирования может формировать информацию относительно остаточных выборок. Здесь, информация относительно остаточных выборок может включать в себя такую информацию, как информация значений, позиционная информация, технология преобразования, ядро преобразования, параметр квантования и т.д. для квантованных коэффициентов преобразования, извлекаемых посредством выполнения преобразования и квантования для остаточных выборок.
[459] Оборудование кодирования может кодировать информацию относительно остаточных выборок и выводить кодированную информацию в качестве потока битов и передавать выходной поток битов в оборудование декодирования через сеть или носитель хранения данных.
[460] Дополнительно, оборудование кодирования может кодировать информацию изображений, извлекаемую на этапах S1400-S1450, описанных выше, и выводить кодированную информацию изображений в качестве потока битов. Например, информация флага объединения, информация индекса объединения, индекс опорного L0-кадра, индекс опорного L1-кадра, информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информация весового индекса бипрогнозирования и т.д., может включаться в информацию изображений и кодироваться, и кодированная информация изображений может передаваться в служебных сигналах в оборудование декодирования.
[461] Фиг. 15 является блок-схемой последовательности операций способа, схематично показывающей способ декодирования, который может осуществляться посредством оборудования декодирования согласно варианту осуществления настоящего раскрытия сущности.
[462] Способ, раскрытый на фиг. 15, может осуществляться посредством оборудования 300 декодирования, раскрытого на фиг. 3. В частности, этапы S1500-S1530 по фиг. 15 могут выполняться посредством модуля 330 прогнозирования и модуля 332 взаимного прогнозирования, раскрытого на фиг. 3, и этап S1540 по фиг. 15 может выполняться посредством сумматора 340, раскрытого на фиг. 3. Дополнительно, способ, раскрытый на фиг. 15, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии сущности. Соответственно, на фиг. 15, подробное описание дублированного контента с вариантами осуществления опускается или упрощается.
[463] Ссылаясь на фиг. 15, оборудование декодирования может извлекать L0-вектор движения и L1-вектор движения текущего блока (S1500).
[464] Способ, раскрытый на фиг. 15, может осуществляться посредством оборудования 300 декодирования, раскрытого на фиг. 3. В частности, этапы S1500-S1530 по фиг. 15 могут выполняться посредством модуля 330 прогнозирования и модуля 332 взаимного прогнозирования, раскрытого на фиг. 3, и этап S1540 по фиг. 15 может выполняться посредством сумматора 340, раскрытого на фиг. 3. Дополнительно, способ, раскрытый на фиг. 15, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии сущности. Соответственно, на фиг. 15, подробное описание дублированного контента с вариантами осуществления опускается или упрощается.
[465] Ссылаясь на фиг. 15, оборудование декодирования может извлекать L0-вектор движения и L1-вектор движения текущего блока (S1500).
[466] В качестве варианта осуществления, оборудование декодирования может определять режим прогнозирования для текущего блока на основе информации прогнозирования, передаваемой в служебных сигналах из оборудования кодирования. Тем не менее, оборудование декодирования может извлекать информацию движения (вектор движения, индекс опорного кадра и т.д.) текущего блока на основе режима прогнозирования. Здесь, режим прогнозирования может включать в себя режим пропуска, режим объединения, (A)MVP-режим и т.д.
[467] Например, когда режим объединения применяется к текущему блоку, оборудование декодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока и выбирать один возможный вариант объединения из числа возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, один возможный вариант объединения может выбираться в списке возможных вариантов объединения на основе информации индекса объединения. Оборудование декодирования может извлекать информацию движения текущего блока посредством использования информации движения выбранного возможного варианта объединения. Другими словами, информация движения возможного варианта объединения, выбранного посредством индекса объединения, из возможных вариантов объединения, включенных в список возможных вариантов объединения, может использоваться в качестве информации движения текущего блока.
[468] Здесь, информация движения может включать в себя такую информацию, как вектор движения, индекс опорного кадра и т.д. и включать в себя L0-информацию движения и/или L1-информацию движения согласно типу взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Когда бипрогнозирование применяется к текущему блоку, информация движения может включать в себя вектор движения для L0-направления (L0-вектор движения) и вектор движения для L1-направления (L1-вектор движения). Дополнительно, информация движения может включать в себя индекс опорного L0-кадра и опорный L0-кадр, указываемый посредством индекса опорного L0-кадра в списке опорных L0-кадров, и индекс опорного L1-кадра и опорный L1-кадр, указываемый посредством индекса опорного L1-кадра в списке опорных L1-кадров.
[469] Другими словами, оборудование декодирования может определять то, применяется или нет режим объединения к текущему блоку, на основе информации режима прогнозирования (например, флага (merge_flag) объединения, указывающего то, представляет или нет режим прогнозирования собой режим объединения) текущего блока. Когда режим объединения применяется к текущему блоку на основе флага объединения, оборудование декодирования может получать информацию индекса объединения. Помимо этого, оборудование декодирования может извлекать L0-вектор движения и L1-вектор движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков, включенных в список возможных вариантов объединения, и использовать извлеченные L0- и L1-векторы движения в качестве L0- и L1-векторов движения текущего блока.
[470] Оборудование декодирования применяет DMVR к текущему блоку на основе информации DMVR-флага, указывающей то, следует или нет применять DMVR к текущему блоку, чтобы извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе L0-вектора движения и L1-вектора движения (S1510).
[471] В этом случае, оборудование декодирования может определять то, следует или нет применять DMVR к текущему блоку, с учетом эффективности кодирования, сложности, производительности прогнозирования и т.д. Другими словами, оборудование декодирования может применять DMVR к текущему блоку на основе того, удовлетворяется или нет предварительно определенное условие применения DMVR для текущего блока. Здесь, предварительно определенное условие применения DMVR может состоять из некоторых (или всех) либо конкретных комбинаций различных условий применения, описанных в вышеприведенных таблицах 2-42. Дополнительно, оборудование декодирования может извлекать информацию DMVR-флага согласно тому, удовлетворяется или нет предварительно определенное условие применения DMVR. Информация DMVR-флага может представлять собой информацию (например, dmvrFlag, описанный выше), указывающую то, следует или нет применять DMVR к текущему блоку.
[472] В качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равны 0.
[473] В этом случае, когда случай, в котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l0_flag) и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l1_flag) равны 0, удовлетворяется, оборудование декодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, когда luma_weight_l0_flag и luma_weight_l1_flag равны 0, информация DMVR-флага может извлекаться со значением (например, 1 или "истина"), указывающим то, что DMVR применяется к текущему блоку. В противном случае, информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[474] Здесь, информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости может представлять собой информацию, указывающую то, присутствует или нет весовой коэффициент L0-прогнозирования для компонента сигнала яркости текущего блока, и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости представлять собой информацию, указывающую то, присутствует или нет весовой коэффициент L1-прогнозирования для компонента сигнала яркости текущего блока. Например, случай, в котором информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости может указывать то, что весовой коэффициент, не присутствует для компонента сигнала яркости L0-прогнозирования, и случай, в котором информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости равна 1, может указывать то, что весовой коэффициент присутствует для компонента сигнала яркости L0-прогнозирования. Например, случай, в котором значение информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равно 0, может указывать то, что весовой коэффициент не присутствует для компонента сигнала яркости L1-прогнозирования, и случай, в котором значение информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равно 1, может указывать то, что весовой коэффициент присутствует для компонента сигнала яркости L1-прогнозирования.
[475] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором равно 0 значение информации весового индекса бипрогнозирования текущего блока.
[476] В этом случае, когда значение информации весового индекса бипрогнозирования (например, GbiIdx) равно 0, оборудование декодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, когда GbiIdx равен 0, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. В противном случае, информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[477] Здесь, случай, в котором значение весового индекса бипрогнозирования (например, GbiIdx) равно 0, может представлять собой случай по умолчанию, в котором различные весовые коэффициенты не применяются к L0-прогнозированию и L1-прогнозированию. В качестве одного примера, как показано в вышеприведенной таблице 4, случай, в котором значение информации весового индекса бипрогнозирования равно 0, может представлять собой случай, в котором весовой коэффициент в 1/2 применяется к каждому из L0-прогнозирования и L1-прогнозирования.
[478] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором режим прогнозирования (CIIP-режим), в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку.
[479] В этом случае, когда случай, в котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку (например, случай, в котором ciip_flag равен 0), удовлетворяется, оборудование декодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, когда ciip_flag равен 0, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. Когда ciip_flag равен 1, информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[480] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором размер текущего блока равен или выше 16×16. Другими словами, предварительно определенное условие применения может означать случай, в котором высота текущего блока равна или выше 16, и ширина текущего блока равна или выше 16.
[481] В этом случае, когда случай, в котором размер текущего блока равен или выше 16×16, удовлетворяется, оборудование декодирования может извлекать информацию DMVR-флага как значение, указывающее то, что DMVR применяется к текущему блоку. Например, в случае если размер текущего блока равен или выше 16×16, информация DMVR-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что DMVR применяется к текущему блоку. Иначе (т.е. в случае, если размер текущего блока меньше 16×16), информация DMVR-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что DMVR не применяется к текущему блоку.
[482] Дополнительно, согласно варианту осуществления, предварительно определенное условие применения DMVR может включать в себя условие, при котором взаимное бипрогнозирование на основе DMVR активируется, условие, при котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, условие, при котором первая разность номеров в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными друг другу, условие, при котором режим объединения применяется к текущему блоку, условие, при котором режим объединения с разностью векторов движения (MMVD) не применяется к текущему блоку, и т.д.
[483] Другими словами, условие применения DMVR может определяться как включающее в себя, по меньшей мере, одно из условий, и информация DMVR-флага может извлекаться на основе определенного условия DMVR-применения. В этом случае, когда условие DMVR-применения определяется как включающее одно или более условий, если все предварительно определенные условия DMVR-применения удовлетворяются, оборудование декодирования извлекает значение информации DMVR-флага как "истина" или 1, чтобы определять то, что DMVR применяется к текущему блоку. В противном случае, если даже какое-либо из предварительно определенных условий применения DMVR не удовлетворяется, значение информации DMVR-флага может извлекаться в качестве "ложь" или 0.
[484] Здесь, при извлечении информации DMVR-флага, перечисленные условия DMVR-применения представляют собой просто примеры, и условия таблиц 2-42, описанных выше, могут использоваться в различных комбинациях.
[485] Когда информация DMVR-флага указывает то, что DMVR применяется к текущему блоку (например, когда информация DMVR-флага извлекается в качестве значения "истина" или 1), оборудование декодирования применяет DMVR к текущему блоку, чтобы извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе L0-вектора движения и L1-вектора движения.
[486] В качестве варианта осуществления, оборудование декодирования минимальная сумма абсолютных разностей (SAD) посредством использования опорных выборок в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок в опорном L1-кадре, извлекаемом на основе L1-вектора движения. Помимо этого, оборудование декодирования может извлекать детализированный L0-вектор движения для L0-вектора движения и детализированный L1-вектор движения для L1-вектора движения на основе выборочной позиции, соответствующей минимальной SAD.
[487] Здесь, опорный L0-кадр представляет собой опорный кадр, указываемый посредством индекса опорного L0-кадра из опорных кадров, включенных в список опорных L0-кадров, и опорный L1-кадр представляет собой опорный кадр, указываемый посредством индекса опорного L1-кадра из опорных кадров, включенных в список опорных L1-кадров.
[488] Дополнительно, детализированный L0-вектор движения может представлять собой вектор движения, указывающий выборочную позицию, соответствующую минимальной SAD в опорном L0-кадре, и детализированный L1-вектор движения может представлять собой вектор движения, указывающий выборочную позицию, соответствующую минимальной SAD в опорном L1-кадре. Процесс извлечения детализированного вектора движения посредством применения DMVR описывается подробно на фиг. 8 и 9, так что его описание опускается в данном документе.
[489] Оборудование декодирования может извлекать прогнозные L0-выборки текущего блока на основе детализированного L0-вектора движения и прогнозную L1-выборку текущего блока на основе детализированного L1-вектора движения (S1520).
[490] Здесь, прогнозные L0-выборки могут извлекаться на основе опорных выборок, указываемых посредством детализированного L0-вектора движения в опорном L0-кадре, и прогнозные L1-выборки могут извлекаться на основе опорных выборок, указываемых посредством детализированного L1-вектора движения в опорном L1-кадре.
[491] Оборудование декодирования может извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок посредством применения BDOF к текущему блоку на основе информации BDOF-флага, указывающей то, следует или нет применять BDOF к текущему блоку (1530).
[492] В этом случае, при извлечении прогнозных выборок, оборудование декодирования может определять то, следует или нет применять BDOF к текущему блоку, с учетом эффективности кодирования, сложности, производительности прогнозирования и т.д. Другими словами, оборудование декодирования может применять BDOF к текущему блоку на основе того, удовлетворяется или нет предварительно определенное условие применения BDOF для текущего блока. Здесь, предварительно определенное условие применения BDOF может состоять из некоторых (или всех) либо конкретных комбинаций различных условий применения, описанных в вышеприведенных таблицах 2-42. Дополнительно, оборудование декодирования может извлекать информацию BDOF-флага согласно тому, удовлетворяется или нет предварительно определенное условие применения BDOF. Информация BDOF-флага может представлять собой информацию (например, bdofFlag, описанный выше), указывающую то, следует или нет применять BDOF к текущему блоку.
[493] В качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равны 0.
[494] В этом случае, когда случай, в котором значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l0_flag) и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости (например, luma_weight_l1_flag) равны 0, удовлетворяется, оборудование декодирования может извлекать информацию BDOF-флага со значением, указывающим то, что BDOF применяется к текущему блоку. Например, когда luma_weight_l0_flag и luma_weight_l1_flag равны 0, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. В противном случае, информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[495] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором размер текущего блока равен или выше 16×16. Другими словами, предварительно определенное условие применения может означать случай, в котором высота текущего блока равна или выше 16, и ширина текущего блока равна или выше 16.
[496] В этом случае, когда случай, в котором размер текущего блока равен или выше 16×16, удовлетворяется, оборудование декодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, в случае если размер текущего блока равен или выше 16×16, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. Иначе (т.е. в случае, если размер текущего блока меньше 16×16), информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[497] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором высота текущего блока равна или выше 8.
[498] В этом случае, когда случай, в котором высота текущего блока равна или выше 8, удовлетворяется, оборудование декодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, в случае если высота текущего блока равна или выше 8, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. Иначе (т.е. в случае, если высота текущего блока меньше 8), информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[499] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя случай, в котором первый номер в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными друг другу.
[500] В этом случае, когда случай, в котором первая POC-разность (например, DiffPicOrderCnt(currPic, RefPicList0 [refIdxL0])) и вторая POC-разность (например, DiffPicOrderCnt(currPic, RefPicList1 [refIdxL1])) являются идентичными друг другу, удовлетворяется, оборудование декодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, когда DiffPicOrderCnt(currPic, RefPicList0 [refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1 [refIdxL1]) равен 0, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. В противном случае, информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[501] Дополнительно, в качестве варианта осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором режим прогнозирования (CIIP-режим), в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку.
[502] В этом случае, когда случай, в котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку (например, случай, в котором ciip_flag равен 0), удовлетворяется, оборудование декодирования может извлекать информацию BDOF-флага как значение, указывающее то, что BDOF применяется к текущему блоку. Например, когда ciip_flag равен 0, информация BDOF-флага может извлекаться в качестве значения (например, 1 или "истина"), указывающего то, что BDOF применяется к текущему блоку. Когда ciip_flag равен 1, информация BDOF-флага может извлекаться в качестве значения (например, 0 или "ложь"), указывающего то, что BDOF не применяется к текущему блоку.
[503] Дополнительно, согласно варианту осуществления, предварительно определенное условие применения BDOF может включать в себя условие, при котором взаимное прогнозирование на основе BDOF активируется, условие, при котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, условие, при котором значение информации весового индекса бипрогнозирования текущего блока равно 0, условие, при котором аффинный режим не применяется к текущему блоку, условие, при котором режим объединения на основе субблоков не применяется к текущему блоку, условие, при котором текущий блок представляет собой компонент сигнала яркости, и т.д.
[504] Другими словами, условие применения BDOF может определяться как включающее в себя, по меньшей мере, одно из условий, и информация BDOF-флага может извлекаться на основе определенного условия BDOF-применения. В этом случае, когда условие BDOF-применения определяется как включающее одно или более условий, если все предварительно определенные условия BDOF-применения удовлетворяются, оборудование декодирования извлекает значение информации BDOF-флага как "истина" или 1, чтобы определять то, что BDOF применяется к текущему блоку. В противном случае, если даже какое-либо из предварительно определенных условий применения BDOF не удовлетворяется, значение информации BDOF-флага может извлекаться в качестве "ложь" или 0.
[505] Здесь, при извлечении информации BDOF-флага, перечисленные условия BDOF-применения представляют собой просто примеры, и условия таблиц 2-42, описанных выше, могут использоваться в различных комбинациях.
[506] Когда информация BDOF-флага указывает то, что BDOF применяется к текущему блоку (например, когда информация BDOF-флага извлекается в качестве значения "истина" или 1), оборудование декодирования может извлекать прогнозные выборки посредством применения BDOF к текущему блоку.
[507] В качестве варианта осуществления, оборудование декодирования может вычислять первый градиент для прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и второй градиент для прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения. Помимо этого, оборудование декодирования может в завершение извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок, прогнозных L1-выборок, первого градиента и второго градиента. В качестве одного примера, такое вычисление, как уравнения 1-6, описанные выше, может использоваться для процесса извлечения прогнозных выборок посредством применения BDOF.
[508] Оборудование декодирования может формировать восстановительные выборки для текущего блока на основе прогнозных выборок (S1540).
[509] В качестве варианта осуществления, оборудование декодирования может непосредственно использовать прогнозные выборки в качестве восстановительных выборок или формировать восстановительные выборки посредством добавления остаточных выборок в прогнозные выборки.
[510] Когда имеется остаточная выборка для текущего блока, оборудование декодирования может принимать информацию относительно остатка для текущего блока. Информация относительно остатка может включать в себя коэффициенты преобразования, связанные с остаточными выборками. Оборудование декодирования может извлекать остаточные выборки (или массив остаточных выборок) для текущего блока на основе остаточной информации. Оборудование декодирования может формировать восстановительные выборки на основе прогнозных выборок и остаточных выборок и извлекать восстановительный блок или восстановительный кадр на основе восстановительных выборок.
[511] В вышеуказанных вариантах осуществления, хотя способы описываются на основе блок-схем последовательности операций способа в форме последовательности этапов или единиц, варианты осуществления настоящего раскрытия сущности не ограничены порядком этапов, и некоторые этапы могут выполняться в порядке, отличающемся от порядка других этапов, либо могут выполняться одновременно с другими этапами. Кроме того, специалисты в данной области техники должны понимать, что этапы, показанные на блок-схеме последовательности операций способа, не являются единственно возможными, и этапы могут включать в себя дополнительные этапы, либо что один или более этапов на блок-схеме последовательности операций способа могут удаляться, без влияния на объем прав настоящего раскрытия сущности.
[512] Вышеуказанный способ согласно настоящему раскрытию сущности может реализовываться в программной форме, и оборудование кодирования и/или оборудование декодирования согласно настоящему раскрытию сущности может включаться в оборудование для выполнения обработки изображений, например, телевизор, компьютер, смартфон, абонентскую приставку или устройство отображения.
[513] В настоящем раскрытии сущности, когда варианты осуществления реализуются в программной форме, вышеуказанный способ реализовываться как модуль (процесс, функция и т.д.) для выполнения вышеуказанной функции. Модуль может сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может размещаться внутри или снаружи процессора и соединяться с процессором посредством различных известных средств. Процессор может включать в себя специализированные интегральные схемы (ASIC), другие наборы микросхем, логические схемы и/или устройства обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карты памяти, носители хранения данных и/или другие устройства хранения данных. Таким образом, варианты осуществления, описанные в настоящем раскрытии сущности, могут реализовываться и выполняться на/в процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, проиллюстрированные на чертежах, могут реализовываться и выполняться на/в компьютере, процессоре, микропроцессоре, контроллере или микросхеме. В этом случае, информация (например, информация относительно инструкций) или алгоритм для реализации может сохраняться на цифровом носителе хранения данных.
[514] Кроме того, оборудование декодирования и оборудование кодирования, к которым применяется настоящее раскрытие сущности, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру для мониторинга, диалоговое видеоустройство, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу (VoD)", видеоустройство поверх сетей (OTT), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, устройство в стиле виртуальной реальности (VR), устройство в стиле дополненной реальности (AR), устройство системы видеотелефонии, терминал в средстве транспортировки (например, терминал в транспортном средстве (в том числе в автономном транспортном средстве), терминал в воздушном судне и терминал в морском судне) и медицинское видеоустройство и могут использоваться для того, чтобы обрабатывать видеосигнал или сигнал данных. Например, видеоустройство поверх сетей (OTT) может включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC и цифровое записывающее видеоустройство (DVR).
[515] Кроме того, способ обработки, к которому применяется настоящее раскрытие сущности, может формироваться в форме программы, выполняемой посредством компьютера, и может сохраняться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно настоящему раскрытию сущности, также могут сохраняться на машиночитаемом носителе записи. Машиночитаемый носитель записи включает в себя все типы устройств хранения данных, на которых сохраняются машиночитаемые данные. Машиночитаемый носитель может включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EEPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемый носитель записи включает в себя среду, реализованную в форме несущих (например, при передаче через Интернет). Кроме того, поток битов, сформированный с использованием способа кодирования, может сохраняться на машиночитаемом носителе записи или может передаваться по сетям проводной и беспроводной связи.
[516] Кроме того, вариант осуществления настоящего раскрытия сущности может реализовываться как компьютерный программный продукт с помощью программного кода. Программный код может выполняться посредством компьютера согласно варианту осуществления настоящего раскрытия сущности. Программный код может сохраняться на носителе, считываемом посредством компьютера.
[517] Фиг. 16 иллюстрирует пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в настоящем раскрытии сущности.
[518] Ссылаясь на фиг. 16, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[519] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы формировать поток битов и передавать поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
[520] Поток битов может формироваться посредством способа кодирования или способа формирования потока битов, к которому применяется вариант(ы) осуществления настоящего документа, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[521] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер доставляет ее на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
[522] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
[523] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.
[524] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
[525] Между тем оборудование декодирования и оборудование кодирования, к которым применяется вариант осуществления настоящего раскрытия сущности, могут включаться в цифровое устройство. "Цифровое устройство" включает в себя, например, все цифровые устройства, допускающие выполнение, по меньшей мере, одного из передачи, приема, обработки и вывода данных, контента, услуг и т.п. Здесь, обработка данных, контента, услуги и т.п. посредством цифрового устройства включает в себя операцию кодирования и/или декодирования данных, контента, услуги и т.п. Цифровое устройство передает/принимает данные посредством спаривания или соединения (в дальнейшем в этом документе называется "спариванием") с другим цифровым устройством, внешним сервером и т.д. через проводную/беспроводную сеть и преобразует данные при необходимости.
[526] Цифровое устройство, например, включает в себя все из стационарного устройства, такого как сетевой телевизор, гибридный широковещательный широкополосный телевизор (HBBTV), интеллектуальный телевизор, телевизионный приемник по Интернет-протоколу (IPTV), персональный компьютер (PC) и т.д., и мобильного устройства или карманного устройства, такого как персональное цифровое устройство (PDA), смартфон, планшетный PC, ноутбук, VR/AR-устройство и т.д. Помимо этого, цифровое устройство может включать в себя мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носители хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу" (VoD), OTT-видеоустройство (на основе технологии "поверх сетей"), устройства предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, устройство в стиле виртуальной реальности (VR), устройство в стиле дополненной реальности (AR), видеотелефонное устройство, терминал в средстве транспортировки (например, терминал в транспортном средстве (в том числе в автономном транспортном средстве), терминал в воздушном судне, терминал в морском судне и т.д.) и медицинское видеоустройство и т.д.
[527] Между тем "проводная/беспроводная сеть", описанная в настоящем раскрытии сущности, совместно называется "сетью связи", которая поддерживает различные стандарты или протоколы связи для взаимного соединения или/и передачи/приема данных между цифровыми устройствами или между цифровым устройством и внешним сервером. Проводные/беспроводные сети, например, могут включать в себя сети связи, в данный момент поддерживаемые или которые должны поддерживаться в будущем посредством стандарта и протоколов связи для него, и могут формироваться посредством стандартов или протоколов связи для проводной связи, таких как радиочастотная идентификация (RFID), стандарт Ассоциации по передаче данных в инфракрасном диапазоне (IrDA), стандарт сверхширокополосной связи (UWB), ZigBee, стандарт Альянса цифровых домашних сетей (DLNA), беспроводная LAN (WLAN) (Wi-Fi), стандарт беспроводной широкополосной связи (WiBro), стандарт общемировой совместимости широкополосного беспроводного доступа (WiMax), высокоскоростной пакетный доступ по нисходящей линии связи (HSDPA), стандарт долгосрочного развития (LTE) или стандарт Wi-Fi Direct.
[528] В дальнейшем в этом документе, в настоящем раскрытии сущности, при упоминании просто в качестве цифрового устройства, цифровое устройство может означать стационарное устройстве или мобильное устройство либо означать как стационарное устройство, так и мобильное устройство.
[529] Между тем цифровое устройство в качестве интеллектуального устройства, которое поддерживает функцию приема широковещательной передачи, функцию компьютера или поддерживает, по меньшей мере, один внешний ввод, например, может поддерживать электронную почту, просмотр веб-страниц, банковские операции, игру, применение и т.д. Кроме того, цифровое устройство может включать в себя интерфейс для поддержки, по меньшей мере, одного средства ввода или управления (в дальнейшем в этом документе называется "средством ввода"), такого как устройство ручного ввода, сенсорный экран, удаленный контроллер и т.д. Цифровое устройство может использовать стандартизированную универсальную операционную систему (ОС). Например, цифровое устройство может добавлять, удалять, изменять, обновлять и т.д. различные приложения в ядре универсальной ОС и конфигурировать и конфигурировать и предоставлять более удобное для пользователя окружение через добавление, удаление и изменение различных приложений.
[530] Между тем внешний ввод, описанный в настоящем раскрытии сущности, включает в себя все средства ввода или цифровые устройства, которые соединяются с внешним устройством ввода, т.е. цифровым устройством, проводным/беспроводным способом, чтобы передавать/принимать связанные данные через проводное/беспроводное соединение и обрабатывать передаваемые/принимаемые данные. Здесь, например, внешний ввод включает в себя все цифровые устройства, такие как мультимедийный интерфейс высокой четкости (HDMI), игровое устройство, такое как PlayStation или X-Box, смартфон, планшетный PC, печатающее устройство и интеллектуальный телевизор.
[531] Дополнительно, "сервер", описанный в настоящем раскрытии сущности в качестве смыслового значения, включающего в себя все цифровые устройства или системы, предоставляющие данные в клиент, т.е. цифровое устройство, также называется "процессором". Сервер, например, может включать в себя портальный сервер, предоставляющий веб-страницу или веб-контент, оповещающий сервер, предоставляющий оповещающие данные, сервер контента, предоставляющий контент, SNS-сервер, предоставляющий услугу общения в социальных сетях (SNS), сервер предоставления услуг или производственный сервер, предоставленный посредством изготовителя, и т.п.
[532] Кроме того, "канал", описанный в настоящем раскрытии сущности, который означает тракт, средство и т.п. для передачи/приема данных и широковещательного канала может рассматриваться в качестве примера "канала". Здесь, широковещательный канал выражается как такой термин, как физический канал, виртуальный канал, логический канал и т.д., согласно активации цифровой широковещательной передачи. Широковещательный канал может называться "широковещательной сетью". В связи с этим, широковещательный канал означает канал для предоставления широковещательного контента, предоставленного посредством широковещательной станции, или осуществления доступа к широковещательному контенту посредством приемника, и поскольку широковещательный контента главным образом основан на широковещательной передаче в реальном времени, широковещательный канал также называется "каналом прямого вещания". Тем не менее, в последние годы, среда для широковещательной передачи дополнительно диверсифицируется, и широковещательная передача не в реальном времени также активируется в дополнение к широковещательной передаче в реальном времени, и как результат, канал прямого вещания может приниматься во внимание просто в качестве термина, означающего весь широковещательный канал, включающий в себя широковещательную передачу не в реальном времени в некоторых случаях, в дополнение к широковещательной передаче в реальном времени.
[533] В настоящем раскрытии сущности, в дополнение к широковещательному каналу, "произвольный канал" дополнительно задается в ассоциации с каналом. Произвольный канал может предоставляться вместе с расписанием услуг, таким как электронное расписание программ (EPG) вместе с широковещательным каналом, и расписание услуг, графический пользовательский интерфейс (GUI) или экран экранного меню (OSD) может конфигурироваться/предоставляться только с произвольным каналом.
[534] Между тем, в отличие от широковещательного канала, имеющего номер канала, предварительно обеспечиваемый между передатчиком и приемником, произвольный канал представляет собой канал, произвольно выделяемый посредством приемника, и номер канала, который по существу не дублируется с номером канала для выражения широковещательного канала, выделяется произвольному каналу. Например, когда конкретный широковещательный канал настраивается, приемник принимает широковещательный контент и широковещательный сигнал для передачи служебной информации для широковещательного контента через настроенный канал. Здесь, приемник синтаксически анализирует информацию канала из служебной информации и конфигурирует браузер канала, EPG и т.д., на основе синтаксически проанализированной информации канала и предоставляет сконфигурированный браузер канала, EPG и т.д. пользователю. Когда пользователь выполняет запрос на переключение каналов через средство ввода, приемник представляет собой схему, которая отвечает на запрос на переключение каналов.
[535] В связи с этим, поскольку широковещательный канал представляет собой контент, предварительно обеспеченный между передатчиком и приемником, когда произвольный канал выделяется дублирующе с широковещательным каналом, путаница пользователя вызывается, или возникает вероятность путаницы, и как результат, предпочтительно не выделять дублирующе канал, как описано выше. Между тем, поскольку по-прежнему имеется вероятность путаницы в процессе серфинга по каналам пользователя, даже если произвольный номер канала дублирующе не выделяется с широковещательным каналом, как описано выше, требуется выделение произвольного номера канала с учетом вероятности путаницы. Причина состоит в том, что произвольный канал согласно варианту осуществления настоящего раскрытия сущности также может реализовываться таким образом, что к нему осуществляется доступ как к широковещательному каналу аналогично в ответ на запрос на переключение каналов пользователя через средство ввода, аналогично традиционному широковещательному каналу. Соответственно, произвольный номер канала может задаваться и представляться в качестве формы с символами, к примеру, "произвольный канал 1", "произвольный канал 2" и т.д., а не в качестве формы номера, к примеру, широковещательный канал для удобства доступа к произвольному каналу и удобства различения или идентификации из номера широковещательного канала. Между тем, в этом случае, даже если представление произвольного номера канала может представлять собой форму с символами, к примеру, "произвольный канал 1", произвольный номер канала может распознаваться и реализовываться в качестве формы номера, такой как номер широковещательного канала, внутренне в приемнике. Кроме того, произвольный номер канала может предоставляться в качестве формы номера, к примеру, широковещательный канал, и номер канала может задаваться и представляться посредством различных схем, которые могут отличаться от широковещательного канала, к примеру, канал 1 видеоконтента, заголовок 1, видео 1 и т.д.
[536] Цифровое устройство запускает веб-браузер для веб-услуги, чтобы предоставлять различные формы веб-страниц пользователю. Здесь, веб-страница также включает в себя веб-страницу, включающую в себя видеоконтент, и в варианте осуществления настоящего раскрытия сущности, видеоконтент разделяется и обрабатывается отдельно или независимо от веб-страницы. Помимо этого, произвольный номер канала может выделяться разделенному видеоконтенту, и разделенный видеоконтент может предоставляться через расписание услуг, и пользователь может реализовывать разделенный видеоконтент, который должен выводиться, согласно запросу на переключение каналов в расписании услуг или в процессе просмотра широковещательных каналов. Кроме того, даже для такой услуги, как широковещательный контент, игра, приложение и т.д., в дополнение к веб-услуге, предварительно определенный контент, изображение, аудио, пункт и т.д. могут разделяться и обрабатываться независимо от широковещательного контента, игры или непосредственно приложения, и произвольный номер канала может выделяться для воспроизведения, обработки и т.д. и реализовываться так, как описано выше.
[537] Фиг. 17 является схемой, принципиально иллюстрирующей один пример системы предоставления услуг, включающей в себя цифровое устройство.
[538] Система предоставления услуг, включающая в себя цифровое устройство, включает в себя поставщика 1710 контента (CP), поставщика 1720 услуг (SP), поставщика 1730 сетевых услуг (NP) и домашнего сетевого конечного пользователя 1740 (HNED) (потребитель). Здесь, HNED 1740, например, представляет собой клиент 1700, т.е. цифровое устройство. Поставщик 1710 контента производит и предоставляет различный контент. Как проиллюстрировано на фиг. 17, в качестве поставщика 1710 контента могут примерно иллюстрироваться наземный вещатель, кабельный системный оператор (SO) или комплексные системные операторы (SO), спутниковый вещатель, различные Интернет-вещатели, поставщики частного контента (CP) и т.д. Между тем, поставщик 1710 контента предоставляет различные приложения и т.д., в дополнение к широковещательному контенту.
[539] Поставщик 1720 услуг пакетирует по услугам контент, предоставленный посредством поставщика 1710 контента, и предоставляет контент в HNED 1740. Например, поставщик 1720 услуг по фиг. 17 пакетирует и предоставляет первую наземную широковещательную передачу, вторую наземную широковещательную передачу, кабельный MSO, спутниковую широковещательную передачу, различные широковещательные передачи по Интернету, приложения и т.д., в HNED 1740.
[540] Поставщик 1720 услуг предоставляет услугу в клиент 1700 посредством схемы одноадресной передачи или многоадресной передачи. Между тем, поставщик 1720 услуг может передавать данные в несколько предварительно регистрируемых клиентов 1700 сразу, и с этой целью, поставщик 1720 услуг может использовать протокол управления Интернет-группами (IGMP) и т.д.
[541] Поставщик 1710 контента и поставщик 1720 услуг могут представлять собой идентичный или один объект. Например, контент, предоставленный посредством поставщика 1710 контента, пакетируется по услугам и предоставляется в HNED 1740, и функция поставщика 1720 услуг также может выполняться совместно, или наоборот.
[542] Поставщик 1730 сетевых услуг предоставляет сеть для обмена данными между поставщиком 1710 контента или/и поставщиком 1720 услуг и клиентом 1700.
[543] Клиент 1700 может передавать/принимать данные посредством конструирования домашней сети.
[544] Между тем поставщик 1710 контента или/и поставщик 1720 услуг в системе предоставления услуг могут использовать средство условного доступа или защиты контента для защиты передаваемого контента. В этом случае, клиент 1700 может использовать средство обработки, такое как кабельная плата (точка развертывания (POD)), загружаемый CAS (DCAS) и т.д., в ответ на условный доступ или защиту контента.
[545] Кроме того, клиент 1700 может использовать интерактивную услугу через сеть (или сеть связи). В этом случае, клиент 1700 по-прежнему может выполнять функцию поставщика контента, и традиционный поставщик 1720 услуг может принимать функцию и передавать принимаемую функцию в клиент снова.
[546] Фиг. 18 является блок-схемой, проиллюстрированной для описания одного варианта осуществления цифрового устройства. Здесь, фиг. 18 может соответствовать клиенту 1700 по фиг. 17 и означает цифровое устройство.
[547] Цифровое устройство 1800 выполнено с возможностью включать в себя сетевой интерфейс 1801, TCP/IP-диспетчер 1802, диспетчер 1803 предоставления услуг, SI-декодер 1804, демультиплексор 1805, аудиодекодер 1806, видеодекодер 1807, A/V- и OSD-модуль 1808 отображения, диспетчер 1809 управления услугами, диспетчер 1810 обнаружения услуг, DB 1811 SI и метаданных, диспетчер 1812 метаданных, диспетчер 1813 услуг, UI-диспетчер 1814 и т.п.
[548] Сетевой интерфейс 1801 принимает или передает пакеты по Интернет-протоколу (IP) через сеть. Другими словами, сетевой интерфейс 1801 принимает услугу, контент и т.д., от поставщика 1720 услуг через сеть.
[549] TCP/IP-диспетчер 1802 принимает участие в доставке IP-пакетов, принимаемых посредством цифрового устройства 1800, и IP-пакетов, передаваемых посредством цифрового устройства 1800, т.е. пакетов между источником и назначением. Помимо этого, TCP/IP-диспетчер 1802 классифицирует принимаемый пакет(ы) таким образом, что он соответствует надлежащему протоколу, и выводит классифицированный пакет(ы) в диспетчер 1805 предоставления услуг, диспетчер 1810 обнаружения услуг, диспетчер 1809 управления услугами, диспетчер 1812 метаданных и т.д. Диспетчер 1803 предоставления услуг отвечает за управление принимаемыми данными по услугам. Например, диспетчер 1803 предоставления услуг может использовать RTP/RTCP при управлении потоковыми данными в реальном времени. При передаче потоковых данных в реальном времени посредством использования RTP, диспетчер 1803 предоставления услуг синтаксически анализирует принимаемый пакет данных согласно RTP и передает синтаксически проанализированный пакет данных в демультиплексор 1805 или сохраняет пакет передаваемых данных в базе 1811 данных SI и метаданных согласно управлению диспетчером 1813 услуг. Помимо этого, диспетчер 1803 предоставления услуг возвращает сетевую информацию приема на сервер, предоставляющий услугу посредством использования RTCP. Демультиплексор 1805 демультиплексирует принимаемый пакет в аудиоданные, видеоданные, данные в виде системной информации (SI) и т.д. и передает аудиоданные, видеоданные, данные в виде системной информации (SI) и т.д. в аудио/видеодекодер 1806/1807 и SI-декодер 1804, соответственно.
[550] SI-декодер 1804, например, декодирует информацию об услугах, такую как программно-зависимая информация (PSI), протокол обработки информации программ и системной информации (PSIP), информация об услугах цифровой широковещательной передачи видео (DVB-SI) и т.д.
[551] Дополнительно, SI-декодер 1804 сохраняет декодированную информацию об услугах, например, в базе 1811 данных SI и метаданных. Сохраненная информация об услугах, например, может считываться и использоваться посредством соответствующей конфигурации посредством запроса пользователя и т.д.
[552] Аудио/видеодекодер 1806/1807 декодирует каждые аудиоданные и видеоданные, демультиплексированные посредством демультиплексора 1805. Декодированные аудиоданные и видеоданные предоставляются пользователю через дисплей 1808.
[553] Диспетчер приложений, например, может быть выполнен с возможностью включать в себя UI-диспетчер 1814 и диспетчер 1813 услуг. Диспетчер приложений может управлять общим состоянием цифрового устройства 1800 и предоставлять пользовательский интерфейс и управлять другим диспетчером.
[554] UI-диспетчер 1814 предоставляет графический пользовательский интерфейс (GUI) для пользователя посредством использования экранного меню (OSD) и принимает клавишный ввод от пользователя и выполняет операцию устройства в зависимости от ввода. Например, когда UI-диспетчер 1814 принимает клавишный ввод для выбора канала от пользователя, UI-диспетчер 1814 передает сигнал клавишного ввода в диспетчер 1813 услуг.
[555] Диспетчер 1813 услуг управляет диспетчером, ассоциированным с услугой, таким как диспетчер 1803 предоставления услуг, диспетчер 1810 обнаружения услуг, диспетчер 1809 управления услугами, диспетчер 1812 метаданных и т.д.
[556] Дополнительно, диспетчер 1813 услуг создает карту каналов и выбирает канал посредством использования карты каналов согласно клавишному вводу, принимаемому из диспетчера 1814 пользовательского интерфейса. Помимо этого, диспетчер 1813 услуг принимает информацию об услугах канала из SI-декодера 1804 и задает идентификатор аудио/видеопакета (PID) выбранного канала в демультиплексор 1805. Заданный PID используется для процесса демультиплексирования. Соответственно, демультиплексор 1805 фильтрует аудиоданные, видеоданные и SI-данные посредством использования PID.
[557] Диспетчер 1810 обнаружения услуг предоставляет информацию, требуемую для выбора поставщика услуг, предоставляющего услугу. При приеме сигнала для выбора канала из диспетчера 1813 услуг, диспетчер 1810 обнаружения услуг находит услугу посредством использования информации.
[558] Диспетчер 1809 управления услугами отвечает за выбор и управление услугой. Например, когда пользователь выбирает услугу прямой широковещательной передачи, к примеру, традиционную широковещательную схему, диспетчер 1809 управления услугами использует IGMP или RTSP, а когда пользователь выбирает такую услугу, как видео по запросу (VoD), диспетчер 1809 управления услугами выполняет выбор и управление услугой посредством использования RTSP. RTSP может предоставлять режим трюков для потоковой передачи в реальном времени. Дополнительно, диспетчер 209 управления услугами может инициализировать и управлять сеансом через IMS-шлюз 1850 посредством использования мультимедийной подсистемы на базе IP-протокола (IMS) и протокола инициирования сеанса (SIP). Протоколы могут представлять собой вариант осуществления, и другой протокол может использоваться согласно примеру реализации.
[559] Диспетчер 1812 метаданных управляет метаданными, ассоциированными с услугой, и сохраняет метаданные в базе 1811 данных SI и метаданных.
[560] База 1811 данных SI и метаданных сохраняет информацию об услугах, декодированную посредством SI-декодера 1804, метаданные, управляемые посредством диспетчера 1812 метаданных, и требуемую информацию для выбора поставщика услуг, предоставленную посредством диспетчера 1810 обнаружения услуг. Дополнительно, база 1811 данных SI и метаданных может сохранять данные настроек для системы и т.д.
[561] База 1811 данных SI и метаданных может реализовываться посредством использования энергонезависимого RAM (NVRAM) или флэш-памяти.
[562] Между тем IMS-шлюз 1850 представляет собой шлюз, который собирает функции, требуемые для осуществления доступа к IPTV-услуге на основе IMS.
[563] Фиг. 19 является блок-схемой, проиллюстрированной для описания другого варианта осуществления цифрового устройства. В частности, фиг. 19 является блок-схемой мобильного устройства в качестве другого варианта осуществления цифрового устройства.
[564] Ссылаясь на фиг. 19, мобильное устройство 1900 может включать в себя блок 1910 беспроводной связи, блок 1920 аудио/видео-(A/V-)ввода, блок 1930 пользовательского ввода, блок 1940 считывания, блок 1950 вывода, запоминающее устройство 1960, интерфейсный блок 1970, блок 1980 управления и блок 1990 подачи мощности. Компоненты, проиллюстрированные на фиг. 19, не являются обязательными. Следовательно, может реализовываться мобильное устройство, имеющее большее число компонентов или меньшее число компонентов.
[565] Блок 1910 беспроводной связи может включать в себя один или более модулей, которые обеспечивают беспроводную связь между мобильным устройством 1900 и системой беспроводной связи либо между мобильным устройством и сетью, в которой позиционируется мобильное устройство. Например, блок 1910 беспроводной связи может включать в себя широковещательный приемный модуль 1911, модуль 1912 мобильной связи, беспроводной Интернет-модуль 1913, модуль 1914 ближней связи и модуль 1915 обработки позиционной информации.
[566] Широковещательный приемный модуль принимает широковещательный сигнал и/или связанную с широковещательной передачей информацию из внешнего сервера управления широковещательной передачей через широковещательный канал. Здесь, широковещательный канал может включать в себя спутниковый канал и наземный канал. Сервер управления широковещательной передачей может представлять собой сервер для формирования и передачи широковещательных сигналов и/или связанной с широковещательной передачей информации либо сервер для приема ранее сформированных широковещательных сигналов и/или связанной с широковещательной передачей информации и передачи принимаемых широковещательных сигналов и/или связанной с широковещательной передачей информации в терминал. Широковещательные сигналы могут включать в себя телевизионный широковещательный сигнал, широковещательный радиосигнал и широковещательный сигнал данных и включать в себя даже широковещательный сигнал типа, в котором широковещательный сигнал данных комбинируется с телевизионным широковещательным сигналом или широковещательным радиосигналом.
[567] Связанная с широковещательной передачей информация может означать информацию, связанную с широковещательным каналом, широковещательной программой или поставщиком широковещательных услуг. Связанная с широковещательной передачей информация может предоставляться даже через сеть мобильной связи. В этом случае связанная с широковещательной передачей информация может приниматься посредством модуля 1912 мобильной связи.
[568] Связанная с широковещательной передачей информация может существовать в качестве различных форм, например, такой формы, как электронное расписание программ (EPG) или электронное расписание услуг (ESG).
[569] Например, широковещательный приемный модуль 1911 может принимать цифровой широковещательный сигнал посредством использования цифровой широковещательной системы, такой как ATSC, наземная цифровая широковещательная передача видео (DVB-T), DVB-S (спутниковая), передача мультимедиа только по прямой линии связи (MediaFLO), DVB-H (для карманных устройств), наземная цифровая широковещательная передача с интегрированными услугами (ISDB-T) и т.д. Конечно, широковещательный приемный модуль 1911 может быть выполнен с возможностью быть подходящим для других широковещательных систем, а также цифровой широковещательной системы.
[570] Широковещательный сигнал и/или связанная с широковещательной передачей информация, принимаемая через широковещательный приемный модуль 1911, могут сохраняться в запоминающем устройстве 1960.
[571] Модуль 1912 мобильной связи передает/принимает, по меньшей мере, один радиосигнал, по меньшей мере, в одно из базовой станции, внешнего терминала и сервера по сети мобильной связи. Радиосигнал может включать в себя различные типы данных в зависимости от передачи/приема голосового сигнала, сигнала видеосвязи или текстового/мультимедийного сообщения.
[572] Беспроводной Интернет-модуль 1913 может включать в себя модуль для беспроводного доступа в Интернет и может быть внутренне или внешне встроен в мобильное устройство 1900. В качестве беспроводной Интернет-технологии, может использоваться беспроводная LAN (WLAN) (Wi-Fi), стандарт беспроводной широкополосной связи (WiBro), стандарт общемировой совместимости широкополосного беспроводного доступа (WiMax), высокоскоростной пакетный доступ по нисходящей линии связи (HSDPA) и т.п.
[573] Модуль 1914 ближней связи представляет модуль для ближней связи. В качестве технологии ближней связи, может использоваться Bluetooth, радиочастотная идентификация (RFID), стандарт Ассоциации по передаче данных в инфракрасном диапазоне (IrDA), стандарт сверхширокополосной связи (UWB), ZigBee, RS-232, RS-485 и т.п.
[574] Модуль 315 обработки позиционной информации в качестве модуля для получения позиционной информации мобильного устройства 1900 может включать в себя модуль по стандарту глобальной системы позиционирования (GPS) в качестве примера.
[575] Блок 1920 A/V-ввода, который используется для ввода аудиосигнала или видеосигнала, может включать в себя камеру 1921 и микрофон 1922. Камера 1921 обрабатывает кинокадр с изображением, такой как неподвижное изображение или движущийся кадр, полученный посредством датчика изображений в режиме видеовызова или режиме фотосъемки. Обработанный кинокадр с изображением может отображаться на блоке 1951 отображения.
[576] Кадр с изображением, обработанный посредством камеры 1921, может сохраняться в запоминающем устройстве 1960 или передаваться наружу через блок 1910 беспроводного соединения. Две или более камер 1921 могут предоставляться согласно окружению использования.
[577] Микрофон 1922 принимает внешний звуковой сигнал посредством микрофона в режиме вызова или режиме записи, режиме распознавания голоса и т.п. и обрабатывает принимаемый внешний звуковой сигнал в качестве электрических голосовых данных. Обрабатываемые голосовые данные могут преобразовываться в допускающую передачу форму и передаваться в базовую станцию мобильной связи через модуль 1912 мобильной связи в случае режима вызова. Различные алгоритмы удаления шума могут реализовываться в микрофоне 1922, чтобы удалять шум, сформированный при приеме внешнего звукового сигнала.
[578] Блок 1930 пользовательского ввода формирует входные данные для пользователя, чтобы управлять работой терминала. Блок 1930 пользовательского ввода может включать в себя клавишную панель, куполовидный переключатель, сенсорную панель (резистивную/емкостную), поворотное колесико, поворотный переключатель и т.п.
[579] Блок 1940 считывания формирует сигнал считывания для функционального управления мобильным устройством 1900 посредством считывания текущего состояния мобильного устройства 300, такого как состояние открытия/закрытия мобильного устройства 1900, позиция мобильного устройства 1900, присутствие контакта пользователя, ориентация мобильного устройства, ускорение/замедление мобильного устройства и т.д. Например, когда мобильное устройство 1900 перемещается или наклоняется, позиция или наклон мобильного устройства может считываться. Дополнительно, также может считываться то, подает или нет мощность блок 1990 подачи мощности, то, комбинируется или нет интерфейсный блок 1970 с внешним устройством, и т.п. Между тем, блок 1940 считывания может включать в себя бесконтактный датчик 1941, включающий в себя связь ближнего радиуса действия (NFC).
[580] Блок 1950 вывода, который используется для формирования вывода, связанного со зрением, слухом или касанием, может включать в себя дисплей 1951, модуль 1952 звукового вывода, блок 1953 выдачи предупредительных сообщений и тактильный модуль 1954.
[581] Дисплей 1951 отображает (выводит) информацию, обработанную посредством мобильного устройства 1900. Например, когда мобильное устройство находится в режиме вызова, дисплей 1951 отображает пользовательский интерфейс (UI) или графический пользовательский интерфейс (GUI), ассоциированный с вызовом. Когда мобильное устройство 1900 находится в режиме видеовызова или режиме фотосъемки, дисплей 1951 отображает сфотографированное и/или принимаемое изображение либо UI и GUI.
[582] Дисплей 1951 может включать в себя, по меньшей мере, одно из жидкокристаллического дисплея (ЖК-дисплея), жидкокристаллического дисплея на тонкопленочных транзисторах (TFT-ЖК-дисплей), дисплея на органических светоизлучающих диодах (OLED), гибкого дисплея и трехмерного дисплея.
[583] Некоторые дисплеи из них могут быть сконфигурированы как прозрачный или светопропускающий тип, чтобы просматривать окружение через дисплеи. Они могут называться "прозрачным дисплеем", и характерный пример прозрачного дисплея включает в себя дисплей на прозрачных OLED (TOLED) и т.п. Задняя конструкция блока 1951 отображения также может быть сконфигурирована как светопропускающая конструкция. За счет такой конструкции, пользователь может видеть объект, позиционированный позади корпуса терминала, через область, занимаемую посредством блока 1951 отображения корпуса терминала.
[584] Согласно форме реализации мобильного устройства 1900, могут существовать два или более дисплеев 1951. Например, в мобильном устройстве 1900, множество дисплеев могут отделяться друг от друга или располагаться как единое целое на одной поверхности, и дополнительно, располагаться на различных поверхностях, соответственно.
[585] Когда дисплей 1951 и датчик (в дальнейшем в этом документе называется "датчиком касания") формируют взаимную многослойную конструкцию (в дальнейшем в этом документе называется "сенсорным экраном"), дисплей 1951 может использоваться в качестве оборудования ввода, а также оборудования вывода. Датчик касания может принимать форму, например, сенсорной пленки, сенсорной листа, сенсорной панели и т.п.
[586] Датчик касания может быть выполнен с возможностью преобразовывать изменение давления, прикладываемого к конкретной части блока 1951 отображения, или емкости, сформированной в конкретной части блока 1951 отображения, в электрический входной сигнал. Датчик касания может быть выполнен с возможностью обнаруживать давление касания, а также позицию и зону касания.
[587] Когда имеется сенсорный ввод для датчика касания, сигнал(ы), соответствующий сенсорному вводу, отправляется в сенсорный контроллер. Сенсорный контроллер обрабатывает сигнал(ы) и после этого передает данные, соответствующие ему, в контроллер 1980. Как результат, контроллер 1980 может знать то, какой области дисплея 1951 касаются.
[588] Бесконтактный датчик 1941 может располагаться во внутренней зоне мобильного устройства, покрытого сенсорным экраном, или около сенсорного экрана. Бесконтактный датчик означает датчик, который обнаруживает присутствие или отсутствие объекта, приближающегося к предварительно определенной поверхности обнаружения, либо объекта, который существует поблизости без механического контакта, с использованием силы электромагнитного поля или инфракрасных лучей. Бесконтактный датчик имеет больший срок службы и более высокую эффективность использования, чем датчик касания.
[589] Примеры бесконтактного датчика включают в себя пропускающий фотоэлектрический датчик, фотоэлектрический датчик на основе направленного отражения, фотоэлектрический датчик на основе зеркального отражения, высокочастотный вибрационный бесконтактный датчик, емкостный бесконтактный датчик, магнитный бесконтактный датчик, инфракрасный бесконтактный датчик и т.п. Когда сенсорный экран представляет собой емкостный датчик, сенсорный экран выполнен с возможностью обнаруживать близость указателя посредством изменения электрического поля в зависимости от близости указателя. В этом случае, сенсорный экран (датчик касания) может классифицироваться в качестве бесконтактного датчика.
[590] В дальнейшем в этом документе, для простоты описания, действие распознавания того, что указатель позиционируется на сенсорном экране в то время, когда указатель не находится в контакте с сенсорным экраном, называется "бесконтактным касанием", и действие фактического касания указателя на экране называется "контактным касанием". Позиция, в которой указателя бесконтактно касаются на сенсорном экране, означает позицию, в которой указатель вертикально соответствует сенсорному экрану, когда указателя касаются.
[591] Бесконтактный датчик обнаруживает бесконтактное касание и шаблон бесконтактного касания (например, расстояние бесконтактного касания, направление бесконтактного касания, скорость бесконтактного касания, время бесконтактного касания, позицию бесконтактного касания, состояние перемещения при бесконтактном касании и т.п.). Информация, соответствующая считываемой операции бесконтактного касания и шаблону бесконтактного касания, может выводиться на сенсорном экране.
[592] Модуль 1952 звукового вывода может выводить аудиоданные, принимаемые из блока 1910 беспроводной связи или сохраненные в запоминающем устройстве 1960, при приеме сигнала вызова, в режиме вызова или режиме записи, режиме распознавания голоса, режиме приема широковещательной передачи и т.п. Модуль 1952 звукового вывода также может выводить звуковой сигнал, связанный с функцией (например, звук приема сигнала вызова, звук приема сообщения и т.п.), выполняемой посредством мобильного устройства 1900. Модуль 1952 звукового вывода может включать в себя приемник, динамик, зуммер и т.п.
[593] Блок 1953 выдачи предупредительных сообщений выводит сигнал для уведомления в отношении возникновения события мобильного устройства 1900. Примеры события, которое возникает в мобильном устройстве, включают в себя прием сигналов вызова, прием сообщений, сигнал клавишного ввода, сенсорный ввод и т.п. Блок 1953 выдачи предупредительных сообщений также может выводить другую форму, отличную видеосигнала или аудиосигнала, например, сигнал для уведомления в отношении возникновения события посредством вибрации.
[594] Видеосигнал или аудиосигнал может выводиться через блок 1951 отображения или модуль 1952 звукового вывода таким образом, что дисплей 1951 и дисплей 1951 и модуль 1952 звукового вывода могут классифицироваться в качестве части блока 153 выдачи предупредительных сообщений.
[595] Тактильный модуль 1954 формирует различные тактильные эффекты, которые может чувствовать пользователь. Типичный пример тактильного эффекта, сформированного посредством тактильного модуля 1954, представляет собой вибрацию. Интенсивность и шаблон вибрации, сформированной посредством тактильного модуля 1954, являются управляемыми. Например, различные колебания могут комбинироваться и выводиться или последовательно выводиться.
[596] В дополнение к вибрации, тактильный модуль 1954 может различные тактильные эффекты, включающие в себя эффекты посредством стимулирующего воздействия, включающего в себя компоновку штырьковых выводов, вертикально перемещающуюся относительно контактной поверхности кожи, распыляющую силу или всасывающую силу воздуха через порт для впрыска или всасывающий порт, касание на поверхности кожи, контакт с электродом, электростатическую силу и т.п., и эффект воспроизведения ощущения холода с использованием теплопоглощающего или нагревательного элемента.
[597] Тактильный модуль 1954 может реализовываться не только с возможностью передавать тактильный эффект через прямой контакт, но также и обеспечивать возможность пользователю чувствовать тактильный эффект через мышцы пальца или руки. По меньшей мере, два тактильных модуля 1954 могут предоставляться согласно аспекту конфигурации мобильного устройства 1900.
[598] Запоминающее устройство 1960 может сохранять программу для движения контроллера 1980 и временно сохранять входные/выходные данные (например, телефонную книгу, сообщение, неподвижное изображение, движущийся кадр и т.п.). Запоминающее устройство 1960 может сохранять данные относительно различных шаблонов вывода колебаний и звуков в сенсорном вводе на сенсорном экране.
[599] Запоминающее устройство 1960 может включать в себя, по меньшей мере, один тип носителя хранения данных из носителя хранения данных на основе флэш-памяти, носителя хранения данных на жестких дисках, микроносителя хранения данных на основе мультимедийных карт, запоминающего устройства на основе карт памяти (например, запоминающего SD- или XD-устройства и т.п.), оперативного запоминающего устройства (RAM), статического оперативного запоминающего устройства (SRAM), постоянного запоминающего устройства (ROM), электрически стираемого программируемого постоянного запоминающего устройства (EEPROM), программируемого постоянного запоминающего устройства (PROM), магнитного запоминающего устройства, магнитного диска и оптического диска. Мобильное устройство 1900 может работать в связи с веб-хранилищем, выполняющим функцию хранения запоминающего устройства 1960 в Интернете.
[600] Интерфейсный блок 1970 служит в качестве прохода со всеми внешними устройствами, соединенными с мобильным устройством 1900. Интерфейсный блок 1970 передает данные из внешнего устройства или принимает мощность, чтобы доставлять мощность в каждый компонент в мобильном устройстве 1900, или передает данные в мобильном устройстве 1900 во внешнее устройство. Например, беспроводной/проводной порт для гарнитуры, порт для внешнего зарядного устройства, порт проводной/беспроводной передачи данных, порт для карты памяти, порт, соединяющий устройство с модулем идентификации, порт аудиоввода-вывода, порт видеоввода-вывода, порт для наушников и т.п. могут включаться в интерфейсный блок 1970.
[601] Модуль идентификации в качестве микросхемы для сохранения различной информации для аутентификации прав на использование внешнего устройства 1900 может включать в себя модуль идентификационных данных пользователя (UIM), модуль идентификации абонента (SIM), универсальный модуль идентификации абонента (USIM) и т.п. Оборудование (в дальнейшем называемое "идентификационным оборудованием") с модулем идентификации может изготавливаться в формате смарт-карты. Следовательно, идентификационное оборудование может соединяться с терминалом 1900 через порт.
[602] Интерфейсный блок 1970 может становиться проходом, через который мощность из подставки подается в мобильный терминал 1900, когда мобильный терминал 1900 соединяется с внешней подставкой, либо может представлять собой проход, через который различные командные сигналы, вводимые из подставки пользователем, доставляются в мобильный терминал. Различные командные сигналы или мощность, вводимая из подставки, могут служить в качестве сигнала для распознавания того, что мобильный терминал корректно смонтирован на подставке.
[603] Контроллер 1980, в общем, управляет всеми операциями мобильного устройства. Например, контроллер 1980 выполняет связанное управление и обработку для голосового вызова, обмена данными, видеовызова и т.д. Контроллер 1980 может включать в себя мультимедийный модуль 1981 для воспроизведения мультимедиа. Мультимедийный модуль 1981 может реализовываться в контроллере 1980 или реализовываться отдельно от контроллера 1980. Контроллер 1980, в частности, мультимедийный модуль 1981 может включать в себя оборудование кодирования и/или оборудование декодирования.
[604] Контроллер 1980 может выполнять обработку распознавания шаблонов, чтобы распознавать ввод в виде записи или ввод в виде черчения, выполняемый на сенсорном экране, в качестве текста или изображения.
[605] Блок 1990 подачи мощности принимает внешнюю мощность и внутреннюю мощность посредством управления контроллером 1980, чтобы подавать мощность, требуемую для операций соответствующих компонентов.
[606] Различные варианты осуществления, описанные в данном документе, могут реализовываться на машиночитаемом носителе записи либо на носителе записи, считываемом посредством устройства, аналогичного компьютеру, посредством использования, например, программного обеспечения, аппаратных средств либо комбинации вышеозначенного.
[607] Согласно аппаратной реализации, вариант осуществления, описанный в данном документе, может реализовываться посредством использования, по меньшей мере, одного из специализированных интегральных схем (ASIC), процессоров цифровых сигналов (DSP), устройств обработки цифровых сигналов (DSPD), программируемых логических устройств (PLD), программируемых пользователем вентильных матриц (FPGA), процессоров, контроллеров, микроконтроллеров, микропроцессоров и электрических блоков для выполнения других функций. В некоторых случаях, варианты осуществления, приведенные в описании изобретения, могут реализовываться посредством самого контроллера 1980.
[608] Согласно программной реализации, варианты осуществления, к примеру, процедура и функция, описанные в подробном описании, могут реализовываться посредством отдельных программных модулей. Каждый из программных модулей может выполнять одну или более функций и операций, описанных в подробном описании. Программный код может реализовываться посредством программного приложения, написанного на соответствующем языке программирования. Здесь, программный код может сохраняться в запоминающем устройстве 1960 и выполняться посредством контроллера 1980.
[609] Фиг. 20 схематично иллюстрирует архитектуру для предоставления услуги передачи трехмерных изображений/видео, в которой может использоваться вариант(ы) осуществления настоящего раскрытия сущности. Она может представлять систему обработки всенаправленных (или на 360°) видео/изображений. Дополнительно, например, она может реализовываться во вспомогательном устройстве с поддержкой расширенной реальности (XR). Другими словами, система может предоставлять способ для предоставления виртуальной реальности пользователю.
[610] Виртуальная реальность (VR), дополненная реальность (AR) и смешанная реальность (MR) совместно называются "расширенной реальностью". VR-технология предоставляет объекты и фоны реального мира только с помощью CG-изображений, AR-технология предоставляет фактически созданное CG-изображение на изображении реального объекта вместе, и MR-технология представляет собой технологию на основе компьютерной графики, предоставленную посредством смешения и комбинирования виртуальных объектов в реальный мир.
[611] MR-технология является аналогичной AR-технологии в том, что реальный объект и виртуальный объект показываются вместе. Тем не менее AR-технология отличается от MR-технологии тем, что в AR-технологии, виртуальный объект используется в качестве формы дополнения реального объекта, в то время как в MR-технологии, виртуальный объект и реальный объект используются в качестве равной природы.
[612] XR-технология может применяться к наголовному дисплею (HMD), дисплею на лобовом стекле (HUD), сотовому телефону, планшетному PC, переносному компьютеру, настольному компьютеру, телевизору, системе цифровых информационных табло и т.д., и устройство, к которому применяется XR-технология, может называться "XR-устройством". XR-устройство может включать в себя первое цифровое устройство и/или второе цифровое устройство, которые описываются ниже.
[613] Контент на 360° может означать весь контент для реализации и предоставления VR и включать в себя видео на 360° и/или аудио на 360°. Видео на 360° может означать видеоконтент или контент изображений, требуемый для предоставления VR и захваченный или воспроизведенный во всех направлениях (360° или меньше). В дальнейшем в этом документе, видео на 360° может означать видео на 360°. Аудио на 360° в качестве аудиоконтента для предоставления VR также может означать пространственный аудиоконтент, в котором место формирования звука может восприниматься как расположенное в трехмерном конкретном пространстве. Контент на 360° может формироваться, обрабатываться и передаваться пользователям, и пользователи могут потреблять VR-восприятие посредством использования контента на 360°. Видео на 360° может называться "всенаправленным видео", и изображение на 360° может называться "всенаправленным изображением". Дополнительно, в дальнейшем в этом документе описываются варианты осуществления на основе видео на 360°, и вариант(ы) осуществления настоящего раскрытия сущности не ограничены VR и могут включать в себя обработку контента видео/изображений, такого как AR, MR и т.д. Видео на 360° может означать видео или изображение, представленное в различных формах трехмерных пространств согласно трехмерной модели, и, например, видео на 360° может представляться на сферической поверхности.
[614] Этот способ предлагает, в частности, способ для эффективного предоставления видео на 360°. Чтобы предоставлять видео на 360°, во-первых, видео на 360° может захватываться через одну или более камер. Захваченное видео на 360° может передаваться через последовательность процессов, и приемная сторона может обрабатывать принимаемые данные в оригинальное видео на 360° снова и подготавливать посредством рендеринга видео на 360°. За счет этого, видео на 360° может предоставляться пользователю.
[615] В частности, все процессы для предоставления видео на 360° могут включать в себя процесс захвата, процесс подготовки, процесс передачи, процесс обработки, процесс рендеринга и/или процесс с обратной связью.
[616] Процесс захвата может означать процесс захвата изображения или видео для каждой из множества точек обзора через одну или более камер. Данные изображений/видео, к примеру, ссылка с номером 2010 на проиллюстрированном фиг. 20, могут формироваться посредством процесса захвата. Каждая плоскость ссылки с номером 2010 на проиллюстрированном фиг. 20 может означать изображение/видео для каждой точки обзора. Множество захваченных изображений/видео могут называться "(необработанными) данными". Метаданные, связанные с захватом, могут формироваться во время процесса захвата.
[617] Специальная камера может использоваться для VR, может использоваться для захвата. Согласно варианту осуществления, когда видео на 360° для виртуального пространства, созданного посредством компьютера, должно предоставляться, захват через фактическую камеру может не выполняться. В этом случае, процесс захвата может просто заменяться процессом формирования связанных данных.
[618] Процесс подготовки может представлять собой процесс обработки захваченного изображения/видео и метаданных, сформированных во время процесса захвата. Захваченное изображение/видео может подвергаться процессу сшивания, процессу проецирования, процессу пакетирования в разрезе областей и/или процессу кодирования во время процесса подготовки.
[619] Во-первых, соответствующие изображения/видео могут подвергаться процессу сшивания. Процесс сшивания может представлять собой процесс создания одного панорамного изображения/видео или сферического изображения/видео посредством соединения соответствующих захваченных изображений/видео.
[620] После этого сшитое изображение/видео может подвергаться процессу проецирования. Во время процесса проецирования, сшитое изображение/видео может проецироваться на двумерное изображение. Двумерное изображение может называться "кадром с двумерным изображением" согласно контексту. Проецирование с помощью двумерного изображения может выражаться как преобразование в двумерное изображение. Проецируемые данные изображений/видео могут становиться формой двумерного изображения ссылки с номером 2020 на проиллюстрированном фиг. 20.
[621] Видеоданные, проецируемые на двумерное изображение, могут подвергаться процессу пакетирования в разрезе областей, чтобы повышать эффективность кодирования видео. Пакетирование в разрезе областей может означать процесс разделения и обработки видеоданных, проецируемых на двумерное изображение, для каждой области. Здесь, область может означать зону, в котором двумерное изображение, на которое проецируются видеоданные на 360°, разделяется. Области могут отличаться посредством равного разделения двумерного изображения или отличаться посредством случайного разделения двумерного изображения согласно варианту осуществления. Дополнительно, согласно варианту осуществления, области могут отличаться согласно схеме проецирования. Процесс в разрезе областей в качестве необязательного процесса может опускаться во время процесса подготовки.
[622] Согласно варианту осуществления, процесс обработки может включать в себя процесс вращения каждой области или перекомпоновки каждой области на двумерном изображении, чтобы повышать эффективность кодирования видео. Например, конкретные стороны областей позиционируются таким образом, что они находятся в непосредственной близости друг к другу, посредством вращения областей, чтобы повышать эффективность в кодировании.
[623] Согласно варианту осуществления, процесс обработки может включать в себя процесс увеличения или уменьшения разрешения для конкретной области, чтобы различать разрешение для каждой зоны на видео на 360°. Например, области, соответствующие относительно более важным областям на видео на 360°, могут иметь более высокое разрешение, чем другие области. Видеоданные, проецируемые на двумерное изображение, или видеоданные, пакетированные для каждой области, могут подвергаться процессу кодирования через видеокодек.
[624] Согласно варианту осуществления, процесс подготовки дополнительно может дополнительно включать в себя процесс редактирования. Редактирование данных изображений/видео до и после проецирования дополнительно может выполняться во время процесса редактирования. Аналогично даже во время процесса подготовки, метаданные для сшивания/проецирования/кодирования/редактирования могут формироваться. Дополнительно, могут формироваться метаданные относительно начального времени видеоданных, проецируемых на двумерное изображение или интересующую область (ROI).
[625] Процесс передачи может представлять собой процесс обработки и передачи данных изображений/видео и метаданных, подвергнутых процессу подготовки. Обработка в зависимости от случайного протокола передачи может выполняться для передачи. Данные, обработка для передачи которых завершается, могут доставляться через широковещательную сеть и/или широкополосную связь. Данные могут доставляться в приемную сторону посредством схемы по запросу. Приемная сторона может принимать соответствующие данные через различные тракты.
[626] Процесс обработки может означать процесс декодирования принимаемых данных и повторного проецирования проецируемых данных изображений/видео на трехмерную модель. В ходе этого процесса, данные изображений/видео, проецируемые на двумерные изображения, могут повторно проецироваться в трехмерном пространстве. Этот процесс может называться "преобразованием" или "проецированием" согласно контексту. В этом случае, преобразованное трехмерное пространство может иметь различную форму согласно трехмерной модели. Например, трехмерная модель может иметь сферу, куб, цилиндр или пирамиду.
[627] Согласно варианту осуществления, процесс обработки дополнительно может дополнительно включать в себя процесс редактирования, процесс повышающего масштабирования и т.п. Редактирование данных изображений/видео до и после повторного проецирования дополнительно может выполняться во время процесса редактирования. Когда данные изображений/видео уменьшаются, размер данных изображений/видео может быть увеличен через повышающее масштабирование выборок во время процесса повышающего масштабирования. При необходимости, операция уменьшения размера посредством понижающего масштабирования может выполняться.
[628] Процесс рендеринга может означать процесс рендеринга и отображения данных изображений/видео, повторно проецированных в трехмерном пространстве. Согласно выражению, повторное проецирование и рендеринг комбинируются, чтобы выражаться как рендеринг на трехмерной модели. Изображение/видео, повторно проецированное на трехмерной модели (или подготовленное посредством рендеринга на трехмерном режиме), может иметь такую форму, как ссылка с номером 2030 на проиллюстрированном фиг. 20. Ссылка с номером 2030 на проиллюстрированном фиг. 20 представляет случай, в котором изображение/видео повторно проецируется в сферическую трехмерную модель. Пользователь может просматривать частичную зону подготовленного посредством рендеринга изображения/видео через VR-дисплей и т.д. В этом случае зона, просматриваемая пользователем, может иметь такую форму, как ссылка с номером 2040 на проиллюстрированном фиг. 20.
[629] Процесс с обратной связью может означать процесс доставки различной информации обратной связи, которая может получаться в ходе процесса отображения, в передающую сторону. Интерактивность может предоставляться при потреблении видео на 360° за счет процесса с обратной связью. Согласно варианту осуществления, информация ориентации головы, информация видового порта, указывающая зону, в данный момент просматриваемую пользователем, и т.п. может доставляться в передающую сторону во время процесса с обратной связью. Согласно варианту осуществления, пользователь может взаимодействовать с тем, что реализовано в VR-окружении, и в этом случае информация, связанная со взаимодействием, может доставляться в передающую сторону или поставщику услуг во время процесса с обратной связью. Согласно варианту осуществления, процесс с обратной связью может не выполняться.
[630] Информация ориентации головы может означать информацию относительно головы, позиции, угла, движения и т.д. пользователя. На основе информации, информация относительно зоны, в данный момент просматриваемой в видео на 360° пользователем, т.е. информация видового порта может вычисляться.
[631] Информация видового порта может представлять собой информацию относительно зоны, в данный момент просматриваемой в видео на 360° пользователем. Через информацию, анализ взгляда выполняется для того, чтобы идентифицировать то, посредством какого способа пользователь использует видео на 360°, в какую зону видео на 360° пользователь смотрит, и сколько по времени пользователь смотрит в зоне и т.д. Анализ взгляда может выполняться посредством приемной стороны и доставляться в передающую сторону через канал обратной связи. Оборудование, такое как VR-дисплей может извлекать зону видового порта на основе позиции/направления перемещения головы пользователя, информации вертикального или горизонтального поля обзора (FOV), поддерживаемой посредством оборудования, и т.д.
[632] Между тем, видео на 360°/изображение может обрабатываться на основе субкадра. Проецируемый кадр или пакетированный кадр, включающий в себя двумерное изображение, может разделяться на субкадры, и обработка может выполняться в единицах субкадра. Например, высокое разрешение может предоставляться для конкретного субкадра(ов) согласно видовому порту пользователя и т.д., или только конкретный субкадр(ы) может кодироваться и передаваться в служебных сигналах в приемное оборудование (оборудование декодирования). В этом случае, оборудование декодирования может принимать поток битов субкадра и восстанавливать/декодировать конкретный субкадр(ы), и подготавливать посредством рендеринга субкадр(ы) согласно видовому порту пользователя.
[633] Согласно варианту осуществления, информация обратной связи может доставляться в передающую сторону и использоваться посредством приемной стороны. Другими словами, процесс декодирования, повторного проецирования, рендеринга и т.д., приемной стороны может выполняться посредством использования информации обратной связи. Например, только видео на 360° для зоны, в данный момент просматриваемой пользователем, предпочтительно может декодироваться и подготавливаться посредством рендеринга посредством использования информации ориентации головы и/или информации видового порта.
[634] Здесь, видовой порт или зона видового порта может означать зону, просматриваемую в видео на 360° пользователем. Точка обзора в качестве точки, которую пользователь просматривает в видео на 360°, может означать мертвую точку зоны видового порта. Другими словами, видовой порт может представлять собой зону с центром в точке, обзора, и размер, форма и т.п. зоны может определяться посредством поля обзора (FOV).
[635] Во всей архитектуре для предоставления видео на 360°, данные изображений/видео, подвергнутые последовательности таких процессов, как захват/проецирование/кодирование/передача/декодирование/повторное проецирование/рендеринг, могут называться "видеоданными на 360°". Термин "видеоданные на 360°" также может использоваться в качестве понятия, включающего в себя метаданные или служебную информацию, связанную с данными изображений/видео.
[636] Чтобы сохранять и передавать мультимедийные данные, к примеру, аудио или видео, стандартизированный формат мультимедийных файлов может задаваться. Согласно варианту осуществления, мультимедийный файл может иметь формат файлов на основе базового формата мультимедийных файлов ISO (BMFF).
[637] Фиг. 21 является схемой для схематичного описания конфигурации первого цифрового устройства, к которому может применяться способ. Первое цифровое устройство может соответствовать передающей стороне для предоставления услуги передачи трехмерных изображений/видео, к примеру, VR/AR-контента. Первое цифровое устройство может включать в себя оборудование кодирования, описанное выше в настоящем раскрытии сущности. Оборудование кодирования может включаться или может соответствовать кодеру данных.
[638] Первое цифровое устройство может выполнять операции, связанные с процессом подготовки или процессом передачи. Первое цифровое устройство может включать в себя блок ввода данных, модуль сшивания, блок обработки проецирования, блок обработки пакетирования в разрезе областей (не проиллюстрирован), блок обработки метаданных, блок обработки с обратной связью (на передающей стороне), кодер данных, блок обработки инкапсуляции, блок обработки передачи и/или передатчик в качестве внутренних/внешних элементов.
[639] Блок ввода данных может принимать каждые захваченные изображения/видео в разрезе точек обзора. Изображения/видео в разрезе точек обзора могут представлять собой изображения/видео, захваченные посредством одной или более камер. Дополнительно, блок ввода данных может принимать метаданные, сформированные во время процесса захвата. Блок ввода данных может доставлять входное изображения/видео в разрезе точек обзора в модуль сшивания и доставлять метаданные во время процесса захвата в блок обработки передачи служебных сигналов.
[640] Модуль сшивания может выполнять операцию сшивания для захваченных изображений/видео в разрезе точек обзора. Модуль сшивания может доставлять сшитые видеоданные на 360° в блок обработки проецирования. Модуль сшивания может принимать требуемые метаданные из блока обработки метаданных и использовать принимаемые метаданные для операции сшивания при необходимости. Модуль сшивания может доставлять метаданные, сформированные во время процесса сшивания, в блок обработки метаданных. Метаданные во время процесса сшивания могут включать в себя информацию относительно того, выполняется или нет сшивание, типа сшивания и т.д.
[641] Блок обработки проецирования может проецировать сшитые видеоданные на 360° на двумерное изображение. Блок обработки проецирования может выполнять проецирование согласно различным схемам, и это описывается ниже. Блок обработки проецирования может выполнять преобразование с учетом соответствующей глубины видеоданных на 360° для каждой точки обзора. Блок обработки проецирования может принимать требуемые метаданные из блока обработки метаданных и использовать принимаемые метаданные для операции проецирования при необходимости. Блок обработки проецирования может доставлять метаданные, сформированные во время процесса проецирования, в блок обработки метаданных. Метаданные блока обработки проецирования могут включать в себя тип схемы проецирования и т.п.
[642] Блок обработки пакетирования в разрезе областей (не проиллюстрирован) может выполнять процесс пакетирования в разрезе областей. Другими словами, блок обработки пакетирования в разрезе областей может выполнять такую обработку, как разделение проецируемых видеоданных на 360° для каждой области, вращение или перекомпоновка каждой области, изменение разрешения каждой области и т.д. Как описано выше, процесс пакетирования в разрезе областей может представлять собой необязательный процесс, и когда пакетирование в разрезе областей не выполняется, блок обработки пакетирования в разрезе областей может опускаться. Блок обработки пакетирования в разрезе областей может принимать метаданные, требуемые для пакетирования в разрезе областей, из блока обработки метаданных и использовать принимаемые метаданные для операции пакетирования в разрезе областей при необходимости. Блок обработки пакетирования в разрезе областей может доставлять метаданные, сформированные во время процесса пакетирования в разрезе областей, в блок обработки метаданных. Метаданные блока обработки пакетирования в разрезе областей могут включать в себя степень вращения, размер и т.д., каждой области.
[643] Модуль сшивания, блок обработки проецирования и/или блок обработки пакетирования в разрезе областей могут выполняться в одном аппаратном компоненте согласно варианту осуществления.
[644] Блок обработки метаданных может обрабатывать метаданные, которые могут формироваться во время процесса захвата, процесса сшивания, процесса проецирования, процесса пакетирования в разрезе областей, процесса кодирования, процесса инкапсуляции и/или процесса обработки для передачи. Блок обработки метаданных может формировать связанные с видео на 360° метаданные посредством использования метаданных. Согласно варианту осуществления, блок обработки метаданных может формировать связанные с видео на 360° метаданные в форме таблицы служебных сигналов. Согласно контексту передачи служебных сигналов, связанные с видео на 360° метаданные могут называться "метаданными" или "связанной с видео на 360° служебной информацией". Дополнительно, блок обработки метаданных может доставлять полученные или сформированные метаданные во внутренние элементы первого цифрового устройства при необходимости. Блок обработки метаданных может доставлять связанные с видео на 360° метаданные в кодер данных, блок обработки инкапсуляции и/или блок обработки передачи, с тем чтобы передавать связанные с видео на 360° метаданные в приемную сторону.
[645] Кодер данных может кодировать видеоданные на 360°, проецируемые на двумерное изображение, и/или пакетированные в разрезе областей видеоданные на 360°. Видеоданные на 360° могут кодироваться в различных форматах. Видеоданные на 360°, проецируемые на двумерное изображение, и/или пакетированные в разрезе областей видеоданные на 360° могут соответствовать (двумерному) входному кадру оборудования кодирования. В этом случае, один или последовательные входные кадры могут кодироваться и выводиться в качестве формы потока битов на основе способа, предложенного в вариантах осуществления настоящего раскрытия сущности. Поток битов может включаться в видеоданные на 360°.
[646] Блок обработки инкапсуляции может инкапсулировать видеоданные на 360° и/или связанные с видео на 360° метаданные в такую форму, как файл и т.д. Здесь, связанные с видео на 360° метаданные могут доставляться из блока обработки метаданных. Блок обработки инкапсуляции может инкапсулировать соответствующие данные в формате файлов, к примеру, в ISOBMFF, CFF и т.д., либо может обрабатываться в форме другого DASH-сегмента и т.д. Блок обработки инкапсуляции может задавать связанные с видео на 360° метаданные в формате файлов согласно варианту осуществления. Связанные с видео на 360° метаданные, например, могут включаться в различные уровни полей в ISOBMFF-формате файлов либо включаться в качестве данных в отдельную дорожку в файле. Блок обработки инкапсуляции может инкапсулировать непосредственно связанные с видео на 360° метаданные в файле согласно варианту осуществления. Блок обработки передачи может выполнять обработку для передачи для видеоданных на 360°, инкапсулированных согласно формату файлов. Блок обработки передачи может обрабатывать видеоданные на 360° согласно случайному протоколу передачи. Обработка для передачи может включать в себя обработку для доставки через широковещательную сеть и обработку для доставки через широкополосную связь. Согласно варианту осуществления, блок обработки передачи может принимать связанные с видео на 360° метаданные из блока обработки метаданных в дополнение к видеоданным на 360° и выполнять обработку для передачи для принимаемых связанных с видео на 360° метаданных.
[647] Передатчик может передавать видеоданные на 360° после обработки передачи и/или связанные с видео на 360° метаданные через широковещательную сеть и/или широкополосную связь. Передатчик может включать в себя элемент для обработки через широковещательную сеть и/или элемент для обработки через широкополосную связь.
[648] Посредством варианта осуществления первого цифрового устройства согласно способу, первое цифровое устройство дополнительно может включать в себя устройство хранения данных (не проиллюстрировано) в качестве внутреннего/внешнего элемента. Устройство хранения данных может сохранять кодированные видеоданные на 360° и/или связанные с видео на 360° метаданные до того доставки кодированных видеоданных на 360° и/или связанных с видео на 360° метаданных в блок обработки передачи. Форма сохранения данных может представлять собой формат файлов, к примеру, ISOBMFF и т.д. Когда видео на 360° передается в реальном времени, устройство хранения данных может не требоваться, но когда видео на 360° доставляется через технологию по запросу, не в реальном времени (NRT), широкополосную связь и т.д., инкапсулированные данные на 360° могут передаваться после хранения в устройстве хранения данных в течение предварительно определенного периода.
[649] Посредством другого варианта осуществления первого цифрового устройства согласно способу, первое цифровое устройство дополнительно может включать в себя блок обработки с обратной связью (на передающей стороне) и/или сетевой интерфейс (не проиллюстрирован) в качестве внутреннего/внешнего элемента. Сетевой интерфейс может принимать информацию обратной связи из второго цифрового устройства согласно способу и доставлять информацию обратной связи в блок обработки с обратной связью на передающей стороне. Блок обработки с обратной связью на передающей стороне может доставлять информацию обратной связи в модуль сшивания, блок обработки проецирования, блок обработки пакетирования в разрезе областей, кодер данных, блок обработки инкапсуляции, блок обработки метаданных и/или блок обработки передачи. Согласно варианту осуществления, информация обратной связи может доставляться в блок обработки метаданных однократно и затем доставляться в каждый внутренний элемент снова. Внутренние элементы, принимающие информацию обратной связи, могут отражать информацию обратной связи в последующую обработку видеоданных на 360°.
[650] Посредством еще одного другого варианта осуществления первого цифрового устройства согласно способу, блок обработки пакетирования в разрезе областей может вращать каждую область и вращаемую область на двумерном изображении. В этом случае, соответствующие области могут вращаться в различных направлениях и под различными углами и преобразовываться в двумерное изображение. Вращение области может выполняться с учетом смежной части, сшитой части и т.д., перед проецированием видеоданных на 360° на сферическую поверхность. Информация относительно вращения области, т.е. направление вращения, угол вращения и т.д., может передаваться в служебных сигналах посредством связанных с видео на 360° метаданных. Посредством еще одного другого варианта осуществления первого цифрового устройства согласно настоящему раскрытию сущности, кодер данных может выполнять кодирование по-разному для каждой области. Кодер данных может выполнять кодирование для конкретной области с высоким качеством и другой области с низким качеством. Блок обработки с обратной связью на передающей стороне доставляет информацию обратной связи, доставленную из оборудования приема видео на 360°, в кодер данных, чтобы обеспечивать возможность кодеру данных использовать способ кодирования с различением в разрезе областей. Например, блок обработки с обратной связью на передающей стороне может доставлять информацию видового порта, доставленную из приемной стороны, в кодер данных. Кодер данных может выполнять кодирование для областей, включающих в себя зону, указываемую посредством информации видового порта с более высоким качеством (UHD), чем другие области.
[651] Посредством еще одного другого варианта осуществления первого цифрового устройства согласно способу, блок обработки передачи может выполнять обработку для передачи по-разному для каждой области. Блок обработки передачи может различать надежность данных, доставляемых для каждой области, посредством применения различного параметра передачи (порядка модуляции, кодовой скорости и т.д.) для каждой области.
[652] В этом случае, блок обработки с обратной связью на передающей стороне доставляет информацию обратной связи, доставленную из второго цифрового устройства, чтобы обеспечивать возможность блоку обработки передачи выполнять обработку передачи с различением в разрезе областей. Например, блок обработки с обратной связью на передающей стороне может доставлять информацию видового порта, доставленную из приемной стороны, в блок обработки передачи. Блок обработки передачи может выполнять обработку передачи для областей, включающих в себя зону, указываемую посредством соответствующей информации видового порта, так что они имеют более высокую надежность, чем другие области.
[653] Внутренние/внешние элементы первого цифрового устройства согласно способу могут представлять собой аппаратные элементы, реализованные в качестве аппаратных средств. Согласно варианту осуществления, внутренние/внешние элементы могут изменяться и опускаться либо могут заменяться и интегрироваться в другие элементы. Согласно варианту осуществления, дополнительные элементы могут добавляться в первое цифровое устройство.
[654] Фиг. 22 является схемой для схематичного описания конфигурации второго цифрового устройства, к которому может применяться способ. Второе цифровое устройство может соответствовать приемной стороне для предоставления услуги передачи трехмерных изображений/видео, к примеру, VR/AR-контента. Второе цифровое устройство может включать в себя оборудование декодирования, описанное выше в настоящем раскрытии сущности. Оборудование декодирования может включаться или может соответствовать декодеру данных.
[655] Второе цифровое устройство согласно способу может выполнять операции, связанные с процессом обработки и/или процессом рендеринга. Второе цифровое устройство может включать в себя приемный блок, блок обработки приема, блок обработки декапсуляции, кодер данных, синтаксический анализатор метаданных, блок обработки с обратной связью (на приемной стороне), блок обработки повторного проецирования и/или модуль рендеринга в качестве внутреннего/внешнего элемента. Между тем, сигнальный синтаксический анализатор может называться "синтаксическим анализатором метаданных".
[656] Приемный блок может принимать видеоданные на 360°, передаваемые посредством первого цифрового устройства согласно способу. Приемный блок может принимать видеоданные на 360° через широковещательную сеть согласно передаваемому каналу и принимать видеоданные на 360° через сеть связи, к примеру, широкополосную связь.
[657] Блок обработки приема может выполнять обработку в зависимости от протокола передачи для принимаемых видеоданных на 360°. Блок обработки приема может выполнять обратный процесс по отношению к блоку обработки передачи, который соответствует процессу, в котором обработка для передачи в передающей стороне. Блок обработки приема может доставлять полученные видеоданные на 360° в блок обработки декапсуляции и доставлять полученные связанные с видео на 360° метаданные в синтаксический анализатор метаданных. Связанные с видео на 360° метаданные, полученные посредством блока обработки приема, могут иметь форму таблицы служебных сигналов.
[658] Блок обработки декапсуляции может декапсулировать видеоданные на 360° в форме файла, доставленные из блока обработки приема. Блок обработки декапсуляции декапсулирует файлы в зависимости от ISOBMFF, чтобы получать видеоданные на 360° или связанные с видео на 360° метаданные. Полученные видеоданные на 360° могут доставляться в декодер данных, и полученные связанные с видео на 360° метаданные могут доставляться в синтаксический анализатор метаданных. Связанные с видео на 360° метаданные, полученные посредством блока обработки декапсуляции, могут иметь форму поля или дорожки в формате файлов. Блок обработки декапсуляции может принимать метаданные, требуемые для декапсуляции из метаданных, из синтаксического анализатора метаданных при необходимости.
[659] Декодер данных может выполнять декодирование для видеоданных на 360°. Декодер данных получает связанный с изображениями/видео поток битов из видеоданных на 360° и декодирует поток битов, чтобы декодировать/восстанавливать один или последовательность (двумерных) кадров.
[660] Декодер данных может принимать метаданные, требуемые для декодирования, из синтаксического анализатора метаданных. Связанные с видео на 360° метаданные, полученные во время процесса декодирования данных, могут доставляться в синтаксический анализатор метаданных.
[661] Синтаксический анализатор метаданных может выполнять синтаксический анализ/декодирование для связанных с видео на 360° метаданных. Синтаксический анализатор метаданных может доставлять полученные метаданные в блок обработки декапсуляции данных, декодер данных, блок обработки повторного проецирования и/или модуль рендеринга.
[662] Блок обработки повторного проецирования может выполнять повторное проецирование для, декодированного/восстановленного двумерного кадра(ов) для видеоданных на 360°. Блок обработки повторного проецирования может повторно проецировать двумерный кадр(ы) в трехмерное пространство. Трехмерное пространство может иметь различную форму согласно трехмерной модели. Блок обработки повторного проецирования может принимать метаданные, требуемые для повторного проецирования, из синтаксического анализатора метаданных. Например, блок обработки повторного проецирования может принимать тип используемой трехмерной модели и информацию относительно ее подробной информации из синтаксического анализатора метаданных. Согласно варианту осуществления, блок обработки повторного проецирования может повторно проецировать только (зону декодированного/восстановленного кадра для) видеоданные на 360°, соответствующие конкретной зоне в трехмерном пространстве, в трехмерное пространство посредством использования метаданных, требуемых для повторного проецирования.
[663] Модуль рендеринга может подготавливать посредством рендеринга повторно проецированное видео (или изображение) на 360°. Как описано выше, можно сказать, что видео на 360° подготавливается посредством рендеринга в трехмерное пространство, и по сути, когда два процесса возникают сразу, блок обработки повторного проецирования и модуль рендеринга объединяются, и модуль рендеринга может выполнять все процессы. Согласно варианту осуществления, модуль рендеринга может подготавливать посредством рендеринга только часть, просматриваемую пользователем согласно информации точки обзора пользователя.
[664] Пользователь может просматривать частичную зону подготовленного посредством рендеринга видео на 360° через VR-дисплей и т.д. VR-дисплей в качестве устройства, которое воспроизводит видео на 360°, может включаться во второе цифровое устройство (привязанное) и в качестве отдельного устройства может соединяться со вторым цифровым устройством (отвязанным).
[665] Посредством варианта осуществления второго цифрового устройства согласно способу, второе цифровое устройство дополнительно может включать в себя блок обработки с обратной связью (на приемной стороне) и/или сетевой интерфейс (не проиллюстрирован) в качестве внутреннего/внешнего элемента. Блок обработки с обратной связью на приемной стороне может получать и обрабатывать информацию обратной связи из модуля рендеринга, блока обработки повторного проецирования, декодера данных, блока обработки декапсуляции и/или VR-дисплея. Информация обратной связи может включать в себя информацию видового порта, информацию ориентации головы, информацию взгляда и т.д. Сетевой интерфейс может принимать информацию обратной связи из блока обработки с обратной связью на приемной стороне и передавать принимаемую информацию обратной связи в первое цифровое устройство.
[666] Как описано выше, информация обратной связи может доставляться в передающую сторону и использоваться посредством приемной стороны. Блок обработки с обратной связью на приемной стороне может доставлять полученную информацию обратной связи во внутренние элементы второго цифрового устройства и отражать доставляемую информацию обратной связи в таком процессе, как рендеринг и т.д. Блок обработки с обратной связью на приемной стороне может доставлять информацию обратной связи в модуль рендеринга, блок обработки повторного проецирования, декодер данных и/или блок обработки декапсуляции. Например, модуль рендеринга предпочтительно может подготавливать посредством рендеринга зону, просматриваемую пользователем, посредством использования информации обратной связи. Дополнительно, блок обработки декапсуляции, декодер данных и т.д. предпочтительно могут декапсулировать и декодировать зону, просматриваемую пользователем, или зону, которая должна просматриваться пользователем.
[667] Внутренние/внешние элементы второго цифрового устройства согласно способу могут представлять собой аппаратные элементы, реализованные в качестве аппаратных средств. Согласно варианту осуществления, внутренние/внешние элементы могут изменяться и опускаться либо могут заменяться и интегрироваться в другие элементы. Согласно варианту осуществления, дополнительные элементы могут добавляться во второе цифровое устройство.
[668] XR-устройство формирует позиционные данные и данные атрибутов для трехмерных точек посредством анализа данных облака трехмерных точек или данных изображений, полученных через различные датчики или из внешнего устройства, чтобы получать информацию относительно окружающего пространства или реального объекта и подготавливать посредством рендеринга и выводить XR-объект, который должен выводиться. Например, XR-устройство может выводить XR-объект, включающий в себя дополнительную информацию относительно распознанного объекта, который соответствует соответствующему распознанному объекту.
[669] XR-устройство может удаленно осуществлять доступ и/или удаленно регулировать автономное транспортное средство через сеть. В этом случае, автономное транспортное средство совместно использует представление или экран с пользователем, который использует XR-устройство, и управляет водителем на основе управления/взаимодействия пользователем, чтобы выполнять операцию или осуществлять вождение. В этом случае, автономное транспортное средство получает информацию намерений взаимодействия в зависимости от движения или голосового произнесения пользователя и определяет ответ на основе полученной информации намерений, чтобы выполнять операцию.
[670] Автономное транспортное средство, к которому применяется XR-технология, может означать автономное транспортное средство, имеющее средство для предоставления XR-изображения, или автономное транспортное средство, которое становится целью управления/взаимодействия в XR-изображении. В частности, автономное транспортное средство, которое становится целью управления/взаимодействия в XR-изображении, может отличаться от XR-устройства, и автономное транспортное средство и XR-устройство могут взаимно соединяться друг с другом.
[671] Автономное транспортное средство, имеющее средство для предоставления XR-изображения, может получать информацию датчиков из датчиков, включающих в себя камеру, и выводить XR-изображение, сформированное на основе полученной информации датчиков. Например, автономное транспортное средство включает в себя HUD и выводит XR-изображение, чтобы предоставлять XR-объект, соответствующий реальному объекту или объекту на экране, пассажиру.
[672] В этом случае, когда XR-объект выводится на HUD, по меньшей мере, часть XR-объекта может выводиться с перекрытием с фактическим объектом, на который смотрит пользователь. Наоборот, когда XR-объект выводится на дисплей, предоставленный в автономном транспортном средстве, по меньшей мере, часть XR-объекта может выводиться с перекрытием с объектом на экране. Например, автономное транспортное средство может выводить XR-объекты, соответствующими таким объектам, как полоса движения, другие транспортные средства, светофор, дорожные знаки, велосипеды, пешеходы, здания и т.д.
[673] Когда автономное транспортное средство, которое становится целью управления/взаимодействия в XR-изображении, получает информацию датчиков из датчиков, включающих в себя камеру, автономное транспортное средство или XR-устройство может формировать XR-изображение на основе информации датчиков, и XR-устройство может выводить сформированное XR-изображение. Помимо этого, автономное транспортное средство может работать на основе управляющего сигнала, вводимого через внешнее устройство, к примеру, XR-устройство, или взаимодействия с пользователем.
[674] XR-устройство предоставляется в автономном транспортном средстве, чтобы предоставлять отдельный XR-контент пользователю или предоставлять внутреннее/внешнее изображение автономного транспортного средства пользователю.
[675] Кроме того, XR-устройство может использоваться для различных услуг, включающих в себя развлечения, тренировки, обучение, транспортировку, медицинское обслуживание, электронную коммерцию, производство, оборону и т.п. Например, фильмы, тематические парки, спортивные соревнования и т.д. могут восприниматься и/или просматриваться через XR-устройство, и может поддерживаться медицинская практика, обучение в агрессивных средах, к примеру, в местах возникновения пожара и т.д. Дополнительно, услуга определения направления, такая как AR-маршруты с использованием технологии одновременной локализации и отображения на карте (SLAM), может предоставляться через XR-устройство, и товары могут покупаться и приобретаться посредством осуществления доступа к виртуальному торговому центру.
Изобретение относится к области кодирования, в частности к выполнению взаимного прогнозирования на основе детализации векторов движения на стороне декодера (DMVR) и/или двунаправленного оптического потока (BDOF). Техническим результатом изобретения является повышение эффективности кодирования и декодирования высококачественных изображений и видео высокого разрешения, имеющих различные характеристики. Предложен способ декодирования изображений, который содержит: извлечение L0- и L1-векторов движения текущего блока; извлечение детализированных L0- и L1-векторов движения посредством применения DMVR к текущему блоку на основе информации DMVR-флага, указывающей то, следует или нет применять DMVR к текущему блоку; извлечение прогнозных L0-выборок текущего блока на основе детализированного L0-вектора движения и прогнозных L1-выборок текущего блока на основе детализированного L1-вектора движения; извлечение прогнозных выборок текущего блока на основе прогнозных L0- и L1-выборок посредством применения BDOF к текущему блоку на основе информации BDOF-флага, указывающей то, следует или нет применять BDOF к текущему блоку; и формирование восстановительных выборок текущего блока на основе прогнозных выборок, при этом информация DMVR-флага вызывается на основе предварительно установленного условия DMVR-применения, и информация BDOF-флага вызывается на основе предварительно установленного условия BDOF-применения. 4 н. и 11 з.п. ф-лы, 22 ил., 42 табл.
1. Способ декодирования видео, осуществляемый посредством оборудования декодирования, при этом способ содержит этапы, на которых:
извлекают L0-вектор движения и L1-вектор движения для текущего блока;
извлекают детализированный L0-вектор движения и детализированный L1-вектор движения на основе L0-вектора движения и L1-вектора движения, посредством применения DMVR (детализации векторов движения на стороне декодера) к текущему блоку на основе информации DMVR-флага для представления того, следует или нет применять DMVR к текущему блоку;
извлекают прогнозные L0-выборки текущего блока на основе детализированного L0-вектора движения и прогнозные L1-выборки текущего блока на основе детализированного L1-вектора движения;
извлекают прогнозные выборки для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок, посредством применения BDOF (двунаправленного оптического потока) к текущему блоку на основе информации BDOF-флага для представления того, следует или нет применять BDOF к текущему блоку; и
формируют восстановительные выборки для текущего блока на основе прогнозных выборок,
при этом информация DMVR-флага извлекается на основе предварительно определенного условия DMVR-применения,
при этом информация BDOF-флага извлекается на основе предварительно определенного условия BDOF-применения,
при этом предварительно определенное условие DMVR-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация DMVR-флага имеет значение для применения DMVR к текущему блоку, и
при этом предварительно определенное условие BDOF-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация BDOF-флага имеет значение для применения BDOF к текущему блоку.
2. Способ по п. 1, в котором на основе значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, равного 1, представляется то, что весовой коэффициент для компонента сигнала яркости L0-прогнозирования присутствует,
при этом на основе значения информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, равной 0, представляется то, что весовой коэффициент для компонента сигнала яркости L1-прогнозирования не присутствует,
при этом на основе значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности, равного 1, представляется то, что весовой коэффициент для компонента сигнала цветности L0-прогнозирования присутствует,
при этом на основе значения информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, равной 0, представляется то, что весовой коэффициент для компонента сигнала цветности L1-прогнозирования не присутствует,
при этом на основе информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, равной 1, DMVR не применяется к текущему блоку,
при этом на основе информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, равной 1, DMVR не применяется к текущему блоку,
при этом на основе информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности, равной 1, DMVR не применяется к текущему блоку, и
при этом на основе информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, равной 1, DMVR не применяется к текущему блоку.
3. Способ по п. 1, в котором предварительно определенное условие DMVR-применения включает в себя условие, при котором значение информации весового индекса бипрогнозирования текущего блока равно 0,
при этом на основе значения информации весового индекса бипрогнозирования, равного 0, представляется случай по умолчанию, в котором различные весовые коэффициенты не применяются к L0-прогнозированию и L1-прогнозированию, и
при этом информация DMVR-флага извлекается в качестве значения, представляющего то, что DMVR применяется к текущему блоку на основе значения информации весового индекса бипрогнозирования, равного 0.
4. Способ по п. 1, в котором предварительно определенное условие DMVR-применения включает в себя условие, при котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку, и
при этом информация DMVR-флага извлекается в качестве значения, представляющего то, что DMVR применяется к текущему блоку на основе случая, в котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку.
5. Способ по п. 1, в котором на основе значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, равного 1, представляется то, что весовой коэффициент для компонента сигнала яркости L0-прогнозирования присутствует,
при этом на основе значения информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, равной 0, представляется то, что весовой коэффициент для компонента сигнала яркости L1-прогнозирования не присутствует,
при этом на основе значения информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности, равного 1, представляется то, что весовой коэффициент для компонента сигнала цветности L0-прогнозирования присутствует,
при этом на основе значения информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, равной 0, представляется то, что весовой коэффициент для компонента сигнала цветности L1-прогнозирования не присутствует,
при этом на основе информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, равной 1, BDOF не применяется к текущему блоку,
при этом на основе информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, равной 1, BDOF не применяется к текущему блоку,
при этом на основе информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности, равной 1, BDOF не применяется к текущему блоку, и
при этом на основе информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, равной 1, BDOF не применяется к текущему блоку.
6. Способ по п. 1, в котором предварительно определенное условие BDOF-применения включает в себя условие, при котором случай, в котором первый номер в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными друг другу, и
при этом информация BDOF-флага извлекается в качестве значения, представляющего то, что BDOF применяется к текущему блоку, на основе первой POC-разности и второй POC-разности, идентичных друг другу.
7. Способ по п. 1, в котором предварительно определенное условие BDOF-применения включает в себя условие, при котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку, и
при этом информация BDOF-флага извлекается в качестве значения, представляющего то, что BDOF применяется к текущему блоку, на основе случая, в котором режим прогнозирования, в котором взаимное прогнозирование и внутреннее прогнозирование комбинируются, не применяется к текущему блоку.
8. Способ по п. 1, в котором извлечение детализированного L0-вектора движения и детализированного L1-вектора движения включает в себя этапы, на которых:
извлекают минимальную сумму абсолютных разностей (SAD) посредством использования опорных выборок в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок в опорном L1-кадре, извлекаемом на основе L1-вектора движения, и
извлекают детализированный L0-вектор движения для L0-вектора движения и детализированный L1-вектор движения для L1-вектора движения, на основе выборочной позиции, соответствующей минимальной SAD.
9. Способ по п. 1, в котором извлечение прогнозных выборок включает в себя этапы, на которых:
вычисляют первый градиент для прогнозных L0-выборок и второй градиент для прогнозных L1-выборок, и
извлекают прогнозные выборки на основе прогнозных L0-выборок, прогнозных L1-выборок, первого градиента и второго градиента.
10. Способ по п. 1, в котором извлечение L0-вектора движения и L1-вектора движения включает в себя этапы, на которых:
определяют то, применяется или нет режим объединения к текущему блоку,
конфигурируют список возможных вариантов объединения на основе соседних блоков относительно текущего блока на основе режима объединения применяемого к текущему блоку, и
извлекают L0-вектор движения и L1-вектор движения на основе вектора движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков, включенных в список возможных вариантов объединения.
11. Способ кодирования видео, осуществляемый посредством оборудования кодирования, при этом способ содержит этапы, на которых:
извлекают L0-вектор движения и L1-вектор движения для текущего блока;
извлекают детализированный L0-вектор движения и детализированный L1-вектор движения на основе L0-вектора движения и L1-вектора движения, посредством применения DMVR (детализации векторов движения на стороне декодера) к текущему блоку на основе информации DMVR-флага для представления того, следует или нет применять DMVR к текущему блоку;
извлекают прогнозные L0-выборки текущего блока на основе детализированного L0-вектора движения и прогнозные L1-выборки текущего блока на основе детализированного L1-вектора движения;
извлекают прогнозные выборки для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок, посредством применения BDOF (двунаправленного оптического потока) к текущему блоку на основе информации BDOF-флага для представления того, следует или нет применять BDOF к текущему блоку;
извлекают остаточные выборки на основе прогнозных выборок; и
кодируют видеоинформацию, включающую в себя информацию относительно остаточных выборок,
при этом информация DMVR-флага извлекается на основе предварительно определенного условия DMVR-применения, и
при этом информация BDOF-флага извлекается на основе предварительно определенного условия BDOF-применения,
при этом предварительно определенное условие DMVR-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация DMVR-флага имеет значение для применения DMVR к текущему блоку, и
при этом предварительно определенное условие BDOF-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация BDOF-флага имеет значение для применения BDOF к текущему блоку.
12. Долговременный машиночитаемый цифровой носитель хранения данных, хранящий программные инструкции, которые при исполнении процессором предписывают ему выполнять этапы способа кодирования, при этом способ содержит:
извлечение L0-вектора движения и L1-вектора движения для текущего блока;
извлечение детализированного L0-вектора движения и детализированного L1-вектора движения на основе L0-вектора движения и L1-вектора движения, посредством применения DMVR (детализации векторов движения на стороне декодера) к текущему блоку на основе информации DMVR-флага для представления того, следует или нет применять DMVR к текущему блоку;
извлечение прогнозных L0-выборок текущего блока на основе детализированного L0-вектора движения и прогнозных L1-выборок текущего блока на основе детализированного L1-вектора движения;
извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок, посредством применения BDOF (двунаправленного оптического потока) к текущему блоку на основе информации BDOF-флага для представления того, следует или нет применять BDOF к текущему блоку;
извлечение остаточных выборок на основе прогнозных выборок; и
кодирование видеоинформации, включающей в себя информацию относительно остаточных выборок, чтобы формировать поток битов,
при этом информация DMVR-флага извлекается на основе предварительно определенного условия DMVR-применения, и
при этом информация BDOF-флага извлекается на основе предварительно определенного условия BDOF-применения,
при этом предварительно определенное условие DMVR-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация DMVR-флага имеет значение для применения DMVR к текущему блоку, и
при этом предварительно определенное условие BDOF-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация BDOF-флага имеет значение для применения BDOF к текущему блоку.
13. Способ для передачи данных для видеоинформации, при этом способ содержит этапы, на которых:
получают поток битов видеоинформации, включающей в себя информацию относительно остаточных выборок, при этом поток битов формируется на основе извлечения L0-вектора движения и L1-вектора движения для текущего блока, извлечения детализированного L0-вектора движения и детализированного L1-вектора движения на основе L0-вектора движения и L1-вектора движения, посредством применения DMVR (детализации векторов движения на стороне декодера) к текущему блоку на основе информации DMVR-флага для представления того, следует или нет применять DMVR к текущему блоку, извлечения прогнозных L0-выборок текущего блока на основе детализированного L0-вектора движения и прогнозных L1-выборок текущего блока на основе детализированного L1-вектора движения, извлечения прогнозных выборок для текущего блока на основе прогнозных L0-выборок и прогнозных L1-выборок, посредством применения BDOF (двунаправленного оптического потока) к текущему блоку на основе информации BDOF-флага для представления того, следует или нет применять BDOF к текущему блоку, извлечения остаточных выборок на основе прогнозных выборок, кодирования видеоинформации, включающей в себя информацию относительно остаточных выборок; и
передают данные, содержащие поток битов видеоинформации, включающей в себя информацию относительно остаточных выборок,
при этом информация DMVR-флага извлекается на основе предварительно определенного условия DMVR-применения,
при этом информация BDOF-флага извлекается на основе предварительно определенного условия BDOF-применения,
при этом предварительно определенное условие DMVR-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация DMVR-флага имеет значение для применения DMVR к текущему блоку, и
при этом предварительно определенное условие BDOF-применения основано на информации флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости, информации флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информации флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности, при этом, основываясь на том, что и информация флага L0-прогнозирования на основе весовых коэффициентов сигналов яркости и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов яркости равна 0, и что информация флага L0-прогнозирования на основе весовых коэффициентов сигналов цветности и информация флага L1-прогнозирования на основе весовых коэффициентов сигналов цветности равна 0, информация BDOF-флага имеет значение для применения BDOF к текущему блоку.
CHUJOH T | |||
et al., Non-CE9: On conditions for DMVR and BDOF, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0146-v1 (version 3 - date 2019-03-21 10:40:27), 14th Meeting: Geneva, 19-27 March 2019 | |||
HONGBIN LIU et al., CE9-related: Disabling DMVR and BDOF when underlying assumptions are false, Joint Video |
Авторы
Даты
2023-10-18—Публикация
2020-02-11—Подача