СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ ДЛЯ ВЫПОЛНЕНИЯ ВЗАИМНОГО ПРОГНОЗИРОВАНИЯ, КОГДА РЕЖИМ ПРОГНОЗИРОВАНИЯ ДЛЯ ТЕКУЩЕГО БЛОКА В КОНЕЧНОМ СЧЕТЕ НЕ МОЖЕТ ВЫБИРАТЬСЯ, И УСТРОЙСТВО ДЛЯ ЭТОГО
IMAGE DECODING METHOD TO PERFORM INTER FRAME PREDICTION WHEN PREDICTION MODE FOR CURRENT BLOCK CANNOT BE SELECTED AND DEVICE FOR THIS METHOD

Уровень техники
Область техники, к которой относится изобретение
[1] Настоящее раскрытие относится к способу декодирования изображений для выполнения взаимного (inter) прогнозирования, когда режим прогнозирования в конечном счете не выбирается для текущего блока, и к оборудованию для этого.
Описание предшествующего уровня техники
[2] В последнее время, спрос на высококачественное изображение/видео высокого разрешения, к примеру, 4K, 8K либо изображения/видео еще более сверхвысокой четкости (UHD), растет в различных областях техники. По мере того, как разрешение или качество изображений/видео становится более высоким, относительно больший объем информации или число битов передается, чем для традиционных данных изображений/видео. Следовательно, если данные изображений/видео передаются через такую среду, как существующая проводная/беспроводная широкополосная линия, либо сохраняются на унаследованном носителе хранения данных, затраты на передачу и хранение серьезно увеличиваются.
[3] Кроме того, растет интерес и спрос в отношении контента виртуальной реальности (VR) и искусственной реальности (AR) и иммерсивного мультимедиа, к примеру, голограммы; а также растет широковещательная передача изображений/видео, демонстрирующих характеристики изображений/видео, отличающиеся от характеристик фактического изображения/видео, к примеру, игровых изображений/видео.
[4] Следовательно, требуется высокоэффективная технология сжатия изображений/видео для того, чтобы эффективно сжимать и передавать, сохранять или воспроизводить высококачественные изображения/видео высокого разрешения, демонстрирующие различные характеристики, как описано выше.
Сущность изобретения
[5] Настоящее раскрытие предоставляет способ и оборудование для повышения эффективности кодирования изображений.
[6] Настоящее раскрытие также предоставляет способ и оборудование для извлечения прогнозной выборки на основе режима объединения по умолчанию.
[7] Настоящее раскрытие также предоставляет способ и оборудование для извлечения прогнозной выборки посредством применения регулярного режима объединения в качестве режима объединения по умолчанию.
[8] В аспекте, предоставляется способ декодирования изображений, осуществляемый посредством оборудования декодирования. Способ включает в себя: прием информации изображений, включающей в себя информацию режима взаимного прогнозирования, через поток битов; формирование списка возможных вариантов объединения текущего блока на основе информации режима взаимного прогнозирования; извлечение информации движения текущего блока на основе возможного варианта, выбираемого из списка возможных вариантов объединения; и формирование прогнозных выборок текущего блока на основе информации движения, при этом регулярный режим объединения применяется к текущему блоку на основе того, что режим объединения доступен для текущего блока на основе общего флага объединения, и режим объединения с разностью векторов движения (MMVD), субблочный режим объединения, режим комбинированного межкадрового объединения и внутрикадрового прогнозирования (CIIP) и режим сегментации, в котором прогнозирование выполняется посредством разделения текущего блока на два сегмента, не доступны, и список возможных вариантов объединения формируется посредством применения регулярного режима объединения к текущему блоку.
[9] В аспекте, предоставляется способ кодирования изображений, осуществляемый посредством оборудования кодирования. Способ включает в себя: определение режима взаимного прогнозирования текущего блока и формирование информации режима взаимного прогнозирования, указывающей режим взаимного прогнозирования; формирование списка возможных вариантов объединения текущего блока на основе режима взаимного прогнозирования; формирование информации выбора, указывающей один из возможных вариантов, включенных в список возможных вариантов объединения; и кодирование информации изображений, включающей в себя информацию режима взаимного прогнозирования и информацию выбора, при этом регулярный режим объединения применяется к текущему блоку на основе того, что режим объединения доступен для текущего блока на основе общего флага объединения, и режим объединения с разностью векторов движения (MMVD), субблочный режим объединения, режим комбинированного межкадрового объединения и внутрикадрового прогнозирования (CIIP) и режим сегментации, в котором прогнозирование выполняется посредством разделения текущего блока на два сегмента, не доступны, и список возможных вариантов объединения формируется посредством применения регулярного режима объединения к текущему блоку.
[10] В другом аспекте, предусмотрен компьютерно-читаемый носитель хранения данных, сохраняющий кодированную информацию, инструктирующую оборудованию декодирования изображений осуществлять способ декодирования изображений, при этом способ декодирования изображений включает в себя: получение информации изображений, включающей в себя информацию режима взаимного прогнозирования и остаточную информацию, через поток битов; формирование списка возможных вариантов объединения текущего блока на основе информации режима взаимного прогнозирования; извлечение информации движения текущего блока на основе возможного варианта, выбираемого из списка возможных вариантов объединения; и формирование прогнозных выборок текущего блока на основе информации движения, при этом регулярный режим объединения применяется к текущему блоку на основе того, что режим объединения доступен для текущего блока на основе общего флага объединения, и режим объединения с разностью векторов движения (MMVD), субблочный режим объединения, режим комбинированного межкадрового объединения и внутрикадрового прогнозирования (CIIP) и режим сегментации, в котором прогнозирование выполняется посредством разделения текущего блока на два сегмента, не доступны, и список возможных вариантов объединения формируется посредством применения регулярного режима объединения к текущему блоку.
Преимущества изобретения
[11] Согласно настоящему раскрытию, общая эффективность сжатия изображений/видео может повышаться.
[12] Согласно настоящему раскрытию, взаимное прогнозирование может эффективно выполняться посредством применения режима объединения по умолчанию, когда режим объединения в конечном счете не выбирается.
[13] Согласно настоящему раскрытию, когда режим объединения в конечном счете не выбирается, применяется регулярный режим объединения, и информация движения извлекается на основе возможного варианта, указываемого посредством информации индекса объединения, за счет этого эффективно выполняя взаимное прогнозирование.
Краткое описание чертежей
[14] Фиг. 1 схематично показывает пример системы кодирования видео/изображений, к которым вариантам осуществления настоящего раскрытия применяется.
[15] Фиг. 2 является схемой, принципиально иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому могут применяться варианты осуществления настоящего документа.
[16] Фиг. 3 является схемой, схематично иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому могут применяться варианты осуществления настоящего документа.
[17] Фиг. 4 иллюстрирует процедуру взаимного прогнозирования.
[18] Фиг. 5 является видом, иллюстрирующим режим объединения при взаимном прогнозировании.
[19] Фиг. 6 является видом, иллюстрирующим режим режима объединения с разностью векторов движения (MMVD) при взаимном прогнозировании.
[20] Фиг. 7 примерно показывает движение, выражаемое через модель аффинного движения.
[21] Фиг. 8A и 8B примерно показывают CPMV для аффинного прогнозирования движения.
[22] Фиг. 9 примерно показывает случай, в котором аффинное MVF определяется в субблочных единицах.
[23] Фиг. 10 является видом, иллюстрирующим аффинный режим объединения или режим объединения на основе субблоков при взаимном прогнозировании.
[24] Фиг. 11 является видом, иллюстрирующим позиции возможных вариантов в аффинном режиме объединения или режиме объединения на основе субблоков.
[25] Фиг. 12 является видом, иллюстрирующим SbTMVP при взаимном прогнозировании.
[26] Фиг. 13 является видом, иллюстрирующим режим комбинированного межкадрового объединения и внутрикадрового прогнозирования (CIIP) при взаимном прогнозировании.
[27] Фиг. 14 является видом, иллюстрирующим режим сегментации при взаимном прогнозировании.
[28] Фиг. 15 и 16 схематично показывают пример способа кодирования видео/изображений и связанных компонентов согласно варианту(ам) осуществления настоящего раскрытия.
[29] Фиг. 17 и 18 схематично показывают пример способа декодирования видео/изображений и связанных компонентов согласно варианту(ам) осуществления настоящего раскрытия.
[30] Фиг. 19 иллюстрирует пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в настоящем раскрытии.
Подробное описание вариантов осуществления
[31] Настоящее раскрытие может модифицироваться различными способами и иметь несколько примерных вариантов осуществления. Следовательно, конкретные примерные варианты осуществления настоящего раскрытия проиллюстрированы на прилагаемых чертежах и подробно описываются ниже. Тем не менее, это не имеет намерение ограничивать настоящее раскрытие конкретными вариантами осуществления. Термины, используемые в настоящем описании изобретения, используются только описывать конкретные примерные варианты осуществления вместо того, чтобы ограничивать настоящее раскрытие. Формы единственного числа имеют намерение включать в себя формы множественного числа если контекст явно не указывает иное. Следует понимать, что термины "включать в себя", "иметь" и т.п., используемые в настоящем описании изобретения, указываются присутствие признаков, номеров, этапов, операций, компонентов, частей либо комбинации вышеозначенного, указанной в настоящем описании изобретения, но не исключают присутствие или добавление одного или более других признаков, номеров, этапов, операций, компонентов, частей либо комбинации вышеозначенного.
[32] Между тем, каждая конфигурация на чертежах, описанная в настоящем документе, показывается независимо для удобства описания относительно различных характеристических функций и не означает то, что каждая конфигурация реализуется как отдельные аппаратные средства или отдельное программное обеспечение. Например, два или более компонентов для каждого компонента могут комбинироваться, чтобы формировать один компонент, либо один компонент может разделяться на множество компонентов. Варианты осуществления, в которых каждый компонент интегрируется и/или разделяется, также включаются в объем настоящего раскрытия сущности.
[33] В настоящем раскрытии, "A или B" может означать "только A", "только B" или "как A, так и B". Другими словами, "A или B" в настоящем раскрытии может интерпретироваться в качестве "A и/или B". Например, в настоящем раскрытии, "A, B или C" средство "только A", "только B", "только C" или "любой и любая комбинация A, B и C".
[34] Наклонная черта (/) или запятая (запятая), используемая в настоящем раскрытии, может означать "и/или". Например, "A/B" может означать "A и/или B". Соответственно, "A/B" может означать "только A", "только B" или "оба A и B". Например, "A, B, C" могут означать "A, B или C".
[35] В настоящем описании изобретения, "по меньшей мере одно из A и B" может означать "только A", "только B" или "как A, так и B". Кроме того, в настоящем описании изобретения, выражение "по меньшей мере одно из A или B" или "по меньшей мере одно из A и/или B" может интерпретироваться идентично "по меньшей мере одно из A и B".
[36] Дополнительно, в настоящем описании изобретения, "по меньшей мере одно из A, B и C" может означать "только A", "только B", "только C" либо "любая комбинация A, B и C". Кроме того, "по меньшей мере одно из A, B или C" или "по меньшей мере одно из A, B и/или C" может означать "по меньшей мере одно из A, B и C".
[37] Дополнительно, круглые скобки, используемые в настоящем описании изобретения, могут означать "например". В частности, в случае если "прогнозирование (внутреннее (intra) прогнозирование)" выражается, может указываться то, что "внутреннее прогнозирование" предлагается в качестве примера "прогнозирования". Другими словами, термин "прогнозирование" в настоящем описании изобретения не ограничен "внутренним прогнозированием", и может указываться то, что "внутреннее прогнозирование" предлагается в качестве примера "прогнозирования". Дополнительно, даже в случае, если "прогнозирование (т.е. внутреннее прогнозирование)" выражается, может указываться то, что "внутреннее прогнозирование" предлагается в качестве примера "прогнозирования".
[38] В настоящем описании изобретения, технические признаки, отдельно поясненные на одном чертеже, могут реализовываться отдельно либо могут реализовываться одновременно.
[39] Далее подробно описываются примерные варианты осуществления настоящего раскрытия со ссылкой на прилагаемые чертежи. Помимо этого, аналогичные ссылки с номерами используются для того, чтобы указывать аналогичные элементы на всех чертежах, и идентичные описания аналогичных элементов могут опускаться.
[40] Фиг. 1 иллюстрирует пример системы кодирования видео/изображений, к которой могут применяться варианты осуществления настоящего раскрытия.
[41] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое устройство (исходное устройство) и второе устройство (приемное устройство). Исходное устройство может передавать кодированную информацию или данные видео/изображений в приемное устройство через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи.
[42] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[43] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[44] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[45] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.
[46] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.
[47] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[48] Настоящее раскрытие относится к кодированию видео/изображений. Например, способ/вариант осуществления, раскрытый в этом документе, может применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте фундаментального кодирования видео (EVC), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267, H.268 и т.п.).
[49] Этот документ предлагает различные варианты осуществления кодирования видео/изображений, и вышеуказанные варианты осуществления также могут выполняться в комбинации между собой, если не указано иное.
[50] В этом документе, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретном временном кинокадре, и срез/плитка означает единицу, составляющую часть кадра с точки зрения кодирования. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток.
[51] Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез может содержать число полных плиток или число последовательных CTU-строк в одной плитке кадра, который может содержаться в одной NAL-единице. В этом документе, группа плиток и срез могут использоваться взаимозаменяемо. Например, в этом документе, группа плиток/заголовок группы плиток может называться "срезом/заголовком среза".
[52] Между тем, один кадр может разделяться на два или более субкадров. Субкадр может представлять собой прямоугольную область одного или более срезов в кадре.
[53] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пикселное значение компонента сигнала яркости либо только пиксел/пикселное значение компонента сигнала цветности.
[54] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя по меньшей мере одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк. Альтернативно, выборка может означать пикселное значение в пространственной области и когда такое пикселное значение преобразуется в частотную область, это может означать коэффициент преобразования в частотной области.
[55] Фиг. 2 является схемой, принципиально иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться раскрытие настоящего документа. В дальнейшем в этом документе, то, что называется "оборудованием кодирования видео", может включать в себя оборудование кодирования изображений.
[56] Ссылаясь на фиг. 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 в качестве внутреннего/внешнего компонента.
[57] Модуль 210 сегментации изображений может разбивать входное изображение (или кадр, кинокадр), вводимое в оборудование 200 кодирования, на одну или более единиц обработки. В качестве примера, единица обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно разбиваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может разбиваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или структуры в виде троичного дерева. В этом случае, например, сначала применяется структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и/или структура в виде троичного дерева. Альтернативно, также сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию может выполняться на основе конечной единицы кодирования, которая более не разбивается. В этом случае, на основе эффективности кодирования согласно характеристикам изображений и т.п., максимальная единица кодирования может непосредственно использоваться в качестве конечной единицы кодирования, или при необходимости, единица кодирования может рекурсивно разбиваться на единицы кодирования большей глубины, так что единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя такую процедуру, как прогнозирование, преобразование и восстановление, которая описывается ниже. В качестве другого примера, единица обработки дополнительно может включать в себя предиктор (PU) или единицу преобразования (TU). В этом случае, каждое из предиктора и единицы преобразования может разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Предиктор может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для выведения коэффициента преобразования и/или единицу для выведения остаточного сигнала из коэффициента преобразования.
[58] Единица может взаимозаменяемо использоваться с таким термином, как блок или зона, в некоторых случаях. Обычно, блок MxN может представлять выборки, состоящие из M столбцов и N строк или группы коэффициентов преобразования. Выборка, в общем, может представлять пиксел или значение пиксела и также может представлять только пиксел/пикселное значение компонента сигнала яркости, а также представлять только пиксел/пикселное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего пикселу или пелу, конфигурирующему один кадр (или изображение).
[59] Оборудование 200 кодирования может вычитать прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как проиллюстрировано, модуль для вычитания прогнозного сигнала (блока прогнозирования, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для целевого блока обработки (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, в единицах текущего блока или CU. Модуль прогнозирования может формировать различную информацию относительно прогнозирования, такую как информация режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого режима прогнозирования. Информация относительно прогнозирования может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[60] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок со ссылкой на выборки в пределах текущего кадра. Выборки, на которые ссылаются, могут быть расположены как граничащие с текущим блоком либо также могут быть расположены на большом расстоянии от текущего блока согласно режиму прогнозирования. Режимы прогнозирования при внутреннем прогнозировании могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим или планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно точной степени направления прогнозирования. Тем не менее, это является иллюстративным, и режимы направленного прогнозирования, которые больше или меньше вышеуказанного числа, могут использоваться согласно настройке. Модуль 222 внутреннего прогнозирования также может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[61] Модуль 221 взаимного прогнозирования может логически выводить прогнозированный блок относительно текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В это время, чтобы снижать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.п.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, существующий в текущем кадре, и временной соседний блок, существующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными друг другу или отличающимися друг от друга. Временной соседний блок может упоминаться под таким названием, как "совместно размещенный опорный блок", "совместно размещенная CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, также может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и, например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. Режим прогнозирования векторов движения (MVP) может указывать вектор движения текущего блока посредством использования вектора движения соседнего блока в качестве предиктора вектора движения и передачи в служебных сигналах разности векторов движения.
[62] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, которые описываются ниже. Например, модуль прогнозирования может применять внутреннее прогнозирование или взаимное прогнозирование для прогнозирования одного блока и может одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо основан на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию в том, что опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать по меньшей мере одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[63] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал, либо может использоваться для того, чтобы формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа при выражении информации взаимосвязи между пикселами на графе. CNT означает преобразование, полученное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Кроме того, процесс преобразования может применяться к блоку пикселов, имеющих размер, идентичный размеру квадрата, или может применяться к блоку переменного размера, который не представляет собой квадрат.
[64] Квантователь 233 квантует коэффициенты преобразования и передает их в энтропийный кодер 240, и энтропийный кодер 240 кодирует квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводит кодированный сигнал в качестве потока битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать квантованные коэффициенты преобразования в блочной форме в одномерную векторную форму на основе порядка сканирования коэффициентов и может формировать информацию относительно коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Энтропийный кодер 240 может выполнять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Энтропийный кодер 240 может кодировать информацию, необходимую для восстановления видео/изображений (например, значения синтаксических элементов и т.д.) отличную от квантованных коэффициентов преобразования, вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах слоя абстрагирования от сети (NAL) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Кроме того, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В этом документе, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/изображений. Информация видео/изображений может кодироваться через процедуру кодирования, описанную выше, и включаться в поток битов. Поток битов может передаваться через сеть или может сохраняться на цифровом носителе хранения данных. Здесь, сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD и SSD. Передающий модуль (не показан) и/или модуль хранения (не показан) для передачи или сохранения сигнала, выводимого из энтропийного кодера 240, могут быть сконфигурированы как внутренние/внешние элементы оборудования 200 кодирования, либо передающий модуль может включаться в энтропийный кодер 240.
[65] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и модуль 235 обратного преобразования. Сумматор 250 может суммировать восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Когда отсутствует остаток для целевого блока обработки, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем блоков восстановления". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего целевого блока для обработки в текущем кадре или может использоваться для взаимного прогнозирования следующего кадра после фильтрации, как описано ниже.
[66] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в ходе процесса кодирования и/или восстановления кадров.
[67] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различные виды информации, связанной с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[68] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием декодирования может исключаться, и эффективность кодирования может повышаться.
[69] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения уже восстановленных блоков в кадре. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования для использования в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.
[70] Между тем, в этом документе по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может опускаться. Когда квантование/деквантование опускается, квантованный коэффициент преобразования может называться "коэффициентом преобразования". Когда преобразование/обратное преобразование опускается, коэффициенты преобразования могут называться "коэффициентом" или "остаточным коэффициентом" либо по-прежнему могут называться "коэффициентом преобразования" для единообразности выражения.
[71] Дополнительно, в этом документе, квантованный коэффициент преобразования и коэффициент преобразования могут называться "коэффициентом преобразования" и "масштабированным коэффициентом преобразования", соответственно. В этом случае, остаточная информация может включать в себя информацию относительно коэффициента(ов) преобразования, и информация относительно коэффициента(ов) преобразования может передаваться в служебных сигналах через синтаксис остаточного кодирования. Коэффициенты преобразования могут извлекаться на основе остаточной информации (или информации относительно коэффициента(ов) преобразования), и масштабированные коэффициенты преобразования могут извлекаться через обратное преобразование (масштабирование) для коэффициентов преобразования. Остаточные выборки могут извлекаться на основе обратного преобразования (преобразования) масштабированных коэффициентов преобразования. Это также может применяться/выражаться в других частях этого документа.
[72] Фиг. 3 является схемой для схематичного пояснения конфигурации оборудования декодирования видео/изображений, к которому может применяться раскрытие настоящего документа.
[73] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя и конфигурироваться с помощью энтропийного декодера 310, остаточного процессора 320, модуля 330 прогнозирования, сумматора 340, фильтра 350 и запоминающего устройства 360. Модуль 330 прогнозирования может включать в себя модуль 331 внутреннего прогнозирования и модуль 332 взаимного прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 322. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350, которые описываются выше, могут конфигурироваться посредством одного или более аппаратных компонентов (например, наборов микросхем или процессоров декодера) согласно варианту осуществления. Дополнительно, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) и может конфигурироваться посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[74] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может восстанавливать изображение в ответ на процесс, в котором информация видео/изображений обрабатывается в оборудовании кодирования, проиллюстрированном на фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с разбиением на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием единицы обработки, применяемой для оборудования кодирования. Следовательно, единица обработки для декодирования, например, может представлять собой единицу кодирования, и единица кодирования может разбиваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или максимальной единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Помимо этого, восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[75] Оборудование 300 декодирования может принимать сигнал, выводимый из оборудования кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через энтропийный декодер 310. Например, энтропийный декодер 310 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Оборудование декодирования дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные далее в этом документе, могут декодироваться, может декодировать процедуру декодирования и получаться из потока битов. Например, энтропийный декодер 310 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC) или контекстно-адаптивное арифметическое кодирование (CABAC), и выходных синтаксических элементов, требуемых для восстановления изображений и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель посредством использования информации целевого синтаксического элемента декодирования, информации декодирования целевого блока декодирования или информации символа/элемента разрешения, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством прогнозирования вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с прогнозированием, из информации, декодированной посредством энтропийного декодера 310, может предоставляться в модуль прогнозирования (модуль 332 взаимного прогнозирования и модуль 331 внутреннего прогнозирования), и остаточные значения, для которых энтропийное декодирование выполнено в энтропийном декодере 310, т.е. квантованные коэффициенты преобразования и связанная информация параметров, могут вводиться в остаточный процессор 320.
[76] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования, с тем чтобы выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в двумерной блочной форме. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого посредством оборудования кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования с использованием параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[77] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[78] Модуль 330 прогнозирования может выполнять прогнозирование текущего блока и формировать прогнозированный блок, включающий в себя прогнозные выборки текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование, или применяется взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и определять конкретный режим внутреннего/взаимного прогнозирования.
[79] Модуль 330 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, которые описываются ниже. Например, модуль прогнозирования может применять внутреннее прогнозирование или взаимное прогнозирование для прогнозирования одного блока и может одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо основан на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео для такого контента, как игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу может выполнять прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию в том, что опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать по меньшей мере одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, информация относительно таблицы палитр и индекса палитры может включаться в информацию видео/изображений и передаваться в служебных сигналах.
[80] Модуль 3321 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением относительно текущего блока согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, который должен применяться к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[81] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию относительно направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.п.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, существующий в текущем кадре, и временной соседний блок, существующий в опорном кадре. Например, модуль 332 взаимного прогнозирования может конструировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[82] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком или массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для целевого блока для обработки, к примеру, в случае, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.
[83] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и, как описано ниже, также может выводиться посредством фильтрации либо также может использоваться для взаимного прогнозирования следующего кадра.
[84] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) также может применяться в процессе декодирования кадров.
[85] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[86] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения уже восстановленных блоков в кадре. Сохраненная информация движения может передаваться в модуль 332 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.
[87] В этом раскрытии, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут применяться одинаково или соответствовать фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования.
[88] Между тем, как описано выше, при выполнении кодирования видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. За счет этого может формироваться прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, в качестве блока, который должен кодироваться (т.е. целевого блока кодирования). Здесь, прогнозированный блок включает в себя прогнозные выборки в пространственной области (или пикселной области). Прогнозированный блок извлекается идентично в оборудовании кодирования и оборудовании декодирования, и оборудование кодирования может передавать в служебных сигналах информацию (остаточную информацию) относительно остатка между исходным блоком и прогнозированным блоком, а не значение исходной выборки исходного блока, в оборудование декодирования, за счет этого повышая эффективность кодирования изображений. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, суммировать остаточный блок и прогнозированный блок, чтобы формировать восстановленные блоки, включающие в себя восстановленные выборки, и формировать восстановленный кадр, включающий в себя восстановленные блоки.
[89] Остаточная информация может формироваться через процедуру преобразования и квантования. Например, оборудование кодирования может извлекать остаточный блок между исходным блоком и прогнозированным блоком, выполнять процедуру преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, чтобы извлекать коэффициенты преобразования, выполнять процедуру квантования для коэффициентов преобразования, чтобы извлекать квантованные коэффициенты преобразования и связанную с сигналами остаточную информацию в оборудование декодирования (через поток битов). Здесь, остаточная информация может включать в себя информацию значений квантованных коэффициентов преобразования, информацию местоположения, технологию преобразования, ядро преобразования, параметр квантования и т.п. Оборудование декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и извлекать остаточные выборки (или остаточные блоки). Оборудование декодирования может формировать восстановленный кадр на основе прогнозированного блока и остаточного блока. Кроме того, для ссылки для взаимного прогнозирования изображения позднее, оборудование кодирования также может деквантовать/обратно преобразовывать квантованные коэффициенты преобразования, чтобы извлекать остаточный блок и формировать восстановленный кадр на его основе.
[90] Между тем, различные режимы взаимного прогнозирования могут использоваться для прогнозирования текущего блока в кадре. Различные режимы взаимного прогнозирования описываются ниже со ссылкой на фиг. 5.
[91] Между тем, информация, указывающая то, используются либо нет прогнозирование на основе списка 0 (L0), прогнозирование на основе списка 1 (L1) или бипрогнозирование, описанные выше, в текущем блоке (текущей единице кодирования), может передаваться в служебных сигналах в текущий блок. Упомянутая информация, например, может называться "информацией направления прогнозирования движения", "информацией направления взаимного прогнозирования" или "информацией индикатора взаимного прогнозирования" и может конфигурироваться/кодироваться/передаваться в служебных сигналах в форме синтаксического элемента inter_pred_idc syntax. Таким образом, синтаксический элемент inter_pred_idc может указывать то, используются либо нет вышеописанное прогнозирование на основе списка 0 (L0), прогнозирование на основе списка 1 (L1) или бипрогнозирование для текущего блока (текущей единицы кодирования). В настоящем раскрытии, для удобства описания, тип взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование), указываемый посредством синтаксического элемента inter_pred_idc, может представляться как направление прогнозирования движения. L0-прогнозирование может представляться посредством pred_L0; L1-прогнозирование может представляться посредством pred_L1; и бипрогнозирование может представляться посредством pred_BI. Например, после прогнозирования тип может указываться согласно значению синтаксического элемента inter_pred_idc.
[92] Как описано выше, один кадр может включать в себя один или более срезов. Срез может иметь одни из типов срезов, включающих в себя внутренний (I) срез, прогнозирующий (P) срез и бипрогнозирующий (B) срез. Тип среза может указываться на основе информации типа среза. Для блоков в I-срезе, взаимное прогнозирование не используется для прогнозирования, и только внутреннее прогнозирование может использоваться. Конечно, даже в этом случае, исходное выборочное значение может кодироваться и передаваться в служебных сигналах без прогнозирования. Для блоков в P-срезе, может использоваться внутреннее прогнозирование или взаимное прогнозирование, и когда взаимное прогнозирование используется, только унипрогнозирование может использоваться. Между тем, внутреннее прогнозирование или взаимное прогнозирование может использоваться для блоков в B-срезе, и когда взаимное прогнозирование используется, вплоть до максимального бипрогнозирования может использоваться.
[93] L0 и L1 могут включать в себя опорные кадры, кодированные/декодированные перед текущим кадром. Например, L0 может включать в себя опорные кадры перед и/или после текущего кадра в POC-порядке, и L1 может включать в себя опорные кадры после и/или перед текущим кадром в POC-порядке. В этом случае, индекс опорного кадра, ниже относительно опорных кадров раньше текущего кадра в POC-порядке, может выделяться L0, и индекс опорного кадра, ниже относительно опорных кадров позже текущего кадра в POC-порядке, может выделяться L1. В случае B-среза, бипрогнозирование может применяться, и в этом случае, однонаправленное бипрогнозирование может применяться, либо двунаправленное бипрогнозирование может применяться. Двунаправленное бипрогнозирование может называться "истинным бипрогнозированием".
[94] Например, информация относительно режима взаимного прогнозирования текущего блока может кодироваться и передаваться в служебных сигналах на уровне CU (CU-синтаксиса) и т.п. или может неявно определяться согласно условию. В этом случае, некоторые режимы могут явно передаваться в служебных сигналах, и другие режимы могут неявно извлекаться.
[95] Например, CU-синтаксис может переносить информацию относительно (взаимного) режима прогнозирования и т.д. CU-синтаксис может быть таким, как показано в нижеприведенной таблице 1.
[96] Табл. 1
[97]
[98]
[99]
[100]
[101]
[102]
[103]
[104]
[105]
[106] В таблице 1, cu_skip_flag может указывать то, применяется или нет режим пропуска к текущему блоку (CU).
[107] pred_mode_flag, равный 0, может указывать то, что текущая единица кодирования кодируется в режиме взаимного прогнозирования. Pred_mode_flag, равный 1, может указывать то, что текущая единица кодирования кодируется в режиме внутреннего прогнозирования.
[108] pred_mode_ibc_flag, равный 1, может указывать то, что текущая единица кодирования кодируется в режиме IBC-прогнозирования. Pred_mode_ibc_flag, равный 0, может указывать то, что текущая единица кодирования не кодируется в режиме IBC-прогнозирования.
[109] pcm_flag[x0][y0], равный 1, может указывать то, что синтаксическая структура pcm_sample() присутствует, и синтаксическая структура transform_tree() не присутствует в единице кодирования, включающей в себя блок кодирования сигналов яркости в местоположении (x0, y0). Pcm_flag[x0][y0], равный 0, может указывать то, что синтаксическая структура pcm_sample()не присутствует. Таким образом, pcm_flag может представлять то, применяется или нет режим импульсно-кодовой модуляции (PCM) к текущему блоку. Если PCM-режим применяется к текущему блоку, прогнозирование, преобразование, квантование и т.д. не применяются, и значения исходной выборки в текущем блоке могут кодироваться и передаваться в служебных сигналах.
[110] intra_mip_flag[x0][y0], равный 1, может указывать то, что тип внутреннего прогнозирования для выборок сигналов яркости представляет собой матричное внутреннее прогнозирование (MIP). Intra_mip_flag[x0][y0], равный 0, может указывать то, что тип внутреннего прогнозирования для выборок сигналов яркости не представляет собой матричное внутреннее прогнозирование. Таким образом, intra_mip_flag может представлять то, применяется или нет режим (тип) MIP-прогнозирования к (выборке сигналов яркости) текущему блоку.
[111] intra_chroma_pred_mode[x0][y0] может указывать режим внутреннего прогнозирования для выборок сигналов цветности в текущем блоке.
[112] general_merge_flag[x0][y0] может указывать то, логически выводятся или нет параметры взаимного прогнозирования для текущей единицы кодирования из соседнего взаимно прогнозированного сегмента. Таким образом, general_merge_flag может представлять то, что общее объединение доступно, и когда значение general_merge_flag равно 1, регулярный режим объединения, MMVD-режим и субблочный режим объединения (режим объединения на основе субблоков) могут быть доступными. Например, когда значение general_merge_flag равно 1, синтаксис данных объединения может синтаксически анализироваться из кодированной информации видео/изображений (или потока битов) и синтаксиса данных объединения, сконфигурированного/кодированного таким образом, что он включает в себя информацию, как показано в нижеприведенной таблице 2.
[113] Табл. 2
[114]
[115] В таблице 2, regular_merge_flag[x0][y0], равный 1, может указывать то, что регулярный режим объединения используется для того, чтобы формировать параметры взаимного прогнозирования текущей единицы кодирования. Таким образом, regular_merge_flag может представлять то, применяется или нет режим объединения (регулярный режим объединения) к текущему блоку.
[116] mmvd_merge_flag[x0][y0], равный 1, может указывать то, что режим объединения с разностью векторов движения используется для того, чтобы формировать параметр взаимного прогнозирования текущего блока. Таким образом, mmvd_merge_flag представляет то, применяется или нет MMVD к текущему блоку.
[117] mmvd_cand_flag[x0][y0] может указывать то, используется либо нет первый (0) или второй (1) возможный вариант в списке возможных вариантов объединения с разностью векторов движения, извлекаемой из mmvd_distance_idx[x0][y0] и mmvd_direction_idx[x0][y0].
[118] mmvd_distance_idx[x0][y0] может указывать индекс, используемый для того, чтобы извлекать MmvdDistance[x0][y0].
[119] mmvd_direction_idx[x0][y0] может указывать индекс, используемый для того, чтобы извлекать MmvdSign[x0][y0].
[120] merge_subblock_flag[x0][y0] может указывать параметры взаимного прогнозирования на основе субблоков для текущего блока. Таким образом, merge_subblock_flag может представлять то, применяется или нет режим объединения на основе субблоков (или аффинный режим объединения) к текущему блоку.
[121] merge_subblock_idx[x0][y0] может указывать индекс возможного варианта объединения списка возможных вариантов объединения на основе субблоков.
[122] ciip_flag[x0][y0] может указывать то, применяется или нет комбинированное межкадровое объединение и внутрикадровое прогнозирование (CIIP) для текущей единицы кодирования.
[123] merge_triangle_idx0[x0][y0] может указывать то, что индекс первого возможного варианта объединения список возможных вариантов компенсации движения треугольной формы.
[124] merge_triangle_idx1[x0][y0] может указывать то, что индекс второго возможного варианта объединения список возможных вариантов компенсации движения треугольной формы.
[125] merge_idx[x0][y0] может указывать индекс возможного варианта объединения списка возможных вариантов объединения.
[126] Между тем, возвращаясь к CU-синтаксису, mvp_l0_flag[x0][y0] может указывать индекс предиктора вектора движения списка 0. Таким образом, когда MVP-режим применяется, mvp_10_flag может представлять возможный вариант, выбранный для MVP-извлечения текущего блока из списка 0 возможных MVP-вариантов.
[127] ref_idx_l1[x0][y0] имеет семантику, идентичную семантике ref_idx_l0 с l0, и список 0 может заменяться посредством l1 и списка 1, соответственно.
[128] inter_pred_idc[x0][y0] может указывать то, используется либо нет list0, list1 или бипрогнозирование для текущей единицы кодирования.
[129] sym_mvd_flag[x0][y0], равный 1, может указывать то, что синтаксические элементы ref_idx_l0[x0][y0] и ref_idx_l1[x0][y0] и синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) для refList, равного 1, не присутствуют. Таким образом, sym_mvd_flag представляет то, используется или нет симметричная MVD при MVD-кодировании.
[130] ref_idx_l0[x0][y0] может указывать индекс опорного кадра списка 0 для текущего блока.
[131] ref_idx_l1[x0][y0] имеет семантику, идентичную семантике ref_idx_l0, с l0, L0 и списком 0, замененным посредством l1, L1 и списка 1, соответственно.
[132] inter_affine_flag[x0][y0], равный 1, может указывать то, что компенсация движения на основе аффинной модели используется для того, чтобы формировать прогнозные выборки текущего блока при декодировании P- или B-среза.
[133] cu_affine_type_flag[x0][y0], равный 1, может указывать то, что для текущей единицы кодирования, при декодировании P- или B-среза, компенсация движения на основе 6-параметрической аффинной модели используется для того, чтобы формировать прогнозные выборки текущей единицы кодирования. Cu_affine_type_flag[x0][y0], равный 0, может указывать то, что компенсация движения на основе 4-параметрической аффинной модели используется для того, чтобы формировать прогнозные выборки текущего блока.
[134] amvr_flag[x0][y0] может указывать разрешение разности векторов движения. Индексы x0, y0 массивов указывают местоположение (x0, y0) левой верхней выборки сигнала яркости рассматриваемого блока кодирования относительно левой верхней выборки сигнала яркости кинокадра. Amvr_flag[x0][y0], равный 0, может указывать то, что разрешение разности векторов движения является 1/4 выборки сигналов яркости. Amvr_flag[x0][y0], равный 1, может указывать то, что разрешение разности векторов движения дополнительно указывается посредством amvr_precision_flag[x0][y0].
[135] amvr_precision_flag[x0][y0], равный 0, может указывать то, что разрешение разности векторов движения составляет одну целочисленную выборку сигналов яркости, если inter_affine_flag[x0][y0] равен 0, и 1/16 от выборки сигналов яркости в противном случае. Amvr_precision_flag[x0][y0], равный 1, может указывать то, что разрешение разности векторов движения составляет четыре выборки сигналов яркости, если inter_affine_flag[x0][y0] равен 0, и одну целочисленную выборку сигналов яркости в противном случае.
[136] bcw_idx[x0][y0] может указывать весовой индекс бипрогнозирования с весовыми коэффициентами CU.
[137] Фиг. 4 примерно показывает процедуру взаимного прогнозирования.
[138] Ссылаясь на фиг. 4, процедура взаимного прогнозирования может включать в себя этап определения режима взаимного прогнозирования, этапа извлечения информации движения согласно определенному режиму прогнозирования и этап выполнения прогнозирования (формирования прогнозной выборки) на основе извлеченной информации движения. Процедура взаимного прогнозирования может выполняться посредством оборудования кодирования и оборудования декодирования, как описано выше. В этом документе, оборудование кодирования может включать в себя оборудование кодирования и/или оборудование декодирования.
[139] Ссылаясь на фиг. 4, оборудование кодирования определяет режим взаимного прогнозирования для текущего блока (S400). Между тем, различные режимы взаимного прогнозирования могут использоваться для прогнозирования текущего блока в кадре. Различные режимы взаимного прогнозирования могут использоваться для прогнозирования текущего блока в кадре. Например, различные режимы, такие как режим объединения, режим пропуска, режим прогнозирования векторов движения (MVP), аффинный режим, режим объединения на основе субблоков, режим объединения с MVD (MMVD) и т.д. Режим детализации векторов движения на стороне декодера (DMVR), режим адаптивного разрешения векторов движения (AMVR), бипрогнозирование с помощью весовых коэффициентов уровня CU (BCW), двунаправленный оптический поток (BDOF) и т.д. могут использоваться помимо этого или вместо этого в качестве вспомогательных режимов. Аффинный режим может называться "режимом аффинного прогнозирования движения". MVP-режим может называться "режимом усовершенствованного прогнозирования векторов движения (AMVP)". В настоящем раскрытии, некоторые режимы и/или возможные варианты информации движения, извлекаемые посредством некоторых режимов, могут включаться в качестве одного из связанных с информацией движения возможных вариантов других режимов. Например, возможный HMVP-вариант может добавляться в качестве возможного варианта объединения режима объединения/пропуска или может добавляться в качестве возможного MVP-варианта MVP-режима. Когда возможный HMVP-вариант используется в качестве возможного варианта информации движения режима объединения или режима пропуска, возможный HMVP-вариант может называться "возможным HMVP-вариантом объединения".
[140] Информация режима прогнозирования, указывающая режим взаимного прогнозирования текущего блока, может передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. Информация режима прогнозирования может включаться в поток битов и приниматься в оборудовании декодирования. Информация режима прогнозирования может включать в себя информацию индекса, указывающую один из нескольких возможных вариантов режимов. Дополнительно, режим взаимного прогнозирования может указываться через иерархическую передачу в служебных сигналах информации флага. В этом случае, информация режима прогнозирования может включать в себя один или более флагов. Например, может указываться то, применяется или нет режим пропуска, посредством передачи в служебных сигналах флага пропуска; может указываться то, применяется или нет режим объединения, посредством передачи в служебных сигналах флага объединения для неприменения режима пропуска; и может указываться то, что MVP-режим применяется, или флаг для дополнительного сегмента дополнительно может передаваться в служебных сигналах, когда режим объединения не применяется. Аффинный режим может передаваться в служебных сигналах в качестве независимого режима или может передаваться в служебных сигналах в качестве режима, зависимого от режима объединения или MVP-режима и т.п. Например, аффинный режим может включать в себя аффинный режим объединения и аффинный MVP-режим.
[141] Оборудование кодирования извлекает информацию движения для текущего блока (S410). Информация движения может извлекаться на основе режима взаимного прогнозирования.
[142] Оборудование кодирования может выполнять взаимное прогнозирование с использованием информации движения текущего блока. Оборудование кодирования может извлекать оптимальную информацию движения для текущего блока через процедуру оценки движения. Например, оборудование кодирования может выполнять поиск аналогичного опорного блока с высокой корреляцией в предварительно определенном диапазоне поиска в опорном кадре посредством использования исходного блока в исходном кадре относительно текущего блока в дробнопикселных единицах и извлекать информацию движения через него. Подобие блоков может извлекаться на основе разности между выборочными значениями на основе фазы. Например, подобие блоков может вычисляться на основе SAD между текущим блоком (или эталоном текущего блока) и опорным блоком (или эталоном опорного блока). В этом случае, информация движения может извлекаться на основе опорного блока, имеющего наименьшую SAD в зоне поиска. Извлеченная информация движения может передаваться в служебных сигналах в оборудование декодирования согласно различным способам на основе режима взаимного прогнозирования.
[143] Оборудование кодирования выполняет взаимное прогнозирование на основе информации движения относительно текущего блока (S420). Оборудование кодирования может извлекать прогнозную выборку(ки) для текущего блока на основе информации движения. Текущий блок, включающий в себя прогнозные выборки, может называться "прогнозированным блоком".
[144] Фиг. 5 является схемой для пояснения режима объединения при взаимном прогнозировании.
[145] Когда режим объединения применяется, информация движения текущего блока прогнозирования непосредственно не передается, но информация движения текущего блока прогнозирования извлекается с использованием информации движения соседнего блока прогнозирования. Соответственно, информация движения текущего блока прогнозирования может указываться посредством передачи информации флага, указывающей то, что режим объединения используется, и индекса объединения, указывающего то, какой блок прогнозирования в окрестности используется. Режим объединения может называться "регулярным режимом объединения".
[146] Чтобы выполнять режим объединения, оборудование кодирования должно выполнять поиск возможного варианта блока объединения, используемого для того, чтобы извлекать информацию движения относительно текущего блока прогнозирования. Например, могут использоваться вплоть до пяти возможных вариантов блоков объединения, но вариант(ы) осуществления настоящего раскрытия не ограничен этим. Помимо этого, максимальное число возможных вариантов блоков объединения может передаваться в заголовке среза или заголовке группы плиток, но вариант(ы) осуществления настоящего раскрытия не ограничен этим. После нахождения возможных вариантов блоков объединения, оборудование кодирования может формировать список возможных вариантов объединения и может выбирать возможный вариант блока объединения, имеющий наименьшие затраты, из возможных вариантов блоков объединения, в качестве конечного возможного варианта блока объединения.
[147] Настоящее раскрытие может предоставлять различные варианты осуществления возможных вариантов блоков объединения, составляющих список возможных вариантов объединения.
[148] Например, список возможных вариантов объединения может включать в себя пять возможных вариантов блоков объединения. Например, могут использоваться четыре пространственных возможных варианта объединения и один временной возможный вариант объединения. В качестве конкретного примера, в случае пространственного возможного варианта объединения, блоки, проиллюстрированные на фиг. 5, могут использоваться в качестве пространственного возможного варианта объединения. В дальнейшем в этом документе, пространственный возможный вариант объединения или пространственный возможный MVP-вариант, которые описываются ниже, может называться "SMVP", и временной возможный вариант объединения или временной возможный MVP-вариант, которые описываются ниже, может называться "TMVP".
[149] Список возможных вариантов объединения для текущего блока может быть сконфигурирован, например, на основе следующей процедуры.
[150] Оборудование кодирования (оборудование кодирования/оборудование декодирования) может вставлять пространственные возможные варианты объединения, извлекаемые посредством поиска пространственных соседних блоков текущего блока, в список возможных вариантов объединения. Например, пространственные соседние блоки могут включать в себя левый нижний угловой соседний блок, левый соседний блок, правый верхний угловой соседний блок, верхний соседний блок и левый верхний угловой соседний блок относительно текущего блока. Тем не менее, это представляет собой пример, и в дополнение к вышеупомянутым пространственным соседним блокам, дополнительные соседние блоки, такие как правый соседний блок, нижний соседний блок и правый нижний соседний блок, дополнительно могут использоваться в качестве пространственных соседних блоков. Оборудование кодирования может обнаруживать доступные блоки посредством выполнения поиска пространственных соседних блоков на основе приоритета и может извлекать информацию движения обнаруженных блоков в качестве пространственных возможных вариантов объединения. Например, оборудование кодирования и/или оборудование декодирования могут выполнять поиск пяти блоков, проиллюстрированных на фиг. 5, в порядке A1->B1->B0->A0->B2, и могут конфигурировать список возможных вариантов объединения посредством последовательной индексации доступных возможных вариантов.
[151] Оборудование кодирования может выполнять поиск временного соседнего блока относительно текущего блока и вставлять извлеченный временной возможный вариант объединения в список возможных вариантов объединения. Временной соседний блок может быть расположен в опорном кадре, т.е. в кадре, отличающемся от текущего кадра, в котором расположен текущий блок. Опорный кадр, в котором позиционируются временные соседние блоки, может называться "совместно размещенным кадром" или "совместно размещ. кадром". Можно выполнять поиск временных соседних блоков в порядке из правого нижнего углового соседнего блока и правого нижнего центрального блока относительно совместно размещенного блока относительно текущего блока в совместно размещ. кадре. Между тем, когда сжатие данных движения применяется, конкретная информация движения может сохраняться в качестве характерной информации движения относительно каждой предварительно определенной единицы хранения в совместно размещ. кадре. В этом случае, нет необходимости сохранять информацию движения относительно всех блоков в предварительно определенной единице хранения, и за счет этого преимущество сжатия данных движения может получаться. В этом случае, предварительно определенная единица хранения может быть предварительно определена в качестве, например, единиц выборок 16×16 или единиц 8×8 выборок, или информация размера относительно предварительно определенной единицы хранения может передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. Когда сжатие данных движения применяется, информация движения относительно временно соседних блоков может заменяться характерной информацией движения относительно предварительно определенной единицы хранения, в которой позиционируются временно соседние блоки. Таким образом, в этом случае, с точки зрения реализации, вместо прогнозированного блока, позиционированного в координатах временно соседних блоков, временной возможный вариант объединения может извлекаться на основе информации движения относительно блока прогнозирования, покрывающего арифметическую сдвинутую влево позицию после арифметического сдвига вправо на определенное значение на основе координат (левой верхней выборочной позиции) временного соседнего блока. Например, когда предварительно определенная единица хранения составляет единицы 2nx2n выборки, если координаты временно соседних блоков представляют собой (xTnb, yTnb), информация движения относительно блока прогнозирования, позиционированного в скорректированной позиции ((xTnb>>n)<<n), (yTnb>>n)<<n)), может использоваться для временного возможного варианта объединения. В частности, когда предварительно определенная единица хранения составляет единицы выборок 16×16, если координаты временно соседних блоков представляют собой (xTnb, yTnb), информация движения относительно блока прогнозирования, позиционированного в скорректированной позиции ((xTnb>>4)<<4), (yTnb>>4)<<4)), может использоваться для временного возможного варианта объединения. Альтернативно, когда предварительно определенная единица хранения составляет единицы 8×8 выборок, если координаты временно соседних блоков представляют собой (xTnb, yTnb), информация движения относительно блока прогнозирования, позиционированного в скорректированной позиции ((xTnb>>3)<<3), (yTnb>>3)<<3)), может использоваться для временного возможного варианта объединения.
[152] Оборудование кодирования может проверять то, меньше или нет число текущих возможных вариантов объединения числа максимальных возможных вариантов объединения. Максимальное число возможных вариантов объединения может предварительно задаваться или передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. Например, оборудование кодирования может формировать и кодировать информацию относительно максимального числа возможных вариантов объединения и передавать информацию в декодер в форме потока битов. Когда максимальное число возможных вариантов объединения заполняется, последующий процесс добавления возможных вариантов может не продолжаться.
[153] В результате проверки, когда число текущих возможных вариантов объединения меньше максимального числа возможных вариантов объединения, оборудование кодирования может вставлять дополнительный возможный вариант объединения в список возможных вариантов объединения. Например, дополнительный возможный вариант объединения может включать в себя по меньшей мере одно из возможного варианта(ов) объединения на основе предыстории, попарного среднего возможного варианта(ов) объединения, ATMVP, комбинированного бипрогнозирующего возможного варианта объединения (когда тип группы срезов/плиток текущей группы срезов/плиток представляет собой тип B) и/или возможного варианта объединения с нулевым вектором.
[154] В результате проверки, когда число текущих возможных вариантов объединения не меньше максимального числа возможных вариантов объединения, оборудование кодирования может завершать конструирование списка возможных вариантов объединения. В этом случае, оборудование кодирования может выбирать оптимальный возможный вариант объединения из числа возможных вариантов объединения, составляющих список возможных вариантов объединения, на основе функции затрат на искажение в зависимости от скорости передачи (RD), и передавать в служебных сигналах информацию выбора, указывающую выбранный возможный вариант объединения (например, индекс объединения), в оборудование декодирования. Декодер может выбирать оптимальный возможный вариант объединения на основе списка возможных вариантов объединения и информации выбора.
[155] Как описано выше, информация движения выбранного возможного варианта объединения может использоваться в качестве информации движения текущего блока, и прогнозные выборки текущего блока могут извлекаться на основе информации движения текущего блока. Оборудование кодирования может извлекать остаточные выборки текущего блока на основе прогнозных выборок и может передавать в служебных сигналах остаточную информацию относительно остаточных выборок в оборудование декодирования. Как описано выше, оборудование декодирования может формировать восстановленные выборки на основе остаточных выборок, извлекаемых на основе остаточной информации и прогнозных выборок, и может формировать восстановленный кадр на их основе.
[156] Когда режим пропуска применяется, информация движения относительно текущего блока может извлекаться идентично тому, когда режим объединения применяется. Тем не менее, когда режим пропуска применяется, остаточный сигнал для соответствующего блока опускается, и в силу этого прогнозные выборки могут непосредственно использоваться в качестве восстановленных выборок. Режим пропуска может применяться, например, когда значение синтаксического элемента cu_skip_flag равно 1.
[157] Фиг. 6 является видом, иллюстрирующим режим объединения с разностью векторов движения (MMVD) при взаимном прогнозировании.
[158] MMVD-режим представляет собой способ применения разности векторов движения (MVD) в режим объединения, в котором непосредственно используется информация движения, извлекаемая для того, чтобы формировать прогнозные выборки текущего блока.
[159] Например, MMVD-флаг (например, mmvd_flag), указывающий то, следует или нет использовать MMVD для текущего блока (т.е. для текущей CU), может передаваться в служебных сигналах, и MMVD может выполняться на основе этого MMVD-флага. Когда MMVD применяется к текущему блоку (например, когда mmvd_flag равен 1), дополнительная информация относительно MMVD может передаваться в служебных сигналах.
[160] Здесь, дополнительная информация относительно MMVD может включать в себя флаг возможного варианта объединения (например, mmvd_cand_flag), указывающий то, используются либо нет первый возможный вариант или второй возможный вариант в списке возможных вариантов объединения, вместе с MVD, индексом расстояния для указания абсолютной величины движения (например, mmvd_distance_idx) и индексом направления (например, mmvd_direction_idx) для указания направления движения.
[161] В MMVD-режиме могут использоваться два возможных варианта (т.е. первый возможный вариант или второй возможный вариант), расположенные в первой и второй записях, из возможных вариантов в списке возможных вариантов объединения, и один из двух возможных вариантов (т.е. первый возможный вариант или второй возможный вариант) может использоваться в качестве базового MV. Например, флаг возможного варианта объединения (например, mmvd_cand_flag) может передаваться в служебных сигналах, чтобы указывать любой один из двух возможных вариантов (т.е. первый возможный вариант или второй возможный вариант) в списке возможных вариантов объединения.
[162] Помимо этого, индекс расстояния (например, mmvd_distance_idx) указывает информацию размера при движении и может указывать предварительно определенное смещение от начальной точки. Ссылаясь на фиг. 5, смещение может суммироваться с горизонтальным компонентом или вертикальным компонентом вектора движения начала. Взаимосвязь между индексом расстояния и предварительно определенным смещением может быть показана в нижеприведенной таблице 3.
[163] Табл. 3
[164] Ссылаясь на таблицу 3, расстояние MVD (например, MmvdDistance) может определяться согласно значению индекса расстояния (например, mmvd_distance_idx), и расстояние MVD (например, MmvdDistance) может извлекаться с использованием точности в целочисленную часть выборки или точности в дробную часть выборки на основе значения slice_fpel_mmvd_enabled_flag. Например, slice_fpel_mmvd_enabled_flag, равный 1, может указывать то, что, расстояние MVD извлекается с использованием целочисленных единиц выборок в текущем срезе, и slice_fpel_mmvd_enabled_flag, равный 0, может указывать то, что расстояние MVD извлекается с использованием дробных единиц выборок в текущем срезе.
[165] Помимо этого, индекс направления (например, mmvd_direction_idx) указывает направление MVD относительно начальной точки и может указывать четыре направления, как показано в нижеприведенной таблице 4. В этом случае, направление MVD может указывать знак MVD. Взаимосвязь между индексом направления и кодом MVD может выражаться так, как показано в нижеприведенной таблице 4.
[166] Табл. 4
[167] Ссылаясь на таблицу 4, знак MVD (например, MmvdSign) может определяться согласно значению индекса направления (например, mmvd_direction_idx), и знак MVD (например, MmvdSign) может извлекаться для опорного L0-кадра и опорного L1-кадра.
[168] На основе индекса расстояния (например, mmvd_distance_idx) и индекса направления (например, mmvd_direction_idx), описанных выше, смещение MVD может вычисляться так, как показано в нижеприведенном уравнении 1.
[169] уравнение 1
[170] Таким образом, в MMVD-режиме, возможный вариант объединения, указываемый посредством флага возможного варианта объединения (например, mmvd_cand_flag), выбирается из числа возможных вариантов объединения списка возможных вариантов объединения, извлекаемого на основе соседнего блока, и выбранный возможный вариант объединения может использоваться в качестве базового возможного варианта (например, MVP). Помимо этого, информация движения (т.е. вектор движения) текущего блока может извлекаться посредством суммирования извлеченной MVD с использованием индекса расстояния (например, mmvd_distance_idx) и индекса направления (например, mmvd_direction_idx) на основе базового возможного варианта.
[171] Между тем, традиционно только один вектор движения может использоваться для того, чтобы выражать движение блока кодирования. Таким образом, модель поступательного движения в пространстве использована. Тем не менее, хотя этот способ может выражать оптимальное движение в единицах блоков, оно фактически не представляет собой оптимальное движение каждой выборки, и эффективность кодирования может повышаться, если оптимальный вектор движения может определяться в единице выборок. С этой целью, модель аффинного движения может использоваться. Способ аффинного прогнозирования движения для кодирования с использованием модели аффинного движения может эффективно выражать четыре движения следующим образом.
[172] Фиг. 7 примерно показывает движение, выражаемое через модель аффинного движения.
[173] Ссылаясь на фиг. 7, движение, которое может выражаться через модель аффинного движения, может включать в себя поступательное движение в пространстве, движение с масштабированием, вращательное движение и сдвиговое движение. Таким образом, не только поступательное движение в пространстве, в котором (часть) изображение перемещается в плоскости с прохождением времени, показанным на фиг. 7, но также и движение с масштабированием, в котором (часть) изображение масштабируется с прохождением времени, вращательное движение, в котором (часть) изображение вращается с прохождением времени, и сдвиговое движение, в котором (часть) изображение преобразуется в параллелограмм с прохождением времени, может эффективно выражаться через аффинное прогнозирование движения.
[174] Оборудование кодирования/оборудование декодирования может прогнозировать форму искажения изображения на основе векторов движения в управляющих точках (CP) текущего блока через аффинное прогнозирование движения, и за счет этого точность прогнозирования может повышаться, с тем чтобы повышать производительность сжатия изображения. Помимо этого, вектор движения по меньшей мере для одной управляющей точки текущего блока может извлекаться с использованием вектора движения соседнего блока относительно текущего блока, за счет этого уменьшая нагрузку объема данных для добавленной дополнительной информации и значительно повышая эффективность взаимного прогнозирования.
[175] Из движений, которые может выражать модель аффинного перемещения, модель аффинного движения, которая выражает три движения (перемещение в пространстве, масштабирование, вращение), может называться "моделью аффинного движения на основе подобия (упрощенной)". Тем не менее, модель аффинного движения не ограничена моделью движения, описанной выше.
[176] Способ аффинного прогнозирования движения может выражать вектор движения в каждой единице выборок блока с использованием двух, трех или четырех векторов движения.
[177] Фиг. 8A и 8B примерно показывают CPMV для аффинного прогнозирования движения.
[178] Традиционно, только один вектор движения может использоваться для того, чтобы выражать движение блока кодирования. Таким образом, модель поступательного движения в пространстве использована. Тем не менее, хотя этот способ может выражать оптимальное движение в единицах блоков, оно фактически не представляет собой оптимальное движение каждой выборки, и эффективность кодирования может повышаться, если оптимальный вектор движения может определяться в единице выборок. С этой целью, модель аффинного движения может использоваться. Способ аффинного прогнозирования движения для кодирования с использованием модели аффинного движения может заключаться в следующем.
[179] Способ аффинного прогнозирования движения может выражать вектор движения в каждой единице выборок блока с использованием двух, трех или четырех векторов движения. Например, модель аффинного движения может представлять четыре типа движения. Модель аффинного движения, которая выражает три перемещения (перемещение в пространстве, масштабирование и вращение), из движений, которые может выражать модель аффинного движения, может называться "моделью аффинного движения на основе подобия (упрощенной)". Тем не менее, модель аффинного движения не ограничена моделью движения, описанной выше.
[180] Аффинное прогнозирование движения может определять вектор движения выборочной позиции, включенной в блок, с использованием двух или более векторов движения на основе управляющих точек (CPMV). В этом случае, набор векторов движения может называться "полем аффинных векторов движения (MVF)".
[181] Например, фиг. 8A может показывать случай, когда два CPMV используются, который может называться "4-параметрической аффинной моделью". В этом случае, вектор движения в выборочной позиции (x, y) может определяться, например, в качестве уравнения.
[182] уравнение 2
[183] Например, фиг. 8B может показывать случай, когда три CPMV используются, который может называться "6-параметрической аффинной моделью". В этом случае, вектор движения в выборочной позиции (x, y) может определяться, например, посредством уравнения 3.
[184] уравнение 3
x
y
0x
0y
1x
1y
2x
2y
[185] В уравнениях 2 и 3, {v, v} может представлять вектор движения в позиции (x, y). Помимо этого, {v, v} может указывать CPMV управляющей точки (CP) в позиции левого верхнего угла блока кодирования, {v, v} может указывать CPMV CP в верхней правой угловой позиции, {v, v} может указывать CPMV CP в нижней левой угловой позиции. Помимо этого, W может указывать ширину текущего блока, и H может указывать высоту текущего блока.
[186] Фиг. 9 примерно иллюстрирует случай, в котором аффинное MVF определяется в единицах субблоков.
[187] В процессе кодирования/декодирования, аффинное MVF может определяться в единицах выборок или предварительно заданных субблоков. Например, когда аффинный MVP определяется в единицах выборок, вектор движения может получаться на основе каждого выборочного значения. Альтернативно, например, когда аффинный MVP определяется в единицах субблоков, вектор движения соответствующего блока может получаться на основе выборочного значения центра субблока (нижнего правого угла центра, т.е. правой нижней выборки из четырех центральных выборок). Таким образом, при аффинном прогнозировании, движения вектор движения текущего блока может извлекаться в единицах выборок или субблоков.
[188] В случае фиг. 9 аффинное MVF определяется в единицах субблоков 4×4, но размер субблоков может модифицироваться различными способами.
[189] Таким образом, когда аффинное прогнозирование доступно, три модели движения, применимые к текущему блоку, могут включать в себя модель поступательного движения в пространстве, 4-параметрическую модель аффинного движения и 6-параметрическую модель аффинного движения. Модель поступательного движения в пространстве может представлять модель с использованием существующего вектора движения в единицах блоков, 4-параметрическая модель аффинного движения может представлять модель с использованием двух CPMV, и 6-параметрическая модель аффинного движения может представлять модель с использованием трех CPMV.
[190] Между тем, аффинное прогнозирование движения может включать в себя аффинный MVP-(или аффинный взаимный) режим либо аффинный режим объединения.
[191] Фиг. 10 является видом, иллюстрирующим аффинный режим объединения или режим объединения на основе субблоков при взаимном прогнозировании.
[192] Например, в аффинном режиме объединения, CPMV может определяться согласно модели аффинного движения соседнего блока, кодированного посредством аффинного прогнозирования движения. Например, соседние блоки, кодированные в качестве аффинного прогнозирования движения в порядке поиска, могут использоваться для аффинного режима объединения. Таким образом, когда по меньшей мере один из соседних блоков кодируется при аффинном прогнозировании движения, текущий блок может кодироваться в аффинном режиме объединения. Здесь, точный режим объединения может называться "AF_MERGE".
[193] Когда аффинный режим объединения применяется, CPMV текущего блока могут извлекаться с использованием CPMV соседних блоков. В этом случае, CPMV соседнего блока могут использоваться в качестве CPMV текущего блока как есть, и CPMV соседнего блока могут модифицироваться на основе размера соседнего блока и размера текущего блока и использоваться в качестве CPMV текущего блока.
[194] С другой стороны, в случае аффинного режима объединения, в котором вектор движения (MV) извлекается в единицах субблоков, он может называться "режимом объединения на основе субблоков", который может указываться на основе флага объединения на основе субблоков (либо синтаксического элемента merge_subblock_flag). Альтернативно, когда значение синтаксического элемента merge_subblock_flag равно 1, может указываться то, что режим объединения на основе субблоков применяется. В этом случае, список аффинных возможных вариантов объединения, который описывается ниже, может называться "списком возможных вариантов объединения на основе субблоков". В этом случае, список возможных вариантов объединения на основе субблоков дополнительно может включать в себя возможный вариант, извлекаемый посредством SbTMVP, которое описывается ниже. В этом случае, возможный вариант, извлекаемый посредством SbTMVP, может использоваться в качестве возможного варианта индекса 0 списка возможных вариантов объединения на основе субблоков. Другими словами, возможный вариант, извлекаемый из SbTMVP, может позиционироваться перед унаследованным аффинным возможным вариантом или сконструированным аффинным возможным вариантом, который описывается ниже, в списке возможных вариантов объединения на основе субблоков.
[195] Когда аффинный режим объединения применяется, список аффинных возможных вариантов объединения может конструироваться, чтобы извлекать CPMV для текущего блока. Например, список аффинных возможных вариантов объединения может включать в себя по меньшей мере один из следующих возможных вариантов. 1) Унаследованный аффинный возможный вариант объединения. 2) Сконструированный аффинный возможный вариант объединения. 3) Возможный вариант нулевого вектора движения (или нулевой вектор). Здесь, унаследованный аффинный возможный вариант объединения представляет собой возможный вариант, извлекаемый на основе CPMV соседнего блока, когда соседний блок кодируется в аффинном режиме, сконструированный аффинный возможный вариант объединения представляет собой возможный вариант, извлекаемый посредством конструирования CPMV на основе MV соседних блоков соответствующей CP в единицах каждого CPMV, и возможный вариант нулевого вектора движения может указывать возможный вариант, состоящий из CPMV, значение которых равно 0.
[196] Список аффинных возможных вариантов объединения может конструироваться, например, следующим образом.
1
0
1
0
2
[197] Может быть предусмотрено до двух унаследованных аффинных возможных вариантов, и унаследованные аффинные возможные варианты могут извлекаться из моделей аффинного движения соседних блоков. Соседние блоки могут содержать один левый соседний блок и верхний соседний блок. Возможные варианты блоков могут позиционироваться так, как проиллюстрировано на фиг. 4. Порядок сканирования для левого предиктора может представлять собой A-->A, и порядок сканирования для верхнего предиктора может представлять собой B-->B-->B. Только один унаследованный возможный вариант из каждого из левого и верхнего угла может выбираться. Проверка отсечения может не выполняться между двумя унаследованными возможными вариантами.
[198] Когда соседний аффинный блок идентифицируется, векторы движения на основе управляющих точек проверенного блока могут использоваться для того, чтобы извлекать возможный CPMVP-вариант в списке для аффинного объединения текущего блока. Здесь, соседний аффинный блок может указывать блок, кодированный в аффинном режиме прогнозирования, из соседних блоков текущего блока. Например, ссылаясь на фиг. 10, когда левый нижний соседний блок A кодируется в аффинном режиме прогнозирования, вектор v2, v3 и v4 движения в левом верхнем угле, правом верхнем углу и левом нижнем углу соседнего блока A может получаться. Когда соседний блок A кодируется с помощью 4-параметрической модели аффинного движения, два CPMV текущего блока могут вычисляться согласно v2 и v4. Когда соседний блок A может вычисляться согласно v2 и v3. Когда соседний блок A кодируется с помощью 6-параметрической модели аффинного движения, три CPMV текущего блока могут вычисляться согласно трем CPMV v2, v3 и v4 текущего блока.
[199] Фиг. 11 является схемой, иллюстрирующей позиции возможных вариантов в аффинном режиме объединения или режиме объединения на основе субблоков.
[200] Аффинный возможный вариант, сконструированный в аффинном режиме объединения или режиме объединения на основе субблоков, может означать возможный вариант, сконструированный посредством комбинирования информации поступательного движения в пространстве вокруг каждой управляющей точки. Информация движения управляющих точек может извлекаться из указанных пространственных и временных периметров. CPMVk (k=0, 1, 2, 3) может представлять k-ую управляющую точку.
[201] Ссылаясь на фиг. 11, блоки могут проверяться в порядке B2->B3->A2 для CPMV0, и вектор движения первого доступного блока может использоваться. Для CPMV1, блоки могут проверяться согласно порядку B1->B0, и для CPMV2, блоки могут проверяться согласно порядку A1->A0. TMVP (временной предиктор вектора движения) может использоваться с CPMV3, если имеется.
[202] После того, как векторы движения четырех управляющих точек получаются, аффинные возможные варианты объединения могут формироваться на основе полученной информации движения. Комбинация векторов движения на основе управляющих точек может представлять собой любое из {CPMV0, CPMV1, CPMV2}, {CPMV0, CPMV1, CPMV3}, {CPMV0, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV3}, {CPMV0, CPMV1} и {CPMV0, CPMV2}.
[203] Комбинация трех CPMV может составлять 6-параметрический аффинный возможный вариант объединения, и комбинация двух CPMV может составлять 4-параметрический аффинный возможный вариант объединения. Чтобы исключать процесс масштабирования движения, если опорные индексы управляющих точек отличаются, связанные комбинации векторов движения на основе управляющих точек могут отбрасываться.
[204] Фиг. 12 является видом, иллюстрирующим SbTMVP при взаимном прогнозировании.
[205] Временное прогнозирование векторов движения на основе субблоков (SbTMVP) также может называться "усовершенствованным временным прогнозированием векторов движения (ATMVP)". SbTMVP может использовать поле движения в совместно размещенном кадре для того, чтобы улучшать прогнозирование векторов движения и режим объединения для CU в текущем кадре. Здесь, совместно размещенный кадр может называться "совместно размещ. Кадром".
[206] Например, SbTMVP может прогнозировать движение на уровне субблока (или суб-CU). Помимо этого, SbTMVP может применять сдвиг движения до осуществления выборки временной информации движения из совместно размещ. кадра. Здесь, сдвиг движения может получаться из вектора движения одного из пространственно соседних блоков текущего блока.
[207] SbTMVP может прогнозировать вектор движения субблока (или суб-CU) в текущем блоке (или CU) согласно двум этапам.
[208] На первом этапе, пространственные соседние блоки могут тестироваться согласно порядку A1, B1, B0 и A0 по фиг. 5. Первый пространственный соседний блок, имеющий вектор движения с использованием совместно размещ. кадра в качестве своего опорного кадра, может идентифицироваться, и вектор движения может выбираться в качестве сдвига движения, который должен применяться. Когда такое движение не идентифицируется из пространственного соседнего блока, сдвиг движения может задаваться равным (0, 0).
[209] На втором этапе, сдвиг движения, идентифицированный на первом этапе, может применяться, чтобы получать информацию движения на уровне субблока (вектор движения и опорные индексы) из совместно размещ. кадра. Например, сдвиг движения может суммироваться с координатами текущего блока. Например, сдвиг движения может задаваться равным движению A1 по фиг. 8. В этом случае, для каждого субблока, информация движения соответствующего блока в совместно размещ. кадре может использоваться для того, чтобы извлекать информацию движения субблока. Временное масштабирование движения может применяться, чтобы совмещать опорные кадры временных векторов движения с опорными кадрами текущего блока.
[210] Комбинированный список объединения на основе субблоков, включающий в себя как возможный SbTVMP-вариант, так и точные возможные варианты объединения, может использоваться для передачи в служебных сигналах аффинного режима объединения. Здесь, аффинный режим объединения может называться "режимом объединения на основе субблоков". SbTVMP-режим может быть доступным или недоступным согласно флагу, включенному в набор параметров последовательности (SPS). Если SbTMVP-режим доступен, SbTMVP-предиктор может добавляться в качестве первой записи списка возможных вариантов объединения на основе субблоков, и аффинные возможные варианты объединения могут приводиться далее. Максимально допустимый размер списка аффинных возможных вариантов объединения может быть равен 5.
[211] Размер суб-CU (или субблока), используемой в SbTMVP может задаваться фиксированно равным 8×8, и аналогично аффинному режиму объединения, SbTMVP-режим может применяться только к блокам, имеющим ширину и высоту 8 или больше. Логика кодирования дополнительной ширины и высоты может быть идентичной логике кодирования других возможных вариантов объединения. Таким образом, для каждой CU в P- или B-срезе, RD-проверка с использованием дополнительной функции затрат на искажение в зависимости от скорости передачи (RD) может выполняться, чтобы определять то, следует или нет использовать возможный SbTMVP-вариант.
[212] Фиг. 13 является видом, иллюстрирующим режим комбинированного межкадрового объединения и внутрикадрового прогнозирования (CIIP) при взаимном прогнозировании.
[213] CIIP может применяться к текущей CU. Например, в случае, в котором CU кодируется в режиме объединения, CU включает в себя по меньшей мере 64 выборки сигналов яркости (т.е. когда произведение CU-ширины и CU-высоты равно 64 или больше), и как CU-ширина, так и CU-высота меньше 128 выборок сигналов яркости, дополнительный флаг (например, ciip_flag) затем может передаваться в служебных сигналах, чтобы указывать то, применяется или нет CIIP-режим к текущей CU.
[214] При CIIP-прогнозировании, взаимный прогнозный сигнал и внутренний прогнозный сигнал могут комбинироваться. В CIIP-режиме, взаимный прогнозный сигнал P_inter может извлекаться с использованием идентичного процесса взаимного прогнозирования, применяемого к регулярному режиму объединения. Внутренний прогнозный сигнал P_intra может извлекаться согласно процессу внутреннего прогнозирования, имеющему планарный режим.
[215] Внутренний прогнозный сигнал и взаимный прогнозный сигнал могут комбинироваться с использованием среднего взвешенного и могут выражаться в нижеприведенном уравнении 4. Весовой коэффициент может вычисляться согласно режиму кодирования верхних и левых соседних блоков, показанных на фиг. 13.
[216] уравнение 4
[217] В уравнении 4, когда верхний соседний блок доступен и внутренне кодирован, isIntraTop может задаваться равным 1, в противном случае isIntraTop может задаваться равным 0. Если левый соседний блок доступен и внутренне кодирован, isIntraLeft может задаваться равным 1, в противном случае isIntraLeft может задаваться равным 0. Когда (isIntraLeft+isIntraLeft) равен 2, wt может задаваться равным 3, и когда (isIntraLeft+isIntraLeft) равен 1, wt может задаваться равным 2. В противном случае, wt может задаваться равным 1.
[218] Фиг. 14 является видом, иллюстрирующим режим сегментации при взаимном прогнозировании.
[219] Ссылаясь на фиг. 14, когда режим сегментации применяется, CU может одинаково разделяться на два сегмента треугольной формы с использованием диагонального разбиения или антидиагонального разбиения в противоположном направлении. Тем не менее, это представляет собой только пример режима сегментации, и CU может одинаково или неравномерно разделяться на сегменты, имеющие различные формы.
[220] Для каждого сегмента CU, может разрешаться только однонаправленное прогнозирование. Таким образом, каждый сегмент может иметь один вектор движения и один опорный индекс. Ограничение по однонаправленному прогнозированию должно обеспечивать то, что только два прогнозирования с компенсацией движения требуются для каждой CU, аналогично бипрогнозированию.
[221] Когда режим сегментации применяется, флаг, указывающий направление разбиения (диагональное направление или противоположное диагональное направление), и два индекса объединения (для каждого сегмента) дополнительно могут передаваться в служебных сигналах.
[222] После прогнозирования каждого сегмента, выборочные значения на основе граничной линии в диагонали или противоположной диагонали могут регулироваться с использованием смешивания обработки с адаптивными весовыми коэффициентами на основе адаптивных весовых коэффициентов.
[223] Между тем, когда режим объединения или режим пропуска применяется, информация движения может извлекаться на основе регулярного режима объединения, MMVD-режим (режим объединения с разностью векторов движения), субблочный режим объединения, CIIP-режим (режим комбинированного межкадрового объединения и внутрикадрового прогнозирования) или режим сегментации может использоваться для того, чтобы извлекать информацию движения, чтобы формировать прогнозные выборки, как описано выше. Каждый режим может активироваться или деактивироваться через флаг включения-выключения в наборе параметров последовательности (SPS). Если флаг включения-выключения для конкретного режима деактивируется в SPS, синтаксис, ясно передаваемый для режима прогнозирования в единицах CU или PU, может не передаваться в служебных сигналах.
[224] Нижеприведенная таблица 5 связана с процессом извлечения режима объединения или режима пропуска из традиционного синтаксиса merge_data. В нижеприведенной таблице 5, CUMergeTriangleFlag[x0][y0] может соответствовать флагу включения-выключения для режима сегментации, описанного выше на фиг. 14, и merge_triangle_split_dir[x0][y0] может указывать направление разбиения (диагональное направление или противоположное диагональное направление), когда режим сегментации применяется. Помимо этого, merge_triangle_idx0[x0][y0] и merge_triangle_idx1[x0][y0] могут указывать два индекса объединения для каждого сегмента, когда режим сегментации применяется.
[225] Табл. 5
[226]
[227] Между тем, каждый режим прогнозирования, включающий в себя регулярный режим объединения, MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации, может активироваться или деактивироваться из набора параметров последовательности (SPS), как показано в нижеприведенной таблице 6. В нижеприведенной таблице 6, sps_triangle_enabled_flag может соответствовать флагу, который активирует или деактивирует режим сегментации, описанный выше на фиг. 14, из SPS.
[228] Табл. 6
[229]
[230]
[231]
[232]
[233]
[234] Синтаксис merge_data таблицы 5 может синтаксически анализироваться или извлекаться согласно флагу SPS таблицы 6 и условию, при котором может использоваться каждый режим прогнозирования. Обобщение всех случаев согласно условиям, при которых флаг SPS и каждый режим прогнозирования может использоваться, показывается в таблицах 7 и 8. Таблица 7 показывает число случаев, в которых текущий блок находится в режиме объединения, и таблица 8 показывает число случаев, в которых, текущий блок находится в режиме пропуска. В нижеприведенных таблицах 7 и 8, regular может соответствовать регулярному режиму объединения, mmvd может соответствовать треугольному, или TRI может соответствовать режиму сегментации, описанному выше со ссылкой на фиг. 12.
[235] Табл. 7
[236] Табл. 8
[237] В качестве одного примера случаев, упомянутых в таблицах 7 и 8, описывается случай, в котором текущий блок составляет 4×16, и режим пропуска. Когда субблочный режим объединения, MMVD-режим, CIIP-режим и режим сегментации активируются в SPS, если regular_merge_flag[x0][y0], mmvd_flag[x0][y0] и merge_subblock_flag[x0][y0] в синтаксисе merge_data равны 0, информация движения для текущего блока должна извлекаться в режиме сегментации. Тем не менее, даже если режим сегментации активируется из флага включения-выключения в SPS, он может использоваться в качестве режима прогнозирования только тогда, когда дополнительно удовлетворяются условия нижеприведенной таблицы 9. В нижеприведенной таблице 9, MergeTriangleFlag[x0][y0] может соответствовать флагу включения-выключения для режима сегментации, и sps_triangle_enabled_flag может соответствовать флагу, активирующему или деактивирующему режим сегментации из SPS.
[238] Табл. 9
[239] Ссылаясь на вышеприведенную таблицу 9, если текущий срез представляет собой P-срез, поскольку прогнозные выборки не могут формироваться через режим сегментации, декодер более не может декодировать поток битов. В связи с тем, чтобы разрешать проблему, которая возникает в исключительном случае, в котором не выполняется декодирование, поскольку конечный режим прогнозирования не может выбираться согласно каждому флагу включения-выключения SPS и синтаксису данных объединения, в настоящем раскрытии, режим объединения по умолчанию предлагается. Режим объединения по умолчанию может быть предварительно задан различными способами или может извлекаться посредством дополнительной передачи в служебных сигналах синтаксиса.
[240] В варианте осуществления, регулярный режим объединения может применяться к текущему блоку на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации для выполнения прогнозирования посредством разделения текущего блока на два сегмента не доступны. Таким образом, когда режим объединения не может в конечном счете выбираться для текущего блока, регулярный режим объединения может применяться в качестве режима объединения по умолчанию.
[241] Например, если значение общего флага объединения, указывающего то, доступен или нет режим объединения для текущего блока, равно 1, но режим объединения не может в конечном счете выбираться для текущего блока, регулярный режим объединения может применяться в качестве режима объединения по умолчанию.
[242] В этом случае, информация движения текущего блока может извлекаться на основе информации индекса объединения, указывающей один из возможных вариантов объединения, включенных в список возможных вариантов объединения текущего блока, и прогнозные выборки могут формироваться на основе извлеченной информации движения.
[243] Соответственно, синтаксис данных объединения может быть таким, как показано в нижеприведенной таблице 10.
[244] Табл. 10
[245]
[246] Ссылаясь на таблицу 10 и таблицу 6, на основе случая, в котором MMVD-режим не доступен, флаг sps_mmvd_enabled_flag для активации или деактивации MMVD-режима из SPS может быть равен 0, либо первый флаг (mmvd_merge_flag[x0][y0]), указывающий то, применяется или нет MMVD-режим, может быть равен 0.
[247] Помимо этого, на основе случая, в котором субблочный режим объединения не доступен, флаг sps_affine_enabled_flag для активации или деактивации субблочного режима объединения из SPS может быть равен 0, либо второй флаг (merge_subblock_flag[x0][y0]), указывающий то, применяется или нет субблочный режим объединения, может быть равен 0.
[248] Помимо этого, на основе случая, в котором CIIP-режим не доступен, флаг sps_ciip_enabled_flag для активации или деактивации CIIP-режима из SPS может быть равен 0, либо третий флаг (ciip_flag[x0][y0]), указывающий то, применяется или нет CIIP-режим, может быть равен 0.
[249] Помимо этого, на основе случая, в котором режим сегментации не доступен, флаг sps_triangle_enabled_flag для активации или деактивации режима сегментации из SPS может быть равен 0, либо четвертый флаг (MergeTriangleFlag[x0][y0]), указывающий то, применяется или нет режим сегментации, может быть равен 0.
[250] Кроме того, например, на основе случая, в котором режим сегментации деактивируется на основе флага sps_triangle_enabled_flag, четвертый флаг (MergeTriangleFlag[x0][y0]), указывающий то, применяется или нет режим сегментации, может задаваться равным 0.
[251] В другом варианте осуществления, на основе то, что регулярный режим объединения, MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации для выполнения прогнозирования посредством разделения текущего блока на два сегмента, регулярный режим объединения может применяться к текущему блоку. Таким образом, когда режим объединения не может в конечном счете выбираться для текущего блока, регулярный режим объединения может применяться в качестве режима объединения по умолчанию.
[252] Например, в случае, в котором значение общего флага объединения, указывающего то, доступен или нет режим объединения для текущего блока, равно 1, но режим объединения не может в конечном счете выбираться для текущего блока, регулярный режим объединения может применяться в качестве режима объединения по умолчанию.
[253] Например, на основе случая, в котором MMVD-режим не доступен, флаг sps_mmvd_enabled_flag для активации или деактивации MMVD-режима из SPS может быть равен 0, либо первый флаг (mmvd_merge_flag[x0][y0]), указывающий то, применяется или нет MMVD-режим, может быть равен 0.
[254] Помимо этого, на основе случая, в котором субблочный режим объединения не доступен, флаг sps_affine_enabled_flag для активации или деактивации субблочного режима объединения из SPS может быть равен 0, либо второй флаг (merge_subblock_flag[x0][y0]), указывающий то, применяется или нет субблочный режим объединения, может быть равен 0.
[255] Помимо этого, на основе случая, в котором CIIP-режим не доступен, флаг sps_ciip_enabled_flag для активации или деактивации CIIP-режима из SPS может быть равен 0, либо третий флаг (ciip_flag[x0][y0]), указывающий то, применяется или нет CIIP-режим, может быть равен 0.
[256] Помимо этого, на основе случая, в котором режим сегментации не доступен, флаг sps_triangle_enabled_flag для активации или деактивации режима сегментации из SPS может быть равен 0, либо четвертый флаг (MergeTriangleFlag[x0][y0]), указывающий то, применяется или нет режим сегментации, может быть равен 0.
[257] Кроме того, на основе случая, в котором регулярный режим объединения не доступен, пятый флаг (regular_merge_flag[x0][y0]), указывающий то, применяется или нет регулярный режим объединения, может быть равен 0. Таким образом, даже когда значение пятого флага равно 0, регулярный режим объединения может применяться к текущему блоку на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации не доступны.
[258] В этом случае, информация движения текущего блока может извлекаться на основе первого возможного варианта из возможных вариантов объединения, включенных в список возможных вариантов объединения текущего блока, и прогнозные выборки могут формироваться на основе извлеченной информации движения.
[259] В другом варианте осуществления, регулярный режим объединения может применяться к текущему блоку на основе того, что регулярный режим объединения, MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации для выполнения прогнозирования посредством разделения текущего блока на два сегмента не доступны. Таким образом, когда режим объединения в конечном счете выбирается для текущего блока, регулярный режим объединения может применяться в качестве режима объединения по умолчанию.
[260] Например, в случае, в котором значение общего флага объединения, указывающего то, доступен или нет режим объединения для текущего блока, равно 1, но режим объединения в конечном счете не выбирается для текущего блока, регулярный режим объединения может применяться в качестве режима объединения по умолчанию.
[261] Например, на основе случая, в котором MMVD-режим не доступен, флаг sps_mmvd_enabled_flag для активации или деактивации MMVD-режима из SPS может быть равен 0, либо первый флаг (mmvd_merge_flag[x0][y0]), указывающий то, применяется или нет MMVD-режим, может быть равен 0.
[262] Помимо этого, на основе случая, в котором субблочный режим объединения не доступен, флаг sps_affine_enabled_flag для активации или деактивации субблочного режима объединения из SPS может быть равен 0, либо второй флаг (merge_subblock_flag[x0][y0]), указывающий то, применяется или нет субблочный режим объединения, может быть равен 0.
[263] Помимо этого, на основе случая, в котором CIIP-режим не доступен, флаг sps_ciip_enabled_flag для активации или деактивации CIIP-режима из SPS может быть равен 0, либо третий флаг (ciip_flag[x0][y0]), указывающий то, применяется или нет CIIP-режим, может быть равен 0.
[264] Помимо этого, на основе случая, в котором режим сегментации не доступен, флаг sps_triangle_enabled_flag для активации или деактивации режима сегментации из SPS может быть равен 0, либо четвертый флаг (MergeTriangleFlag[x0][y0]), указывающий то, применяется или нет режим сегментации, может быть равен 0.
[265] Кроме того, на основе случая, в котором регулярный режим объединения не доступен, пятый флаг (regular_merge_flag[x0][y0]), указывающий то, применяется или нет регулярный режим объединения, может быть равен 0. Таким образом, даже когда значение пятого флага равно 0, регулярный режим объединения может применяться к текущему блоку на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации не доступны.
[266] В этом случае, вектор движения (0, 0) может извлекаться в качестве информации движения текущего блока, и прогнозные выборки текущего блока могут формироваться на основе информации движения (0, 0). Для вектора движения (0, 0), прогнозирование может выполняться со ссылкой на нулевой опорный кадр опорного L0-списка. Тем не менее, когда нулевой опорный кадр (RefPicList[0][0]) опорного L0-списка не существует, прогнозирование может выполняться посредством обращения к нулевому опорному кадру (RefPicList[1][0]) опорного L1-списка.
[267] Фиг. 15 и 16 схематично показывают пример способа кодирования видео/изображений и связанных компонентов согласно варианту(ам) осуществления этого документа.
[268] Способ, раскрытый на фиг. 15, может осуществляться посредством оборудования кодирования, раскрытого на фиг. 2 или фиг. 16. В частности, например, этапы S1500-S1520 по фиг. 15 могут выполняться посредством модуля 220 прогнозирования оборудования 200 кодирования по фиг. 16, и S1530 по фиг. 15 может выполняться посредством энтропийного кодера 240 оборудования 200 кодирования по фиг. 16. Помимо этого, хотя не показано на фиг. 15, прогнозные выборки или связанная с прогнозированием информация могут извлекаться посредством модуля 220 прогнозирования оборудования 200 кодирования на фиг. 15, и остаточная информация может извлекаться из исходных выборок или прогнозных выборок посредством остаточного процессора 230 оборудования 200 кодирования, и поток битов может формироваться из остаточной информации или связанной с прогнозированием информации посредством энтропийного кодера 240 оборудования 200 кодирования. Способ, раскрытый на фиг. 15, может включать в себя варианты осуществления, описанные выше в этом документе.
[269] Ссылаясь на фиг. 15, оборудование кодирования может определять режим взаимного прогнозирования текущего блока и формировать информацию режима взаимного прогнозирования, указывающую режим взаимного прогнозирования (S1700). Например, оборудование кодирования может определять по меньшей мере один из регулярного режима объединения, режима пропуска, режима прогнозирования векторов движения (MVP), режима объединения с разностью векторов движения (MMVD), субблочного режима объединения, CIIP-режима (режима комбинированного межкадрового объединения и внутрикадрового прогнозирования) и режима сегментации, который выполняет прогнозирование посредством разделения текущего блока на два сегмента, в качестве режима взаимного прогнозирования, который должен применяться к текущему блоку, и формировать информацию режима взаимного прогнозирования, указывающую режим взаимного прогнозирования.
[270] Оборудование кодирования может формировать список возможных вариантов объединения текущего блока на основе режима взаимного прогнозирования (S1510). Например, оборудование кодирования может формировать список возможных вариантов объединения согласно определенному режиму взаимного прогнозирования.
[271] Например, возможные варианты могут вставляться в список возможных вариантов объединения до тех пор, пока число возможных вариантов в списке возможных вариантов объединения не составляет максимальное число возможных вариантов. Здесь, возможный вариант может указывать возможный вариант или возможный вариант блока для извлечения информации движения (или вектора движения) текущего блока. Например, возможный вариант блока может извлекаться посредством поиска соседних блоков текущего блока. Например, соседний блок может включать в себя пространственный соседний блок и/или временной соседний блок относительно текущего блока, и предпочтительно можно выполнять поиск пространственного соседнего блока (пространственное объединение), чтобы извлекать возможный вариант, и после этого можно выполнять поиск временного соседнего блока и извлекать его в качестве возможного варианта (временного объединения), и извлеченные возможные варианты могут вставляться в список возможных вариантов объединения. Например, когда число возможных вариантов в списке возможных вариантов объединения меньше максимального числа возможных вариантов в списке возможных вариантов объединения даже после того, как возможные варианты вставляются, дополнительный возможный вариант может вставляться. Например, дополнительный возможный вариант может включать в себя по меньшей мере одно из возможного варианта(ов) объединения на основе предыстории, попарного среднего возможного варианта(ов) объединения, ATMVP и комбинированных бипрогнозирующих возможных вариантов объединения (когда тип группы срезов/плиток текущей группы срезов/плиток представляет собой тип B) и/или возможного варианта объединения с нулевым вектором.
[272] Оборудование кодирования может формировать информацию выбора, указывающую один из возможных вариантов, включенных в список возможных вариантов объединения (S1520). Как описано выше, список возможных вариантов объединения может включать в себя по меньшей мере часть пространственного возможного варианта объединения, временного возможного варианта объединения, попарного возможного варианта или возможного варианта с нулевым вектором, и один из этих возможных вариантов может выбираться для взаимного прогнозирования текущего блока.
[273] Например, информация выбора может включать в себя информацию индекса, указывающую один возможный вариант из возможных вариантов объединения, включенных в список возможных вариантов объединения. Например, информация выбора может называться "информацией индекса объединения".
[274] Например, оборудование кодирования может формировать прогнозные выборки текущего блока на основе возможного варианта, указываемого посредством информации индекса объединения. Альтернативно, например, оборудование кодирования может извлекать информацию движения на основе возможного варианта, указываемого посредством информации индекса объединения, и может формировать прогнозные выборки текущего блока на основе информации движения.
[275] В это время, на основе того, что MMVD-режим (режим объединения с разностью векторов движения), субблочный режим объединения, CIIP-режим (режим комбинированного межкадрового объединения и внутрикадрового прогнозирования) и режим сегментации для выполнения прогнозирования посредством разделения текущего блока на сегменты не доступны, регулярный режим объединения может применяться к текущему блоку. Здесь, список возможных вариантов объединения может формироваться посредством применения регулярного режима объединения к текущему блоку.
[276] Например, информация режима взаимного прогнозирования может включать в себя информацию индекса объединения, указывающую один из возможных вариантов объединения, включенных в список возможных вариантов объединения текущего блока, и информация движения текущего блока может извлекаться на основе возможного варианта, указываемого посредством информации индекса объединения. Кроме того, прогнозные выборки текущего блока могут формироваться на основе извлеченной информации движения.
[277] Например, информация режима взаимного прогнозирования может включать в себя первый флаг, указывающий то, применяется или нет MMVD-режим, второй флаг, указывающий то, применяется или нет субблочный режим объединения, и третий флаг, указывающий то, применяется или нет CIIP-режим.
[278] Например, на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации не доступны, значения первого флага, второго флага и третьего флага могут быть равны 0.
[279] Кроме того, например, информация режима взаимного прогнозирования может включать в себя общий флаг объединения, указывающий то, доступен или нет режим объединения для текущего блока, и значение общего флага объединения может быть равно 1.
[280] Например, флаг для активации или деактивации режима сегментации может включаться в набор параметров последовательности (SPS) информации изображений, и на основе случая, в котором режим сегментации деактивируется, значение четвертого флага, указывающего то, применяется или нет режим сегментации, может задаваться равным 0.
[281] Между тем, информация режима взаимного прогнозирования дополнительно может включать в себя пятый флаг, указывающий то, применяется или нет регулярный режим объединения. Даже когда значение пятого флага равно 0, регулярный режим объединения может применяться к текущему блоку на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации не доступны.
[282] В этом случае, информация движения текущего блока может извлекаться на основе первого возможного варианта объединения из возможных вариантов объединения, включенных в список возможных вариантов объединения текущего блока. Кроме того, прогнозные выборки могут формироваться на основе информации движения текущего блока, извлекаемой на основе первого возможного варианта объединения.
[283] Альтернативно, в этом случае, информация движения текущего блока может извлекаться на основе вектора движения (0,0), и прогнозные выборки могут формироваться на основе информации движения текущего блока, извлекаемой на основе вектора движения (0,0).
[284] Оборудование кодирования может кодировать информацию изображений, включающую в себя информацию режима взаимного прогнозирования и информацию выбора (S1530). Например, информация изображений может называться "видеоинформацией". Информация изображений может включать в себя различную информацию согласно варианту(ам) осуществления настоящего раскрытия, описанного выше. Например, информация изображений может включать в себя по меньшей мере часть связанной с прогнозированием информации или связанной остаточной информации. Например, связанная с прогнозированием информация может включать в себя по меньшей мере часть информации режима взаимного прогнозирования, информации выбора и информации типа взаимного прогнозирования. Например, оборудование кодирования может кодировать информацию изображений, включающую в себя все или часть вышеуказанной информации (или синтаксических элементов), чтобы формировать информацию потока битов или кодированную информацию. Альтернативно, оборудование кодирования может выводить информацию в форме потока битов. Дополнительно, поток битов или кодированная информация может передаваться в оборудование декодирования через сеть или носитель хранения данных.
[285] Альтернативно, хотя не показано на фиг. 15, например, оборудование кодирования может извлекать остаточные выборки на основе прогнозных выборок и исходных выборок. В этом случае, связанная остаточная информация может извлекаться на основе остаточных выборок. Остаточные выборки могут извлекаться на основе связанной остаточной информации. Восстановленные выборки могут формироваться на основе остаточных выборок и прогнозных выборок. Восстановленный блок и восстановленный кадр могут извлекаться на основе восстановленных выборок. Альтернативно, например, оборудование кодирования может кодировать информацию изображений, включающую в себя остаточную информацию или связанную с прогнозированием информацию.
[286] Например, оборудование кодирования может формировать информацию потока битов или кодированную информацию посредством кодирования информации изображений, включающей в себя все или часть вышеуказанной информации (или синтаксических элементов). Кодированная информация изображений/видео может выводиться в форме потока битов. Дополнительно, поток битов или кодированная информация может передаваться в оборудование декодирования через сеть или носитель хранения данных. Альтернативно, поток битов или кодированная информация может сохраняться на компьютерно-читаемом носителе хранения данных, и поток битов или кодированная информация может формироваться посредством вышеупомянутого способа кодирования изображений.
[287] Фиг. 17 и 18 схематично показывают пример способа декодирования видео/изображений и связанных компонентов согласно варианту(ам) осуществления настоящего раскрытия.
[288] Способ, раскрытый на фиг. 17, может осуществляться посредством оборудования декодирования, раскрытого на фиг. 3 или фиг. 18. В частности, например, этап S1700 по фиг. 17 может выполняться посредством энтропийного декодера 310 оборудования 300 декодирования на фиг. 1, и этапы S1710-S1730 по фиг. 17 могут выполняться посредством модуля 330 прогнозирования оборудования 300 декодирования на фиг. 18.
[289] Помимо этого, хотя не показано на фиг. 17, связанная с прогнозированием информация или остаточная информация может извлекаться из потока битов посредством энтропийного декодера 310 оборудования 300 декодирования на фиг. 18. Способ, раскрытый на фиг. 17, может включать в себя варианты осуществления, описанные выше в этом документе.
[290] Ссылаясь на фиг. 17, оборудование декодирования может принимать информацию изображений, включающую в себя информацию режима взаимного прогнозирования, через поток битов (S1700). Например, информация изображений может называться "видеоинформацией". Информация изображений может включать в себя различную информацию согласно вышеуказанному варианту(ам) осуществления настоящего раскрытия. Например, информация изображений может включать в себя по меньшей мере часть связанной с прогнозированием информации или связанной остаточной информации.
[291] Например, связанная с прогнозированием информация может включать в себя информацию режима внутреннего прогнозирования и/или информацию типа внутреннего прогнозирования. Например, информация режима взаимного прогнозирования может включать в себя информацию, указывающую по меньшей мере некоторые различные режимы взаимного прогнозирования. Например, могут использоваться различные режимы, такие как регулярный режим объединения, режим пропуска, режим MVP (прогнозирования векторов движения), MMVD-режим (режим объединения с разностью векторов движения), субблочный режим объединения, CIIP-режим (режим комбинированного межкадрового объединения и внутрикадрового прогнозирования) и режим сегментации, выполняющий прогнозирование посредством разделения текущего блока на два сегмента. Например, информация типа взаимного прогнозирования может включать в себя синтаксический элемент inter_pred_idc. Альтернативно, информация типа взаимного прогнозирования может включать в себя информацию, указывающую любое из L0-прогнозирования, L1-прогнозирования и бипрогнозирования.
[292] Оборудование декодирования может формировать список возможных вариантов объединения текущего блока на основе информации режима взаимного прогнозирования (S1710). Например, оборудование декодирования может формировать список возможных вариантов объединения согласно определенному режиму взаимного прогнозирования из регулярного режима объединения, режима пропуска, MVP-режима, MMVD-режима, субблочного режима объединения, CIIP-режима и режима сегментации, выполняющего прогнозирование посредством разделения текущего блока на два сегмента, в качестве режима взаимного прогнозирования текущего блока на основе информации режима взаимного прогнозирования
[293] Например, возможные варианты могут вставляться в список возможных вариантов объединения до тех пор, пока число возможных вариантов в списке возможных вариантов объединения не составляет максимальное число возможных вариантов. Здесь, возможный вариант может указывать возможный вариант или возможный вариант блока для извлечения информации движения (или вектора движения) текущего блока. Например, возможный вариант блока может извлекаться посредством поиска соседних блоков текущего блока. Например, соседний блок может включать в себя пространственный соседний блок и/или временной соседний блок относительно текущего блока, и предпочтительно можно выполнять поиск пространственного соседнего блока (пространственное объединение), чтобы извлекать возможный вариант, и после этого можно выполнять поиск временного соседнего блока и извлекать его в качестве возможного варианта (временного объединения), и извлеченные возможные варианты могут вставляться в список возможных вариантов объединения. Например, когда число возможных вариантов в списке возможных вариантов объединения меньше максимального числа возможных вариантов в списке возможных вариантов объединения даже после того, как возможные варианты вставляются, дополнительный возможный вариант может вставляться. Например, дополнительный возможный вариант может включать в себя по меньшей мере одно из возможного варианта(ов) объединения на основе предыстории, попарного среднего возможного варианта(ов) объединения, ATMVP и комбинированных бипрогнозирующих возможных вариантов объединения (когда тип группы срезов/плиток текущей группы срезов/плиток представляет собой тип B) и/или возможного варианта объединения с нулевым вектором.
[294] Оборудование декодирования может извлекать информацию движения текущего блока на основе возможного варианта, выбранного из списка возможных вариантов объединения (S1720).
[295] Как описано выше, список возможных вариантов объединения может включать в себя по меньшей мере часть пространственного возможного варианта объединения, временного возможного варианта объединения, попарного возможного варианта или возможного варианта с нулевым вектором, и один из этих возможных вариантов может выбираться для взаимного прогнозирования текущего блока.
[296] Например, информация выбора может включать в себя информацию индекса, указывающую один возможный вариант из возможных вариантов объединения, включенных в список возможных вариантов объединения. Например, информация выбора может называться "информацией индекса объединения".
[297] Оборудование декодирования может формировать прогнозные выборки текущего блока на основе информации движения (S1730). Например, оборудование декодирования может формировать прогнозные выборки текущего блока на основе возможного варианта, указываемого посредством информации индекса объединения. Альтернативно, например, оборудование декодирования может извлекать информацию движения на основе возможного варианта, указываемого посредством информации индекса объединения, и может формировать прогнозные выборки текущего блока на основе информации движения.
[298] Между тем, согласно варианту осуществления, на основе того, что режим объединения с разностью векторов движения (MMVD), субблочный режим объединения, режим комбинированного межкадрового объединения и внутрикадрового прогнозирования (CIIP) и режим сегментации для выполнения прогнозирования посредством разделения текущего блока на два сегмента не доступны, регулярный режим объединения может применяться к текущему блоку. Здесь, список возможных вариантов объединения может формироваться посредством применения регулярного режима объединения к текущему блоку.
[299] Например, информация режима взаимного прогнозирования может включать в себя информацию индекса объединения, указывающую один из возможных вариантов объединения, включенных в список возможных вариантов объединения текущего блока, и информация движения текущего блока может извлекаться на основе возможного варианта, указываемого посредством информации индекса объединения. Кроме того, прогнозные выборки текущего блока могут формироваться на основе извлеченной информации движения
[300] Например, информация режима взаимного прогнозирования может включать в себя первый флаг, указывающий то, применяется или нет MMVD-режим, второй флаг, указывающий то, применяется или нет субблочный режим объединения, и третий флаг, указывающий то, применяется или нет CIIP-режим.
[301] Например, на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации не доступны, значения первого флага, второго флага и третьего флага могут быть равны 0.
[302] Кроме того, например, информация режима взаимного прогнозирования может включать в себя общий флаг объединения, указывающий то, доступен или нет режим объединения для текущего блока, и значение общего флага объединения может быть равно 1.
[303] Например, флаг для активации или деактивации режима сегментации может включаться в набор параметров последовательности (SPS) информации изображений, и на основе случая, в котором режим сегментации деактивируется, значение четвертого флага, указывающего то, применяется или нет режим сегментации, может задаваться равным 0.
[304] Между тем, информация режима взаимного прогнозирования дополнительно может включать в себя пятый флаг, указывающий то, применяется или нет регулярный режим объединения. Даже когда значение пятого флага равно 0, регулярный режим объединения может применяться к текущему блоку на основе случая, в котором MMVD-режим, субблочный режим объединения, CIIP-режим и режим сегментации не доступны.
[305] В этом случае, информация движения текущего блока может извлекаться на основе первого возможного варианта объединения из возможных вариантов объединения, включенных в список возможных вариантов объединения текущего блока. Кроме того, прогнозные выборки могут формироваться на основе информации движения текущего блока, извлекаемой на основе первого возможного варианта объединения.
[306] Альтернативно, в этом случае, информация движения текущего блока может извлекаться на основе вектора движения (0,0), и прогнозные выборки могут формироваться на основе информации движения текущего блока, извлекаемой на основе вектора движения (0,0).
[307] Хотя не показано на фиг. 17, например, оборудование декодирования может извлекать остаточные выборки на основе связанной остаточной информации, включенной в информацию изображений.
[308] Например, оборудование декодирования может получать информацию изображений, включающую в себя все или части вышеописанных фрагментов информации (или синтаксических элементов), посредством декодирования потока битов или кодированной информации. Дополнительно, поток битов или кодированная информация может сохраняться на компьютерно-читаемом носителе хранения данных и может инструктировать осуществление вышеописанного способа декодирования.
[309] Хотя способы описываются на основе блок-схемы последовательности операций способа, на которой этапы или блоки перечисляются в последовательности в вышеописанных вариантах осуществления, этапы настоящего документа не ограничены определенным порядком, и определенный этап может выполняться на другом этапе или в другом порядке либо одновременно относительно того, что описано выше. Дополнительно, специалисты в данной области техники должны понимать, что этапы блок-схем последовательности операций способа не являются единственно возможными, и другой этап может включаться, либо один или более этапов на блок-схеме последовательности операций способа могут удаляться без влияния на объем настоящего раскрытия.
[310] Вышеуказанный способ согласно настоящему раскрытию может осуществляться в форме программного обеспечения, и оборудования кодирование и/или оборудование декодирования согласно настоящему раскрытию могут включаться в устройство для выполнения обработки изображений, например, в телевизор, компьютер, смартфон, абонентскую приставку, устройство отображения и т.п.
[311] Когда варианты осуществления настоящего раскрытия реализуются посредством программного обеспечения, вышеуказанный способ может реализовываться посредством модуля (процесса или функции), который выполняет вышеуказанную функцию. Модуль может сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может устанавливаться внутри или снаружи процессора и может соединяться с процессором через различные известные средства. Процессор может включать в себя специализированную интегральную схему (ASIC), другие наборы микросхем, логическую схему и/или устройство обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карту памяти, носитель хранения данных и/или другое устройство хранения данных. Другими словами, варианты осуществления согласно настоящему раскрытию могут реализовываться и выполняться на процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, проиллюстрированные на соответствующих чертежах, могут реализовываться и выполняться на компьютере, процессоре, микропроцессоре, контроллере или микросхеме. В этом случае, информация относительно реализации (например, информация относительно инструкций) или алгоритмы могут сохраняться на цифровом носителе хранения данных.
[312] Помимо этого, оборудование декодирования и оборудование кодирования, к которым применяется вариант(ы) осуществления настоящего документа, могут включаться в широковещательное мультимедийное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов и устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, поставщик услуг на основе технологии "видео по запросу (VoD)", видеоустройство поверх сетей (OTT), поставщик услуг потоковой передачи по Интернету, трехмерное видеоустройство, устройство в стиле виртуальной реальности (VR), устройство в стиле дополненной реальности (AR), телефонное видеоустройство, терминал в транспортном средстве (например, терминал в транспортном средстве (в том числе в автономном транспортном средстве), терминал в воздушном судне или терминал в морском судне) и медицинское видеоустройство; и могут использоваться для того, чтобы обрабатывать сигнал изображения или данные. Например, OTT-видеоустройство может включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC и цифровое записывающее видеоустройство (DVR).
[313] Помимо этого, способ обработки, к которому применяется вариант(ы) осуществления настоящего документа, может формироваться в форме программы, выполняемой посредством компьютера, и может сохраняться на компьютерно-читаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно варианту(ам) осуществления настоящего документа, также могут сохраняться на компьютерно-читаемом носителе записи. Компьютерно-читаемый носитель записи включает в себя все виды устройств хранения данных и устройств распределенного хранения данных, на которых сохраняются компьютерно-читаемые данные. Компьютерно-читаемый носитель записи может включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Компьютерно-читаемый носитель записи также включает в себя среды, осуществленные в форме несущей волны (например, передачи по Интернету). Помимо этого, поток битов, сформированный посредством способа кодирования, может сохраняться на компьютерно-читаемом носителе записи или передаваться через сеть проводной или беспроводной связи.
[314] Помимо этого, вариант(ы) осуществления настоящего документа может осуществляться в качестве компьютерного программного продукта на основе программного кода, и программный код может выполняться на компьютере согласно варианту(ам) осуществления настоящего документа. Программный код может сохраняться на компьютерно-читаемом носителе.
[315] Фиг. 19 представляет пример системы потоковой передачи контента, к которой может применяться вариант осуществления настоящего документа.
[316] Ссылаясь на фиг. 19, система потоковой передачи контента, к которой применяются варианты осуществления настоящего документа, в общем, может включать в себя сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[317] Сервер кодирования функционирует для того, чтобы сжимать в цифровые данные контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.п., чтобы формировать поток битов и передавать его на потоковый сервер. В качестве другого примера, в случае если устройство ввода мультимедиа, такое как смартфон, камера, записывающая видеокамера и т.п., непосредственно формирует поток битов, сервер кодирования может опускаться.
[318] Поток битов может формироваться посредством способа кодирования или способа формирования потоков битов, к которому применяются варианты осуществления настоящего документа. Кроме того, потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[319] Потоковый сервер передает мультимедийные данные в абонентское устройство на основе запроса пользователя через веб-сервер, который функционирует в качестве инструментария, который информирует пользователя в отношении того, какая услуга предусмотрена. Когда пользователь запрашивает услугу, которую пользователь хочет, веб-сервер передает запрос на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом отношении, система потоковой передачи контента может включать в себя отдельный сервер управления, и в этом случае, сервер управления функционирует для того, чтобы управлять командами/ответами между соответствующим оборудованием в системе потоковой передачи контента.
[320] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, в случае если контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, потоковый сервер может сохранять поток битов в течение предварительно определенного периода времени, чтобы плавно предоставлять услугу потоковой передачи.
[321] Например, абонентское устройство может включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетный PC, ультрабук, носимое устройство (например, терминал в виде часов (интеллектуальные часы), терминал в виде очков (интеллектуальные очки), наголовный дисплей (HMD)), цифровой телевизор, настольный компьютер, систему цифровых информационных табло и т.п.
[322] Каждый из серверов в системе потоковой передачи контента может работать в качестве распределенного сервера, и в этом случае, данные, принимаемые посредством каждого сервера, могут обрабатываться распределенным способом.
[323] Пункты формулы изобретения в настоящем описании могут комбинироваться различными способами. Например, технические признаки в пунктах формулы изобретения на способ настоящего описания могут комбинироваться с возможностью реализовываться или выполняться в оборудовании, и технические признаки в пунктах формулы изобретения на оборудование могут комбинироваться с возможностью реализовываться или выполняться в способе. Дополнительно, технические признаки в пункте(ах) формулы изобретения на способ и пункте(ах) формулы изобретения на оборудование могут комбинироваться с возможностью реализовываться или выполняться в оборудовании. Дополнительно, технические признаки в пункте(ах) формулы изобретения на способ и пункте(ах) формулы изобретения на оборудование могут комбинироваться с возможностью реализовываться или выполняться в способе.