СПОСОБ И УСТРОЙСТВО ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ НА ОСНОВЕ ВНУТРЕННИХ СУБСЕГМЕНТОВ В СИСТЕМЕ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ
METHOD AND DEVICE FOR INTERNAL PREDICTION BASED ON INTERNAL SUBSEGMENTS IN IMAGE CODING SYSTEM

Уровень техники
Область техники, к которой относится изобретение
[1] Данное раскрытие сущности относится к технологии кодирования изображений, а более конкретно, к способу и оборудованию для внутреннего прогнозирования на основе внутренних субсегментов в системе кодирования изображений.
Описание уровня техники
[2] Потребности в высококачественных изображениях высокого разрешения, к примеру, в изображениях высокой четкости (HD) и изображениях сверхвысокой четкости (UHD), растут в различных областях техники. Поскольку данные изображений имеют высокое разрешение и высокое качество, объем информации или битов, которые должны передаваться, увеличивается относительно унаследованных данных изображений. Следовательно, когда данные изображений передаются с использованием такой среды, как традиционная проводная/беспроводная широкополосная линия, или данные изображений сохраняются с использованием существующего носителя хранения данных, затраты на передачу и затраты на хранение для них увеличиваются.
[3] Соответственно, существует потребность в высокоэффективной технологии сжатия изображений для эффективной передачи, сохранения и воспроизведения информации высококачественных изображений высокого разрешения.
Сущность изобретения
[4] Этот документ должен предоставлять способ и оборудование для повышения эффективности кодирования изображений.
[5] Этот документ должен также предоставлять эффективный способ и оборудование внутреннего прогнозирования.
[6] Этот документ при этом также должен предоставлять способ и оборудование внутреннего прогнозирования для применения режима на основе внутренних субсегментов (ISP) к блоку, меньшему или равному размеру виртуальной конвейерной единицы данных (VPDU).
[7] Этот документ при этом также должен предоставлять способ и оборудование для применения ISP с учетом конвейера декодирования для аппаратной реализации.
[8] Согласно варианту осуществления этого документа, предоставляется способ декодирования изображений, осуществляемый посредством оборудования декодирования. Способ включает в себя прием информации режима прогнозирования для текущего блока, прием связанной с режимом на основе внутренних субсегментов (ISP) информации для текущего блока на основе размера текущего блока и максимального размера блока преобразования, извлечение режима внутреннего прогнозирования текущего блока на основе информации режима прогнозирования и формирование прогнозной выборки текущего блока на основе режима внутреннего прогнозирования и связанной с ISP информации.
[9] Согласно другому варианту осуществления этого раскрытия сущности, оборудование декодирования для выполнения декодирования изображений предоставляется. Оборудование декодирования включает в себя энтропийный декодер, выполненный с возможностью принимать информацию режима прогнозирования для текущего блока, принимать связанную с режимом на основе внутренних субсегментов (ISP) информацию для текущего блока на основе размера текущего блока и максимального размера блока преобразования, модуль прогнозирования, выполненный с возможностью извлекать режим внутреннего прогнозирования текущего блока на основе информации режима прогнозирования и формировать прогнозную выборку текущего блока на основе режима внутреннего прогнозирования и связанной с ISP информации.
[10] Согласно еще одному другому варианту осуществления этого раскрытия сущности, предоставляется способ кодирования изображений, осуществляемый посредством оборудования кодирования. Способ включает в себя извлечение режима внутреннего прогнозирования текущего блока, извлечение связанной с режимом на основе внутренних субсегментов (ISP) информации для текущего блока на основе размера текущего блока и максимального размера блока преобразования, формирование прогнозной выборки текущего блока на основе режима внутреннего прогнозирования и связанной с ISP информации, формирование остаточной выборки на основе прогнозной выборки и кодирование информации изображений, включающей в себя информацию режима прогнозирования относительно режима внутреннего прогнозирования, связанную с ISP информацию и информацию относительно остаточной выборки.
[11] Согласно еще одному другому варианту осуществления этого раскрытия сущности, предоставляется оборудование кодирования для выполнения кодирования изображений. Оборудование кодирования включает в себя модуль прогнозирования, выполненный с возможностью извлекать режим внутреннего прогнозирования текущего блока, извлекать связанную с режимом на основе внутренних субсегментов (ISP) информацию для текущего блока на основе размера текущего блока и максимального размера блока преобразования, формировать прогнозную выборку текущего блока на основе режима внутреннего прогнозирования и связанной с ISP информации, вычитатель, выполненный с возможностью формировать остаточную выборку на основе прогнозной выборки, и энтропийный кодер, выполненный с возможностью кодировать информацию изображений, включающую в себя информацию режима прогнозирования относительно режима внутреннего прогнозирования, связанную с ISP информацию и информацию относительно остаточной выборки.
[12] Согласно еще одному другому варианту осуществления этого раскрытия сущности, предоставляется машиночитаемый носитель хранения данных. Машиночитаемый носитель хранения данных сохраняет поток битов, сформированный посредством способа кодирования.
[13] Согласно этому документу, эффективность сжатия изображений может повышаться.
[14] Согласно этому документу, может предоставляться эффективное внутреннее прогнозирование.
[15] Согласно этому документу, может разрешаться проблема, вызываемая посредством применения режима на основе внутренних субсегментов (ISP) к блоку, большему размера виртуальной конвейерной единицы данных (VPDU).
[16] Согласно этому документу, можно предотвращать неправильно совмещенную VPDU-обработку, вызываемую посредством применения ISP к блоку, большему VPDU-размера.
[17] Согласно этому документу, можно предоставлять ISP с учетом конвейера декодирования для аппаратной реализации.
Краткое описание чертежей
[18] Фиг. 1 схематично иллюстрирует систему кодирования видео/изображений, к которой может применяться этот документ.
[19] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться настоящий документ.
[20] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому может применяться настоящий документ.
[21] Фиг. 4 иллюстрирует пример 67 режимов внутреннего прогнозирования.
[22] Фиг. 5 показывает пример сегментации на блоки согласно ISP при внутреннем прогнозировании.
[23] Фиг. 6 показывает другой пример сегментации на блоки согласно ISP при внутреннем прогнозировании.
[24] Фиг. 7 показывает пример TT- и BT-сегментации, которая не разрешается с учетом VPDU-размера.
[25] Фиг. 8 показывает пример конвейера HW-обработки.
[26] Фиг. 9 показывает пример конвейера, когда ISP применяется к блоку, большему VPDU-размера.
[27] Фиг. 10 схематично иллюстрирует способ кодирования изображений посредством оборудования кодирования согласно настоящему документу.
[28] Фиг. 11 схематично иллюстрирует способ декодирования изображений посредством оборудования декодирования согласно настоящему документу.
[29] Фиг. 12 является схемой, иллюстрирующей структуру системы потоковой передачи контента.
Подробное описание вариантов осуществления
[30] Этот документ может модифицироваться в различных формах, и его конкретные варианты осуществления описываются и показываются на чертежах. Тем не менее, варианты осуществления не предназначены для ограничения этого документа. Термины, используемые в нижеприведенном описании, используются для того, чтобы просто описывать конкретные варианты осуществления, но не имеют намерение ограничивать этот документ. Выражение единственного числа включает в себя выражение множественного числа до этих пор, до тех пор, пока они четко трактуются по-разному. Такие термины, как "включать в себя" и "иметь", предназначены для того, чтобы указывать то, что существуют признаки, числа, этапы, операции, элементы, компоненты либо комбинации вышеозначенного, используемые в нижеприведенном описании, и в силу этого следует понимать, что не исключается возможность наличия или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов либо комбинаций вышеозначенного.
[31] Между тем, каждый из компонентов, на чертежах, описанных в этом документе, показывается независимо для удобства описания относительно различных характеристических функций и не означает то, что компоненты реализуются в отдельных аппаратных средствах или в отдельном программном обеспечении. Например, две или более из каждой конфигурации могут комбинироваться, чтобы формировать одну конфигурацию, или одна конфигурация может разделяться на множество конфигураций. Варианты осуществления, в которых каждая конфигурация интегрируется и/или отделяется, также включаются в объем этого документа без отступления от сущности этого документа.
[32] Далее подробно описываются примерные варианты осуществления этого документа со ссылками на прилагаемые чертежи. В дальнейшем в этом документе, идентичные ссылки с номерами используются для идентичных компонентов на чертежах, и избыточное описание идентичных компонентов может опускаться.
[33] Фиг. 1 схематично иллюстрирует систему кодирования видео/изображений, к которой может применяться этот документ.
[34] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое оборудование (исходное устройство) и второе оборудование (приемное устройство). Исходное устройство может доставлять кодированную информацию или данные видео/изображений в форме файла или потоковой передачи в приемное устройство через цифровой носитель хранения данных или сеть.
[35] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[36] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[37] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[38] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.
[39] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.
[40] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[41] Этот документ относится к кодированию видео/изображений. Например, способы/варианты осуществления, раскрытые в этом документе, могут применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте EVC (фундаментального кодирования видео), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267 или H.268 и т.д.).
[42] Этот документ представляет различные варианты осуществления кодирования видео/изображений, и варианты осуществления могут выполняться в комбинации между собой, если не указано иное.
[43] В этом документе, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретной временной зоне, и срез/плитка представляет собой единицу, составляющую часть кадра при кодировании. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Один кадр может состоять из одной или более групп плиток. Одна группа плиток может включать в себя одну или более плиток. Кирпич может представлять прямоугольную область CTU-строк в плитке в кадре. Плитка может сегментироваться на несколько кирпичей, каждый из которых состоит из одной или более CTU-строк в плитке. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Кирпичное сканирование представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно в растровом CTU-сканировании в кирпиче, кирпичи внутри плитки упорядочиваются последовательно в растровом сканировании кирпичей плитки, и плитки в кадре упорядочиваются последовательно в растровом сканировании плиток кадра. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез включает в себя собой целое число кирпичей кадра, которые могут содержаться исключительно в одной NAL-единице. Срез может состоять либо из определенного числа полных плиток, либо только из жесткой последовательности полных кирпичей одной плитки. Группы плиток и срезы могут использоваться взаимозаменяемо в этом документе. Например, в этом документе, группа плиток/заголовок группы плиток может называться "срезом/заголовком среза".
[44] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
[45] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[46] В этом документе, термин "/" и "," должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" может означать "A и/или B". Дополнительно, "A, B" может означать "A и/или B". Дополнительно, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C". Кроме того, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C".
[47] Дополнительно, в документе, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только A, 2) только B и/или 3) как A, так и B. Другими словами, термин "или" в этом документе должен интерпретироваться как указывающий "дополнительно или альтернативно".
[48] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться настоящий документ. В дальнейшем в этом документе, оборудование кодирования видео может включать в себя оборудование кодирования изображений.
[49] Ссылаясь на фиг. 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 в качестве внутреннего/внешнего компонента.
[50] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в оборудование 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно вариантам осуществления может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя единицу прогнозирования (PU) или единицу преобразования (TU). В этом случае, единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[51] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.
[52] В оборудовании 200 кодирования, прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, вычитается из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания прогнозного сигнала (прогнозированного блока, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Как описано ниже в описании каждого режима прогнозирования, модуль прогнозирования может формировать различные виды информации, связанной с прогнозированием, к примеру, информацию режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно прогнозирования может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.
[53] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 222 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[54] Модуль 221 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.
[55] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять как внутренние прогнозирование, так и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[56] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[57] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для восстановления видео/изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В этом документе, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.
[58] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[59] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.
[60] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различные виды информации, связанной с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[61] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием декодирования может исключаться, и эффективность кодирования может повышаться.
[62] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.
[63] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому может применяться настоящий документ.
[64] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340, фильтр 350 и запоминающее устройство 360. Модуль 330 прогнозирования может включать в себя модуль 331 взаимного прогнозирования и модуль 332 внутреннего прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[65] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в оборудовании кодирования по фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в оборудовании кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[66] Оборудование 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 внутреннего прогнозирования.
[67] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[68] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[69] Модуль 230 прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и может определять конкретный режим внутреннего/взаимного прогнозирования.
[70] Модуль 320 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[71] Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку. Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[72] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 332 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[73] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.
[74] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для взаимного прогнозирования следующего кадра.
[75] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.
[76] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[77] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.
[78] В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования оборудования 300 декодирования. То же также может применяться к модулю 332 и модулю 331 внутреннего прогнозирования.
[79] Как описано выше, при выполнении кодирования видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. Прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, т.е. целевого блока кодирования, может формироваться через прогнозирование. В этом случае, прогнозированный блок включает в себя прогнозные выборки в пространственную область (или пиксельную область). Прогнозированный блок идентично извлекается в оборудовании кодирования и оборудовании декодирования. Оборудование кодирования может повышать эффективность кодирования изображений посредством передачи в служебных сигналах, в оборудование декодирования, информации относительно остатка (остаточной информации) между исходным блоком, а не непосредственно исходным выборочным значением исходного блока, и прогнозированным блоком. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, может формировать восстановленный блок, включающий в себя восстановленные выборки, посредством суммирования остаточного блока с прогнозированным блоком и может формировать восстановленный кадр, включающий в себя восстановленные блоки.
[80] Остаточная информация может формироваться через процедуру преобразования и квантования. Например, оборудование кодирования может извлекать остаточный блок между исходным блоком и прогнозированным блоком, может извлекать коэффициенты преобразования посредством выполнения процедуры преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, может извлекать квантованные коэффициенты преобразования посредством выполнения процедуры квантования для коэффициентов преобразования, и может передавать в служебных сигналах ассоциированную остаточную информацию в оборудование декодирования (через поток битов). В этом случае, остаточная информация может включать в себя такую информацию, как информация значений, информация местоположения, схема преобразования, ядро преобразования и параметр квантования для квантованных коэффициентов преобразования. Оборудование декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и может извлекать остаточные выборки (или остаточный блок). Оборудование декодирования может формировать восстановленный кадр на основе прогнозированного блока и остаточного блока. Кроме того, оборудование кодирования может извлекать остаточный блок посредством деквантования/обратного преобразования квантованных коэффициентов преобразования для ссылки на взаимное прогнозирование последующего кадра и может формировать восстановленный кадр.
[81] Внутреннее прогнозирование может представлять прогнозирование, формирующее прогнозные выборки для текущего блока на основе опорных выборок в кадре (далее "текущий кадр"), которому принадлежит текущий блок. Когда внутреннее прогнозирование применяется к текущему блоку, соседние опорные выборки, которые должны использоваться для внутреннего прогнозирования текущего блока, могут извлекаться. Соседние опорные выборки текущего блока могут включать в себя выборку, смежную с левой границей текущего блока, имеющего размер nWxnH, и сумму 2xnH выборок, граничащих с левой нижней частью, выборки, смежной с верхней границей текущего блока, и сумму 2xnW выборок, граничащих с правой верхней частью, и одну выборку, граничащую с левой верхней частью относительно текущего блока. Дополнительно, соседние опорные выборки текущего блока также могут включать в себя верхние соседние выборки множества столбцов и левые соседние выборки множества строк. Дополнительно, соседние опорные выборки текущего блока также могут включать в себя сумму nH выборок, смежных с правой границей текущего блока, имеющего размер nWxnH, сумму nW выборок, смежных с нижней границей текущего блока, и одну выборку, граничащую с правой нижней частью относительно текущего блока.
[82] Тем не менее, некоторые соседние опорные выборки текущего блока могут быть еще не декодированы или могут быть недоступными. В этом случае, декодер может конфигурировать соседние опорные выборки, которые должны использоваться для прогнозирования, посредством подстановки доступных выборок вместо недоступных выборок. Дополнительно, декодер может конфигурировать соседние опорные выборки, которые должны использоваться для прогнозирования, через интерполяцию доступных выборок.
[83] Когда соседние опорные выборки извлекаются, (i) прогнозная выборка может логически выводиться на основе среднего или интерполяции соседних опорных выборок текущего блока, и (ii) прогнозная выборка может логически выводиться на основе опорной выборки, существующей в конкретном направлении (прогнозирования) относительно прогнозной выборки из соседних опорных выборок текущего блока. Случай (i) может называться "ненаправленным режимом" или "неугловым режимом", и случай (ii) может называться "направленным режимом" или "угловым режимом".
[84] Дополнительно, прогнозная выборка может формироваться через интерполяцию между первой соседней выборкой, расположенной в направлении прогнозирования режима внутреннего прогнозирования текущего блока, и второй соседней выборкой, расположенной в противоположном направлении относительно направления прогнозирования, из соседних опорных выборок. Вышеописанный случай может называться "внутренним прогнозированием с линейной интерполяцией (LIP)". Дополнительно, выборки прогнозирования сигналов цветности могут формироваться на основе выборок сигнала яркости с использованием линейной модели. Этот случай может называться "LM-режимом".
[85] Дополнительно, временная прогнозная выборка текущего блока может извлекаться на основе фильтрованных соседних опорных выборок, и прогнозная выборка текущего блока может извлекаться посредством суммирования со взвешиванием, по меньшей мере, одной опорной выборки, извлекаемой согласно режиму внутреннего прогнозирования, из существующих соседних опорных выборок, т.е. нефильтрованных соседних опорных выборок, и временной прогнозной выборки. Вышеописанный случай может называться "позиционно-зависимым внутренним прогнозированием (PDPC)".
[86] Дополнительно, опорная выборочная линия, имеющая наибольшую точность прогнозирования из нескольких соседних опорных выборочных линий текущего блока, может выбираться, и прогнозная выборка может извлекаться из соответствующей линии с использованием опорной выборки, расположенной в направлении прогнозирования. В этом случае, внутреннее прогнозирующее кодирование может выполняться в качестве способа для указания (передачи в служебных сигналах) используемой опорной выборочной линии в оборудование декодирования. Вышеописанный случай может называться "внутренним прогнозированием на основе множественной опорной линии (MRL)" или "внутренним прогнозированием на основе MRL".
[87] Дополнительно, внутреннее прогнозирование может выполняться на основе идентичного режима внутреннего прогнозирования посредством разделения текущего блока на вертикальные или горизонтальные субсегменты, и соседние опорные выборки могут извлекаться и использоваться в единице субсегментов. Таким образом, в этом случае, режим внутреннего прогнозирования для текущего блока в равной степени применяется к субсегментам, и соседняя опорная выборка извлекается и используется в единице субсегмента, за счет этого повышая производительность внутреннего прогнозирования по мере необходимости. Такой способ прогнозирования может называться "внутренним прогнозированием на основе внутренних субсегментов (ISP) или на основе ISP".
[88] Вышеописанные способы внутреннего прогнозирования могут называться "типом внутреннего прогнозирования", чтобы отличаться от режима внутреннего прогнозирования. Тип внутреннего прогнозирования может называться с помощью различных терминов, таких как "технология внутреннего прогнозирования" или "дополнительный режим внутреннего прогнозирования". Например, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования и т.д.) может включать в себя, по меньшей мере, одно из вышеуказанных LIP, PDPC, MRL и ISP. Общий способ внутреннего прогнозирования, за исключением конкретного типа внутреннего прогнозирования, такого как LIP, PDPC, MRL и ISP, может называться "типом нормального внутреннего прогнозирования". Тип нормального внутреннего прогнозирования, в общем, может применяться, когда вышеприведенный конкретный тип внутреннего прогнозирования не применяется, и прогнозирование может выполняться на основе вышеописанного режима внутреннего прогнозирования. Информация относительно типа внутреннего прогнозирования может кодироваться посредством оборудования кодирования и включаться в поток битов с возможностью передаваться в служебных сигналах в оборудование декодирования. Информация относительно типа внутреннего прогнозирования может реализовываться в различных формах, к примеру, как информация флага, указывающая то, применяется или нет каждый тип внутреннего прогнозирования, или информация индекса, указывающая один из нескольких типов внутреннего прогнозирования. Между тем, при необходимости, фильтрация при постобработке может выполняться для извлеченной прогнозной выборки.
[89] В частности, процедура внутреннего прогнозирования может включать в себя этап определения режима/типа внутреннего прогнозирования, этап извлечения соседних опорных выборок и этап извлечения прогнозных выборок на основе режима/типа внутреннего прогнозирования. Помимо этого, этап постфильтрации может выполняться для извлеченной прогнозной выборки по мере необходимости.
[90] Список наиболее вероятных режимов (MPM) для извлечения вышеописанного режима внутреннего прогнозирования может быть сконфигурирован по-разному согласно типу внутреннего прогнозирования. Альтернативно, MPM-список может быть сконфигурирован одинаково независимо от типа внутреннего прогнозирования.
[91] В случае если внутреннее прогнозирование применяется, режим внутреннего прогнозирования, который применяется к текущему блоку, может определяться с использованием режима внутреннего прогнозирования соседнего блока. Например, оборудование декодирования может выбирать один из возможных MPM-вариантов в MPM-списке, который извлекается на основе режима внутреннего прогнозирования соседних блоков (например, левого и/или верхнего соседних блоков) относительно текущего блока и дополнительных возможных вариантов режимов, на основе принимаемого MPM-индекса, либо может выбирать один из оставшихся режимов внутреннего прогнозирования, которые не включаются в возможные MPM-варианты (и в планарный режим), на основе информации оставшегося режима внутреннего прогнозирования. MPM-список может быть выполнен с возможностью включать в себя или не включать в себя планарный режим в качестве возможного варианта. Например, если MPM-список включает в себя планарный режим в качестве возможного варианта, MPM-список может иметь 6 возможных вариантов, тогда как, если MPM-список не включает в себя планарный режим в качестве возможного варианта, MPM-список может иметь 5 возможных вариантов. Если MPM-список не включает в себя планарный режим в качестве возможного варианта, непланарный флаг (например, intra_luma_not_planar_flag), указывающий то, не представляет собой либо представляет собой режим внутреннего прогнозирования текущего блока планарный режим, может передаваться в служебных сигналах. Например, MPM-флаг может сначала передаваться в служебных сигналах, и MPM-индекс и непланарный флаг могут передаваться в служебных сигналах в случае, если значение MPM-флага равно 1. Дополнительно, MPM-индекс может передаваться в служебных сигналах в случае, если значение непланарного флага равно 1. Здесь, причина, по которой MPM-список выполнен с возможностью не включать в себя планарный режим в качестве возможного варианта, состоит в том, чтобы сначала проверять планарный режим посредством передачи в служебных сигналах сначала флага (непланарного флага), поскольку планарный режим всегда считается MPM, а не в том, что планарный режим не представляет собой MPM.
[92] Например, находится режим внутреннего прогнозирования, применяемый к текущему блоку, в возможных MPM-вариантах (и в планарном режиме) или в оставшемся режиме, может указываться на основе MPM-флага (например, intra_luma_mpm_flag). Значение MPM-флага в 1 может представлять то, что режим внутреннего прогнозирования для текущего блока находится в возможных MPM-вариантах (и в планарном режиме), и значение MPM-флага в 0 может представлять то, что режим внутреннего прогнозирования для текущего блока не находится в возможных MPM-вариантах (и в планарном режиме). Значение непланарного флага (например, intra_luma_not_planar_flag) в 0 может представлять то, что режим внутреннего прогнозирования для текущего блока представляет собой планарный режим, и значение в 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, и непланарный флаг не передается в служебных сигналах.
[93] Другими словами, если сегментация на блоки для изображения, в общем, выполняется, текущий блок, который должен кодироваться, и соседний блок имеют аналогичные характеристики изображений. Соответственно, имеется высокая вероятность того, что текущий блок и соседний блок имеют идентичный или аналогичный режим внутреннего прогнозирования. Соответственно, кодер может использовать режим внутреннего прогнозирования соседнего блока для того, чтобы кодировать режим внутреннего прогнозирования текущего блока.
[94] Например, кодер/декодер может конфигурировать список наиболее вероятных режимов (MPM) для текущего блока. MPM-список может представляться как список возможных MPM-вариантов. Здесь, термин "MPM" может означать режим, который используется для того, чтобы повышать эффективность кодирования с учетом подобия между текущим блоком и соседним блоком во время кодирования в режиме внутреннего прогнозирования. Как описано выше, MPM-список может быть выполнен с возможностью включать в себя планарный режим или может быть выполнен с возможностью исключать планарный режим. Например, если MPM-список включает в себя планарный режим, число возможных вариантов MPM-списка может быть равным 6. Дополнительно, если MPM-список не включает в себя планарный режим, число возможных вариантов MPM-списка может быть равным 5.
[95] Кодер/декодер может конфигурировать MPM-список, включающий в себя 6 MPM.
[96] Чтобы конфигурировать MPM-список, могут рассматриваться три вида режимов из внутренних режимов по умолчанию, соседних внутренних режимов и извлеченных внутренних режимов.
[97] Для соседних внутренних режимов, могут рассматриваться два соседних блока, т.е. левый соседний блок и верхний соседний блок.
[98] Как описано выше, если MPM-список выполнен с возможностью не включать в себя планарный режим, планарный режим исключается из списка, и число возможных вариантов MPM-списка может задаваться равным 5.
[99] Фиг. 4 иллюстрирует пример 67 режимов внутреннего прогнозирования.
[100] Ссылаясь на фиг. 4, из режимов внутреннего прогнозирования, направленный режим или угловой режим может отличать режим внутреннего прогнозирования, имеющий горизонтальную направленность, и режим внутреннего прогнозирования, имеющий вертикальную направленность, друг от друга, относительно режима внутреннего прогнозирования номер 34, имеющего левое верхнее диагональное направление прогнозирования. На фиг. 4, H и V означают горизонтальную направленность и вертикальную направленность, соответственно, и номера от -32 до 32 представляют смещения в единицах 1/32 для позиции на сетке выборок. Режимы внутреннего прогнозирования номер 2-33 имеют горизонтальную направленность, и режимы внутреннего прогнозирования номер 34-66 имеют вертикальную направленность. Режим внутреннего прогнозирования номер 18 и режим внутреннего прогнозирования номер 50 представляют режим горизонтального внутреннего прогнозирования и режим вертикального внутреннего прогнозирования, соответственно. Режим внутреннего прогнозирования номер 2 может называться "режимом левого нижнего диагонального внутреннего прогнозирования", режим внутреннего прогнозирования номер 34 может называться "режимом левого верхнего диагонального внутреннего прогнозирования", и режим внутреннего прогнозирования номер 66 может называться "режимом правого верхнего диагонального внутреннего прогнозирования".
[101] Дополнительно, ненаправленный режим или неугловой режим из режимов внутреннего прогнозирования может включать в себя DC-режим на основе среднего соседних опорных выборок текущего блока или планарный режим на основе интерполяции.
[102] При традиционном внутреннем прогнозировании, блок, который должен в данный момент кодироваться, рассматривается в качестве одной единицы кодирования, и кодирование выполняется без сегментации. Тем не менее, в режиме кодирования на основе внутренних субсегментов (ISP), внутреннее прогнозирующее кодирование может выполняться посредством сегментации блока, который должен в данный момент кодироваться, в горизонтальном направлении или в вертикальном направлении. В этом случае, восстановленный блок может формироваться посредством выполнения кодирования/декодирования в единицах сегментированных блоков, и восстановленный блок может использоваться в качестве опорного блока следующего сегментированного блока. Например, ISP может выполнять сегментацию на блоки так, как показано в таблице 1, согласно размеру блока.
[103] Табл. 1
Размер блока (CU)
Число сегментов
4×4
Не сегментируется
4×8, 8×4
2
Все остальные случаи
4
[104] Ссылаясь на таблицу 1, сегментация на блоки согласно ISP может выполняться по-разному в зависимости от размера или формы блока, например, сегментация на блоки может выполняться так, как показано на фиг. 5 и 6. В таблице 1, число сегментов может означать число субсегментов, и субсегменты могут указывать блок, сформированный посредством сегментации, сегментированный блок или сегментированную зону.
[105] Фиг. 5 показывает пример сегментации на блоки согласно ISP при внутреннем прогнозировании.
[106] Когда размер блока составляет 4×8 или 8×4, блок может сегментироваться на два блока в ISP. Здесь, сегментированный блок может называться "субсегментом" или "субблоком".
[107] Ссылаясь на фиг. 5, горизонтальная сегментация или вертикальная сегментация может выполняться для блока размера WxH. Например, при горизонтальной сегментации, блок размера WxH может сегментироваться на два субсегмента размера WxH/2. При вертикальной сегментации, блок размера WxH может сегментироваться на два субсегмента размера W/2xH. Здесь, W может представлять ширину блока, и H может представлять высоту блока. Кроме того, WxH может составлять 4×8 или 8×4.
[108] Например, блок 8×4 может сегментироваться на два субсегмента, имеющие размер 8×2 при горизонтальной сегментации, либо на два субсегмента, имеющие размер 4×4 при вертикальной сегментации. Альтернативно, блок размера 4×8 может сегментироваться на два субсегмента размера 4×4 при горизонтальном разделении либо на два субсегмента размера 2×8 при вертикальной сегментации.
[109] Фиг. 6 показывает другой пример сегментации на блоки согласно ISP при внутреннем прогнозировании.
[110] Когда размер блока не составляет 4×4, 4×8 или 8×4, блок может сегментироваться на 4 блока в ISP. Таким образом, во всех случаях, в которых размер блока не составляет 4×4, 4×8 или 8×4, блок может сегментироваться на 4 блока в ISP. Здесь, сегментированный блок может называться "субсегментом" или "субблоком".
[111] Ссылаясь на фиг. 6, горизонтальная сегментация или вертикальная сегментация может выполняться для блока размера WxH. Например, при горизонтальной сегментации, блок размера WxH может сегментироваться на 4 субсегмента размера WxH/4, и при вертикальной сегментации, блок размера WxH может сегментироваться на 4 субсегмента размера W/4xH. Здесь, W может представлять ширину блока, и H может представлять высоту блока. Кроме того, WxH может не составлять 4×4, 4×8 или 8×4.
[112] При внутреннем прогнозировании, для ISP, MPM-список может формироваться согласно каждому способу сегментации (горизонтальная сегментация и вертикальная сегментация), чтобы уменьшать сложность кодирования, и оптимальный режим может формироваться посредством сравнения подходящего режима прогнозирования из режимов прогнозирования в сформированном MPM-списке с точки зрения искажения в зависимости от скорости передачи (RDO). Таким образом, оптимальный возможный вариант или оптимальный режим внутреннего прогнозирования может извлекаться из числа возможных вариантов или режимов внутреннего прогнозирования, включенных в MPM-список, и внутреннее прогнозирование может выполняться на основе этого. Здесь, оптимальный возможный вариант или оптимальный режим внутреннего прогнозирования может извлекаться с использованием искажения в зависимости от скорости передачи битов. Альтернативно, оптимальный возможный вариант может извлекаться посредством сравнения искажения в зависимости от скорости передачи битов для каждого возможного варианта в MPM-списке.
[113] Помимо этого, когда вышеописанная MRL используется при внутреннем прогнозировании, ISP может не использоваться. Таким образом, когда внутреннее прогнозирование выполняется с использованием нескольких опорных линий, ISP не может использоваться вместе с ним. Альтернативно, когда внутреннее прогнозирование выполняется с использованием нулевой опорной линии, ISP может использоваться. Здесь, случай, в котором внутреннее прогнозирование выполняется с использованием нулевой опорной линии, может указывать случай, в котором MRL не используется, или случай, в котором нулевая опорная линия используется, поскольку значение поля intra_luma_ref_idx равно 0, даже если MRL используется. Кроме того, когда ISP используется при внутреннем прогнозировании, PDPC может не использоваться.
[114] В варианте осуществления, связанная с ISP информация для использования ISP может включать в себя информацию относительно того, применяется или нет ISP. Здесь, связанная с ISP информация может называться "информацией относительно внутреннего субсегмента" или "информацией внутренних субсегментов". Информация относительно того, применяется или нет ISP, может указывать информацию относительно того, следует или нет применять ISP к текущему блоку, и может включать в себя intra_subpartitions_mode_flag. Информация относительно того, применяется или нет ISP, может выражаться как ISP-флаг. Связанная с ISP информация дополнительно может включать в себя информацию относительно направления разбиения, когда ISP применяется к текущему блоку, посредством информации относительно того, применяется или нет ISP. Информация относительно направления разбиения может указывать информацию относительно того, является сегмент горизонтальным или вертикальным, и может включать в себя intra_subpartitions_split_flag. Вариант осуществления может кодировать/декодировать связанную с ISP информацию.
[115] Связанная с ISP информация может передаваться в служебных сигналах в единицах блоков. Альтернативно, она может передаваться в служебных сигналах через синтаксис единицы кодирования (CU). Альтернативно, синтаксис единицы кодирования может включать в себя информацию относительно того, применяется или нет ISP. Альтернативно, синтаксис единицы кодирования может включать в себя информацию относительно того, применяется или нет ISP, и информацию относительно направления разбиения. Альтернативно, синтаксис единицы кодирования может формироваться в оборудовании кодирования и передаваться в служебных сигналах в оборудование декодирования. Альтернативно, оборудование декодирования может выполнять внутреннее прогнозирование или декодирование на основе передаваемого в служебных сигналах синтаксиса единицы кодирования. Например, синтаксис единицы кодирования может включать в себя нижеприведенную таблицу 2. Альтернативно, синтаксис единицы кодирования может включать в себя связанную с ISP информацию, как показано в нижеприведенной таблице 2.
[116] Табл. 2
[117] В таблице 2, информация относительно того, применяется или нет ISP, может включать в себя поле intra_subpartitions_mode_flag, и информация относительно направления разбиения может включать в себя поле intra_subpartitions_split_flag.
[118] Например, когда ISP применяется, режим внутреннего прогнозирования для текущего блока в равной степени применяется к субсегментам, и производительность внутреннего прогнозирования может повышаться посредством извлечения и использования соседней опорной выборки в единицах субсегментов. Таким образом, когда ISP применяется, процедура обработки остаточных выборок может выполняться в единицах субсегментов.
[119] Другими словами, внутренние прогнозные выборки могут извлекаться для каждого субсегмента, и восстановленные выборки могут получаться посредством суммирования остаточных сигналов (остаточных выборок) для соответствующего субсегмента. Здесь, остаточный сигнал (остаточные выборки) может извлекаться через процедуру обратного преобразования/обратного квантования и т.п. на основе остаточной информации (информации квантованных коэффициентов преобразования или синтаксиса остаточного кодирования) в вышеописанном потоке битов.
[120] Таким образом, прогнозные выборки для первого субсегмента могут извлекаться, остаточные выборки могут извлекаться, и на их основе, восстановленные выборки для первого субсегмента могут извлекаться. В этом случае, когда прогнозные выборки для второго субсегмента извлекаются, некоторые восстановленные выборки в первом субсегменте (например, левые или верхние соседние опорные выборки второго субсегмента) могут использоваться в качестве соседних опорных выборок для второго субсегмента. Аналогично, извлечение прогнозных выборок для второго субсегмента может выполняться, и извлечение остаточных выборок может выполняться, и на их основе, восстановленные выборки для второго субсегмента могут извлекаться. В этом случае, когда прогнозные выборки для третьего субсегмента извлекаются, некоторые восстановленные выборки во втором субсегменте (например, левые или верхние соседние опорные выборки третьего субсегмента) могут использоваться в качестве соседних опорных выборок для третьего субсегмента. Аналогично, восстановленные выборки могут извлекаться посредством выполнения идентичного или аналогичного процесса для других субсегментов.
[121] Фиг. 7 показывает пример TT- и BT-сегментации, которая не разрешается с учетом VPDU-размера.
[122] Виртуальные конвейерные единицы данных (VPDU) могут задаваться для конвейерной обработки в кадре. VPDU могут задаваться как неперекрывающиеся единицы в одном кадре. В аппаратном декодере, последовательные VPDU могут обрабатываться одновременно посредством нескольких ступеней конвейера. VPDU-размер может быть примерно пропорциональным размеру буфера в большинстве ступеней конвейера. Следовательно, поддержание VPDU-размера небольшим может быть важным при рассмотрении размера буфера с аппаратной точки зрения. В большинстве аппаратных декодеров, VPDU-размер может задаваться равным максимальному размеру TB (блока преобразования). Например, VPDU-размер может составлять размер 64×64 (64×64 выборки сигнала яркости). Тем не менее, в качестве примера, VPDU-размер может изменяться (увеличиваться или уменьшаться) с учетом сегмента согласно троичному дереву (TT) и/или двоичному дереву (BT).
[123] Между тем, ссылаясь на фиг. 7, чтобы поддерживать VPDU-размер в качестве размера 64×64 выборки сигнала яркости, по меньшей мере, одно из ограничений, показанных в таблице 3, может применяться.
[124] Табл. 3
- TT-разбиение не разрешается для CU с шириной или с высотой либо как с шириной, так и с высотой, равными 128.
- Для CU 128xN с N≤64 (т.е. с шириной, равной 128, и высотой, меньшей 128), горизонтальное BT не разрешается.
- Для CU Nx128 с N≤64 (т.е. с высотой, равной 128, и шириной, меньшей 128), вертикальное BT не разрешается.
[125] Другими словами, при использовании ISP, блок внутреннего прогнозирования сигналов яркости может разделяться на два или четыре субсегмента вертикально или горизонтально согласно размеру блока. Например, минимальный размер блока для ISP может составлять 4×8 (или 8×4), и когда размер блока превышает 4×8 (или 8×4), соответствующий блок может разделяться на четыре субсегмента.
[126] Помимо этого, когда ISP используется для блока размера Mx128 (M является натуральным числом, меньшим или равным 64) или 128xN (N является натуральным числом, меньшим или равным 64), потенциальная проблема может возникать относительно виртуальной конвейерной единицы данных (VDPU) размера 64×64. Например, единица кодирования (CU) размера Mx128, имеющая одиночное дерево, может включать в себя блок преобразования (TB) сигналов яркости размера Mx128 и два TB сигналов цветности M/2×64. Здесь, одиночное дерево может представлять разбиение посредством идентичного дерева между CU сигналов яркости и соответствующей CU сигнала цветности. Здесь, когда CU использует ISP, TB сигналов яркости может сегментироваться на 4 TB размера Mx32 (только горизонтальный сегмент является возможным здесь), каждый из которых может быть меньше блока 64×64. Тем не менее, в текущем проектном ISP-решении, блоки сигналов цветности, т.е. TB могут не сегментироваться. Таким образом, все компоненты сигнала цветности могут быть больше блока 32×32. Аналогично, аналогичная ситуация может возникать, когда CU размера 128xN использует ISP, и вышеуказанные два случая может представлять собой проблему в конвейере декодера 64×64.
[127] Соответственно, вариант осуществления может предоставлять способ с учетом размера VPDU в процессе применения ISP к CU. Таким образом, вариант осуществления может рассматривать виртуальную конвейерную единицу данных (VPDU) в процессе применения ISP. Альтернативно, вариант осуществления может предоставлять конвейер декодирования с учетом VPDU при выполнении ISP. Альтернативно, вариант осуществления может предоставлять ISP-способ с учетом конвейера декодирования для аппаратной (HW) реализации с учетом VPDU. Альтернативно, в одном варианте осуществления, может предоставляться ISP-способ с учетом аппаратных средств, т.е. способ передачи в служебных сигналах ISP с учетом VPDU.
[128] Фиг. 8 показывает пример конвейера HW-обработки.
[129] В обработке с учетом аппаратных средств (HW), конвейер может быть таким, как показано на фиг. 8. Альтернативно, декодирование может выполняться в единицах VPDU, как показано на фиг. 8. Альтернативно, согласно варианту осуществления, каждый блок может последовательно обрабатываться согласно стрелке. Альтернативно, согласно варианту осуществления, некоторые блоки могут обрабатываться параллельно согласно порядку стрелок.
[130] Например, предполагается, что размер CU сигналов яркости составляет 128×128, размер соответствующей CU сигнала цветности составляет 64×64, и она может разделяться на четыре блока согласно дереву квадрантов. В этом случае, CU сигналов яркости может разделяться на 4 блока размера 64×64, и CU сигнала цветности может разделяться на 4 блока размера 32×32. Здесь, четыре блока размера 64×64, разделенные из CU сигналов яркости, представляются как нулевой блок, первый блок, второй блок и третий блок в порядке верхнего левого, верхнего правого, нижнего левого и нижнего правого, и 4 блока размера 32×32, разделенные из CU сигнала цветности, блоки могут представляться как четвертый блок, пятый блок, шестой блок и седьмой блок в порядке верхнего левого, верхнего правого, нижнего левого и нижнего правого.
[131] В этом случае, обработка каждого из блоков может иметь порядок в виде нулевого блока, т.е. в качестве компонента сигнала яркости, четвертого блока, т.е. в качестве компонента сигнала цветности, соответствующего нулевому блоку, первого блока, т.е. в качестве компонента сигнала яркости, пятого блока, т.е. в качестве компонента сигнала цветности, соответствующего первому блоку, второго блока, т.е. в качестве компонента сигнала яркости, шестого блока, т.е. в качестве компонента сигнала цветности, соответствующего второму блоку, третьего блока, т.е. в качестве компонента сигнала яркости, и седьмого блока, т.е. в качестве компонента сигнала цветности, соответствующего третьему блоку. Альтернативно, VPDU-обработка может выполняться согласно вышеописанному порядку. Здесь, размер VPDU может составлять 64×64. Альтернативно, VPDU-размер для компонента сигнала яркости может составлять 64×64, и VPDU-размер для компонента сигнала цветности может составлять 32×32. Альтернативно, VPDU может быть равной максимальному размеру блока преобразования (в расчете на компонент).
[132] Тем не менее, как описано выше, когда ISP применяется к CU, может возникать проблема. Таким образом, когда ISP применяется к блоку, имеющему размер, больший VPDU-размера, проблема может появляться с точки зрения аппаратных средств, что подробно описывается со ссылкой на фиг. 9.
[133] Фиг. 9 показывает пример конвейера, когда ISP применяется к блоку, большему VPDU-размера.
[134] Например, предполагается, что размер CU сигналов яркости составляет 128×128, размер соответствующей CU сигнала цветности составляет 64×64, она имеет структуру в виде одиночного дерева и разделяется на два блока согласно горизонтальному двоичному дереву. В этом случае, CU сигналов яркости может разделяться на два блока размера 128×64, и CU сигнала цветности может разделяться на два блока размера 64×32. Здесь, при рассмотрении случая применения ISP к текущей CU, ISP может применяться к верхнему блоку из двух блоков, разделенных из CU сигналов яркости, и верхний блок может разделяться на четыре субсегмента размера 32×62 согласно применению ISP. Тем не менее, ISP может применяться только к компоненту сигнала яркости согласно проектному решению по ISP, и в этом случае, ISP может не применяться к CU сигнала цветности или к двум блокам, разделенным из CU сигнала цветности. Здесь, четыре субсегмента могут называться "первым субсегментом", "вторым субсегментом", "третьим субсегментом" и "четвертым субсегментом" слева направо.
[135] В этом случае, первый субсегмент и второй субсегмент, которые представляют собой компоненты сигнала яркости, могут обрабатываться сначала с учетом VPDU 64×64. Здесь, поскольку CU сигнала цветности не разделяется или указывается только на/как области или выборки, соответствующие первому и второму субсегментам, компоненты сигнала цветности, соответствующие первому и второму субсегментам, могут не обрабатываться сразу. Таким образом, после того, как третий субсегмент и четвертый субсегмент, которые представляют собой компоненты сигнала яркости, обрабатываются, компонент сигнала цветности, соответствующий первому-четвертому субсегментам (верхний блок из двух блоков, разделенных из CU сигнала цветности), может обрабатываться. Тем не менее, VPDU может иметь размер 32×32 для компонента сигнала цветности, в этом случае, поскольку размер верхнего блока из двух блоков, разделенных из CU сигнала цветности, составляет 64×32, это может не выполняться в единицах конвейеров VPDU. Альтернативно, эффективность кодирования может уменьшаться.
[136] Например, в вышеприведенном описании, поскольку размер VPDU может определяться в качестве максимального размера блока преобразования, ссылаясь на таблицу 4, максимальный размер блока преобразования может иметь предварительно установленный максимальный размер блока преобразования для компонента сигнала яркости и может иметь размер в половину от предварительно установленного максимального размера блока преобразования для компонента сигнала цветности. Здесь, предварительно установленный максимальный размер блока преобразования может составлять 64×64, но не ограничен этим.
[137] Табл. 4
8.4.4. Процесс декодирования для внутренних блоков
8.4.4.1. Общий процесс декодирования для внутренних блоков
Вводы в этот процесс представляют собой следующее:
- выборочное местоположение (xTb0, yTb0), указывающее левую верхнюю выборку текущего блока преобразования относительно левой верхней выборки текущего кадра,
- переменная nTbW, указывающая ширину текущего блока преобразования,
- переменная nTbH, указывающая высоту текущего блока преобразования,
- переменная predModeIntra, указывающая режим внутреннего прогнозирования,
- переменная cIdx, указывающая цветовой компонент текущего блока.
Вывод этого процесса представляет собой модифицированный восстановленный кадр перед внутриконтурной фильтрацией. Максимальный размер maxTbSize блока преобразования извлекается следующим образом:
- maxTbSize=(cIdx==0)? MaxTbSizeY:MaxTbSizeY/2
[138] В таблице 4, значение поля cIdx может включать в себя индекс цветового компонента, или информацию, указывающую цветовой компонент, может указывать компонент сигнала (Y) яркости, если значение поля cIdx равно 0, и может указывать компонент (Cb) сигнала цветности, если значение поля cIdx равно 1, и может указывать компонент (Cr) сигнала цветности, если значение поля cIdx равно 2.
[139] Другими словами, максимальный размер (maxTbSize) блока преобразования может определяться в качестве предварительно установленного MaxTbSizeY в случае компонента сигнала яркости (cIdx==0) и может определяться в качестве предварительно установленного MaxTbSizeY/2, если он не представляет собой компонент сигнала яркости (cIdx!==0).
[140] Вариант осуществления согласно этому документу может предлагать способ деактивации ISP-кодирования для блока, имеющего размер 128xN и/или Nx128, чтобы разрешать вышеуказанную сложность или проблему. Альтернативно, согласно варианту осуществления, размер блока, к которому не может применяться ISP, может задаваться. Альтернативно, согласно варианту осуществления, условие, при котором ISP не может применяться на основе размера блока (компонентов сигнала яркости), может задаваться.
[141] Например, ISP-флаг (например, intra_subpartitions_mode_flag), указывающий то, применяется или нет ISP к текущему блоку (например, CU/CB), может передаваться в служебных сигналах и/или синтаксически анализироваться, когда оба условия i) ширина текущего блока меньше или равна MaxTbSizeY (т.е. ширина/высота максимального блока преобразования для компонента сигнала яркости), и ii) высота текущего блока меньше или равна MaxTbSizeY. Тем не менее, если вышеуказанное условие не удовлетворяется, ISP-флаг может не передаваться в служебных сигналах и/или синтаксически анализироваться, и его значение может оцениваться как 0.
[142] Таким образом, если оба условия удовлетворяются: i) ширина ширины текущего блока меньше или равна MaxTbSizeY, и ii) высота текущего блока меньше или равна MaxTbSizeY, ISP активируется. В противном случае, ISP может не быть доступным (деактивироваться). Здесь, описано, что ширина и высота максимального блока преобразования (TB) задаются идентичными, но настоящее раскрытие сущности не ограничено этим, и максимальная ширина и высота TB могут задаваться различными.
[143] Другими словами, только когда ширина и высота текущего блока меньше или равны максимальному размеру блока преобразования, ISP может применяться к текущему блоку. Альтернативно, связанная с ISP информация для текущего блока может передаваться в служебных сигналах. Альтернативно, ISP может применяться к блоку текущего компонента сигнала яркости только тогда, когда ширина и высота блока текущего компонента сигнала яркости меньше или равны максимальному размеру блока преобразования. Альтернативно, связанная с ISP информация для блока текущего компонента сигнала яркости может передаваться в служебных сигналах.
[144] Например, связанная с ISP информация может передаваться в служебных сигналах в единицах блоков на основе вышеописанных условий. Альтернативно, когда вышеописанные условия удовлетворяются, информация может передаваться в служебных сигналах через синтаксис единицы кодирования (CU). Альтернативно, синтаксис единицы кодирования может включать в себя информацию относительно того, применяется или нет ISP, когда вышеописанные условия удовлетворяются. Альтернативно, когда вышеописанные условия удовлетворяются, синтаксис единицы кодирования может включать в себя информацию относительно того, применяется или нет ISP, и информацию относительно направления разбиения. Альтернативно, синтаксис единицы кодирования может формироваться в оборудовании кодирования и передаваться в служебных сигналах в оборудование декодирования. Альтернативно, оборудование декодирования может выполнять внутреннее прогнозирование или декодирование на основе передаваемого в служебных сигналах синтаксиса единицы кодирования.
[145] Например, синтаксис единицы кодирования с учетом вышеописанных условий может представляться так, как показано в нижеприведенной таблице 5. Кроме того, он может включать в себя таблицу 5. Альтернативно, синтаксис единицы кодирования может включать в себя связанную с ISP информацию, как показано в нижеприведенной таблице 5.
[146] Табл. 5
[147] Ссылаясь на таблицу 5, в варианте осуществления, когда (intra_luma_ref_idx[x0][y0]==0 andand (cbWidth<=MaxTbSizeY andand cbHeight<=MaxTbSizeY) andand (cbWidth*cbHeight>MinTbSizeY*MinTbSizeY))) удовлетворяется, он может включать в себя информацию относительно того, применяется или нет ISP, включающую в себя поле intra_subpartitions_mode_flag. Альтернативно, if(cbWidth<=MaxTbSizeY andand cbHeight<=MaxTbSizeY), удовлетворяется, информация относительно того, применяется или нет ISP, включающая в себя поле intra_subpartitions_mode_flag, может включаться. Здесь, cbWidth может указывать ширину текущего блока (сигналов яркости), chHeight может указывать высоту текущего блока (сигналов яркости), и MaxTbSizeY может указывать максимальный размер блока преобразования.
[148] Помимо этого, вариант осуществления, включает в себя поле, когда поле intra_subpartitions_mode_flag имеет значение 1, либо когда (intra_subpartitions_mode_flag[x0][y0]==1 andand cbWidth<=MaxTbSizeY andand cbHeight<=MaxTbSizeY) удовлетворяется, информация относительно направления разбиения, включающая в себя поле intra_subpartitions_split_flag, может включаться.
[149] Например, семантика intra_subpartitions_mode_flag и intra_subpartitions_split_flag может представляться так, как показано в таблице 6.
[150] Табл. 6
- intra_subpartitions_mode_flag[x0][y0], равный 1, указывает то, что текущая единица внутреннего кодирования сегментируется на субсегменты блока прямоугольного преобразования NumIntraSubPartitions[x0][y0]; intra_subpartitions_mode_flag[x0][y0], равный 0, указывает то, что текущая единица внутреннего кодирования не сегментируется на субсегменты блока прямоугольного преобразования.
- intra_subpartitions_split_flag[x0][y0] указывает то, является тип разбиения внутренних субсегментов горизонтальным или вертикальным. Когда intra_subpartitions_split_flag[x0][y0] не присутствует, он может логически выводиться как равный 0.
Переменная IntraSubPartitionsSplitType указывает тип разбиения, используемого для текущего блока кодирования сигналов яркости, как проиллюстрировано в следующей таблице. IntraSubPartitionsSplitType извлекается следующим образом:
- Если intra_subpartitions_mode_flag[x0][y0] равен 0, IntraSubPartitionsSplitType задается равным 0.
- В противном случае, IntraSubPartitionsSplitType задается равным 1+intra_subpartitions_split_flag[x0][y0].
Ассоциирование названий с IntraSubPartitionsSplitType
IntraSubPartitionsSplitType
Название IntraSubPartitionsSplitType
0
ISP_NO_SPLIT
1
ISP_HOR_SPLIT
2
ISP_VER_SPLIT
[151] Фиг. 10 схематично иллюстрирует способ кодирования изображений посредством оборудования кодирования согласно настоящему документу.
[152] Способ, раскрытый на фиг. 10, может осуществляться посредством оборудования кодирования, раскрытого на фиг. 2. В частности, например, этапы S1000-S1020 по фиг. 10 могут выполняться посредством модуля прогнозирования оборудования кодирования, этап S1030 может выполняться посредством вычитателя оборудования кодирования, и этап S1040 может выполняться посредством энтропийного кодера оборудования кодирования. Кроме того, хотя не показано, процесс формирования информации относительно остатка для текущего блока на основе остаточной выборки может выполняться посредством преобразователя оборудования кодирования.
[153] Оборудование кодирования извлекает режим внутреннего прогнозирования текущего блока (S1000). Например, оборудование кодирования может извлекать режим внутреннего прогнозирования текущего блока на основе соседних выборок текущего блока. Альтернативно, оборудование кодирования может извлекать опорные выборки текущего блока на основе соседних выборок текущего блока и может определять режим внутреннего прогнозирования, соответственно. Альтернативно, оборудование кодирования может извлекать MPM-список для определения режима внутреннего прогнозирования текущего блока и может формировать связанную с MPM-списками информацию для определения режима внутреннего прогнозирования из MPM-списка. Например, связанная с MPM-списками информация может включать в себя информацию MPM-индекса, и режим внутреннего прогнозирования может определяться из MPM-списка на основе информации MPM-индекса.
[154] Оборудование кодирования извлекает связанную с ISP информацию для текущего блока на основе размера текущего блока и максимального размера блока преобразования (S1010). Например, оборудование кодирования может извлекать связанную с ISP информацию посредством сравнения ширины и/или высоты текущего блока с максимальным размером блока преобразования. Альтернативно, когда ширина текущего блока меньше или равна максимальному размеру блока преобразования, и высота текущего блока меньше или равна максимальному размеру блока преобразования, оборудование кодирования может извлекать связанную с ISP информацию для текущего блока. Альтернативно, оборудование кодирования может извлекать связанную с ISP информацию относительно текущего блока, имеющего ширину, меньшую или равную максимальному размеру блока преобразования, и высоту, меньшую или равную максимальному размеру блока преобразования. Здесь, максимальный размер блока преобразования может выражаться как maxTbsizeY, и ширина и высота могут быть идентичными. Альтернативно, максимальный размер блока преобразования может иметь различную ширину и высоту. Например, когда ширина текущего блока меньше или равна ширине максимального блока преобразования, и высота текущего блока меньше или равна высоте максимального блока преобразования, оборудование кодирования может извлекать связанную с ISP информацию для текущего блока.
[155] Например, связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку. Таким образом, оборудование кодирования может извлекать информацию относительно того, применяется или нет ISP к текущему блоку, посредством сравнения ширины и/или высоты текущего блока с максимальным размером блока преобразования. Альтернативно, когда ширина текущего блока меньше или равна максимальному размеру блока преобразования, и высота текущего блока меньше или равна максимальному размеру блока преобразования, устройство кодирования может извлекать информацию относительно того, применяется или нет ISP к текущему блоку. Альтернативно, устройство кодирования может извлекать связанную с ISP информацию для текущего блока, имеющего ширину, меньшую или равную максимальному размеру блока преобразования, и высоту, меньшую или равную максимальному размеру блока преобразования, при этом связанная с ISP информация включает в себя информацию относительно того, применяется или нет ISP к текущему блоку. Здесь, информация относительно того, применяется или нет ISP к текущему блоку, может включать в себя поле intra_subpartitions_mode_flag. Здесь, поле intra_subpartitions_mode_flag может представляться как ISP-флаг. Например, поле intra_subpartitions_mode_flag может иметь значение 0 или 1. Кроме того, информация относительно того, применяется или нет ISP к текущему блоку, может включаться в синтаксис единицы кодирования.
[156] Например, информация относительно того, применяется или нет ISP, может включать в себя информацию относительно применения ISP к текущему блоку или информацию относительно неприменения ISP к текущему блоку. Например, когда информация относительно того, применяется или нет ISP, включает в себя поле intra_subpartitions_mode_flag, информация относительно применения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 1, и информация относительно неприменения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 0. Альтернативно, информация для применения ISP в текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 0, и информация относительно неприменения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 1. Другими словами, информация относительно применения ISP к текущему блоку или информация относительно неприменения ISP к текущему блоку может указываться посредством значения поля intra_subpartitions_mode_flag.
[157] Например, связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку, и информацию относительно направления разбиения. Альтернативно, когда информация относительно того, применяется или нет ISP, включает в себя информацию для применения ISP в текущему блоку, связанная с ISP информация может включать в себя информацию относительно направления разбиения. Альтернативно, когда связанная с ISP информация включает в себя информацию для применения ISP в текущему блоку, информация относительно направления разбиения также может включаться. Альтернативно, связанная с ISP информация дополнительно может включать в себя информацию относительно направления разбиения на основе информации относительно того, применяется или нет ISP, указывающей то, что ISP применяется к текущему блоку. Например, информация относительно направления разбиения может включать в себя поле intra_subpartitions_split_flag. Здесь, поле intra_subpartitions_split_flag может представляться как флаг направления разбиения. Например, поле intra_subpartitions_split_flag может иметь значение 0 или 1. Например, когда информация относительно направления разбиения включает в себя поле intra_subpartitions_split_flag, информация, в которой направление разбиения является горизонтальным, может указывать случай, в котором значение поля intra_subpartitions_split_flag равно 0, и информация, в которой направление разбиения является вертикальным, может указывать, когда значение поля intra_subpartitions_split_flag равно 1. Альтернативно, информация, в которой направление разбиения является горизонтальным, может указывать случай, в котором значение поля intra_subpartitions_split_flag равно 1, и информация, в которой направление разбиения является вертикальным, может указывать случай, в котором значение поля intra_subpartitions_split_flag равно 0.
[158] Альтернативно, когда ширина или высота текущего блока превышает максимальный размер блока преобразования, связанная с ISP информация может включать в себя информацию относительно того, чтобы не применять ISP к текущему блоку. Например, когда ширина или высота текущего блока превышает максимальный размер блока преобразования, информация относительно того, применяется или нет ISP к текущему блоку, может не включаться. Альтернативно, она может не извлекаться. Здесь, когда информация относительно того, применяется или нет ISP, не извлекается, может подразумеваться то, что информация относительно неприменения ISP к текущему блоку извлекается.
[159] Оборудование кодирования формирует прогнозную выборку текущего блока на основе режима внутреннего прогнозирования и связанной с ISP информации (S1020). Например, при применении ISP к текущему блоку на основе связанной с ISP информации, оборудование кодирования может определять режим внутреннего прогнозирования одинаково для разделенных субсегментов. Альтернативно, режим внутреннего прогнозирования может в равной степени применяться к субсегментам. Например, когда ISP применяется к текущему блоку, оборудование кодирования может извлекать MPM-список согласно направлению разбиения. Альтернативно, устройство кодирования дополнительно может получать связанную с MPM-списками информацию и может извлекать другой MPM-список согласно направлению разбиения. Например, различные MPM-списки могут извлекаться при разделении в горизонтальном направлении и при разделении в вертикальном направлении. Оборудование кодирования может извлекать MPM-список по-разному согласно направлению разбиения, определять режим внутреннего прогнозирования на основе извлеченного MPM-списка и применять определенный режим внутреннего прогнозирования к субсегментам одинаково.
[160] Например, прогнозная выборка может формироваться на основе режима внутреннего прогнозирования и субсегментов текущего блока. Кроме того, субсегменты текущего блока могут извлекаться на основе информации относительно направления разбиения. Таким образом, субсегменты текущего блока могут извлекаться посредством разделения в вертикальном направлении или могут извлекаться посредством разделения в горизонтальном направлении. Например, MPM-список может извлекаться по-разному согласно направлению разбиения, как описано выше.
[161] Например, субсегменты текущего блока могут включать в себя первый субсегмент и второй субсегмент. Альтернативно, субсегменты текущего блока могут включать в себя первый субсегмент, второй субсегмент, третий субсегмент и четвертый субсегмент. Здесь, число субсегментов может определяться на основе размера текущего блока.
[162] Например, когда текущий блок разделяется на первый субсегмент и второй субсегмент, прогнозная выборка первого субсегмента может формироваться на основе режима внутреннего прогнозирования и соседних выборок первого субсегмента, прогнозная выборка второго субсегмента может формироваться на основе режима внутреннего прогнозирования и прогнозной выборки первого субсегмента. Таким образом, прогнозная выборка первого субсегмента может формироваться на основе левой соседней выборки и/или верхней соседней выборки первого субсегмента согласно режиму внутреннего прогнозирования. Альтернативно, опорная выборка первого субсегмента может извлекаться на основе левой соседней выборки и/или верхней соседней выборки первого субсегмента согласно режиму внутреннего прогнозирования, и прогнозная выборка первого субсегмента может формироваться на основе извлеченной опорной выборки. Опорная выборка второго субсегмента может извлекаться на основе левой соседней выборки и/или верхней соседней выборки второго субсегмента согласно режиму внутреннего прогнозирования, и прогнозная выборка второго субсегмента может формироваться на основе извлеченной опорной выборки. Здесь, прогнозная выборка первого субсегмента может использоваться в качестве соседней выборки второго субсегмента. Альтернативно, она может извлекаться в качестве опорной выборки второго субсегмента. Здесь, режим внутреннего прогнозирования второго субсегмента может быть идентичным режиму внутреннего прогнозирования первого субсегмента.
[163] Альтернативно, оборудование кодирования может непосредственно использовать прогнозную выборку в качестве восстановленной выборки согласно режиму прогнозирования. Кроме того, оборудование кодирования может формировать прогнозированный блок текущего блока на основе прогнозной выборки. Кроме того, оборудование кодирования может формировать остаточную выборку на основе исходной выборки и сформированной прогнозной выборки. Оборудование кодирования может формировать информацию относительно остатка на основе остаточной выборки. Информация относительно остатка может включать в себя коэффициенты преобразования для остаточной выборки. Оборудование кодирования может извлекать восстановленную выборку на основе прогнозной выборки и остаточной выборки. Таким образом, оборудование кодирования может извлекать восстановленную выборку посредством суммирования прогнозной выборки и остаточной выборки. Здесь, оборудование кодирования может формировать остаточный блок на основе исходного блока и прогнозированного блока и также может формировать информацию относительно остатка на основе остаточного блока.
[164] Оборудование кодирования извлекает остаточную выборку на основе прогнозной выборки (S1030). Например, оборудование кодирования может извлекать остаточную выборку для текущего блока на основе исходной выборки и прогнозной выборки для текущего блока. Тем не менее, оборудование кодирования может использовать прогнозную выборку в качестве восстановленной выборки, и в этом случае, оборудование кодирования может опускать процесс извлечения остаточной выборки на основе прогнозной выборки. Альтернативно, хотя не показано, оборудование кодирования может формировать восстановленную выборку посредством суммирования остаточной выборки с прогнозной выборкой.
[165] Оборудование кодирования кодирует информацию изображений, включающую в себя информацию режима прогнозирования относительно режима внутреннего прогнозирования, связанную с ISP информацию и информацию относительно остаточной выборки (S1040). Например, оборудование кодирования может определять режим прогнозирования текущего блока и может формировать информацию, указывающую режим прогнозирования. Альтернативно, оборудование кодирования может определять режим внутреннего прогнозирования текущего блока и может формировать информацию режима прогнозирования текущего блока, включающую в себя информацию относительно режима внутреннего прогнозирования. Информация режима прогнозирования может включать в себя информацию относительно прогнозирования текущего блока или различную информацию для прогнозирования. Информация режима прогнозирования может включать в себя связанную с MPM-списками информацию. Альтернативно, связанная с MPM-списками информация может включать информацию MPM-индекса для режима внутреннего прогнозирования, используемого для внутреннего прогнозирования текущего блока, в MPM-список.
[166] Кроме того, устройство кодирования может формировать связанную с ISP информацию. Связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку. Альтернативно, связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку, и информацию относительно направления разбиения. Альтернативно, связанная с ISP информация может включать в себя информацию, указывающую то, что ISP не применяется к текущему блоку. Кроме того, оборудование кодирования может формировать информацию относительно остатка. Информация относительно остатка может включать в себя информацию относительно остаточной выборки (или массива остаточных выборок). Альтернативно, информация относительно остатка может включать в себя коэффициенты преобразования для остаточной выборки.
[167] Оборудование кодирования может формировать поток битов посредством кодирования информации изображений, включающей в себя всю или часть вышеописанной информации. Альтернативно, она может выводиться в форме потока битов. Кроме того, поток битов может передаваться в оборудование декодирования через сеть или носитель хранения данных. Альтернативно, поток битов может сохраняться на машиночитаемом носителе хранения данных.
[168] Фиг. 11 схематично иллюстрирует способ декодирования изображений посредством оборудования декодирования согласно настоящему документу.
[169] Способ, раскрытый на фиг. 11, может осуществляться посредством оборудования декодирования, проиллюстрированного на фиг. 3. В частности, например, S1100 по фиг. 11 может выполняться посредством энтропийного декодера оборудования декодирования, и S1110-S1130 могут выполняться посредством модуля прогнозирования оборудования декодирования. Помимо этого, хотя не показано, процесс получения информации изображений, включающей в себя информацию относительно прогнозирования текущего блока и информацию относительно остатка через поток битов, может выполняться посредством энтропийного декодера оборудования декодирования, и процесс извлечения остаточной выборки для текущего блока на основе информации относительно остатка может выполняться посредством обратного преобразователя оборудования декодирования, и процесса формирования восстановленного кадра на основе прогнозной выборки и остаточной выборки может выполняться посредством сумматора оборудования декодирования.
[170] Оборудование декодирования принимает информацию режима прогнозирования текущего блока (S1100). Например, информация режима прогнозирования может включать в себя информацию относительно режима внутреннего прогнозирования текущего блока. Альтернативно, информация относительно прогнозирования текущего блока или различная информация для прогнозирования может включаться. Например, оборудование декодирования может получать информацию режима прогнозирования из потока битов. Альтернативно, оборудование декодирования может энтропийно декодировать поток битов, чтобы получать информацию режима прогнозирования. Альтернативно, оборудование декодирования может получать информацию режима прогнозирования посредством синтаксического анализа потока битов.
[171] Оборудование декодирования принимает связанную ISP с информацию относительно текущего блока на основе размера текущего блока и максимального размера блока преобразования (S1110). Например, оборудование декодирования может принимать или извлекать связанную с ISP информацию посредством сравнения ширины и/или высоты текущего блока с максимальным размером блока преобразования. Альтернативно, когда ширина текущего блока меньше или равна максимальному размеру блока преобразования, и высота текущего блока меньше или равна максимальному размеру блока преобразования, оборудование декодирования может принимать связанную с ISP информацию относительно текущего блока. Альтернативно, оборудование декодирования может принимать связанную с ISP информацию относительно текущего блока, имеющего ширину, меньшую или равную максимальному размеру блока преобразования, и высоту, меньшую или равную максимальному размеру блока преобразования. Здесь, максимальный размер блока преобразования может выражаться как maxTbsizeY, и ширина и высота могут быть идентичными. Альтернативно, максимальный размер блока преобразования может иметь различную ширину и высоту. Например, когда ширина текущего блока меньше или равна ширине максимального блока преобразования, и высота текущего блока меньше или равна высоте максимального блока преобразования, оборудование декодирования может извлекать связанную с ISP информацию для текущего блока.
[172] Например, связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку. Таким образом, оборудование декодирования может сравнивать ширину и/или высоту текущего блока с максимальным размером блока преобразования, чтобы принимать информацию относительно того, применяется или нет ISP к текущему блоку. Альтернативно, когда ширина текущего блока меньше или равна максимальному размеру блока преобразования, и высота текущего блока меньше или равна максимальному размеру блока преобразования, оборудование декодирования может принимать информацию относительно того, применяется или нет ISP к текущему блоку. Альтернативно, оборудование декодирования может принимать связанную с ISP информацию для текущего блока, имеющего ширину, меньшую или равную максимальному размеру блока преобразования, и высоту, меньшую или равную максимальному размеру блока преобразования, и связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку. Здесь, информация относительно того, применяется или нет ISP к текущему блоку, может включать в себя поле intra_subpartitions_mode_flag. Здесь, поле intra_subpartitions_mode_flag может представляться как ISP-флаг. Например, поле intra_subpartitions_mode_flag может иметь значение 0 или 1. Кроме того, информация относительно того, применяется или нет ISP к текущему блоку, может включаться в синтаксис единицы кодирования.
[173] Например, информация относительно того, применяется или нет ISP, может включать в себя информацию относительно применения ISP к текущему блоку или информацию относительно неприменения ISP к текущему блоку. Например, когда информация относительно того, применяется или нет ISP, включает в себя поле intra_subpartitions_mode_flag, информация относительно применения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 1, и информация относительно неприменения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 0. Альтернативно, информация относительно применения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 0, и информация относительно неприменения ISP к текущему блоку может указывать случай, в котором значение поля intra_subpartitions_mode_flag равно 1. Другими словами, информация относительно применения ISP к текущему блоку или информация относительно неприменения ISP к текущему блоку может указываться посредством значения поля intra_subpartitions_mode_flag.
[174] Например, связанная с ISP информация может включать в себя информацию относительно того, применяется или нет ISP к текущему блоку, и информацию относительно направления разбиения. Альтернативно, когда информация относительно того, применяется или нет ISP, включает в себя информацию для применения ISP в текущему блоку, связанная с ISP информация может включать в себя информацию относительно направления разбиения. Альтернативно, когда связанная с ISP информация включает в себя информацию для применения ISP в текущему блоку, информация относительно направления разбиения также может включаться. Альтернативно, связанная с ISP информация дополнительно может включать в себя информацию относительно направления разбиения на основе информации относительно того, применяется или нет ISP, указывающей то, что ISP применяется к текущему блоку. Например, информация относительно направления разбиения может включать в себя поле intra_subpartitions_split_flag. Здесь, поле intra_subpartitions_split_flag может представляться как флаг направления разбиения. Например, поле intra_subpartitions_split_flag может иметь значение 0 или 1. Например, когда информация относительно направления разбиения включает в себя поле intra_subpartitions_split_flag, информация, в которой направление разбиения является горизонтальным, может указывать случай, в котором значение поля intra_subpartitions_split_flag равно 0, и информация, в которой направление разбиения является вертикальным, может указывать, когда значение поля intra_subpartitions_split_flag равно 1. Альтернативно, информация, в которой направление разбиения является горизонтальным, может указывать случай, в котором значение поля intra_subpartitions_split_flag равно 1, и информация, в которой направление разбиения является вертикальным, может указывать случай, в котором значение поля intra_subpartitions_split_flag равно 0.
[175] Альтернативно, когда ширина или высота текущего блока превышает максимальный размер блока преобразования, связанная с ISP информация может включать в себя информацию относительно того, чтобы не применять ISP к текущему блоку. Например, когда ширина или высота текущего блока превышает максимальный размер блока преобразования, информация относительно того, применяется или нет ISP к текущему блоку, может не включаться. Альтернативно, она может не извлекаться. Здесь, когда информация относительно того, применяется или нет ISP, не извлекается, может подразумеваться то, что информация относительно неприменения ISP к текущему блоку извлекается.
[176] Оборудование декодирования извлекает режим внутреннего прогнозирования текущего блока на основе информации режима прогнозирования (S1120). Например, информация режима прогнозирования может включать в себя информацию относительно режима внутреннего прогнозирования текущего блока, и оборудование декодирования может определять режим внутреннего прогнозирования текущего блока на основе информации относительно режима внутреннего прогнозирования текущего блока. Альтернативно, оборудование декодирования дополнительно может получать связанную с MPM-списками информацию и может определять режим внутреннего прогнозирования на основе связанной с MPM-списками информации. Альтернативно, связанная с MPM-списками информация может включать в себя информацию MPM-индекса, и оборудование декодирования может определять режим внутреннего прогнозирования текущего блока в MPM-списке на основе информации MPM-индекса.
[177] Оборудование декодирования формирует прогнозную выборку текущего блока на основе режима внутреннего прогнозирования и связанной с ISP информации (S1130). Например, при применении ISP к текущему блоку на основе связанной с ISP информации, оборудование декодирования может определять режим внутреннего прогнозирования одинаково для разделенных субсегментов. Альтернативно, режим внутреннего прогнозирования может в равной степени применяться к субсегментам. Например, при применении ISP к текущему блоку, оборудование декодирования может извлекать MPM-список согласно направлению разбиения. Альтернативно, оборудование декодирования дополнительно может получать связанную с MPM-списками информацию и может извлекать другой MPM-список согласно направлению разбиения. Например, различные MPM-списки могут извлекаться, когда он разделяется в горизонтальном направлении, и когда он разделяется в вертикальном направлении. Оборудование декодирования может извлекать MPM-список по-разному согласно направлению разбиения, определять режим внутреннего прогнозирования на основе извлеченного MPM-списка и применять определенный режим внутреннего прогнозирования к субсегментам одинаково.
[178] Например, прогнозная выборка может формироваться на основе режима внутреннего прогнозирования и субсегментов текущего блока. Кроме того, субсегменты текущего блока могут извлекаться на основе информации относительно направления разбиения. Таким образом, субсегменты текущего блока могут извлекаться посредством разделения в вертикальном направлении или могут извлекаться посредством разделения в горизонтальном направлении. Например, MPM-список может извлекаться по-разному согласно направлению разбиения, как описано выше.
[179] Например, субсегменты текущего блока могут включать в себя первый субсегмент и второй субсегмент. Альтернативно, субсегменты текущего блока могут включать в себя первый субсегмент, второй субсегмент, третий субсегмент и четвертый субсегмент. Здесь, число субсегментов может определяться на основе размера текущего блока.
[180] Например, когда текущий блок разделяется на первый субсегмент и второй субсегмент, прогнозная выборка первого субсегмента может формироваться на основе режима внутреннего прогнозирования и соседних выборок первого субсегмента, прогнозная выборка второго субсегмента может формироваться на основе режима внутреннего прогнозирования и прогнозной выборки первого субсегмента. Таким образом, прогнозная выборка первого субсегмента может формироваться на основе левой соседней выборки и/или верхней соседней выборки первого субсегмента согласно режиму внутреннего прогнозирования. Альтернативно, опорная выборка первого субсегмента может извлекаться на основе левой соседней выборки и/или верхней соседней выборки первого субсегмента согласно режиму внутреннего прогнозирования, и прогнозная выборка первого субсегмента может формироваться на основе извлеченной опорной выборки. Опорная выборка второго субсегмента может извлекаться на основе левой соседней выборки и/или верхней соседней выборки второго субсегмента согласно режиму внутреннего прогнозирования, и прогнозная выборка второго субсегмента может формироваться на основе извлеченной опорной выборки. Здесь, прогнозная выборка первого субсегмента может использоваться в качестве соседней выборки второго субсегмента. Альтернативно, она может извлекаться в качестве опорной выборки второго субсегмента. Здесь, режим внутреннего прогнозирования второго субсегмента может быть идентичным режиму внутреннего прогнозирования первого субсегмента.
[181] Альтернативно, оборудование декодирования может непосредственно использовать прогнозную выборку в качестве восстановленной выборки согласно режиму прогнозирования. Кроме того, оборудование декодирования может формировать прогнозированный блок текущего блока на основе прогнозной выборки. Кроме того, оборудование декодирования может формировать восстановленную выборку посредством суммирования остаточной выборки с прогнозной выборкой. Когда имеется остаточная выборка для текущего блока, оборудование декодирования может получать информацию относительно остатка для текущего блока из потока битов. Информация относительно остатка может включать в себя коэффициенты преобразования для остаточной выборки. Оборудование декодирования может извлекать остаточную выборку (или массив остаточных выборок) для текущего блока на основе остаточной информации. Оборудование декодирования может формировать восстановленную выборку на основе прогнозной выборки и остаточной выборки и может извлекать восстановленный блок или восстановленный кадр на основе восстановленной выборки. После этого, как описано выше, оборудование декодирования может применять процедуру внутриконтурной фильтрации, к примеру, процедуру фильтрации для удаления блочности и/или SAO, к восстановленному кадру, чтобы повышать субъективное/объективное качество кадров, при необходимости.
[182] В вышеприведенном варианте осуществления, способы описываются на основе блок-схемы последовательности операций способа в качестве последовательности этапов или блоков, но этот документ не ограничен порядком этапов, и некоторые этапы могут возникать в другом порядке или одновременно с другими этапами, как описано выше. Помимо этого, специалисты в данной области техники должны понимать, что этапы, показанные на блок-схеме последовательности операций способа, не являются единственно возможными, и что другие этапы могут включаться, либо что один или более этапов блок-схемы последовательности операций способа могут удаляться без влияния на объем этого документа.
[183] Способ согласно этому документу, описанному выше, может реализовываться в форме программного обеспечения и оборудования кодирования, и/или оборудование декодирования согласно этому документу может включаться, например, в телевизор, компьютер, смартфон, абонентскую приставку, устройство отображения, которое выполняет обработку изображений.
[184] Когда варианты осуществления настоящего документа реализуются в программном обеспечении, вышеописанный способ может реализовываться посредством модулей (процессов, функций и т.д.), которые выполняют функции, описанные выше. Такие модули могут сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может находиться внутри или снаружи процессора, и запоминающее устройство может соединяться с процессором с использованием различных известных средств. Процессор может включать в себя специализированную интегральную схему (ASIC), другие наборы микросхем, логическую схему и/или устройство обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карту памяти, носитель хранения данных и/или другие устройства хранения данных.
[185] Фиг. 12 является схемой, иллюстрирующей структуру системы потоковой передачи контента.
[186] Таким образом, примерные варианты осуществления, описанные в настоящем документе, могут выполняться посредством реализации на процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, проиллюстрированные на каждом чертеже, могут выполняться посредством реализации на компьютере, процессоре, микропроцессоре, контроллере или микросхеме.
[187] Дополнительно, оборудование декодирования и оборудование кодирования, к которым применяется настоящий документ, могут включаться в широковещательное мультимедийное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, поставщик услуг на основе технологии "видео по запросу (VoD)", видеоустройство поверх сетей (OTT), поставщик услуг потоковой передачи по Интернету, трехмерное видеоустройство, видеоустройство системы видеовызовов, медицинское видеоустройство и т.п. и использоваться для обработки видеосигналов или сигналов данных. Например, видеоустройство поверх сетей (OTT) может включать в себя игровую приставку, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
[188] Дополнительно, способ обработки, к которому применяется настоящий документ, может формироваться в форме программы, выполняемой посредством компьютера, и сохраняться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно настоящему документу, также могут сохраняться на машиночитаемом носителе записи. Машиночитаемый носитель записи включает в себя все виды устройств хранения данных и устройств распределенного хранения данных, на которых сохраняются машиночитаемые данные. Машиночитаемый носитель записи может включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Дополнительно, машиночитаемый носитель записи включает в себя среды, реализованные в форме несущей (например, при передачи через Интернет). Дополнительно, поток битов, сформированный посредством способа кодирования, может сохраняться на машиночитаемом носителе записи или передаваться через сеть проводной/беспроводной связи. Дополнительно, примерный вариант осуществления настоящего документа может реализовываться посредством компьютерного программного продукта посредством программных кодов, и программные коды могут выполняться посредством компьютера согласно примерному варианту осуществления настоящего документа. Программные коды могут сохраняться на машиночитаемом носителе.
[189] Дополнительно, система потоковой передачи контента, к которой применяется настоящий документ, может включать в себя главным образом сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[190] Сервер кодирования служит для того, чтобы сжимать контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера и записывающая видеокамера, в цифровые данные для того, чтобы формировать поток битов и передавать поток битов в потоковый сервер. В качестве другого примера, если устройства ввода мультимедиа, такие как смартфон, камера и записывающая видеокамера, непосредственно формируют поток битов, сервер кодирования может опускаться. Поток битов может формироваться посредством способа кодирования, к которому применяется настоящий документ, или способа формирования потоков битов, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[191] Потоковый сервер служит для того, чтобы передавать мультимедийные данные в пользовательское устройство на основе пользовательского запроса через веб-сервер, и веб-сервер служит в качестве среды, которая информирует пользователя в отношении того, какие услуги доступны. Когда пользователь запрашивает требуемую услугу на веб-сервере, веб-сервер доставляет запрос пользователя на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В это время, система потоковой передачи контента может включать в себя отдельный сервер управления, и в этом случае сервер управления служит для того, чтобы управлять командами/ответами между устройствами в системе потоковой передачи контента.
[192] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, при приеме контента из сервера кодирования, потоковый сервер может принимать контент в реальном времени. В этом случае, с тем чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
[193] В качестве примера пользовательского устройства, могут быть предусмотрены портативный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональные цифровые устройства (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетный PC, ультрабук, носимое устройство (например, интеллектуальные часы, интеллектуальные очки, наголовный дисплей (HMD)), цифровой телевизор, настольный компьютер, система цифровых информационных табло и т.п. Соответствующие серверы в системе потоковой передачи контента могут работать за счет сервера распространения, и в этом случае, данные, принимаемые посредством каждого сервера, могут распределяться и обрабатываться.