Область раскрытия
[1] Настоящий документ относится к кодированию изображений с использованием разностей векторов движения.
Связанная область техники
[2] В последнее время, потребность в изображениях/видео высокого разрешения, высокого качества, таких как изображения/видео сверхвысокой четкости (UHD) 4K или 8K или выше, возросла в различных областях. Так как данные изображения/видео имеют высокое разрешение и высокое качество, количество информации или битов, подлежащих передаче, увеличивается относительно существующих данных изображения/видео, и, таким образом, передача данных изображения с использованием носителей, таких как существующая проводная/беспроводная широкополосная линия или существующий носитель хранения, или хранение данных изображения/видео с использованием существующего носителя хранения повышают затраты на передачу и затраты на хранение.
[3] К тому же, интерес и потребность в иммерсивных медиа, таких как контент или голограммы виртуальной реальности (VR) и искусственной реальности (AR), в последнее время возросли, и возросла трансляция изображения/видео, имеющих характеристики, отличные от изображений реальности, таких как игровые изображения.
[4] Соответственно, требуется высокоэффективная технология сжатия изображения/видео, чтобы эффективно сжимать, передавать, хранить и воспроизводить информацию изображений/видео высокого разрешения, высокого качества, имеющих различные характеристики, как описано выше.
[5] В частности, интер-предсказание в кодировании изображения/видео может использовать разности векторов движения. Что касается процедур, обсуждается выведение разности векторов движения на основе типов опорной картинки (например, кратковременные или долговременные опорные картинки).
Краткое описание сущности изобретения
[6] В соответствии с вариантом осуществления настоящего документа, обеспечены способ и устройство для повышения эффективности кодирования изображения.
[7] В соответствии с вариантом осуществления настоящего документа, обеспечены способ и устройство для выполнения интер-предсказания эффективным образом в системе кодирования изображения/видео.
[8] В соответствии с вариантом осуществления настоящего документа, обеспечены способ и устройство для сигнализации информации о разности векторов движения для интер-предсказания.
[9] В соответствии с вариантом осуществления настоящего документа, обеспечены способ и устройство для сигнализации информации о L0 разности векторов движения и L1 разности векторов движения, когда bi-предсказание применяется к текущему блоку.
[10] В соответствии с вариантом осуществления настоящего документа, обеспечены способ и устройство для сигнализации флага SMVD.
[11] В соответствии с вариантом осуществления настоящего документа, может использоваться конкретный тип опорной картинки для выведения симметричных разностей векторов движения.
[12] В соответствии с вариантом осуществления настоящего документа, может выполняться процедура для выведения опорных индексов SMVD с использованием кратковременных опорных картинок (обозначенных как кратковременные опоры).
[13] В соответствии с вариантом осуществления настоящего документа, обеспечен способ декодирования видео/изображения, выполняемый устройством декодирования.
[14] В соответствии с вариантом осуществления настоящего документа, обеспечено устройство декодирования для выполнения декодирования видео/изображения.
[15] В соответствии с вариантом осуществления настоящего документа, обеспечен способ кодирования видео/изображения, выполняемый устройством кодирования.
[16] В соответствии с вариантом осуществления настоящего документа, обеспечено устройство кодирования для выполнения кодирования видео/изображения.
[17] В соответствии с вариантом осуществления настоящего документа, обеспечен считываемый компьютером цифровой носитель хранения, в котором хранится закодированная информация видео/изображения, генерируемая в соответствии со способом кодирования видео/изображения, раскрытым в по меньшей мере одном из вариантов осуществления настоящего документа.
[18] В соответствии с вариантом осуществления настоящего документа, обеспечен считываемый компьютером цифровой носитель хранения, в котором хранится закодированная информация или закодированная информация видео/изображения, побуждающая выполнять способ декодирования видео/изображения, раскрытый в по меньшей мере одном из вариантов осуществления настоящего документа, посредством устройства декодирования.
Положительные результаты
[19] В соответствии с настоящим раскрытием, общая эффективность сжатия изображения/видео может быть улучшена.
[20] В соответствии с настоящим раскрытием, сигнализация информации о разностях векторов движения может выполняться эффективным образом.
[21] В соответствии с настоящим раскрытием, L1 разности векторов движения могут быть выведены эффективным образом, когда bi-предсказание применяется к текущему блоку.
[22] В соответствии с настоящим раскрытием, информация, используемая для выведения L1 разностей векторов движения, может сигнализироваться на основе типов опорных картинок, и, таким образом, сложность системы кодирования может быть снижена.
[23] В соответствии с одним вариантом осуществления настоящего раскрытия, эффективное интер-предсказание может выполняться с использованием конкретного типа опорной картинки для выведения индекса опорной картинки SMVD.
[24] Технические результаты, обеспечиваемые посредством конкретных вариантов осуществления настоящего раскрытия, не ограничены описанными выше. Например, могут быть получены различные другие технические результаты, которые могут быть понятны или могут выводиться из настоящего раскрытия специалистом в данной области техники. Поэтому, конкретные результаты настоящего раскрытия не ограничены вариантами осуществления, раскрытыми явным образом в настоящем документе, и могут включать различные другие результаты, которые могут быть понятны или выведены из технических характеристик настоящего раскрытия.
Краткое описание чертежей
[25] Фиг. 1 иллюстрирует пример системы кодирования видео/изображения, к которой могут применяться варианты осуществления настоящего документа.
[26] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, к которой могут применяться варианты осуществления настоящего документа.
[27] Фиг. 3 является диаграммой, схематично иллюстрирующей конфигурацию устройства декодирования видео/изображения, к которой могут применяться варианты осуществления настоящего документа.
[28] Фиг. 4 показывает пример способа кодирования видео/изображения на основе интер-предсказания.
[29] Фиг. 5 показывает пример способа декодирования видео/изображения на основе интер-предсказания.
[30] Фиг. 6 показывает примерный процесс интер-предсказания.
[31] Фиг. 7 является диаграммой для описания симметричных разностей векторов движения (SMVD).
[32] Фиг. 8 является диаграммой для описания способа выведения векторов движения в интер-предсказании.
[33] Фиг. 9 - фиг. 13 показывают способы выведения MVD MMVD в соответствии с вариантами осуществления настоящего документа.
[34] Фиг. 14 и 15 иллюстрируют способ кодирования видео/изображения и один пример связанного компонента в соответствии с вариантом(ами) осуществления настоящего раскрытия.
[35] Фиг. 16 и 17 иллюстрируют способ декодирования видео/изображения и один пример связанного компонента в соответствии с вариантом(ами) осуществления настоящего раскрытия.
[36] Фиг. 18 иллюстрирует пример системы стриминга контента, к которой могут применяться варианты осуществления, раскрытые в настоящем документе.
Описание примерных вариантов осуществления
[37] Настоящий документ может модифицироваться в различных формах, и его конкретные варианты осуществления будут описаны и показаны на чертежах. Однако варианты осуществления не предназначены ограничивать настоящий документ. Термины, используемые в последующем описании, используются, чтобы только описывать конкретные варианты осуществления, но не предназначены ограничивать настоящий документ. Выражение в единственном числе включает в себя выражение во множественном числе, если только оно явным образом не читается иначе. Термины, такие как “включать в себя” и “иметь”, предназначены указывать, что признаки, числа, этапы, операции, элементы, компоненты или их комбинации, используемые в следующем описании, существуют, и, таким образом, должно быть понятно, что возможность существования или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов или их комбинаций не исключается.
[38] Между тем, каждая конфигурация на чертежах, описанная в настоящем документе, показана независимо для удобства описания касательно разных характерных функций и не означает, что каждая конфигурация реализуется как отдельные аппаратные средства или отдельное программное обеспечение. Например, два или более компонентов из каждого компонента могут комбинироваться для образования одного компонента, или один компонент может делиться на множество компонентов. Варианты осуществления, в которых каждый компонент является интегрированным и/или отдельным, также включены в объем раскрытия настоящего документа.
[39] Далее примеры настоящего варианта осуществления будут описаны подробно со ссылкой на прилагаемые чертежи. К тому же, одинаковые ссылочные позиции используются, чтобы указывать одинаковые элементы на всех чертежах, и те же самые описания одинаковых элементов будут опущены.
[40] Фиг. 1 иллюстрирует пример системы кодирования видео/изображения, к которой могут применяться варианты осуществления настоящего документа.
[41] Со ссылкой на фиг. 1, система кодирования видео/изображения может включать в себя первое устройство (устройство-источник) и второе устройство (устройство приема). Устройство-источник может передавать закодированную информацию или данные видео/изображения на устройство приема через цифровой носитель хранения или сеть в виде файла или потока.
[42] Устройство-источник может включать в себя источник видео, устройство кодирования и передатчик. Устройство приема может включать в себя приемник, устройство декодирования и устройство рендеринга (визуализации). Устройство кодирования может называться устройством кодирования видео/изображения, и устройство декодирования может называться устройством декодирования видео/изображения. Передатчик может быть включен в устройство кодирования. Приемник может быть включен в устройство декодирования. Устройство визуализации может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[43] Источник видео может получать видео/изображение через процесс захвата, синтеза или генерации видео/изображения. Источник видео может включать в себя устройство захвата видео/изображения и/или устройство генерации видео/изображения. Устройство захвата видео/изображения может включать в себя, например, одну или несколько камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения и тому подобное. Устройство генерации видео/изображения может включать в себя, например, компьютеры, планшеты и смартфоны и может (электронным способом) генерировать видео/изображения. Например, виртуальное видео/изображение может генерироваться через компьютер или тому подобное. В этом случае, процесс захвата видео/изображения может быть заменен на процесс генерации связанных данных.
[44] Устройство кодирования может кодировать введенное видео/изображение. Устройство кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование для компактности и эффективности кодирования. Закодированные данные (закодированная информация видео/изображения) могут выводиться в виде битового потока.
[45] Передатчик может передавать закодированное изображение/информацию изображения или данные, выведенные в виде битового потока, на приемник устройства приема через цифровой носитель хранения или сеть в виде файла или потока. Цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD, SSD и тому подобное. Передатчик может включать в себя элемент для генерации медиа-файла посредством предопределенного формата файла и может включать в себя элемент для передачи через сеть вещания/связи. Приемник может принимать/извлекать битовый поток и передавать принятый битовый поток на устройство декодирования.
[46] Устройство декодирования может декодировать видео/изображение путем выполнения последовательности процедур, таких как деквантование, обратное преобразование и предсказание, соответствующих операции устройства кодирования.
[47] Устройство визуализации может визуализировать декодированное видео/изображение. Визуализированное видео/ изображение может отображаться посредством дисплея.
[48] Настоящий документ относится к кодированию видео/изображения. Например, способ/вариант осуществления, раскрытый в настоящем документе, может применяться к способу, раскрытому в стандарте многоцелевого кодирования видео (VVC), стандарте существенного кодирования видео (EVC), стандарте AOMedia Видео 1 (AV1), стандарте кодирования аудио/видео 2-го поколения (AVS2) или стандарте кодирования видео/изображения следующего поколения (например, H.267, H.268 или тому подобное).
[49] Настоящий документ предлагает различные варианты осуществления кодирования видео/изображения, и варианты осуществления выше могут также выполняться в комбинации друг с другом, если не специфицировано иное.
[50] В настоящем документе, видео может относиться к последовательности изображений по времени. Картинка обычно относится к единице, представляющей одно изображение в конкретном временном кадре, и вырезка/мозаичный элемент относится к единице, составляющей часть картинки в терминах кодирования. Вырезка/мозаичный элемент может включать в себя одну или более единиц дерева кодирования (CTU). Одна картинка может состоять из одной или более вырезок/мозаичных элементов. Одна картинка может состоять из одной или более групп мозаичных элементов. Одна группа мозаичных элементов может включать в себя один или более мозаичных элементов. “Кирпичик” может представлять прямоугольную область строк CTU в пределах мозаичного элемента в картинке. Мозаичный элемент может разбиваться на множество кирпичиков, каждый из которых может состоять из одной или более строк CTU в пределах мозаичного элемента. Мозаичный элемент, который не разбивается на множество кирпичиков, может также называться кирпичиком. Сканирование кирпичиков может представлять конкретный последовательный порядок CTU, разбивающих картинку, причем CTU могут быть упорядочены в растровом сканировании CTU в пределах кирпичика, и кирпичики в пределах мозаичного элемента могут быть упорядочены последовательно в растровом сканировании кирпичиков мозаичного элемента, и мозаичные элементы в картинке могут быть упорядочены последовательно в растровом сканировании мозаичных элементов картинки. Мозаичный элемент является прямоугольной областью CTU в пределах конкретного столбца мозаичного элемента и конкретной строки мозаичного элемента в картинке. Столбец мозаичного элемента является прямоугольной областью CTU, имеющей высоту, равную высоте картинки, и ширину, специфицированную синтаксическими элементами в наборе параметров картинки. Строка мозаичного элемента является прямоугольной областью CTU, имеющей высоту, специфицированную синтаксическими элементами в наборе параметров картинки, и ширину, равную ширине картинки. Сканирование мозаичного элемента является конкретным последовательным упорядочиванием CTU, разбивающих картинку, в которой CTU упорядочены последовательно в растровом сканировании CTU в мозаичном элементе, причем мозаичные элементы в картинке упорядочены последовательно в растровом сканировании мозаичных элементов картинки. Вырезка включает в себя целое число кирпичиков картинки, которые могут содержаться исключительно в одной единице NAL. Вырезка может состоять из некоторого количества полных мозаичных элементов или только последовательности полных кирпичиков одного мозаичного элемента. В настоящем документе, группа мозаичных элементов и вырезка могут использоваться взаимозаменяемым образом. Например, в настоящем документе, группа мозаичных элементов/заголовок группы мозаичных элементов может называться вырезкой/заголовком вырезки.
[51] Между тем, одна картинка может делиться на две или более под-картинок. Под-картинка может представлять собой прямоугольную область одной или более вырезок в пределах картинки.
[52] Пиксел или пел может означать наименьшую единицу, составляющую одну картинку (или изображение). Также ‘выборка’ может использоваться как термин, соответствующий пикселу. Выборка может, в общем, представлять пиксел или значение пиксела и может представлять только пиксел/значение пиксела компонента яркости или только пиксел/значение пиксела компонента цветности.
[53] Единица может представлять базовую единицу обработки изображения. Единица может включать в себя по меньшей мере одно из конкретной области картинки и информации, относящейся к области. Одна единица может включать в себя один блок яркости и два блока цветности (например, cb, cr). Единица может использоваться взаимозаменяемо с терминами, такими как блок или область в некоторых случаях. В общем случае, блок M×N может включать в себя выборки (или массивы выборок) или набор (или массив) коэффициентов преобразования M столбцов и N строк. Альтернативно, выборка может означать значение пиксела в пространственной области, и когда такое значение пиксела преобразуется в частотную область, оно может означать коэффициент преобразования в частотной области.
[54] В настоящем документе, “A или B” может означать “только A”, “только B” или “как A, так и B”. Другими словами, “A или B” в настоящем документе может интерпретироваться как “A и/или B”. Например, в настоящем документе “A, B или C (A, B или C)” означает “только A”, “только B”, “только C” или “любая комбинация A, B и C”.
[55] Слеш (/) или запятая, используемые в настоящем документе, могут означать “и/или”. Например, “A/B” может означать “A и/или B”. Соответственно, “A/B” может означать “только A”, “только B” или “как A, так и B”. Например, “A, B, C” может означать “A, B или C”.
[56] В настоящем документе, “по меньшей мере одно из A и B” может означать “только A”, “только B” или “как A, так и B”. Также, в настоящем документе, выражение “по меньшей мере одно из A или B” или “по меньшей мере одно из A и/или B” может интерпретироваться так же, как “по меньшей мере одно из A и B”.
[57] Также в настоящем документе “по меньшей мере одно из A, B и C” означает “только A, “только B”, “только C” или “любая комбинация A, B и C”. Также, “по меньшей мере одно из A, B или C” или “по меньшей мере одно из A, B и/или C” может означать “по меньшей мере одно из A, B и C”.
[58] Также, круглые скобки, используемые в настоящем документе, могут означать “например”. Конкретно, когда указано “предсказание (интра-предсказание)”, “интра-предсказание” может предлагаться как пример “предсказания”. Другими словами, “предсказание” в настоящем документе не ограничено “интра-предсказанием”, и “интра-предсказание” может предлагаться в качестве примера “предсказания”. Также, даже когда указано “предсказание (т. е. интра-предсказание)”, “интра-предсказание” может предлагаться как пример “предсказания”.
[59] Технические признаки, которые отдельно описаны в одном чертеже в настоящем документе, могут быть реализованы по отдельности или вместе.
[60] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, к которой могут применяться варианты осуществления настоящего документа. Далее то, что называется устройством кодирования видео, может включать в себя устройство кодирования изображения.
[61] Со ссылкой на фиг. 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 как внутренний/внешний компонент.
[62] Модуль 210 разбиения изображения может разбивать входное изображение (или картинку или кадр), введенное в устройство 200 кодирования в один или более процессоров. Например, процессор может называться единицей кодирования (CU). В этом случае, единица кодирования может рекурсивно разбиваться в соответствии со структурой квадродерева-двоичного дерева- троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может разбиваться на множество единиц кодирования более глубокой глубины на основе структуры квадродерева, структуры двоичного и/или троичного дерева. В этом случае, например, структура квадродерева может применяться первой, и структура двоичного дерева и/или структура троичного дерева может применяться позже. Альтернативно, структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с настоящим раскрытием может выполняться на основе конечной единицы кодирования, которая больше не разбивается. В этом случае, наибольшая единица кодирования может использоваться как конечная единица кодирования на основе эффективности кодирования в соответствии с характеристиками изображения, или если необходимо, единица кодирования может рекурсивно разбиваться на единицы кодирования более глубокой глубины, и единица кодирования, имеющая оптимальный размер, может использоваться как конечная единица кодирования. Здесь, процедура кодирования может включать в себя процедуру предсказания, преобразования и восстановления, которые будут описаны далее. В качестве примера, процессор может дополнительно включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, единица предсказания и единица преобразования могут разделяться или разбиваться из вышеупомянутой конечной единицы кодирования. Единица предсказания может представлять собой единицу предсказания выборки, и единица преобразования может представлять собой единицу для выведения коэффициента преобразования и/или единицу для выведения остаточного сигнала из коэффициента преобразования.
[63] Единица может использоваться взаимозаменяемо с такими терминами, как блок или область в некоторых случаях. В общем случае, блок M×N может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка может, в общем, представлять пиксел или значение пиксела, может представлять только пиксел/значение пиксела компонента яркости или представлять только пиксел/значение пиксела компонента цветности. Выборка может использоваться как термин, соответствующий одной картинке (или изображению) для пиксела или пела.
[64] В устройстве 200 кодирования, сигнал предсказания (предсказанный блок, массив выборок предсказания), выведенный из интер-предсказателя 221 или интра-предсказателя 222, вычитается из входного сигнала изображения (исходного блока, исходного массива выборок), чтобы сгенерировать остаточный сигнал (остаточный блок, остаточный массив выборок), и сгенерированный остаточный сигнал передается на преобразователь 232. В этом случае, как показано, модуль для вычитания сигнала предсказания (предсказанного блока, массива выборок предсказания) из входного сигнала изображения (исходного блока, исходного массива выборок) в кодере 200 может называться вычитателем 231. Предсказатель может выполнять предсказание на блоке, подлежащем обработке (далее называемом текущим блоком), и генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание на основе текущего блока или CU. Как описано далее в описании каждого режима предсказания, предсказатель может генерировать различную информацию, связанную с предсказанием, такую как информация режима предсказания, и передавать сгенерированную информацию на энтропийный кодер 240. Информация о предсказании может кодироваться в энтропийном кодере 240 и выводиться в форме битового потока.
[65] Интра-предсказатель 222 может предсказывать текущий блок путем обращения к выборкам в текущей картинке. Выборки, к которым обращаются, могут быть расположены по соседству с текущим блоком или могут быть разнесены в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, режим DC и планарный режим. Направленный режим может включать в себя, например, 33 направленных режима предсказания или 65 направленных режимов предсказания в соответствии со степенью детализации направления предсказания. Однако это только пример, больше или меньше направленных режимов предсказания могут использоваться в зависимости от настроек. Интра-предсказатель 222 может определять режим предсказания, применяемый к текущему блоку, путем использования режима предсказания, применяемого к соседнему блоку.
[66] Интер-предсказатель 221 может выводить предсказанный блок для текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. Здесь, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блоков, подблоков или выборках на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0 предсказание, L1 предсказание, Bi-предсказание и т. д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, представленный в текущей картинке, и временной соседний блок, представленный в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, могут быть одинаковыми или разными. Временной соседний блок может называться совместно расположенным опорным блоком, co-located CU (colCU) и т. п., и опорная картинка, включающая в себя временной соседний блок, может называться совместно расположенной картинкой (colPic). Например, интер-предсказатель 221 может конфигурировать список кандидатов информации движения на основе соседних блоков и генерировать информацию, указывающую, какой кандидат используется, чтобы вывести вектор движения и/или индекс опорной картинки текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, интер-предсказатель 221 может использовать информацию движения соседнего блока как информацию движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима предсказания вектора движения (MVP), вектор движения соседнего блока может использоваться как предсказатель вектора движения, и вектор движения текущего блока может указываться путем сигнализации разности векторов движения.
[67] Предсказатель 220 может генерировать сигнал предсказания на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание, чтобы предсказать один блок, но также одновременно применять как интра-предсказание, так и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для предсказания блока. Режим предсказания IBC или режим палитры могут использоваться для кодирования контента изображения/видео игры или тому подобного, например, кодирования контента экрана (SCC). IBC в основном выполняет предсказание в текущей картинке, но может выполняться аналогично интер-предсказанию тем, что опорный блок выводится в текущей картинке. То есть IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем раскрытии. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, значение выборки в пределах картинки может сигнализироваться на основе информации о таблице палитры и индексе палитры.
[68] Сигнал предсказания, сгенерированный предсказателем (включающим в себя интер-предсказатель 221 и/или интра-предсказатель 222), может использоваться, чтобы генерировать восстановленный сигнал или чтобы генерировать остаточный сигнал. Преобразователь 232 может генерировать коэффициенты преобразования путем применения метода преобразования к остаточному сигналу. Например, метод преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно-нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация отношения между пикселами представлена графом. CNT относится к преобразованию, сгенерированному на основе сигнала предсказания, сгенерированного с использованием всех ранее восстановленных пикселов. К тому же, процесс преобразования может применяться к квадратным блокам пикселов, имеющим одинаковый размер, или может применяться к блокам, имеющим переменный размер, а не квадратным.
[69] Квантователь 233 может квантовать коэффициенты преобразования и передавать их на энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию о квантованных коэффициентах преобразования) и выводить битовый поток. Информация о квантованных коэффициентах преобразования может называться информацией остатка. Квантователь 233 может переупорядочивать квантованные коэффициенты преобразования типа блока в форму одномерного вектора на основе порядка сканирования коэффициентов и генерировать информацию о квантованных коэффициентах преобразования на основе квантованных коэффициентов преобразования в форме одномерного вектора. Информация о коэффициентах преобразования может генерироваться. Энтропийный кодер 240 может выполнять различные способы кодирования, такие как, например, экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и тому подобное. Энтропийный кодер 240 может кодировать информацию, необходимую для восстановления видео/изображения, отличную от квантованных коэффициентов преобразования (например, значения синтаксических элементов и т. д.), вместе или отдельно. Закодированная информация (например, закодированная информация видео/изображения) может передаваться или сохраняться в единицах NAL (уровень сетевой абстракции) в форме битового потока. Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. В настоящем раскрытии, информация и/или синтаксические элементы, передаваемые/сигнализируемые от устройства кодирования на устройство декодирования, могут быть включены в информацию видео/картинки. Информация видео/изображения может кодироваться посредством вышеописанной процедуры кодирования и включаться в битовый поток. Битовый поток может передаваться по сети или может сохраняться в цифровом носителе хранения. Сеть может включать в себя сеть вещания и/или сеть связи, и цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD, SSD и тому подобное. Передатчик (не показан), передающий сигнал, выведенный из энтропийного кодера 240, и/или модуль хранения (не показан), хранящий сигнал, могут быть включены как внутренний/внешний элемент устройства 200 кодирования, и альтернативно, передатчик может быть включен в энтропийный кодер 240.
[70] Квантованные коэффициенты преобразования, выведенные из квантователя 233, могут использоваться, чтобы генерировать сигнал предсказания. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться путем применения деквантования и обратного преобразования к квантованным коэффициентам преобразования деквантователем 234 и обратным преобразователем 235. Сумматор 250 добавляет восстановленный остаточный сигнал к сигналу предсказания, выведенному из интер-предсказателя 221 или интра-предсказателя 222, чтобы сгенерировать восстановленный сигнал (восстановленную картинку, восстановленный блок, восстановленный массив выборок). Если отсутствует остаток для блока, подлежащего обработке, например, в случае, где применяется режим пропуска, предсказанный блок может использоваться как восстановленный блок. Сумматор 250 может называться реконструктором или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке, в текущей картинке и может использоваться для интер-предсказания следующей картинки посредством фильтрации, как описано ниже.
[71] Между тем, отображение яркости с масштабированием цветности (LMCS) может применяться во время кодирования и/или восстановления картинки.
[72] Фильтр 260 может улучшать субъективное/объективное качество изображения путем применения фильтрации к восстановленному сигналу. Например, фильтр 260 может генерировать модифицированную восстановленную картинку путем применения различных способов фильтрации к восстановленной картинке и сохранять модифицированную восстановленную картинку в памяти 270, конкретно, DPB памяти 270. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное. Фильтр 260 может генерировать различную информацию, относящуюся к фильтрации, и передавать сгенерированную информацию на энтропийный кодер 240, как описано далее в описании каждого способа фильтрации. Информация, относящаяся к фильтрации, может кодироваться энтропийным кодером 240 и выводиться в форме битового потока.
[73] Модифицированная восстановленная картинка, передаваемая в память 270, может использоваться как опорная картинка в интер-предсказателе 221. Когда интер-предсказание применяется посредством устройства кодирования, можно избежать рассогласования предсказания между устройством 200 кодирования и устройством 300 декодирования, и эффективность кодирования может улучшаться.
[74] DPB памяти 270 DPB может хранить модифицированную восстановленную картинку для использования в качестве опорной картинки в интер-предсказателе 221. Память 270 может хранить информацию движения блока, из которой выводится (или кодируется) информация движения в текущей картинке, и/или информацию движения блоков в картинке, которые уже были восстановлены. Сохраненная информация движения может передаваться на интер-предсказатель 221 и использоваться как информация движения пространственного соседнего блока или информация движения временного соседнего блока. Память 270 может хранить восстановленные выборки восстановленных блоков в текущей картинке и может переносить восстановленные выборки на интра-предсказатель 222.
[75] Фиг. 3 является схематичной диаграммой, иллюстрирующей конфигурацию устройства декодирования видео/изображения, к которой может применяться вариант(ы) осуществления настоящего раскрытия.
[76] Со ссылкой на фиг. 3, устройство 300 декодирования может включать в себя энтропийный декодер 310, процессор 320 остатка, предсказатель 330, сумматор 340, фильтр 350, память 360. Предсказатель 330 может включать в себя интер-предсказатель 331 и интра-предсказатель 332. Процессор 320 остатка может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, процессор 320 остатка, предсказатель 330, сумматор 340 и фильтр 350 могут быть сконфигурированы компонентом аппаратных средств (например, чипсетом декодера или процессором) в соответствии с вариантом осуществления. К тому же, память 360 может включать в себя буфер декодированной картинки (DPB) или может быть сконфигурирована цифровым носителем хранения. Компонент аппаратных средств может дополнительно включать в себя память 360 как внутренний/внешний компонент.
[77] Когда битовый поток, включающий в себя информацию видео/изображения, вводится, устройство 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображения обрабатывается в устройстве кодирования согласно фиг. 2. Например, устройство 300 декодирования может выводить единицы/блоки на основе информации, относящейся к разбиению блока, полученной из битового потока. Устройство 300 декодирования может выполнять декодирование с использованием процессора, применяемого к устройству кодирования. Таким образом, процессор декодирования может представлять собой единицу кодирования, например, и единица кодирования может разбиваться в соответствии со структурой квадродерева, структурой двоичного дерева и/или структурой троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут выводиться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выведенный посредством устройства 300 декодирования, может воспроизводиться посредством устройства воспроизведения.
[78] Устройство 300 декодирования может принимать сигнал, выведенный из устройства кодирования согласно фиг. 2 в форме битового потока, и принятый сигнал может декодироваться посредством энтропийного декодера 310. Например, энтропийный декодер 310 может выполнять синтаксический анализ битового потока, чтобы вывести информацию (например, информацию видео/изображения), необходимую для восстановления изображения (или восстановления картинки). Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. Устройство декодирования может дополнительно декодировать картинку на основе информации о наборе параметров и/или общей информации ограничения. Сигнализированная/принятая информация и/или синтаксические элементы, описанные далее в настоящем раскрытии, могут быть декодированы для декодирования процедуры декодирования и получены из битового потока. Например, энтропийный декодер 310 кодирует информацию в битовом потоке на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC, и выводит синтаксические элементы, требуемые для восстановления изображения, и квантованные значения коэффициентов преобразования для остатка. Более конкретно, способ энтропийного декодирования CABAC может принимать бин, соответствующий каждому синтаксическому элементу в битовом потоке, определять контекстную модель с использованием информации декодирования целевого синтаксического элемента, информации декодирования для декодирования целевого блока или информации символа/бина, декодированного на предыдущей стадии, и выполнять арифметическое декодирование на бине путем предсказания вероятности появления бина в соответствии с определенной контекстной моделью, и генерировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного декодирования CABAC может обновлять контекстную модель с использованием информации декодированного символа/бина для контекстной модели следующего символа/бина после определения контекстной модели. Информация, связанная с предсказанием, среди информации, декодированной энтропийным декодером 310, может предоставляться на предсказатель (интер-предсказатель 332 и интра-предсказатель 331), и значение остатка, на котором энтропийное декодирование было выполнено в энтропийном декодере 310, то есть, квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в процессор 320 остатка. Процессор 320 остатка может выводить остаточный сигнал (остаточный блок, остаточные выборки, остаточный массив выборок). К тому же, информация о фильтрации среди информации, декодированной энтропийным декодером 310, может предоставляться на фильтр 350. Между тем, приемник (не показан) для приема сигнала, выведенного из устройства кодирования, может быть дополнительно сконфигурирован как внутренний/внешний элемент устройства 300 декодирования, или приемник может быть компонентом энтропийного декодера 310. Между тем, устройство декодирования в соответствии с настоящим раскрытием может называться устройством декодирования видео/изображения/картинки, и устройство декодирования может классифицироваться на декодер информации (декодер информации видео/изображения/картинки) и декодер выборки (декодер выборки видео/изображения/картинки). Декодер информации может включать в себя энтропийный декодер 310, и декодер выборки может включать в себя по меньшей мере одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, памяти 360, интер-предсказателя 332 и интра-предсказателя 331.
[79] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может переупорядочивать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, переупорядочивание может выполняться на основе порядка сканирования коэффициентов, выполняемого в устройстве кодирования. Деквантователь 321 может выполнять деквантование на квантованных коэффициентах преобразования с использованием параметра квантования (например, информации размера этапа квантования) и получать коэффициенты преобразования.
[80] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получить остаточный сигнал (остаточный блок, остаточный массив выборок).
[81] Предсказатель может выполнять предсказание на текущем блоке и генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание к текущему блоку, на основе информации о предсказании, выведенной из энтропийного декодера 310, и может определять конкретный режим интра/интер-предсказания.
[82] Предсказатель 320 может генерировать сигнал предсказания на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание, чтобы предсказывать один блок, но также одновременно применять интра-предсказание и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для предсказания блока. Режим предсказания IBC или режим палитры могут использоваться для кодирования контента изображения/видео игры или тому подобного, например, кодирования контента экрана (SCC). IBC в основном выполняет предсказание в текущей картинке, но может выполняться аналогично интер-предсказанию тем, что опорный блок выводится в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем раскрытии. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, значение выборки в пределах картинки может сигнализироваться на основе информации о таблице палитры и индексе палитры.
[83] Интра-предсказатель 331 может предсказывать текущий блок путем ссылки на выборки в текущей картинке. Указанные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Интра-предсказатель 331 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.
[84] Интер-предсказатель 332 может выводить предсказанный блок для текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блоков, подблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0 предсказание, L1 предсказание, Bi-предсказание и т. д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, представленный в текущей картинке, и временной соседний блок, представленный в опорной картинке. Например, интер-предсказатель 332 может конфигурировать список кандидатов информации движения на основе соседних блоков и выводить вектор движения текущего блока и/или индекс опорной картинки на основе принятой информации выбора кандидата. Интер-предсказание может выполняться на основе различных режимов предсказания, и информация о предсказании может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.
[85] Сумматор 340 может генерировать восстановленный сигнал (восстановленную картинку, восстановленный блок, восстановленный массив выборок) путем добавления полученного остаточного сигнала к сигналу предсказания (предсказанному блоку, предсказанному массиву выборок), выведенному из предсказателя (включающего в себя интер-предсказатель 332 и/или интра-предсказатель 331). Если отсутствует остаток для блока, подлежащего обработке, например, когда применяется режим пропуска, предсказанный блок может использоваться как восстановленный блок.
[86] Сумматор 340 может называться реконструктором или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке в текущей картинке, может выводиться посредством фильтрации, как описано ниже, или может использоваться для интер-предсказания следующей картинки.
[87] Между тем, отображение яркости с масштабированием цветности (LMCS) может применяться в процессе декодирования картинки.
[88] Фильтр 350 может улучшать субъективное/объективное качество изображения путем применения фильтрации к восстановленному сигналу. Например, фильтр 350 может генерировать модифицированную восстановленную картинку путем применения различных способов фильтрации к восстановленной картинке и сохранять модифицированную восстановленную картинку в памяти 360, конкретно, DPB памяти 360. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное.
[89] (Модифицированная) восстановленная картинка, хранящаяся в DPB памяти 360, может использоваться как опорная картинка в интер-предсказателе 332. Память 360 может хранить информацию движения блока, из которого выводится (или декодируется) информация движения в текущей картинке, и/или информацию движения блоков в картинке, которые уже были восстановлены. Сохраненная информация движения может передаваться на интер-предсказатель 260 для использования в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Память 360 может хранить восстановленные выборки восстановленных блоков в текущей картинке и переносить восстановленные выборки на интра-предсказатель 331.
[90] В настоящем документе, варианты осуществления, описанные в фильтре 260, интер-предсказателе 221 и интра-предсказателе 222 устройства 200 кодирования, могут быть теми же самыми или соответственно применяться, чтобы соответствовать фильтру 350, интер-предсказателю 332 и интра-предсказателю 331 устройства 300 декодирования. То же может также применяться к модулю 332 и интра-предсказателю 331.
[91] Как описано выше, в кодировании видео, предсказание выполняется, чтобы повысить эффективность сжатия. Посредством этого, возможно сгенерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока, который является блоком, подлежащим кодированию. Здесь, предсказанный блок включает в себя выборки предсказания в пространственной области (или области пикселов). Предсказанный блок выводится одинаково из устройства кодирования и устройства декодирования, и устройство кодирования декодирует информацию (информацию остатка) об остатке между исходным блоком и предсказанным блоком, а не исходное значение выборки самого исходного блока. Путем сигнализации на устройство, эффективность кодирования изображения может быть повышена. Устройство декодирования может выводить остаточный блок, включающий в себя остаточные выборки, на основе информации остатка, и генерировать восстановленный блок, включающий в себя восстановленные выборки, путем суммирования остаточного блока и предсказанного блока, и генерировать восстановленную картинку, включающую в себя восстановленные блоки.
[92] Информация остатка может генерироваться в процессах преобразования и квантования. Например, устройство кодирования может выводить остаточный блок между исходным блоком и предсказанным блоком и выполнять процесс преобразования на остаточных выборках (остаточном массиве выборок), включенных в остаточный блок, чтобы вывести коэффициенты преобразования, и затем, путем выполнения процесса квантования на коэффициентах преобразования, выводить квантованные коэффициенты преобразования, чтобы сигнализировать остаток, относящийся к информации, на устройство декодирования (посредством битового потока). Здесь, информация остатка может включать в себя информацию местоположения, метод преобразования, ядро преобразования и параметр квантования, информацию значения квантованных коэффициентов преобразования и т.д. Устройство декодирования может выполнять процесс деквантования/обратного преобразования на основе информации остатка и выводить остаточные выборки (или остаточные блоки). Устройство декодирования может генерировать восстановленную картинку на основе предсказанного блока и остаточного блока. Устройство кодирования может также деквантовать/обратно преобразовывать квантованные коэффициенты преобразования для ссылки для интер-предсказания более поздней картинки, чтобы вывести остаточный блок и сгенерировать на его основе восстановленную картинку.
[93] В настоящем документе по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может опускаться. Когда квантование/деквантование опускается, квантованный коэффициент преобразования может называться коэффициентом преобразования. Когда преобразование/ обратное преобразование опускается, коэффициенты преобразования могут называться коэффициентами или остаточными коэффициентами или могут по-прежнему называться коэффициентами преобразования для единообразия выражения.
[94] В настоящем документе, квантованный коэффициент преобразования и коэффициент преобразования могут называться коэффициентом преобразования и масштабированным коэффициентом преобразования, соответственно. В этом случае, информация остатка может включать в себя информацию о коэффициенте(ах) преобразования, и информация о коэффициенте(ах) преобразования может сигнализироваться через синтаксис кодирования остатка. Коэффициенты преобразования могут выводиться на основе информации остатка (или информации о коэффициенте(ах) преобразования), и масштабированные коэффициенты преобразования могут выводиться через обратное преобразование (масштабирование) на коэффициентах преобразования. Остаточные выборки могут выводиться на основе обратного преобразования (преобразования) масштабированных коэффициентов преобразования. Это может быть применено/выражено также в других частях настоящего документа.
[95] Интра-предсказание может относиться к предсказанию, которое генерирует выборки предсказания для текущего блока на основе опорных выборок в картинке, которой принадлежит текущий блок (далее называемой текущей картинкой). Когда интра-предсказание применяется к текущему блоку, соседние опорные выборки, подлежащие использованию для интра-предсказания текущего блока, могут выводиться. Соседние опорные выборки текущего блока могут включать в себя выборки, смежные с левой границей текущего блока, имеющего размер nW×nH, и всего 2×nH выборок, соседних снизу-слева, выборки, смежные с верхней границей текущего блока, и всего 2×nW выборок, соседних сверху-справа, и одну выборку, соседнюю сверху-слева от текущего блока. Альтернативно, соседние опорные выборки текущего блока могут включать в себя множество верхних соседних выборок и множество левых соседних выборок. К тому же, соседние опорные выборки текущего блока могут включать в себя всего nH выборок, смежных с правой границей текущего блока, имеющего размер nW×nH, всего nW выборок, смежных с нижней границей текущего блока, и одну выборку, соседнюю снизу-справа от текущего блока.
[96] Однако некоторые из соседних опорных выборок текущего блока могут еще не быть декодированными или доступными. В этом случае, декодер может конфигурировать соседние опорные выборки для использования для предсказания путем замены выборок, которые недоступны, на доступные выборки. Альтернативно, соседние опорные выборки, подлежащие использованию для предсказания, могут быть сконфигурированы через интерполяцию доступных выборок.
[97] Когда соседние опорные выборки выводятся, (i) выборка предсказания может выводиться на основе среднего или интерполяции соседних опорных выборок текущего блока, и (ii) выборка предсказания может выводиться на основе опорной выборки, представленной в конкретном направлении (предсказания), для выборки предсказания среди периферийных опорных выборок текущего блока. Случай (i) может называться ненаправленным режимом или не-угловым режимом, и случай (ii) может называться направленным режимом или угловым режимом.
[98] Более того, выборка предсказания может также генерироваться посредством интерполяции между второй соседней выборкой и первой соседней выборкой, расположенными в направлении, противоположном направлению предсказания режима интра-предсказания текущего блока, на основе выборки предсказания текущего блока среди соседних опорных выборок. Случай выше может называться интра-предсказанием линейной интерполяции (LIP). К тому же, выборки предсказания цветности могут генерироваться на основе выборок яркости с использованием линейной модели. Этот случай может называться режимом LM.
[99] К тому же, временная выборка предсказания текущего блока может выводиться на основе отфильтрованных соседних опорных выборок, и по меньшей мере одна опорная выборка, выведенная в соответствии с режимом интра-предсказания среди существующих соседних опорных выборок, то есть неотфильтрованных соседних опорных выборок, и временная выборка предсказания могут взвешенно суммироваться, чтобы вывести выборку предсказания текущего блока. Случай выше может называться зависимым от положения интра-предсказанием (PDPC).
[100] К тому же, линия опорной выборки, имеющая самую высокую точность предсказания среди соседних линий множества опорных выборок текущего блока, может выбираться, чтобы вывести выборку предсказания с использованием опорной выборки, расположенной в направлении предсказания на соответствующей линии, и затем линия опорной выборки, используемая здесь, может указываться (сигнализироваться) на устройство декодирования, тем самым выполняя кодирование интра-предсказания. Случай выше может называться интра-предсказанием с множеством опорных линий (MRL) или интра-предсказанием на основе MRL.
[101] К тому же, интра-предсказание может выполняться на основе одного и того же режима интра-предсказания путем деления текущего блока на вертикальные или горизонтальные подразбиения, и соседние опорные выборки могут выводиться и использоваться в единице подразбиения. То есть в этом случае, режим интра-предсказания для текущего блока равным образом применяется к подразбиениям, и выполнение интра-предсказания может быть улучшено в некоторых случаях путем выведения и использования соседних опорных выборок в единице подразбиения. Такой способ предсказания может называться интра-подразбиениями (ISP) или интра-предсказанием на основе ISP.
[102] Вышеописанные способы интра-предсказания могут называться типом интра-предсказания отдельно от режима интра-предсказания. Тип интра-предсказания может называться различными терминами, такими как метод интра-предсказания или дополнительный режим интра-предсказания. Например, тип интра-предсказания (или дополнительный режим интра-предсказания) может включать в себя по меньшей мере одно из вышеописанных LIP, PDPC, MRL и ISP. Общий способ интра-предсказания за исключением специального типа интра-предсказания, такого как LIP, PDPC, MRL или ISP, может называться нормальным типом интра-предсказания. Нормальный тип интра-предсказания может, в общем, применяться, когда специальный тип интра-предсказания не применяется, и предсказание может выполняться на основе режима интра-предсказания, описанного выше. Между тем, пост-фильтрация может выполняться на выведенной предсказанной выборке по мере необходимости.
[103] Конкретно, процедура интра-предсказания может включать в себя этап определения режима/типа интра-предсказания, этап вывода соседней опорной выборки и этап вывода выборки предсказания на основе режима/типа интра-предсказания. К тому же, этап пост-фильтрации может выполняться на выведенной предсказанной выборке, по мере необходимости.
[104] Когда применяется интра-предсказание, режим интра-предсказания, применяемый к текущему блоку, может определяться с использованием режима интра-предсказания соседнего блока. Например, устройство декодирования может выбирать один из наиболее вероятных кандидатов режима (mpm) из списка mpm, выведенного на основе режима интра-предсказания соседнего блока (например, левого и/или верхнего соседних блоков) текущего блока на основе принятого индекса mpm, и выбирать один из других оставшихся режимов интра-предсказания, не включенных в кандидаты mpm (и планарный режим), на основе информации оставшегося режима интра-предсказания. Список mpm может быть сконфигурирован, чтобы включать или не включать в себя планарный режим в качестве кандидата. Например, если список mpm включает в себя планарный режим в качестве кандидата, список mpm может иметь шесть кандидатов. Если список mpm не включает в себя планарный режим в качестве кандидата, список mpm может иметь три кандидата. Когда список mpm не включает в себя планарный режим в качестве кандидата, флаг не-планарный (например, intra_luma_not_planar_flag), указывающий, является ли режим интра-предсказания текущего блока не-планарным режимом, может сигнализироваться. Например, флаг mpm может сигнализироваться первым, и индекс mpm и флаг не-планарный могут сигнализироваться, когда значение флага mpm равно 1. К тому же, индекс mpm может сигнализироваться, когда значение флага не-планарный равно 1. Здесь, список mpm сконфигурирован, чтобы не включать планарный режим в качестве кандидата, не должен сигнализировать сначала флаг не-планарный, чтобы проверить, является ли он планарным режимом, поскольку планарный режим всегда рассматривается как mpm.
[105] Например, то, находится ли режим интра-предсказания, применяемый к текущему блоку, в кандидатах mpm (и планарном режиме) или в оставшемся режиме, может указываться на основе флага mpm (например, Intra_luma_mpm_flag). Значение 1 флага mpm может указывать, что режим интра-предсказания для текущего блока находится в кандидатах mpm (и планарном режиме), и значение 0 флага mpm может указывать, что режим интра-предсказания для текущего блока не находится в кандидатах mpm (и планарном режиме). Значение 0 флага не-планарный (например, Intra_luma_not_planar_flag) может указывать, что режим интра-предсказания для текущего блока является планарным режимом, и значение 1 флага не-планарный может указывать, что режим интра-предсказания для текущего блока не является планарным режимом. Индекс mpm может сигнализироваться в форме синтаксического элемента mpm_idx или intra_luma_mpm_idx, и информация оставшегося режима интра-предсказания может сигнализироваться в форме синтаксического элемента rem_intra_luma_pred_mode или intra_luma_mpm_remainder. Например, информация оставшегося режима интра-предсказания может индексировать оставшиеся режимы интра-предсказания, не включенные в кандидаты mpm (и планарный режим), среди всех режимов интра-предсказания по порядку числа режимов предсказания, чтобы указать один из них. Режим интра-предсказания может представлять собой режим интра-предсказания для компонента (выборки) яркости. Далее, информация режима интра-предсказания может включать по меньшей мере одно из флага mpm (например, Intra_luma_mpm_flag), флага не-планарный (например, Intra_luma_not_planar_flag), индекса mpm (например, mpm_idx или intra_luma_mpm_idx) и информации оставшегося режима интра-предсказания (rem_intra_luma_pred_mode или intra_luma_mpm_remainder). В настоящем документе, список MPM может называться различными терминами, такими как список кандидатов MPM и candModeList. Когда MIP применяется к текущему блоку, отдельный флаг mpm (например, intra_mip_mpm_flag), индекс mpm (например, intra_mip_mpm_idx) и информация оставшегося режима интра-предсказания (например, intra_mip_mpm_remainder) для MIP могут сигнализироваться, а флаг не-планарный не сигнализируется.
[106] Другими словами, в общем, когда разделение блока выполняется на изображении, текущий блок и соседний блок, подлежащие кодированию, имеют аналогичные характеристики изображения. Поэтому, текущий блок и соседний блок с высокой вероятностью имеют один и тот же или аналогичный режим интра-предсказания. Таким образом, кодер может использовать режим интра-предсказания соседнего блока, чтобы кодировать режим интра-предсказания текущего блока.
[107] Например, кодер/декодер может конфигурировать список наиболее вероятных режимов (MPM) для текущего блока. Список МРМ может также называться списком кандидатов MPM. Здесь, MPM может относиться к режиму, используемому, чтобы улучшать эффективность кодирования с учетом сходства между текущим блоком и соседним блоком в кодировании режима интра-предсказания. Как описано выше, список МРМ может быть сконфигурирован, чтобы включать в себя планарный режим, или может быть сконфигурирован, чтобы исключать планарный режим. Например, когда список МРМ включает в себя планарный режим, число кандидатов в списке МРМ может составлять 6. И, если список МРМ не включает в себя планарный режим, число кандидатов в списке МРМ может составлять 5.
[108] Кодер/декодер может конфигурировать список МРМ, включающий в себя 5 или 6 MPM.
[109] Чтобы сконфигурировать список МРМ, могут рассматриваться три типа режимов: интра-режимы по умолчанию, соседние интра-режимы и выведенные интра-режимы.
[110] Для соседних интра-режимов, могут рассматриваться два соседних блока, т. е. левый соседний блок и верхний соседний блок.
[111] Как описано выше, если список МРМ сконфигурирован, чтобы не включать планарный режим, планарный режим исключается из списка, и число кандидатов списка МРМ может устанавливаться в 5.
[112] К тому же, ненаправленный режим (или не-угловой режим) среди режимов интра-предсказания может включать в себя режим DC на основе среднего соседних опорных выборок текущего блока или планарный режим на основе интерполяции.
[113] Когда применяется интер-предсказание, предсказатель устройства кодирования/устройства декодирования может выводить выборку предсказания путем выполнения интер-предсказания в единицах блоков. Интер-предсказание может представлять собой предсказание, выводимое способом, который зависит от элементов данных (например, значений выборки или информации движения) картинки(ок), отличной от текущей картинки. Когда интер-предсказание применяется к текущему блоку, предсказанный блок (массив выборок предсказания) для текущего блока может выводиться на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке, указанной индексом опорной картинки. Здесь, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения текущего блока может предсказываться в единицах блоков, подблоков или выборках на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию типа интер-предсказания (L0 предсказание, L1 предсказание, Bi-предсказание и т. д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, представленный в текущей картинке, и временной соседний блок, представленный в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, могут быть одинаковыми или разными. Временной соседний блок может называться совместно расположенным опорным блоком, совместно расположенной CU (colCU) и т.п., и опорная картинка, включающая в себя временной соседний блок, может называться совместно расположенной картинкой (colPic). Например, список кандидатов информации движения может быть сконфигурирован на основе соседних блоков текущего блока, и информация флага или индекса, указывающая, какой кандидат выбран (используется), может сигнализироваться, чтобы вывести вектор движения и/или индекс опорной картинки текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть той же самой, что и информация движения соседнего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима предсказания вектора движения (MVP), вектор движения выбранного соседнего блока может использоваться как предсказатель вектора движения, и вектор движения текущего блока может сигнализироваться. В этом случае, вектор движения текущего блока может выводиться с использованием суммы предсказателя вектора движения и разности векторов движения.
[114] Информация движения может включать в себя информацию движения L0 и/или информацию движения L1 в соответствии с типом интер-предсказания (L0 предсказание, L1 предсказание, Bi-предсказание и т. д.). Вектор движения в направлении L0 может называться вектором движения L0 или MVL0, и вектор движения в направлении L1 может называться вектором движения L1 или MVL1. Предсказание на основе вектора движения L0 может называться L0 предсказанием, предсказание на основе вектора движения L1 может называться L1 предсказанием, и предсказание на основе вектора движения L0 и вектора движения L1, может называться bi-предсказанием. Здесь, вектор движения L0 может указывать вектор движения, ассоциированный со списком L0 опорных картинок (L0), и вектор движения L1 может указывать вектор движения, ассоциированный со списком L1 опорных картинок (L1). Список L0 опорных картинок может включать в себя картинки, которые являются более ранними в порядке вывода, чем текущая картинка, как опорные картинки, и список L1 опорных картинок может включать в себя картинки, которые являются более поздними в порядке вывода, чем текущая картинка. Предыдущие картинки могут называться прямыми (опорными) картинками, и последующие картинки могут называться обратными (опорными) картинками. Список L0 опорных картинок может дополнительно включать в себя картинки, которые являются более поздними в порядке вывода, чем текущая картинка, как опорные картинки. В этом случае, предыдущие картинки могут индексироваться первыми в списке L0 опорных картинок, и последующие картинки могут индексироваться позже. Список L1 опорных картинок может дополнительно включать в себя картинки, предшествующие в порядке вывода текущей картинке, как опорные картинки. В этом случае, последующие картинки могут индексироваться первыми в списке 1 опорных картинок, и предыдущие картинки могут индексироваться позже. Порядок вывода может соответствовать порядку подсчета порядка картинок (POC).
[115] Процедура кодирования видео/изображения, основанная на интер-предсказании, может включать, например, следующее.
[116] Фиг. 4 показывает пример способа кодирования видео/изображения на основе интер-предсказания.
[117] Устройство кодирования выполняет интер-предсказание на текущем блоке (S400). Устройство кодирования может выводить режим интер-предсказания и информацию движения текущего блока и генерировать выборки предсказания текущего блока. Здесь, определение режима интер-предсказания, вывод информации движения и процедура генерации выборок предсказания могут выполняться одновременно, или одна процедура может выполняться до другой. Например, интер-предсказатель устройства кодирования может включать в себя определитель режима предсказания, модуль вывода информации движения и модуль вывода выборок предсказания. Определитель режима предсказания может определять режим предсказания для текущего блока, модуль вывода информации движения может выводить информацию движения текущего блока, и модуль вывода выборок предсказания может выводить выборки движения текущего блока. Например, интер-предсказатель устройства кодирования может выполнять поиск блока, аналогичного текущему блоку, в предопределенной области (области поиска) опорных картинок посредством оценки движения и выводить опорный блок, у которого разность с текущим блоком является минимальной или предопределенной опорной или меньше. На основе этого, интер-предсказатель может выводить индекс опорной картинки, указывающий опорную картинку, в которой расположен опорный блок, и выводить вектор движения на основе разности положений между опорным блоком и текущим блоком. Устройство кодирования может определять режим, применяемый к текущему блоку, среди различных режимов предсказания. Устройство кодирования может сравнивать стоимость RD для различных режимов предсказания и определять оптимальный режим предсказания для текущего блока.
[118] Например, когда режим пропуска или режим объединения применяется к текущему блоку, устройство кодирования может конфигурировать список кандидатов объединения, который будет описан далее, и выводить опорный блок, у которого разность с текущим блоком является минимальной или предопределенной опорной или меньше, среди опорных блоков, указанных кандидатами объединения, включенными в список кандидатов объединения. В этом случае, кандидат объединения, ассоциированный с выведенным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный кандидат объединения, может генерироваться и сигнализироваться на устройство декодирования. Информация движения текущего блока может выводиться с использованием информации движения выбранного кандидата объединения.
[119] В качестве примера, когда режим (A)MVP применяется к текущему блоку, устройство кодирования может конфигурировать список кандидатов (A)MVP, который будет описан далее, и использовать вектор движения кандидата mvp, выбранного из кандидатов mvp (предсказателя вектора движения), включенных в список кандидатов (A)MVP, как mvp текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, выведенный посредством вышеописанной оценки движения, может использоваться как вектор движения текущего блока, и кандидат mvp, имеющий вектор движения, у которого разность с вектором движения текущего блока, среди кандидатов mvp, является наименьшей, может выбираться как кандидат mvp. Разность векторов движения (MVP), которая является разностью, из которой mvp был вычтен, может выводиться из вектора движения текущего блока. В этом случае, информация о MVD может сигнализироваться на устройство декодирования. К тому же, когда применяется режим (A)MVP, значение индекса опорной картинки может быть сконфигурировано как информация индекса опорной картинки и отдельно сигнализироваться на устройство декодирования.
[120] Устройство кодирования может выводить остаточные выборки на основе выборок предсказания (S410). Устройство кодирования может выводить остаточные выборки путем сравнения исходных выборок текущего блока с выборками предсказания.
[121] Устройство кодирования кодирует информацию изображения, включающую в себя информацию предсказания и информацию остатка (S420). Устройство кодирования может выводить закодированную информацию изображения в форме битового потока. Информация предсказания может включать в себя информацию режима предсказания (например, флаг пропуска, флаг объединения или индекс режима) и информацию об информации движения как информацию, относящуюся к процедуре предсказания. Информация об информации движения может включать в себя информацию выбора кандидата (например, индекс объединения, флаг mvp или индекс mvp), которая является информацией для вывода вектора движения. К тому же, информация об информации движения может включать в себя информацию о MVD и/или информацию индекса опорной картинки, описанную выше. Информация об информации движения может включать в себя информацию, указывающую, применяется ли L0 предсказание, L1 предсказание или bi-предсказание. Информация остатка является информацией об остаточных выборках. Информация остатка может включать в себя информацию о квантованных коэффициентах преобразования для остаточных выборок.
[122] Выведенный битовый поток может сохраняться в (цифровом) носителе хранения и доставляться на устройство декодирования или может доставляться на устройство декодирования посредством сети.
[123] Между тем, как описано выше, устройство кодирования может генерировать восстановленную картинку (включающую в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это необходимо, чтобы вывести тот же самый результат предсказания в устройстве кодирования, что и результат, выполняемый в устройстве декодирования, и поскольку эффективность кодирования может быть повышена. Поэтому, устройство кодирования может хранить восстановленную картинку (или восстановленные выборки, восстановленный блок) в памяти и использовать ее в качестве опорной картинки для интер-предсказания. Как описано выше, процедура внутриконтурной фильтрации может дополнительно применяться к восстановленной картинке.
[124] Процедура декодирования видео/изображения на основе интер-предсказания может включать в себя, например, следующее.
[125] Фиг. 5 показывает пример способа декодирования видео/изображения на основе интер-предсказания.
[126] Со ссылкой на фиг. 5, устройство декодирования может выполнять операцию, соответствующую операции, выполняемой в устройстве кодирования. Устройство декодирования может выполнять предсказание на текущем блоке на основе принятой информации предсказания и выводить выборки предсказания.
[127] Конкретно устройство декодирования может определять режим предсказания для текущего блока на основе принятой информации предсказания (S500). Устройство декодирования может определять, какой режим интер-предсказания применяется к текущему блоку, на основе информации режима предсказания в информации предсказания.
[128] Например, устройство декодирования может определять, применяется ли режим объединения к текущему блоку, или определен ли режим (A)MVP на основе флага объединения. Альтернативно, один из различных кандидатов режима интер-предсказания может выбираться на основе индекса режима. Кандидаты режима интер-предсказания могут включать в себя режим пропуска, режим объединения и/или режим (A)MVP или могут включать в себя различные режимы интер-предсказания, описанные ниже.
[129] Устройство декодирования выводит информацию движения текущего блока на основе определенного режима интер-предсказания (S510). Например, когда режим пропуска или режим объединения применяется к текущему блоку, устройство декодирования может конфигурировать список кандидатов объединения, который будет описан далее, и выбирать один из кандидатов объединения, включенных в список кандидатов объединения. Выбор может выполняться на основе информации выбора (индекса объединения) выше. Информация движения текущего блока может выводиться с использованием информации движения выбранного кандидата объединения. Информация движения выбранного кандидата объединения может использоваться как информация движения текущего блока.
[130] В качестве другого примера, когда режим (A)MVP применяется к текущему блоку, устройство декодирования может конфигурировать список кандидатов (A)MVP, который будет описан далее, и использовать вектор движения кандидата mvp, выбранного из кандидатов mvp, включенных в список кандидатов (A)MVP, как mvp текущего блока. Выбор может выполняться на основе вышеописанной информации выбора (флага mvp или индекса mvp). В этом случае, MVD текущего блока может выводиться на основе информации о MVD, и вектор движения текущего блока может выводиться на основе mvp и MVD текущего блока. К тому же, индекс опорной картинки текущего блока может выводиться на основе информации индекса опорной картинки. Картинка, указанная индексом опорной картинки в списке опорных картинок для текущего блока, может выводиться как опорная картинка, на которую ссылаются для интер-предсказания текущего блока.
[131] Между тем, как описано ниже, информация движения текущего блока может выводиться без конфигурирования списка кандидатов, и в этом случае, информация движения текущего блока может выводиться в соответствии с процедурой, раскрытой в режиме предсказания, которая будет описана далее. В этом случае, конфигурация списка кандидатов, как описано выше, может опускаться.
[132] Устройство декодирования может генерировать выборки предсказания для текущего блока на основе информации движения текущего блока (S520). В этом случае, опорная картинка может выводиться на основе индекса опорной картинки текущего блока, и выборки предсказания текущего блока могут выводиться с использованием выборок опорного блока, указанного вектором движения текущего блока на опорной картинке. В этом случае, как описано ниже, процедура фильтрации выборок предсказания может дополнительно выполняться на всех или некоторых из выборок предсказания текущего блока.
[133] Например, интер-предсказатель устройства декодирования может включать в себя определитель режима предсказания, модуль вывода информации движения и модуль вывода выборок предсказания. Режим предсказания для текущего блока может определяться на основе информации режима предсказания, принятой от определителя режима предсказания, информация движения (вектор движения и/или индекс опорной картинки и т. д.) текущего блока может выводиться на основе информации об информации движения, принятой от устройства вывода информации движения, и модуль вывода выборок предсказания может выводить выборки предсказания текущего блока.
[134] Устройство декодирования генерирует остаточные выборки для текущего блока на основе принятой информации остатка (S530). Устройство декодирования может генерировать восстановленные выборки для текущего блока на основе выборок предсказания и остаточных выборок и генерировать восстановленную картинку на основе восстановленных выборок (S540). После этого, может дополнительно применяться процедура внутриконтурной фильтрации или тому подобное, как описано выше.
[135] Фиг. 6 показывает примерную процедуру интер-предсказания.
[136] Со ссылкой на фиг. 6, как описано выше, процедура интер-предсказания может включать в себя определение режима интер-предсказания, вывод информации движения в соответствии с определенным режимом предсказания и выполнение предсказания на основе выведенной информации движения (генерацию выборки предсказания). Процедура интер-предсказания может выполняться устройством кодирования и устройством декодирования, как описано выше. В настоящем документе, устройство кодирования может включать в себя устройство кодирования и/или устройство декодирования.
[137] Со ссылкой на фиг. 6, устройство кодирования определяет режим интер-предсказания для текущего блока (S600). Различные режимы интер-предсказания могут использоваться для предсказания текущего блока в картинке. Например, могут использоваться различные режимы, такие как режим объединения, режим пропуска, режим предсказания вектора движения (MVP), аффинный режим, режим объединения подблоков и режим объединения с MVD (MMVD) и тому подобное. Режим уточнения вектора движения стороны декодера (DMVR), режим адаптивного разрешения вектора движения (AMVR), bi-предсказание с весом уровня CU (BCW), двунаправленный оптический поток (BDOF) и тому подобное могут также использоваться как дополнительные режимы дополнительно или вместо них. Аффинный режим может называться режимом предсказания аффинного движения. Режим MVP может называться режимом расширенного предсказания вектора движения (AMVP). В настоящем документе, некоторые режимы и/или кандидаты информации движения, выведенные некоторыми режимами, могут быть включены как один из кандидатов информации движения других режимов. Например, кандидат HMVP может добавляться как кандидат объединения в режиме объединения/пропуска или может добавляться как кандидат MVP в режиме MVP. Когда кандидат HMVP используется как кандидат информации движения в режиме объединения или режиме пропуска, кандидат HMVP может называться кандидатом объединения HMVP.
[138] Информация режима предсказания, указывающая режим интер-предсказания текущего блока, может сигнализироваться от устройства кодирования на устройство декодирования. Информация режима предсказания может быть включена в битовый поток и приниматься устройством декодирования. Информация режима предсказания может включать в себя информацию индекса, указывающую один из множества режимов-кандидатов. Альтернативно, режим интер-предсказания может указываться через иерархическую сигнализацию информации флага. В этом случае, информация режима предсказания может включать в себя один или более флагов. Например, флаг пропуска может сигнализироваться, чтобы указать, применяется ли режим пропуска, и, если режим пропуска не применяется, флаг объединения может сигнализироваться, чтобы указать, применяется ли режим объединения, и, если режим объединения не применяется, указывается применить режим MVP, или флаг для дополнительной классификации может дополнительно сигнализироваться. Аффинный режим может сигнализироваться в независимом режиме или может сигнализироваться в режиме, зависимом от режима объединения или режима MVP. Например, аффинный режим может включать в себя аффинный режим объединения и аффинный режим MVP.
[139] Между тем, информация, указывающая, используется ли предсказание list0 (L0), предсказание list1 (L1) или bi-предсказание, описанные выше, в текущем блоке (текущей единице кодирования), может сигнализироваться в текущем блоке. Информация может называться информацией направления предсказания движения, информацией направления интер-предсказания или информацией указания интер-предсказания и может конфигурироваться/кодироваться/сигнализироваться, например, в форме синтаксического элемента inter_pred_idc. То есть синтаксический элемент inter_pred_idc может указывать, используется ли вышеупомянутое предсказание list0 (L0), предсказание list1 (L1) или bi-предсказание для текущего блока (текущей единицы кодирования). В настоящем документе, для удобства описания, тип интер-предсказания (L0 предсказание, L1 предсказание или BI-предсказание), указанный синтаксическим элементом inter_pred_idc, может указываться как направление предсказания движения. L0 предсказание может быть представлено как pred_L0, L1 предсказание как pred_L1, и bi-предсказание как pred_BI.
[140] [Таблица 1]
[141] Как описано выше, одна картинка может включать в себя одну или несколько вырезок. Вырезка может иметь один из типов вырезки, включая интра- (I) вырезку, предиктивную (P) вырезку и bi-предиктивную (B) вырезку. Тип вырезки может указываться на основе информации типа вырезки. Для блоков в вырезке I, интер-предсказание может не использоваться для предсказания, и только интра-предсказание может использоваться. Разумеется, даже в этом случае, исходное значение выборки может кодироваться и сигнализироваться без предсказания. Интра-предсказание или интер-предсказание могут использоваться для блоков в вырезке P, и может использоваться только uni- (однонаправленное) предсказание, когда используется интер-предсказание. Между тем, интра-предсказание или интер-предсказание могут использоваться для блоков в вырезке B, и вплоть до bi-предсказания может использоваться, когда используется интер-предсказание.
[142] L0 и L1 могут включать в себя опорные картинки, которые являются ранее закодированными/декодированными до текущей картинки. Например, L0 может включать в себя опорные картинки до и/или после текущей картинки в порядке POC, и L1 может включать в себя опорные картинки до и/или после текущей картинки в порядке POC. В этом случае, L0 может назначаться более низкий индекс опорной картинки относительно предыдущих опорных картинок в порядке POC, чем текущие опорные картинки, и L1 может назначаться более низкий индекс опорной картинки относительно предыдущих опорных картинок в порядке POC, чем текущая картинка. В случае В-вырезки, может применяться bi-предсказание, и в этом случае может применяться однонаправленное bi-предсказание или двунаправленное bi-предсказание. Двунаправленное bi-предсказание может называться истинным bi-предсказанием.
[143] Следующая таблица показывает синтаксис для единицы кодирования в соответствии с вариантом осуществления настоящего документа.
[144] [Таблица 2]
[145]
[146]
[147]
[148]
[149] Со ссылкой на таблицу, general_merge_flag может указывать, что общее объединение доступно, и когда значение general_merge_flag равно 1, могут быть доступны регулярный режим объединения, режим mmvd и режим объединения подблока (subblock merge mode). Например, когда значение general_merge_flag равно 1, синтаксис данных объединения может анализироваться из закодированной информации видео/изображения (или битового потока), и синтаксис данных объединения может конфигурироваться/кодироваться, чтобы включать информацию, как показано в следующей таблице.
[150] [Таблица 3]
[151] Устройство кодирования выводит информацию движения для текущего блока (S610). Информация движения может выводиться на основе режима интер-предсказания.
[152] Интер-предсказание может выполняться с использованием информации движения текущего блока. Устройство кодирования может выводить информацию оптимального движения для текущего блока через процедуру оценки движения. Например, устройство кодирования может выполнять поиск аналогичного опорного блока с высокой корреляцией в единицах дробных пикселов в пределах предопределенного диапазона поиска в опорной картинке с использованием исходного блока в исходной картинке для текущего блока, тем самым выводя информацию движения. Сходство блоков может выводиться на основе разности значений выборки на основе фазы. Например, сходство блоков может вычисляться на основе SAD между текущим блоком (или шаблоном текущего блока) и опорным блоком (или шаблоном опорного блока). В этом случае, информация движения может выводиться на основе опорного блока с наименьшим SAD в области поиска. Выведенная информация движения может сигнализироваться на устройство декодирования в соответствии с различными способами на основе режима интер-предсказания.
[153] Устройство кодирования выполняет интер-предсказание на основе информации движения о текущем блоке (S620). Устройство кодирования может выводить выборку(и) предсказания для текущего блока на основе информации движения. Текущий блок, включающий в себя выборки предсказания, может называться предсказанным блоком.
[154] Когда применяется режим объединения, информация движения текущего блока предсказания не передается непосредственно, а информация движения текущего блока предсказания выводится с использованием информации движения соседнего блока предсказания. Соответственно, информация движения текущего блока предсказания может указываться путем передачи информации флага, указывающей, что режим объединения используется, и индекса объединения, указывающего, какие соседние блоки предсказания используется. Режим объединения может называться регулярным режимом объединения.
[155] Чтобы выполнить режим объединения, кодер должен выполнить поиск блока кандидата объединения, используемого, чтобы вывести информацию движения текущего блока предсказания. Например, до пяти блоков кандидата объединения могут использоваться, но варианты осуществления настоящего документа не ограничены этим. Максимальное число блоков кандидата объединения может передаваться в заголовке вырезки или заголовке группы мозаичных элементов, и варианты осуществления в настоящем документе не ограничены этим. После нахождения блоков кандидата объединения, кодер может генерировать список кандидатов объединения и выбирать блок кандидата объединения с наименьшей стоимостью в качестве окончательного блока кандидата объединения.
[156] Список кандидатов объединения может использовать, например, пять блоков кандидата объединения. Например, могут использоваться четыре пространственных кандидата объединения и один временной кандидат объединения. Далее, пространственный кандидат объединения или пространственный кандидат MVP, который будет описан ниже, может называться SMVP, и временной кандидат объединения или временной кандидат MVP, который будет описан ниже, может называться TMVP.
[157] Далее описывается способ конструирования списка кандидатов объединения в соответствии с данным документом.
[158] Устройство кодирования (кодер/декодер) вставляет пространственные кандидаты объединения, выведенные путем поиска пространственных соседних блоков текущего блока, в список кандидатов объединения. Например, пространственные соседние блоки могут включать в себя нижний левый угловой соседний блок, левый соседний блок, верхний-правый угловой соседний блок, верхний соседний блок и верхний-левый угловой соседний блок текущего блока. Однако это только пример, и в дополнение к вышеописанным пространственным соседних блоков, дополнительные соседние блоки, такие как правый соседний блок, нижний соседний блок и нижний правый соседний блок, могут быть дополнительно использованы в качестве пространственных соседних блоков. Устройство кодирования может обнаруживать доступные блоки путем поиска пространственных соседних блоков на основе приоритета и может выводить информацию движения обнаруженных блоков как пространственных кандидатов объединения.
[159] Устройство кодирования вставляет временные кандидаты объединения, выведенные путем поиска временного соседнего блока текущего блока, в список кандидатов объединения. Временной соседний блок может быть расположен в опорной картинке, которая представляет собой картинку, отличную от текущей картинки, в которой расположен текущий блок. Опорная картинка, в которой расположен временной соседний блок, может называться совместно расположенной (collocated) картинкой или col-картинкой. Поиск временного соседнего блока может производиться в порядке от нижнего правого углового соседнего блока и нижнего правого центрального блока совместно расположенного блока для текущего блока на col-картинке. Между тем, когда применяется сжатие данных движения, конкретная информация движения может быть сохранена в качестве репрезентативной информации движения для каждой предопределенной единицы хранения в col-картинке. В этом случае, не обязательно сохранять информацию движения для всех блоков в предопределенной единице хранения, тем самым получая эффект сжатия данных движения. В этом случае, предопределенная единица хранения может быть определена заранее, например, в единицах выборки 16×16, единиц выборки 8×8 или тому подобном, или информация размера для предопределенной единицы хранения может сигнализироваться от кодера на декодер. Когда применяется сжатие данных движения, информация движения временного соседнего блока может быть заменена на репрезентативную информацию движения предопределенной единицы хранения, в которой расположен временной соседний блок. То есть в этом случае, с точки зрения реализации, предопределенное значение арифметически сдвигается вправо на основе координат (положения верхней левой выборки) временного соседнего блока, и затем, временной кандидат объединения может быть выведен на основе информации движения блока предсказания, покрывающего арифметически сдвинутое влево положение. Например, в случае, когда единица выборки, имеющая предопределенную единицу хранения, равна 2n×2n, если координаты временного соседнего блока равны (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)), может быть использована для временного кандидата объединения.
[160] Устройство кодирования может определять, является ли число текущих кандидатов объединения меньшим, чем максимальное число кандидатов объединения. Максимальное число кандидатов объединения может предварительно определяться или сигнализироваться от кодера на декодер. Например, кодер может генерировать информацию о максимальном числе кандидатов объединения, кодировать эту информацию и передавать закодированную информацию на декодер в форме битового потока. Если максимальное число кандидатов объединения заполнено, последующий процесс добавления кандидатов не может выполняться.
[161] В результате проверки, если число текущих кандидатов объединения меньше, чем максимальное число кандидатов объединения, то устройство кодирования вставляет дополнительные кандидаты объединения в список кандидатов объединения.
[162] В результате проверки, если число текущих кандидатов объединения не меньше, чем максимальное число кандидатов объединения, то устройство кодирования может завершать конструирование списка кандидатов объединения. В этом случае, кодер может выбрать оптимальный кандидат объединения среди кандидатов объединения, конфигурирующих список кандидатов объединения, на основе стоимости по критерию скорость-искажение (RD), и сигнализировать информацию (например, индекс объединения), указывающую выбранный кандидат объединения, на декодер. Декодер может выбрать оптимальный кандидат объединения на основе списка кандидатов объединения и информации выбора.
[163] Информация движения выбранного кандидата объединения может быть использована как информация движения текущего блока, и выборки предсказания текущего блока могут быть выведены на основе информации движения текущего блока. Кодер может выводить остаточные выборки текущего блока на основе выборок предсказания и может сигнализировать остаточную информацию об остаточных выборках на декодер. Декодер может генерировать восстановленные выборки на основе остаточных выборок и предсказанных выборок, выведенных на основе остаточной информации, и генерировать восстановленную картинку на ее основе, как описано выше.
[164] Когда применяется режим пропуска, информация движения текущего блока может выводиться таким же образом, как в случае, когда применяется режим объединения. Однако когда применяется режим пропуска, остаточный сигнал для соответствующего блока опускается, и, таким образом, выборки предсказания могут использоваться как восстановленные выборки.
[165] Когда применяется режим MVP, список кандидатов предсказателя вектора движения (mvp) может генерироваться с использованием вектора движения восстановленного пространственного соседнего блока и/или вектора движения временного соседнего блока (или Col-блока). То есть, вектор движения, соответствующий восстановленному пространственному соседнему блоку, и/или вектор движения, соответствующий временному соседнему блоку, может использоваться как кандидат предсказателя вектора движения. Когда применяется bi- предсказание, список кандидатов mvp для выведения L0 информации движения и список кандидатов mvp для выведения L1 информации движения могут генерироваться и использоваться отдельно. Вышеописанная информация предсказания (или информация о предсказании) может включать информацию выбора (например, флаг MVP или индекс MVP), указывающую оптимальный кандидат предсказателя вектора движения, выбранный из кандидатов предсказателя вектора движения, включенных в список. В этом случае, предсказатель может выбрать предсказатель вектора движения текущего блока среди кандидатов предсказателя вектора движения, включенных в список кандидатов вектора движения, с использованием информации выбора. Предсказатель устройства кодирования может получать разность векторов движения (MVD) между вектором движения текущего блока и предсказателем вектора движения, кодировать ее и выводить в форме битового потока. То есть, MVD может быть получена как значение, полученное вычитанием предсказателя вектора движения из вектора движения текущего блока. В этом случае, предсказатель устройства декодирования может получать разность векторов движения, включенную в информацию о предсказании, и выводить вектор движения текущего блока путем суммирования разности векторов движения и предсказателя вектора движения. Предсказатель устройства декодирования может получать или выводить индекс опорной картинки, указывающий опорную картинку, из информации о предсказании.
[166] Далее описывается способ конструирования списка кандидатов предсказателя вектора движения в соответствии с данным документом.
[167] Вариант осуществления может сначала выполнять поиск пространственного блока кандидата для предсказания вектора движения и вставлять его в список кандидатов предсказания. Затем, вариант осуществления может определять, является ли число пространственных блоков кандидатов меньшим, чем два. Например, в варианте осуществления, когда число пространственных блоков кандидатов меньше, чем 2, может выполняться поиск временного блока кандидата и дополнительно вставляться в список кандидатов предсказания, а когда временной блок кандидата недоступен, может использоваться нулевой вектор движения. То есть, нулевой вектор движения может дополнительно вставляться в список кандидатов предсказания. Затем, вариант осуществления может завершать конструирование предварительного списка кандидатов. Альтернативно, в соответствии с вариантом осуществления, когда число пространственных блоков кандидатов не меньше двух, конструирование предварительного списка кандидатов может завершаться. Здесь, предварительный список кандидатов может указывать список кандидатов mvp.
[168] Между тем, когда применяется режим MVP, индекс опорной картинки может сигнализироваться явным образом. В этом случае, индекс опорной картинки refidxL0 для L0 предсказания и индекс опорной картинки refidxL1 для L1 предсказания может сигнализироваться отдельно. Например, когда применяется режим MVP и применяется BI-предсказание, может сигнализироваться информация о refidxL0 и информация о refidxL1.
[169] Когда применяется режим MVP, как описано выше, информация о MVD, выведенная из устройства кодирования, может сигнализироваться на устройство декодирования. Информация о MVD может включать, например, информацию, представляющую x- и y-компоненты абсолютного значения MVD и знак. В этом случае, информация, указывающая, является ли абсолютное значение MVD большим, чем 0, и большим, чем 1, и остаток MVD, может сигнализироваться поэтапно. Например, информация, указывающая, является ли абсолютное значение MVD большим, чем 1, может сигнализироваться, только когда значение информации флага, указывающей, является ли абсолютное значение большим, чем 0, равно 1.
[170] Например, информация о MVD может конфигурироваться как следующий синтаксис, кодироваться в устройстве кодирования и сигнализироваться на устройство декодирования.
[171] [Таблица 4]
[172] Например, в таблице 4, синтаксический элемент abs_mvd_greater0_flag может указывать информацию о том, является ли разность MVD большей, чем 0, и синтаксический элемент abs_mvd_greater1_flag может указывать информацию о том, является ли разность MVD большей, чем 1. Также синтаксический элемент abs_mvd_minus2 может указывать информацию о значении, полученном посредством -2 от разности MVD, и синтаксический элемент mvd_sign_flag может указывать информацию о знаке разности MVD. Кроме того, в таблице 4, [0] каждого синтаксического элемента может указывать информацию о L0, и [1] может указывать информацию о L1.
[173] Например, MVD[compIdx] может выводиться на основе abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2 *mvd_sign_flag[compIdx]). Здесь, compIdx (или cpIdx) представляет индекс каждого компонента и может иметь значение 0 или 1. compIdx 0 может указывать x-компонент, и compIdx 1 может указывать y-компонент. Однако это всего лишь пример, и значения каждого компонента могут быть выражены с использованием системы координат иной, чем система координат x и y.
[174] Между тем, MVD (MVDL0) для L0 предсказания и MVD (MVDL1) для L1 предсказания могут сигнализироваться отдельно, и информация о MVD может включать информацию о MVDL0 и/или информацию о MVDL1. Например, когда режим MVP применяется к текущему блоку, и применяется BI-предсказание, то может сигнализироваться информация о MVDL0 и информация о MVDL1.
[175] Фиг. 7 представляет собой диаграмму, описывающую симметричные разности векторов движения (SMVD).
[176] Когда применяется BI-предсказание, симметричная MVD может использоваться с учетом эффективности кодирования. В этом случае, сигнализация некоторой из информации движения может быть опущена. Например, когда симметричная MVD применяется к текущему блоку, информация о refidxL0, информация о refidxL1 и информация о MVDL1 может не сигнализироваться от устройства кодирования на устройство декодирования и может выводиться внутренним образом. Например, когда режим MVP и BI-предсказание применяются к текущему блоку, может сигнализироваться информация флага (например, информация флага симметричной MVD или синтаксический элемент sym_mvd_flag), указывающая, следует ли применять симметричную MVD, и когда значение информации флага равно 1, устройство декодирования может определить, что симметричная MVD применяется к текущему блоку.
[177] Когда применяется режим симметричной MVD (т. е., значение информации флага симметричной MVD равно 1), информация о mvp_l0_flag, mvp_l1_flag и MVDL0 может сигнализироваться явным образом, и, как описано выше, сигнализация информации о refidxL0, информации о refidxL1 и информации о MVDL1 может опускаться и выводиться внутренним образом. Например, refidxL0 может выводиться как индекс, указывающий предыдущую опорную картинку, ближайшую к текущей картинке в порядке POC в списке 0 опорных картинок (который может называться списком 0 или L0). refidxL1 может выводиться как индекс, указывающий следующую опорную картинку, ближайшую к текущей картинке в порядке POC в списке 1 опорных картинок (который может называться списком 1 или L1). Или, например, refidxL0 и refidxL1 могут оба выводиться как 0. Или, например, refidxL0 и refidxL1 могут выводиться как минимальные индексы, имеющие ту же самую разность POC по отношению к текущей картинке. В частности, например, когда [POC текущей картинки]-[POC первой опорной картинки, указанной посредством refidxL0] является первой разностью POC и [POC второй опорной картинки, указанной посредством refidxL1] является второй разностью POC, только если первая разность POC и вторая разность POC однаковы, значение refidxL0, указывающее первую опорную картинку, может выводиться как значение refidxL0 текущего блока, и значение refidxL1, указывающее вторую опорную картинку, может выводиться как значение refidxL1 текущего блока. Кроме того, например, когда имеется множество наборов, в которых первая разность POC и вторая разность POC одинаковы, refidxL0 и refidxL1 набора, имеющего минимальную разность, могут выводиться как refidxL0 и refidxL1 текущего блока.
[178] Со ссылкой на фиг. 7, показаны список 0 опорных картинок, список 1 опорных картинок и MVDL0 и MVDL1. Здесь, MVDL1 симметрична MVDL0.
[179] MVDL1 может выводиться как отрицательная (-)MVDL0. Например, окончательная (улучшенная или модифицированная) информация движения (вектор движения; MV) для текущего блока может выводиться на основе следующего уравнения.
[180] [Уравнение 1]
[181] В Уравнении 1, mvx0 и mvy0 могут представлять x-компонент и y-компонент L0 информации движения или вектора движения для L0 предсказания, и mvx1 и mvy1 могут представлять x-компонент и y-компонент L1 информации движения или вектора движения для L1 предсказания. Также, mvx0 и mvy0 могут представлять x-компонент и y-компонент предсказателя вектора движения для L0 предсказания, и mvx1 и mvy1 могут представлять x-компонент и y-компонент предсказателя вектора движения для L1 предсказания. Также, mvx0 и mvy0 могут представлять x-компонент и y-компонент разности векторов движения для L0 предсказания.
[182] Между тем, режим MMVD является способом применения разности векторов движения (MVD) к режиму объединения и информация движения, непосредственно используемая для генерации выборок предсказания текущего блока (т.е. текущей CU) может выводиться неявным образом. Например, флаг MMVD (т. е. mmvd_flag), указывающий, следует ли использовать MMVD для текущего блока (т. е. текущей CU), может сигнализироваться, и MMVD может выполняться на основе этого флага MMVD. Когда MMVD применяется к текущему блоку (т. е. когда mmvd_flag равен 1), дополнительная информация о MMVD может сигнализироваться.
[183] Здесь, дополнительная информация о MMVD включает флаг кандидата объединения (т. е. mmvd_cand_flag), указывающий, используется ли первый кандидат или второй кандидат в списке кандидатов объединения вместе с MVD, и индекс расстояния (т. е. mmvd_distance_idx) для указания величины движения и индекс направления (т. е. mmvd_direction_idx) для указания направления движения.
[184] В режиме MMVD, два кандидата, находящиеся в первой и второй записях, среди кандидатов в списке кандидатов объединения (т. е. первый кандидат или второй кандидат) могут использоваться, и могут использоваться эти два кандидата (т. е. первый кандидат или второй кандидат). Один из них может использоваться как базовый MV. Например, флаг кандидата объединения (т. е. mmvd_cand_flag) может сигнализироваться, чтобы указывать любой один из двух кандидатов (т. е. первый кандидат или второй кандидат) в списке кандидатов объединения.
[185] Кроме того, индекс расстояния (т. е. mmvd_distance_idx) специфицирует информацию величины движения и указывает предопределенное смещение от начальной точки. Смещение может быть добавлено к горизонтальному компоненту или вертикальному компоненту начального MV. Отношение индекса расстояния и предопределенного смещения специфицируется в следующей таблице.
[186] [Таблица 5]
[187] Со ссылкой на таблицу 5 выше, расстояние MVD (т. е. MmvdDistance) определяется согласно значению индекса расстояния (т. е. mmvd_distance_idx), и расстояние MVD (т. е. MmvdDistance) может выводиться с использованием точности целочисленной выборки или точности дробной выборки на основе значения tile_group_fpel_mmvd_enabled_flag. Например, когда tile_group_fpel_mmvd_enabled_flag равен 1, это указывает, что это расстояние MVD выводится с использованием точности целочисленной выборки в текущей группе мозаичных элементов (или заголовке картинки), и когда tile_group_fpel_mmvd_enabled_flag равен 0, это указывает, что расстояние MVD выводится с использованием точности дробной выборки в группе мозаичных элементов (или заголовке картинки). В таблице 1, информация (флаг) для группы мозаичных элементов может быть заменена информацией для заголовка картинки, например, tile_group_fpel_mmvd_enabled_flag может заменяться на ph_fpel_mmvd_enabled_flag (или ph_mmvd_fullpel_only_flag).
[188] Кроме того, индекс направления (т. е. mmvd_direction_idx) указывает направление MVD относительно начальной точки и может указывать четыре направления, как показано в таблице 6 ниже. В этом случае, направление MVD может указывать знак MVD. Отношение между индексом направления и знаком MVD может быть выражено, как в следующей таблице.
[189] [Таблица 6]
[190] Со ссылкой на таблицу 6, знак MVD (т. е. MmvdSign) определяется в соответствии со значением индекса направления (т. е. mmvd_direction_idx), и знак MVD (т. е. MmvdSign) может выводиться для L0 опорной картинки и L1 опорной картинки.
[191] На основе вышеописанного индекса расстояния (т. е. mmvd_distance_idx) и индекса направления (т. е. mmvd_direction_idx), смещение MVD может вычисляться с использованием следующих уравнений.
[192] [Уравнение 2]
[193] [Уравнение 3]
[194] В Уравнениях 2 и 3, расстояния MMVD (MmvdDistance[x0][y0]) и знаки MMVD (MmvdSign[x0][y0][0], MmvdSign[x0][y0][1]) могут выводиться на основе таблицы 5 и/или таблицы 6. В общем, в режиме MMVD, кандидат объединения, указываемый флагом кандидата объединения (например, mmvd_cand_flag), выбирается из кандидатов объединения в списке кандидатов объединения, выводимом на основе соседних блоков, и выбранный кандидат объединения используется как базовый кандидат (т. е. MVP). Кроме того, информация движения (т. е. вектор движения) текущего блока может выводиться путем суммирования MVD, полученной с использованием индекса расстояния (например, mmvd_distance_idx) и индекса направления (т. е. mmvd_direction_idx), на основе базового кандидата.
[195] Предсказанный блок для текущего блока может выводиться на основе информации движения, выведенной в соответствии с режимом предсказания. Предсказанный блок может включать выборки предсказания (массив выборок предсказания) текущего блока. Когда вектор движения текущего блока указывает единицу дробных выборок, может выполняться процедура интерполяции, посредством которой выборки предсказания текущего блока могут выводиться на основе опорных выборок в единице дробных выборок в опорной картинке. Когда применяется bi-предсказание, выборки предсказания, выведенные посредством взвешивания или взвешенного усреднения (в соответствии с фазой) выборок предсказания, выведенных на основе L0 предсказания (то есть, предсказания с использованием опорной картинки и MVL0 в списке L0 опорных картинок), и выборок предсказания, выведенных на основе L1 предсказания (то есть, предсказания с использованием опорной картинки и MVL1 в списке L1 опорных картинок), могут использоваться как выборки предсказания текущего блока. Когда применяется bi-предсказание, если опорная картинка, используемая для L0 предсказания, и опорная картинка, используемая для L1 предсказания, расположены в разных временных направлениях относительно текущей картинки (т. е. bi-предсказание и двунаправленное предсказание), оно может называться истинным bi-предсказанием.
[196] Как описано выше, восстановленные выборки и восстановленные картинки могут генерироваться на основе выведенных выборок предсказания, и затем могут выполняться такие процедуры, как внутриконтурная фильтрация.
[197] Как описано выше, в соответствии с данным документом, когда bi-предсказание применяется к текущему блоку, выборки предсказания могут выводиться на основе взвешенного среднего. Обычно, сигнал bi-предсказания (т. е. выборки bi-предсказания) могут выводиться посредством простого усреднения сигнала L0 предсказания (выборок L0 предсказания) и сигнала L1 предсказания (выборок L1 предсказания). То есть, выборки bi-предсказания выводились как среднее выборок L0 предсказания на основе L0 опорной картинки и MVL0 и выборок L1 предсказания на основе L1 опорной картинки и MVL1. Однако, в соответствии с данным документом, когда применяется bi-предсказание, сигнал bi-предсказания (выборки bi-предсказания) могут выводиться посредством взвешенного усреднения сигнала L0 предсказания и сигнала L1 предсказания следующим образом.
[198] В вышеописанных вариантах осуществления, относящихся к MMVD, может быть предложен способ, который учитывает долговременную опорную картинку в процессе выведения MVD для MMVD, тем самым поддерживая и увеличивая эффективность сжатия в различных применениях. Кроме того, способ, предложенный в вариантах осуществления данного документа, может равным образом применяться к SMVD, которая представляет собой технологию симметричной MVD, используемую в интер-режиме (режиме MVP), в дополнение к технологии MMVD, используемой в MERGE.
[199] Фиг. 8 является схемой для описания способа выведения векторов движения в интер-предсказании.
[200] В варианте осуществления данного документа, используется способ выведения MV с учетом долговременной опорной картинки в процессе масштабирования временного кандидата движения (временного кандидата движения, временного кандидата объединения или временного кандидата mvp). Временной кандидат движения может соответствовать mvCol (mvLXCol). Временной кандидат движения может упоминаться как TMVP.
[201] Следующая таблица описывает определение долговременной опорной картинки.
[202] [Таблица 7]
[203] Со ссылкой на таблицу 7 выше, если LongTermRefPic(aPic, aPb, refIdx, LX) равно 1 (истинно), соответствующая опорная картинка может быть маркирована как используемая для долговременной опоры. Например, опорная картинка, не маркированная как используемая для долговременной опоры, может быть опорной картинкой, маркированной как используемая для кратковременной опоры. В другом примере, опорная картинка, не маркированная как используемая для долговременной опоры и не маркированная как не используемая, может быть опорной картинкой, маркированной как используемая для кратковременной опоры. Далее, опорная картинка, маркированная как используемая для долговременной опоры, может упоминаться как долговременная опорная картинка, и опорная картинка, маркированная как используемая для кратковременной опоры, может упоминаться как кратковременная опорная картинка.
[204] Следующая таблица описывает выведение TMVP (mvLXCol).
[205] [Таблица 8]
[206] Со ссылкой на фиг. 8 и таблицу 8, когда тип опорной картинки, указываемой текущей картинкой (например, указывающий, является ли долговременная опорная картинка (LTRP) или кратковременная опорная картинка (STRP)) тем же типом, что и тип совместно расположенной опорной картинки, указываемой совместно расположенной картинкой, временной вектор движения mvLXCol не используется. То есть когда все из них являются долговременными опорными картинками или кратковременными опорными картинками, то выводится colMV, в противном случае, colMV не выводится. Кроме того, в случае, когда все из них являются долговременными опорными картинками, и в случае, когда разность POC между текущей картинкой и опорной картинкой текущей картинки является той же, что и разность POC между совместно расположенной картинкой и опорной картинкой совместно расположенной картинки, совместно расположенный вектор движения может использоваться как есть, без масштабирования. Если кратковременная опорная картинка и разность POC различаются, вектор движения совместно расположенного блока используется после масштабирования.
[207] В варианте осуществления данного документа, MMVD, используемая в режиме MERGE/SKIP, сигнализирует индекс базового вектора движения (индекс базового MV), индекс расстояния и индекс направления для одного блока кодирования как информацию для выведения информации MVD. В случае однонаправленного предсказания, MVD выводится из информации движения и в случае двунаправленного предсказания, информация симметричной MVD генерируется с использованием способа зеркального отражения и масштабирования.
[208] В случае двунаправленного предсказания, информация MVD для L0 или L1 масштабируется для генерации MVD L1 или L0. Однако при ссылке на долговременную опорную картинку, это требует модификации в процессе выведения MVD.
[209] Фиг. 9 - фиг. 13 показывают способы выведения MVD для MMVD в соответствии с вариантами осуществления настоящего документа. Способы, показанные на фиг. 9 - фиг. 13, могут предназначаться для блока, к которому применяется двунаправленное предсказание.
[210] В одном варианте осуществления в соответствии с фиг. 9, когда расстояние до L0 опорной картинки и расстояние до L1 опорной картинки одинаковы, выведенное MmvdOffset может использоваться в качестве MVD как есть, разности POC (разность POC между опорной картинкой L0 и текущей картинкой и разность POC между опорной картинкой L1 и текущей картинкой) являются различными, MVD может выводиться путем масштабирования или зеркального отображения выборки (т. е. -1*MmvdOffset) в соответствии с разностью POC и тем, является ли она долговременной или кратковременной опорной картинки.
[211] В одном примере, способ выведения симметричной MVD с использованием MMVD для блока, к которому применяется bi- предсказание, не подходит для блока, использующего долговременную опорную картинку. Трудно ожидать улучшения характеристик. Соответственно, на последующих чертежах и в вариантах осуществления, вводится пример, в котором MMVD не применяется, когда типы опорных картинок L0 и L1 различны.
[212] В одном варианте осуществления в соответствии с фиг. 10, способ для выведения MVD может быть различным в соответствии с тем, является ли опорная картинка, на которую ссылается текущая картинка (или текущая вырезка, текущий блок), долговременной опорной картинкой (LTRP) или кратковременной опорной картинкой (STRP). В одном примере, когда применяется способ согласно варианту осуществления в соответствии с фиг. 10, часть документа стандарта в соответствии с настоящим вариантом осуществления может быть описана, как показано в следующей таблице.
[213] [Таблица 9]
[214]
[215] В одном варианте осуществления в соответствии с фиг. 11, способ для выведения MVD может быть различным в соответствии с тем, является ли опорная картинка, на которую ссылается текущая картинка (или текущая вырезка, текущий блок), долговременной опорной картинкой (LTRP) или кратковременной опорной картинкой (STRP). В примере, когда применяется способ согласно варианту осуществления в соответствии с фиг. 11, часть документа стандарта в соответствии с настоящим вариантом осуществления может быть описана, как показано в следующей таблице.
[216] [Таблица 10]
[217]
[218] В общем, был описан процесс выведения MVD для MMVD, который не выводит MVD, когда типы опорных картинок в каждом направлении различны.
[219] В одном варианте осуществления в соответствии с фиг. 12, MVD может не выводиться во всех случаях ссылок на долговременную опорную картинку. То есть когда по меньшей мере одна опорная картинка L0 и L1 является долговременной опорной картинкой, MVD устанавливается в 0, и MVD может выводиться, только когда включена кратковременная опорная картинка.
[220] В одном примере, на основе условия наивысшего приоритета (RefPicL0 != LTRP && RefPicL1 != STRP), MVD для MMVD может выводиться, когда текущая картинка (или текущая вырезка, текущий блок) ссылается только на кратковременные опорные картинки. В одном примере, когда применяется способ согласно варианту осуществления в соответствии с фиг. 12, часть документа стандарта в соответствии с настоящим вариантом осуществления может быть описана, как показано в следующей таблице.
[221] [Таблица 11]
[222]
[223] В варианте осуществления в соответствии с фиг. 13, когда типы опорной картинки в каждом направлении различаются, MVD выводится, когда получена кратковременная опорная картинка, и MVD выводится в 0, когда включена долговременная опорная картинка.
[224] В одном примере, когда типы опорной картинки в каждом направлении различны, MmvdOffset применяется при ссылке на опорную картинку (кратковременную опорную картинку), которая близка к текущей картинке, и MVD имеет значение 0 при ссылке на опорную картинку (долговременную опорную картинку), которая удалена от текущей картинки. В этом случае, картинка близкая к текущей картинке, может рассматриваться как имеющая кратковременную опорную картинку, но когда ближняя картинка является долговременной опорной картинкой, mmvdOffset может применяться к вектору движения списка, указывающего кратковременную опорную картинку.
[225] [Таблица 12]
[226] Например, четыре абзаца, включенные в таблицу 12, могут последовательно заменять самые нижние блоки (содержимое) блок-схемы последовательности операций, включенных в фиг. 13.
[227] В одном примере, когда применяется способ согласно варианту осуществления в соответствии с фиг. 13, часть документа стандарта в соответствии с настоящим вариантом осуществления может быть описана, как показано в следующей таблице.
[228] [Таблица 13]
[229]
[230] Следующая таблица показывает таблицу сравнения между примерами, включенными в этот документ.
[231] [Таблица 14]
[232] Со ссылкой на таблицу 14, показано сравнение между способами применения смещения с учетом типов опорной картинки для выведения MVD для MMVD, описанных в вариантах осуществления в соответствии с фиг. 9 - фиг. 13. В таблице 14, Вариант осуществления А может относиться к существующей MMVD, Вариант осуществления B может показывать вариант осуществления в соответствии с фиг. 9 - фиг. 11, Вариант осуществления C может показывать вариант осуществления в соответствии с фиг. 12 и Вариант осуществления D может показывать вариант осуществления в соответствии с фиг. 13.
[233] То есть в варианте осуществления в соответствии с фиг. 9, фиг. 10 и фиг. 11 описан способ выведения MVD, только когда типы опорной картинки в обоих направлениях являются одинаковыми, и в варианте осуществления в соответствии с фиг. 12 описан способ выведения MVD, только когда в обоих направлениях имеются кратковременные опорные картинки. В случае варианта осуществления в соответствии с фиг. 12, MVD может быть установлена в 0 в случае долговременной опорной картинки для однонаправленного предсказания. Кроме того, в варианте осуществления в соответствии с фиг. 13, описан способ выведения MVD только в одном направлении, когда типы опорной картинки в обоих направлениях различны. Различия между вариантами осуществления представляют различные признаки методов, описанных в этом документе, и специалистам в данной области техники будет понятно, что результаты, достигаемые вариантами осуществления в соответствии с данным документом, могут быть реализованы на основе признаков.
[234] В варианте осуществления в соответствии с данным документом, когда типом опорной картинки является долговременная опорная картинка, выполняется отдельный процесс. Когда включена долговременная опорная картинка, зеркальное отражение или масштабирование на основе разности POC (POCDiff) не влияет на улучшение характеристик, так что значение MmvdOffset назначается MVD в направлении, имеющем кратковременную опорную картинку, и значение 0 назначается MVD в направлении, имеющем долговременную опорную картинку. В одном примере, когда применяется этот вариант осуществления, часть документа стандарта, соответствующая настоящему варианту осуществления, может быть описана, как показано в следующей таблице.
[235] [Таблица 15]
[236]
[237] В другом примере, часть таблицы 15 может заменяться следующей таблицей. Со ссылкой на таблицу 16, смещение (Offset) может применяться на основе типа опорной картинки иного, чем POCDiff.
[238] [Таблица 16]
[239] В другом примере, часть таблицы 15 может заменяться следующей таблицей. Со ссылкой на таблицу 17, можно всегда установить MmvdOffset в L0 и -MmvdOffset в L1 без учета типа опорной картинки.
[240] [Таблица 17]
[241] В соответствии с вариантом осуществления настоящего документа, SMVD в интер-режиме может выполняться аналогично MMVD, используемой в вышеописанном режиме MERGE (объединение). В случае двунаправленного предсказания, то, выводится ли или нет симметричная MVD, сигнализируется от устройства кодирования на устройство декодирования и когда связанный флаг (например, sym_mvd_flag) соответствует истинно (или значение равно 1). MVD второго направления (т. е. MVDL1) выводится посредством зеркального отображения MVD первого направления (например, MVDL0). В этом случае, масштабирование для MVD первого направления может не выполняться.
[242] Следующие таблицы показывают синтаксис для единицы кодирования в соответствии с вариантом осуществления настоящего документа.
[243] [Таблица 18]
[244] [Таблица 19]
[245] Со ссылкой на таблицы 18 и 19, когда inter_pred_idc == PRED_BI и опорные картинки L0 и L1 доступны (например, RefIdxSymL0>-1 && RefIdxSymL1>-1), сигнализируется sym_mvd_flag.
[246] Следующая таблица показывает процедуру декодирования для опорного индекса MMVD в соответствии с примером.
[247] [Таблица 20]
[248] Со ссылкой на таблицу 20, описана процедура для вывода доступности опорных картинок L0 и L1. То есть если имеется опорная картинка в прямом направлении среди опорных картинок L0, индекс опорной картинки, ближайшей к текущей картинке, устанавливается как RefIdxSymL0, и соответствующее значение устанавливается как опорный индекс L0. Кроме того, когда имеется опорная картинка в прямом направлении среди опорных картинок L1, индекс опорной картинки, ближайшей к текущей картинке, устанавливается как RefIdxSymL1, и соответствующее значение устанавливается как опорный индекс L1.
[249] Таблица 21 ниже показывает процедуру декодирования для опорных индексов MMVD в соответствии с другим примером.
[250] [Таблица 21]
[251] Со ссылкой на таблицу 21, как в варианте осуществления, описанном на фиг. 9, фиг. 10 и фиг. 11, когда типы L0 или L1 опорных картинок различны, то есть если типы L0 и L1 опорных картинок различны после вывода опорного индекса для SMVD, SMVD не используется, чтобы предотвращать SMVD в случае, когда используются долговременная опорная картинка и кратковременная опорная картинка (см. самый нижний абзац таблицы 20).
[252] В варианте осуществления данного документа, SMVD может применяться в интер-режиме подобно MMVD, используемой в режиме объединения. Когда долговременная опорная картинка используется, как в варианте осуществления, описанном на фиг. 12, долговременная опорная картинка может быть исключена из процесса выведения опорного индекса для SMVD, как показано в следующей таблице, чтобы препятствовать SMVD.
[253] [Таблица 22]
[254] Следующая таблица в соответствии с другим примером этого варианта осуществления показывает пример обработки, чтобы не применять SMVD, когда долговременная опорная картинка используется после выведения индекса опорной картинки для SMVD.
[255] [Таблица 23]
[256] В одном варианте осуществления этого документа, в процессе выведения colMV для TMVP, когда тип опорной картинки текущей картинки и тип опорной картинки совместно расположенной картинки различны, вектор движения MV устанавливается в 0, но способ выведения в случае MMVD и SMVD не является тем же самым, как для TMVP, и их необходимо унифицировать.
[257] Даже когда тип опорной картинки для текущей картинки представляет собой долговременную опорную картинку, а тип опорной картинки совместно расположенной картинки представляет собой долговременную опорную картинку, вектор движения использует значение совместно расположенного вектора движения как он есть, но MV может быть установлен в 0 в MMVD и SMVD. В этом случае, TMVP также устанавливает MV в 0 без дополнительного логического вывода.
[258] Кроме того, даже если типы опорной картинки различны, может существовать долговременная опорная картинка с близким расстоянием до текущей картинки. Поэтому, вместо установки MV в 0, colMV может использоваться как MV без масштабирования.
[259] Следующие чертежи представлены для пояснения конкретного примера настоящей спецификации. Поскольку названия конкретных устройств, описанных на чертежах, или названия конкретных сигналов/сообщений/полей представлены для примера, технические признаки настоящей спецификации и не ограничены конкретными названиями, используемыми на следующих чертежах.
[260] Фиг. 14 и 15 иллюстрируют способ кодирования видео/изображения и один пример связанного компонента в соответствии с вариантом(ами) осуществления настоящего раскрытия. Устройство кодирования согласно фиг. 2 может выполнять способ согласно фиг. 14. В частности, например, предсказатель 220 устройства кодирования может выполнять этапы S1400 - S1450 на фиг. 14, и процессор 230 остатка устройства кодирования может выполнять этап S1460. Энтропийный кодер 240 устройства кодирования может выполнять этап S1470. Способ согласно фиг. 14 может включать в себя вариант осуществления настоящего раскрытия, описанный выше.
[261] Со ссылкой на фиг. 14, устройство кодирования выводит режим интер-предсказания для текущего блока в текущей картинке S1400. Здесь, режим интер-предсказание может включать режим объединения, режим AMVP (режим с использованием кандидатов предсказателя вектора движения), MMVD и SMVD.
[262] Устройство кодирования может выводить опорные картинки для режима интер-предсказания. Устройство кодирования может конфигурировать списки опорных картинок для выведения опорных картинок. В одном примере, списки опорных картинок могут включать список 0 опорных картинок (или L0, список L0 опорных картинок) или список L1 опорных картинок 1 (или L1, список L1 опорных картинок). Например, устройство кодирования может конфигурировать списки опорных картинок для каждой вырезки, включенной в текущую картинку.
[263] Устройство кодирования конструирует список кандидатов mvp для текущего блока на основе соседних блоков текущего блока S1410. В одном примере, текущая картинка, которая включает в себя текущий блок, может включать соседние блоки. В другом примере, предыдущая (опорная) картинка или следующая (опорная) картинка текущей картинки может включать в себя соседние блоки. Здесь, POC предыдущей картинки может быть меньше, чем POC текущей картинки, и POC в следующей картинке может быть больше, чем POC текущей картинки. В соответствии с одним примером, разность POC между текущей картинкой и предыдущей (опорной) картинкой текущей картинки может быть больше, чем 0. В другом примере, разность POC между текущей картинкой и следующей (опорной) картинкой текущей картинки может быть меньше, чем 0. Однако описание, приведенное выше, представляет лишь пример.
[264] Устройство кодирования может выводить MVP для текущего блока на основе списка кандидатов mvp S1420. Устройство кодирования может выводить оптимальный кандидат предсказателя вектора движения среди кандидатов предсказателя вектора движения, включенных в список кандидатов mvp. Устройство кодирования может генерировать информацию выбора (например, флаг MVP или индекс MVP), которая указывает оптимальный кандидат предсказателя вектора движения.
[265] Устройство кодирования генерирует информацию, связанную с предсказанием, которая включает режим интер-предсказания S1430. В одном примере, информация, связанная с предсказанием, может включать информацию о разности векторов движения (MVD) текущего блока. Также, информация, связанная с предсказанием, может включать информацию о MMVD и информацию о SMVD.
[266] Устройство кодирования выводит информацию движения для предсказания текущего блока на основе режима интер-предсказания S1440. Например, информация движения может включать опорные индексы для SMVD. Опорные индексы для SMVD могут указывать опорные картинки для применения SMVD. Опорные индексы для SMVD могут включать опорный индекс L0 (RefIdxSumL0) и опорный индекс L1 (RefIdxSumL1).
[267] Устройство кодирования генерирует выборки предсказания на основе информации движения S1450. Устройство кодирования может генерировать выборки предсказания на основе векторов движения и индексов опорных картинок, включенных в информацию движения. Например, выборки предсказания могут генерироваться на основе блоков (или выборок), указанных вектором движения, среди блоков (или выборок) в опорных картинках, указанных индексами опорных картинки.
[268] Устройство кодирования выводит остаточную информацию на основе выборок предсказания S1460. В частности, устройство кодирования может выводить остаточные выборки на основе выборок предсказания и исходных выборок. Устройство кодирования может выводить остаточную информацию на основе остаточных выборок. Процессы преобразования и квантования, описанные выше, могут выполняться для вывода остаточной информации.
[269] Устройство кодирования кодирует информацию изображения/видео, которая включает информацию, связанную с предсказанием, и остаточную информацию S1470. Закодированная информация изображения/видео может выводиться в форме битового потока. Битовый поток может передаваться на устройство декодирования посредством сети или (цифрового) носителя хранения.
[270] Информация изображения/видео может включать различные типы информации в соответствии с вариантом осуществления настоящего раскрытия. Например, информация изображения/видео может включать информацию, раскрытую в по меньшей мере одной из таблиц 1-23, описанных выше.
[271] В одном варианте осуществления, информация движения может включать вектор движения и индекс опорной картинки. Вектор движения может выводиться на основе информации о MVD и MVP. Индекс опорной картинки может выводиться из кратковременной опорной картинки среди опорных картинок, включенных в списки опорных картинок.
[272] В одном варианте осуществления, вектор движения для текущего блока может выводиться на основе суммы MVD и MVP.
[273] В одном варианте осуществления информация, связанная с предсказанием, может включать информацию о SMVD. Например, когда индекс опорной картинки выведен на основе разности POC между кратковременной опорной картинкой и текущей картинкой, которая включает в себя текущий блок, значение информации о SMVD может быть равно 1.
[274] В одном варианте осуществления, может выводиться MVD L0 для L0 предсказания. Например, когда MVD L1 для L1 предсказания выводится из MVD L0, и информация движения выводится на основе MVD L0 и MVD L1, значение информации о SMVD может быть равно 1.
[275] В одном варианте осуществления, размер MVD L1 может быть тем же самым, что и размер MVD L0. Знак MVD L1 может быть противоположным знаку MVD L0.
[276] В одном варианте осуществления, индекс опорной картинки может указывать на кратковременную опорную картинку.
[277] В одном варианте осуществления, список 0 опорных картинок может включать кратковременную опорную картинку. Индекс опорной картинки может выводиться на основе разностей POC между каждой из опорных картинок, включенных в список 0 опорных картинок, и текущей картинкой, включающей текущий блок.
[278] В одном варианте осуществления, индекс опорной картинки может выводиться на основе сравнения между разностями POC.
[279] Фиг. 16 и 17 иллюстрируют способ декодирования видео/изображения и один пример связанного компонента в соответствии с вариантом(ами) осуществления настоящего раскрытия. Устройство декодирования согласно фиг. 3 может выполнять способ согласно фиг. 16. В частности, например, энтропийный декодер 310 устройства декодирования может выполнять этап S1600 согласно фиг. 16, и предсказатель 330 устройства декодирования может выполнять этапы S1610-S1650. Способ согласно фиг. 16 может включать варианты осуществления настоящего раскрытия, описанные выше.
[280] Со ссылкой на фиг. 16, устройство декодирования принимает/получает информацию изображения/видео S1600. Устройство декодирования может принимать/получать информацию изображения/видео посредством битового потока. Информация изображения/видео может включать информацию, связанную с предсказанием (включая информацию режима предсказания) и остаточную информацию. Информация, связанная с предсказанием, может включать информацию о MMVD и информацию о SMVD. Также, информация изображения/видео может включать различные типы информации в соответствии с вариантом осуществления настоящего раскрытия. Например, информация изображения/видео может включать информацию, описанную со ссылкой на фиг. 1-15, и/или информацию, раскрытую в по меньшей мере одной их таблиц 1-23, описанных выше.
[281] Устройство декодирования выводит режим интер-предсказания для текущего блока на основе информации, связанной с предсказанием S1610. Здесь, режим интер-предсказания может включать режим объединения, режим AMVP (режим, использующий кандидаты предсказателя вектора движения), MMVD и SMVD.
[282] Устройство декодирования конструирует список кандидатов mvp для текущего блока на основе соседних блоков текущего блока S1620. В одном примере, текущая картинка, которая включает текущий блок, может включать соседние блоки. В другом примере, предыдущая (опорная) картинка или следующая (опорная) картинка текущей картинки может включать соседние блоки. Здесь, POC предыдущей картинки может быть меньше, чем POC текущей картинки, и POC в последующей картинке может быть больше, чем POC текущей картинки. В соответствии с одним примером, разность POC между текущей картинкой и предыдущей (опорной) картинкой текущей картинки может быть больше, чем 0. В другом примере, разность POC между текущей картинкой и следующей (опорной) картинкой текущей картинки может быть меньше, чем 0. Однако описание, приведенное выше, представляет только пример.
[283] Устройство декодирования может выводить MVP для текущего блока на основе списка кандидатов mvp S1630. Устройство декодирования может выводить оптимальный кандидат предсказателя вектора движения среди кандидатов предсказателя вектора движения, включенных в список кандидатов mvp. Устройство декодирования может генерировать информацию выбора (например, флаг MVP или индекс MVP), которая указывает оптимальный кандидат предсказателя вектора движения.
[284] Устройство декодирования выводит информация движения для текущего блока на основе информации о MVD и MVP S1640. Например, информация движения может включать опорные индексы для SMVD. Опорные индексы для MVD могут указывать опорные картинки для применения SMVD. Опорные индексы для SMVD могут включать опорный индекс L0 (RefIdxSumL0) и опорный индекс L1 (RefIdxSumL1).
[285] Устройство декодирования генерирует выборки предсказания на основе информации движения S1650. Устройство декодирования может генерировать выборки предсказания на основе векторов движения и индексов опорной картинки, включенных в информацию движения. Например, выборки предсказания могут генерироваться на основе блоков (или выборок), указанных вектором движения среди блоков (или выборок) в опорных картинках, указанных индексами опорной картинки.
[286] Устройство декодирования может генерировать остаточные выборки на основе остаточной информации. В частности, устройство декодирования может выводить квантованные коэффициенты преобразования на основе остаточной информации. Квантованные коэффициенты преобразования могут иметь форму одномерного вектора на основе порядка сканирования коэффициентов. Устройство декодирования может выводить коэффициенты преобразования на основе процедуры обратного квантования для квантованных коэффициентов преобразования. Устройство декодирования может выводить остаточные выборки на основе процедуры обратного преобразования для коэффициентов преобразования.
[287] Устройство декодирования может генерировать восстановленные выборки текущей картинки на основе выборок предсказания и остаточных выборок. Устройство декодирования может дополнительно выполнять процедуру фильтрации для генерации (модифицированных) восстановленных выборок.
[288] В одном варианте осуществления, информация движения может включать вектор движения и индекс опорной картинки. Вектор движения может выводиться на основе информации о MVD и MVP. Индекс опорной картинки может выводиться из кратковременной опорной картинки среди опорных картинок, включенных в список опорных картинок.
[289] В одном варианте осуществления, MVD может выводиться на основе информации о MVD. Вектор движения для текущего блока может выводиться на основе суммы MVD и MVP.
[290] В одном варианте осуществления, информация, связанная с предсказанием, может включать информацию о SMVD. Например, когда значение информации о SMVD равно 1, индекс опорной картинки может выводиться на основе разности POC между кратковременной опорной картинкой и текущей картинкой, которая включает текущий блок.
[291] В одном варианте осуществления, MVD L0 для L0 предсказания может выводиться на основе информации о MVD. Например, когда значение информации о SMVD равно 1, MVD L1 для L1 предсказания может выводиться из MVD L0, и информация движения может выводиться на основе MVD L0 и MVD L1.
[292] В одном варианте осуществления, размер MVD L1 может быть таким же, что и размер MVD L0. Знак MVD L1 может быть противоположным знаку MVD L0.
[293] В одном варианте осуществления, индекс опорной картинки может указывать на кратковременную опорную картинку.
[294] В одном варианте осуществления, список 0 опорных картинок может включать кратковременную опорную картинку. Индекс опорной картинки может выводиться на основе разности POC между каждой из опорных картинок, включенных в список 0 опорных картинок, и текущей картинкой, включенной в текущий блок.
[295] В одном варианте осуществления, индекс опорной картинки может выводиться на основе сравнения между разностями POC.
[296] В одном варианте осуществления, индекс опорной картинки (например, ref_idx_l1[x0][y0]) может выводиться на основе информации о SMVD без непосредственной сигнализации.
[297] В вышеописанном варианте осуществления, способы описаны на основе блок-схемы последовательности операций, имеющей последовательность этапов или блоков. Настоящее раскрытие не ограничено порядком этапов или блоков выше. Некоторые этапы или блоки могут выполняться одновременно или в другом порядке относительно других этапов или блоков, как описано выше. Дополнительно, специалисты в данной области техники поймут, что этапы, показанные в блок-схеме последовательности операций выше, не являются исключительными, что дополнительные этапы могут быть включены или что один или несколько этапов в блок-схеме последовательности операций могут быть удалены без влияния на объем настоящего раскрытия.
[298] Способ в соответствии с вышеописанными вариантами осуществления настоящего документа может быть реализован в форме программного обеспечения, и устройство кодирования и/или устройство декодирования в соответствии с настоящим документом, например, может быть включено в устройство, которое выполняет обработку изображения телевизора, компьютера, смартфона, телевизионной приставки, устройства отображения и т. д.
[299] Когда варианты осуществления в настоящем документе реализованы в программном обеспечении, вышеописанный способ может быть реализован как модуль (процесс, функция и т. д.), который выполняет вышеописанную функцию. Модуль может храниться в памяти и исполняться процессором. Память может быть внутренней или внешней по отношению к процессору и может быть соединена с процессором различными хорошо известными средствами. Процессор может включать в себя специализированную интегральную схему (ASIC), другие чипсеты, логические схемы и/или устройства обработки данных. Память может включать в себя постоянную память (ROM), память с произвольным доступом (RAM), флэш-память, карты памяти, носители хранения и/или другие устройства хранения. То есть, варианты осуществления, описанные в настоящем документе, могут реализовываться и выполняться на процессоре, микропроцессоре, контроллере или чипе. Например, функциональные блоки, показанные на каждом чертеже, могут быть реализованы и выполняться на компьютере, процессоре, микропроцессоре, контроллере или чипе. В этом случае, информация об инструкциях или алгоритм для реализации могут храниться в цифровом носителе хранения.
[300] К тому же, устройство декодирования и устройство кодирования, к которым применяется настоящее раскрытие, могут быть включены в устройство передачи/приема мультимедийного вещания, мобильный терминал связи, устройство домашнего кинотеатра, устройство цифрового кинотеатра, камеру наблюдения, устройство для разговора по видео, устройство связи в реальном времени, такой как видеосвязь, мобильное устройство стриминга, носитель хранения, видеокамеру, устройство обеспечения услуги VoD, устройство доставки видео непосредственно от провайдера контента (OTT), устройство обеспечения услуги Интернет-стриминга, устройство трехмерного (3D) видео, устройство видео-телеконференции, пользовательское оборудование на транспорте (т. е. пользовательское оборудование наземного транспортного средства, пользовательское оборудование самолета, пользовательское оборудование корабля и т. д.) и медицинское видеоустройство, и могут использоваться, чтобы обрабатывать сигналы видео и сигналы данных. Например, видеоустройство OTT может включать в себя игровую консоль, проигрыватель blue-ray, телевизор с Интернет-доступом, систему домашнего кинотеатра, смартфон, планшетный PC, цифровой рекордер видео (DVR) и тому подобное.
[301] Более того, способ обработки, к которому применяется настоящий документ, может выполняться в форме программы, которая подлежит исполнению компьютером и может храниться в считываемом компьютером носителе записи. Мультимедийные данные, имеющие структуру данных в соответствии с настоящим раскрытием, могут также храниться в считываемых компьютером носителях записи. Считываемые компьютером носители записи включают в себя все типы устройств хранения, в которых хранятся данные, считываемые компьютерной системой. Считываемые компьютером носители записи могут включать в себя, например, BD, универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, флоппи-диск и оптическое устройство хранения данных. Более того, считываемые компьютером носители записи включают в себя носители, реализуемые в форме несущей волны (т. е. передача через Интернет). К тому же, битовый поток, сгенерированный способом кодирования, может храниться в считываемом компьютером носителе записи или может передаваться по сетям проводной/беспроводной связи.
[302] К тому же, варианты осуществления настоящего документа могут быть реализованы при помощи компьютерного программного продукта в соответствии с программными кодами, и программные коды могут выполняться в компьютере посредством вариантов осуществления настоящего документа. Программные коды могут храниться на носителе, который может считываться компьютером.
[303] Фиг. 18 показывает пример системы стриминга контента, к которой могут применяться варианты осуществления, раскрытые в настоящем документе.
[304] Со ссылкой на фиг. 18, система стриминга контента, к которой применяется вариант(ы) осуществления настоящего документа, может в широком смысле включать в себя сервер кодирования, стриминговый сервер, веб-сервер, медиахранилище, устройство пользователя и устройство мультимедийного ввода.
[305] Сервер кодирования сжимает контент, введенный из устройств мультимедийного ввода, таких как смартфон, камера, камера-регистратор и т. д. в цифровые данные, чтобы сгенерировать битовый поток и передать битовый поток на стриминговый сервер. В качестве примера, когда устройства мультимедийного ввода, такие как смартфоны, камеры, видеокамеры и т. д., непосредственно генерируют битовый поток, сервер кодирования может опускаться.
[306] Битовый поток может генерироваться способом кодирования или способом генерации битового потока, к которым применяется вариант(ы) осуществления настоящего раскрытия, и стриминговый сервер может временно хранить битовый поток в процессе передачи или приема битового потока.
[307] Стриминговый сервер передает мультимедийные данные на устройство пользователя на основе запроса пользователя через веб-сервер, и веб-сервер служит как носитель для информирования пользователя об услуге. Когда пользователь запрашивает желаемую услугу от веб-сервера, веб-сервер доставляет ее на стриминговый сервер, и стриминговый сервер передает мультимедийные данные пользователю. В этом случае, система стриминга контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит, чтобы управлять командой/откликом между устройствами в системе стриминга контента.
[308] Стриминговый сервер может принимать контент из хранилища медиа и/или сервера кодирования. Например, когда контент принимается от сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы обеспечить плавную стриминговую услугу, стриминговый сервер может хранить битовый поток в течение предопределенного времени.
[309] Примеры устройств пользователя могут включать в себя мобильный телефон, смартфон, ноутбук, терминал цифрового вещания, персональный цифровой помощник (PDA), портативный мультимедийный проигрыватель (PMP), навигатор, тонкий PC, планшетные PC, ультрабуки, носимые устройства (например, умные часы, умные очки, наголовные дисплеи), цифровые телевизоры, настольный компьютер, цифровые указатели и тому подобное. Каждый сервер в системе стриминга контента может работать как распределенный сервер, в этом случае, данные, принимаемые от каждого сервера, могут быть распределенными.
[310] Каждый сервер в системе стриминга контента может работать как распределенный сервер, и в этом случае, данные, принимаемые от каждого сервера, могут распределяться и обрабатываться.
[311] Пункты формулы изобретения, описанные в настоящем документе, могут комбинироваться различными способами. Например, технические признаки пунктов формулы на способ согласно настоящему документу могут комбинироваться и реализовываться как устройство, и технические признаки пунктов формулы на устройство согласно настоящему документу могут комбинироваться и реализовываться как способ. К тому же, технические признаки пункта формулы на способ согласно настоящему документу и технические признаки пункта формулы на устройство могут комбинироваться для реализации как устройство, и технические признаки пункта формулы на способ согласно настоящему документу и технические признаки пункта формулы на устройство могут комбинироваться и реализовываться как способ.
Изобретение относится к кодированию изображений с использованием разностей векторов движения. Техническим результатом является повышение эффективности кодирования изображений. Результат достигается тем, что процедура предсказания может включать симметричные разности векторов движения (SMVD) и разности векторов движения режима объединения (MMVD) в соответствии с интер-предсказанием. Интер-предсказание может выполняться на основе опорных картинок текущей картинки, и типы (например, долговременная опорная картинка, кратковременная опорная картинка и т. д.) опорных картинок могут учитываться для интер-предсказания. 3 н.п. ф-лы, 18 ил., 23 табл.
1. Способ декодирования изображения, выполняемый устройством декодирования, причем способ содержит:
получение информации, связанной с предсказанием, включающей в себя информацию о симметричных разностях векторов движения (SMVD) и информацию о разности векторов движения (MVD), посредством битового потока;
определение режима предсказания для текущего блока как режима интер-предсказания с использованием SMVD в ответ на значение информации о SMVD, равное 1;
конструирование списка кандидатов предсказателя вектора движения (MVP) для текущего блока на основе соседних блоков текущего блока;
выведение MVP для текущего блока на основе списка кандидатов MVP;
выведение вектора движения для текущего блока на основе MVP для текущего блока и информации о MVD;
генерирование предсказанных выборок для текущего блока на основе вектора движения и индекса опорной картинки, и
генерирование восстановленных выборок для текущего блока на основе предсказанных выборок и остаточных выборок для текущего блока,
причем остаточные выборки для текущего блока выводятся на основе информации о коэффициентах преобразования, выведенной посредством битового потока,
при этом индекс опорной картинки включает в себя индекс опорной картинки для L0 предсказания и индекс опорной картинки для L1 предсказания,
при этом индекс опорной картинки для L0 предсказания выводится на основе разности отсчетов порядка картинки (POC) между кратковременной опорной картинкой, включенной в список L0 опорных картинок, и текущей картинкой, включающей в себя текущий блок, и
при этом индекс опорной картинки для L1 предсказания выводится на основе разницы POC между кратковременной опорной картинкой, включенной в список L1 опорных картинок, и текущей картинкой.
2. Способ кодирования изображения, выполняемый устройством кодирования, причем способ содержит:
определение режима предсказания для текущего блока как режима интер-предсказания с использованием симметричных разностей векторов движения (SMVD);
конструирование списка кандидатов предсказателя вектора движения (MVP) для текущего блока на основе соседних блоков текущего блока;
выведение MVP для текущего блока на основе списка кандидатов MVP;
выведение вектора движения для текущего блока;
выведение разности векторов движения (MVD) для текущего блока на основе MVP и вектора движения для текущего блока;
генерирование информации, связанной с предсказанием, включающей в себя информацию о SMVD и информацию о MVD;
генерирование предсказанных выборок для текущего блока на основе вектора движения и индекса опорной картинки;
генерирование информации о коэффициентах преобразования на основе предсказанных выборок; и
кодирование информации изображения, включающей информацию, связанную с предсказанием, и информацию о коэффициентах преобразования для вывода битового потока,
при этом индекс опорной картинки включает в себя индекс опорной картинки для L0 предсказания и индекс опорной картинки для L1 предсказания,
при этом индекс опорной картинки для L0 предсказания выводится на основе разности отсчетов порядка картинки (POC) между кратковременной опорной картинкой, включенной в список L0 опорных картинок, и текущей картинкой, включающей в себя текущий блок, и
при этом индекс опорной картинки для L1 предсказания выводится на основе разницы POC между кратковременной опорной картинкой, включенной в список L1 опорных картинок, и текущей картинкой.
3. Способ передачи данных для изображения, причем способ содержит:
получение битового потока для изображения, причем битовый поток генерируется на основе определения режима предсказания для текущего блока как режима интер-предсказания с использованием симметричных разностей векторов движения (SMVD), конструирования списка кандидатов предсказателя вектора движения (MVP) для текущего блока на основе соседних блоков текущего блока, выведения MVP для текущего блока на основе списка кандидатов MVP, выведения вектора движения для текущего блока, выведения разности векторов движения (MVD) для текущего блока на основе MVP и вектора движения для текущего блока, генерирования информации, связанной с предсказанием, включающей в себя информацию о SMVD и информацию о MVD, генерирования предсказанных выборок для текущего блока на основе вектора движения и индекса опорной картинки, генерирования информации о коэффициентах преобразования на основе предсказанных выборок и кодирования информации изображения, включающей в себя информацию, связанную с предсказанием, и информацию о коэффициентах преобразования; и
передачу данных, содержащих битовый поток,
при этом индекс опорной картинки включает в себя индекс опорной картинки для L0 предсказания и индекс опорной картинки для L1 предсказания,
при этом индекс опорной картинки для L0 предсказания выводится на основе разности отсчетов порядка картинки (POC) между кратковременной опорной картинкой, включенной в список L0 опорных картинок, и текущей картинкой, включающей в себя текущий блок, и
при этом индекс опорной картинки для L1 предсказания выводится на основе разницы POC между кратковременной опорной картинкой, включенной в список L1 опорных картинок, и текущей картинкой.
US 20180352247 A1, 2018.12.06 | |||
US 9936221 B2, 2018.04.03 | |||
CN 102227132 B, 2017.04.12 | |||
US 9008176 B2, 2015.04.14 | |||
US 2011013697 A1, 2011.01.20 | |||
US 2013101042 A1, 2013.04.25 | |||
US 2017310990 A1, 2017.10.26 | |||
US 2014219357 A1, 2014.08.07 | |||
US 2014086327 A1, 2014.03.27 | |||
US 2015271515 A1, 2015.09.24 | |||
US 2014153647 A1, 2014.06.05 | |||
СИНТАКСИЧЕСКИЕ РАСШИРЕНИЯ ВЫСОКОГО УРОВНЯ ДЛЯ ВЫСОКОЭФФЕКТИВНОГО ВИДЕОКОДИРОВАНИЯ | 2013 |
|
RU2636692C2 |
Авторы
Даты
2024-06-03—Публикация
2023-11-14—Подача