КОДИРОВАНИЕ ИЗОБРАЖЕНИЯ ИЛИ ВИДЕО НА ОСНОВЕ РЕЖИМА ПАЛИТРЫ
IMAGE OR VIDEO ENCODING BASED ON PALETTE MODE

Область техники
[1] Настоящее раскрытие относится к кодированию видео или изображения и, например, к методу кодирования на основе режима палитры.
предшествующий уровень техники
[2] В последнее время, потребность в изображениях/видео высокого разрешения и высокого качества, таких как изображения/видео сверхвысокой четкости (UHD) 4K или 8K или выше, возросла в различных областях. По мере того как разрешение или качество изображения/видео становятся выше, относительно большее количество информации или битов передается по сравнению с данными обычного изображения/видео. Поэтому, если данные изображения/видео передаются с использованием носителей, таких как существующая проводная/беспроводная широкополосная линия, или сохраняются в унаследованном носителе хранения, затраты на передачу и хранение увеличиваются.
[3] Более того, в настоящее время возрастают интерес и потребность в контентах виртуальной реальности (VR) и искусственной реальности (AR) и иммерсивных медиа, таких как голограмма, а также возрастает трансляция изображений/видео, имеющих характеристики изображений/видео, отличные от характеристик реального изображения/видео, таких как игровые изображения/видео.
[4] Поэтому существует необходимость в высокоэффективном методе сжатия изображения/видео для эффективного сжатия и передачи, хранения и воспроизведения высококачественных изображений/видео, имеющих различные характеристики, как описано выше.
[5] Более того, также проводится обсуждение метода кодирования в режиме палитры для улучшения эффективности кодирования для экранного контента, такого как сгенерированное компьютером видео, которое содержит значительное количество текста и графики. Чтобы эффективно применять этот метод, необходим способ для кодирования и сигнализации связанной информации.
Краткое описание сущности изобретения
[6] Задача настоящего раскрытия состоит в обеспечении способа и устройства для улучшения эффективности кодирования видео/изображения.
[7] Другая задача настоящего раскрытия состоит в обеспечении способа и устройства для улучшения эффективности кодирования в режиме палитры.
[8] Еще одна задача настоящего раскрытия состоит в обеспечении способа и устройства для эффективной конфигурации и сигнализации различных типов информации, используемой при кодировании в режиме палитры.
[9] Еще одна задача настоящего раскрытия состоит в обеспечении способа и устройства для эффективного применения кодирования переходом в режиме палитры.
[10] В соответствии с вариантом осуществления настоящего раскрытия, параметр квантования, используемый в процессе масштабирования для квантованного значения перехода в режиме палитры, может выводиться на основе информации минимального параметра квантования для режима пропуска преобразования. Параметр квантования может иметь значение, равное или большее, чем минимальное значение параметра квантования для режима пропуска преобразования.
Y
C
[11] В соответствии с вариантом осуществления настоящего раскрытия, диапазон квантованных значений перехода в режиме палитры может быть ограничен на основе битовой глубины. Например, диапазон информации квантованного значения перехода для компонента яркости имеет значения между 0 и (1<<BitDepth)-1, и диапазон информации квантованного значения перехода для компонента цветности может иметь значения от 0 до (1<<BitDepth)-1.
[12] В соответствии с вариантом осуществления настоящего раскрытия, информация размера палитры касательно максимального индекса таблицы палитры может определяться и сигнализироваться посредством набора параметров последовательности (SPS).
[13] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен способ декодирования видео/изображения, выполняемый устройством декодирования. Способ декодирования видео/изображения может включать в себя способ, раскрытый в вариантах осуществления настоящего раскрытия.
[14] В соответствии с вариантом осуществления настоящего раскрытия, обеспечено устройство декодирования для выполнения декодирования видео/изображения. Устройство декодирования может выполнять способ, раскрытый в вариантах осуществления настоящего раскрытия.
[15] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен способ кодирования видео/изображения, выполняемый устройством кодирования. Способ кодирования видео/изображения может включать в себя способ, раскрытый в вариантах осуществления настоящего раскрытия.
[16] В соответствии с вариантом осуществления настоящего раскрытия, обеспечено устройство кодирования для выполнения кодирования видео/изображения. Устройство кодирования может выполнять способ, раскрытый в вариантах осуществления настоящего раскрытия.
[17] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен считываемый компьютером цифровой носитель хранения, в котором хранится закодированная информация видео/изображения, сгенерированная в соответствии со способом кодирования видео/изображения, раскрытым по меньшей мере в одном из вариантов осуществления настоящего раскрытия.
[18] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен считываемый компьютером цифровой носитель хранения, в котором хранится закодированная информация или закодированная информация видео/изображения, побуждающая устройство декодирования выполнять способ декодирования видео/изображения, раскрытый по меньшей мере в одном из вариантов осуществления настоящего раскрытия.
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ
[19] Настоящее раскрытие имеет различные полезные результаты. Например, в соответствии с вариантом осуществления настоящего раскрытия, можно улучшить общую эффективность сжатия изображения/видео. Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, можно улучшить эффективность в кодировании в режиме палитры. Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, можно эффективно конфигурировать и сигнализировать различные типы информации, используемой при кодировании в режиме палитры. Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, можно улучшить точность и эффективность кодирования для выборок перехода путем эффективного применения кодирования переходом в режиме палитры.
[20] Результаты, которые можно получить с помощью конкретных вариантов осуществления настоящего раскрытия, не ограничены результатами, перечисленными выше. Например, могут быть различные технические результаты, которые специалист в данной области техники может понять или вывести из настоящего раскрытия. Соответственно, конкретные результаты настоящего раскрытия не ограничены результатами, явно описанными в настоящем раскрытии, и могут включать в себя различные результаты, которые можно понять или вывести из технических признаков настоящего раскрытия.
Краткое описание чертежей
[21] Фиг. 1 схематично показывает пример системы кодирования видео/изображения, применимой к вариантам осуществления настоящего раскрытия.
[22] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, в котором применимы варианты осуществления настоящего раскрытия.
[23] Фиг. 3 является диаграммой, схематично иллюстрирующей конфигурацию устройства декодирования видео/изображения, в котором применимы варианты осуществления настоящего раскрытия.
[24] Фиг. 4 показывает пример схематичной процедуры кодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия.
[25] Фиг. 5 показывает пример схематичной процедуры декодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия.
[26] Фиг. 6 показывает пример для описания базовой структуры кодирования палитры.
[27] Фиг. 7 показывает пример для описания способов горизонтального и вертикального поперечного сканирования, используемых, чтобы кодировать карту индексов палитры.
[28] Фиг. 8 является диаграммой для описания примера способа кодирования на основе режима палитры.
[29] Фиг. 9 схематично показывает пример способа кодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.
[30] Фиг. 10 схематично показывает пример способа декодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.
[31] Фиг. 11 показывает пример системы стриминга контента, в которой применимы варианты осуществления, изложенные в настоящем раскрытии.
Описание примерных вариантов осуществления
[32] Настоящее раскрытие может модифицироваться различными способами и может иметь различные варианты осуществления, и конкретные варианты осуществления будут проиллюстрированы на чертежах и описаны подробно. Однако это не предназначено ограничивать настоящее раскрытие конкретными вариантами осуществления. Термины, типично используемые в настоящей спецификации, использованы для описания конкретного варианта осуществления, и не используются, чтобы ограничивать техническую сущность настоящего раскрытия. Выражение в единственном числе включает в себя выражения во множественном числе, если в контексте явным образом не выражено иное. Термин, такой как «включать в себя» или «иметь» в настоящей спецификации, должен пониматься как указывающий существование характеристики, числа, этапа, операции, элемента, части или их комбинации, описанных в спецификации, и не исключающий существования или возможности добавления одной или нескольких других характеристик, чисел, этапов, операций, элементов, частей или их комбинации.
[33] Между тем элементы на чертежах, описанных в настоящем раскрытии, проиллюстрированы независимо для удобства описания, относящегося к разным характеристическим функциям. Это не означает, что каждый из элементов реализован как отдельные аппаратные средства или отдельное программное обеспечение. Например, по меньшей мере два из элементов могут комбинироваться для образования одного элемента, или один элемент может делиться на множество элементов. Вариант осуществления, в котором элементы скомбинированы и/или разделены, также включен в объем прав настоящего раскрытия, если он не отклоняется от сущности настоящего раскрытия.
[34] В настоящем раскрытии, термин “A или B” может означать “только A”, “только B” или “как A, так и B”. Иными словами, в настоящем раскрытии, термин “A или B” может интерпретироваться как указывающий “A и/или B”. Например, в настоящем раскрытии, термин “A, B или C” может означать “только A”, “только B”, “только C” или “любую комбинацию A, B и C”.
[35] Символ “/” или запятая, используемые в настоящем раскрытии, могут означать “и/или”. Например, “A/B” может означать “A и/или B”. Соответственно, “A/B” может означать “только A”, “только B” или “как A, так и B”. Например, “A, B, C” может означать “A, B или C”.
[36] В настоящем раскрытии, “по меньшей мере одно из A и B” может означать “только A”, “только B” или “как A, так и B”. Дополнительно, в настоящем раскрытии, выражение “по меньшей мере одно из A или B” или “по меньшей мере одно из A и/или B” может интерпретироваться так же, как и “по меньшей мере одно из A и B”.
[37] Дополнительно, в настоящем раскрытии, “по меньшей мере одно из A, B и C” может означать “только A”, “только B”, “только C” или “любая комбинация из A, B и C”. Дополнительно, “по меньшей мере одно из A, B или C” или “по меньшей мере одно из A, B и/или C” может означать “по меньшей мере одно из A, B и C”.
[38] Дополнительно, круглые скобки, используемые в настоящем раскрытии, могут означать “например”. Конкретно, в случае, где выражено “предсказание (интра-предсказание)”, может указываться, что “интра-предсказание” предложено как пример “предсказания”. Иными словами, термин “предсказание” в настоящем раскрытии не ограничен “интра-предсказанием”, и может указываться, что “интра-предсказание” предложено в качестве примера “предсказания”. Дополнительно, даже в случае, где выражено “предсказание (т.е. интра-предсказание)”, может указываться, что “интра-предсказание” предложено в качестве примера “предсказания”.
[39] Настоящее раскрытие относится к кодированию видео/изображения. Например, способы/варианты осуществления, раскрытые в настоящем раскрытии, могут применяться к способу, раскрытому в многоцелевом кодировании видео (VVC). Дополнительно, способы/варианты осуществления, раскрытые в настоящем раскрытии, могут применяться к способу, раскрытому в стандарте существенного кодирования видео (EVC), стандарте AOMedia Video 1 (AV1), стандарте кодирования аудио и видео 2-го поколения (AVS2) или стандарте кодирования видео/изображения следующего поколения (например, H.267 или H.268 и т.д.).
[40] Настоящее раскрытие представляет различные варианты осуществления кодирования видео/изображения, и варианты осуществления могут выполняться в комбинации друг с другом, если не упомянуто иное.
[41] В настоящем раскрытии, видео может означать набор последовательности изображений в соответствии с течением времени. Картинка обычно означает единицу, представляющую одно изображение в конкретном временном периоде, и вырезка/мозаичный элемент является единицей, составляющей часть картинки в кодировании. Вырезка/мозаичный элемент может включать в себя одну или более единиц дерева кодирования (CTU). Одна картинка может состоять из одной или более вырезок/мозаичных элементов. Мозаичный элемент представляет собой прямоугольную область CTU в конкретном столбце мозаичного элемента и конкретной строке мозаичного элемента в картинке. Столбец мозаичного элемента представляет собой прямоугольную область CTU, имеющих высоту, равную высоте картинки, и ширину, специфицированную синтаксическими элементами в наборе параметров картинки. Строка мозаичного элемента представляет собой прямоугольную область CTU, имеющих высоту, специфицированную синтаксическими элементами в наборе параметров картинки, и ширину, равную ширине картинки. Сканирование мозаичного элемента является конкретным последовательным упорядочиванием CTU, разбивающих картинку, в которой CTU упорядочены последовательно в растровом сканировании CTU в мозаичном элементе, в то время как мозаичные элементы в картинке упорядочены последовательно в растровом сканировании мозаичных элементов картинки. Вырезка включает в себя целое число полных мозаичных элементов или целое число последовательных полных строк CTU в мозаичном элементе картинки, которые могут исключительно содержаться в одной единице NAL.
[42] Между тем, одна картинка может делиться на две или более под-картинок. Под-картинка может представлять собой прямоугольную область одной или более вырезок в картинке.
[43] Пиксел или пел может означать наименьшую единицу, составляющую одну картинку (или изображение). Также ‘выборка’ может использоваться как термин, соответствующий пикселу. Выборка может обычно представлять пиксел или значение пиксела и может представлять только пиксел/значение пиксела компонента яркости или только пиксел/значение пиксела компонента цветности. Альтернативно, выборка может означать значение пиксела в пространственной области или может означать коэффициент преобразования в частотной области, когда значение пиксела преобразовано в частотную область.
[44] Единица может представлять базовую единицу обработки изображения. Единица может включать в себя по меньшей мере одно из конкретной области картинки и информации, относящейся к области. Одна единица может включать в себя один блок яркости и два блока цветности (например, cb, cr). Единица может использоваться взаимозаменяемо с терминами, такими как блок или область, в некоторых случаях. В общем случае, блок M×N может включать в себя выборки (или массивы выборок) или набор (или массив) коэффициентов преобразования M столбцов и N строк.
[45] Также, в настоящем раскрытии, по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может быть опущено. Когда квантование/деквантование опущено, квантованный коэффициент преобразования может называться коэффициентом преобразования. Когда преобразование/обратное преобразование опущено, коэффициенты преобразования могут называться коэффициентами или остаточными коэффициентами или могут по-прежнему называться коэффициентами преобразования в целях единообразия выражения.
[46] В настоящем раскрытии, квантованный коэффициент преобразования и коэффициент преобразования могут называться коэффициентом преобразования и масштабированным коэффициентом преобразования, соответственно. В этом случае, остаточная информация может включать в себя информацию о коэффициенте(ах) преобразования, и информация о коэффициенте(ах) преобразования может сигнализироваться через синтаксис кодирования остатка. Коэффициенты преобразования могут выводиться на основе остаточной информации (или информации о коэффициенте(ах) преобразования), и масштабированные коэффициенты преобразования могут выводиться через обратное преобразование (масштабирование) на коэффициентах преобразования. Остаточные выборки могут выводиться на основе обратного преобразования (преобразования) для масштабированных коэффициентов преобразования. Это может применяться/выражаться также и в других частях настоящего раскрытия.
[47] В настоящем раскрытии, технические признаки, объясненные отдельно на одном чертеже, могут реализовываться отдельно или могут реализовываться одновременно.
[48] Далее, предпочтительные варианты осуществления настоящего раскрытия описаны более конкретно со ссылкой на прилагаемые чертежи. Далее, на чертежах, одинаковая ссылочная позиция используется для того же самого элемента, и избыточное описание того же самого элемента может быть опущено.
[49] Фиг. 1 иллюстрирует пример системы кодирования видео/изображения, в которой могут применяться варианты осуществления настоящего документа.
[50] Со ссылкой на фиг. 1, система кодирования видео/изображения может включать в себя устройство-источник и устройство-получатель. Устройство-источник может передавать закодированную информацию или данные видео/изображения на устройство-получатель посредством цифрового носителя хранения или сети в форме файла или потоковой передачи (стриминга).
[51] Устройство-источник может включать в себя источник видео, устройство кодирования и передатчик. Устройство-получатель может включать в себя приемник, устройство декодирования и модуль визуализации (рендерер). Устройство кодирования может называться устройством кодирования видео/изображения, и устройство декодирования может называться устройством декодирования видео/изображения. Передатчик может быть включен в устройство кодирования. Приемник может быть включен в устройство декодирования. Модуль визуализации может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[52] Источник видео может получать видео/изображение через процесс захвата, синтезирования или генерации видео/изображения. Источник видео может включать в себя устройство захвата видео/изображения и/или устройство генерации видео/изображения. Устройство захвата видео/изображения может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и тому подобное. Устройство генерации видео/изображения может включать в себя, например, компьютеры, планшеты и смартфоны и может (электронным способом) генерировать видео/изображения. Например, виртуальное видео/изображение может генерироваться посредством компьютера или тому подобного. В этом случае, процесс захвата видео/изображения может быть заменен на процесс генерации связанных данных.
[53] Устройство кодирования может кодировать входное видео/изображения. Устройство кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование для компактности и эффективности кодирования. Закодированные данные (закодированная информация видео/изображения) могут выводиться в форме битового потока.
[54] Передатчик может передавать закодированную информацию или данные видео/изображения, выведенные в форме битового потока, на приемник устройства-получателя посредством цифрового носителя хранения или сети в форме файла или потоковой передачи. Цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD, SSD и тому подобное. Передатчик может включать в себя элемент для генерации медиа файла в предопределенном формате файла и может включать в себя элемент для передачи по сети вещания/связи. Приемник может принимать/извлекать битовый поток и передавать принятый битовый поток на устройство декодирования.
[55] Устройство декодирования может декодировать видео/изображения путем выполнения последовательности процедур, таких как деквантование, обратное преобразование и предсказание, соответствующих операции устройства кодирования.
[56] Модуль визуализации может визуализировать декодированное видео/изображение. Визуализированное видео/ изображение может отображаться посредством дисплея.
[57] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, в котором могут применяться варианты осуществления настоящего раскрытия. Далее, устройство кодирования может включать в себя устройство кодирования изображения и/или устройство кодирования видео.
[58] Со ссылкой на фиг. 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 как внутренний/внешний компонент.
[59] Модуль 210 разбиения изображения может разбивать входное изображение (или картинку, кадр), введенное в устройство 200 кодирования, на одну или более единиц обработки. Например, единица обработки может называться единицей кодирования (CU). В этом случае, единица кодирования может рекурсивно разбиваться в соответствии со структурой квадродерева-двоичного дерева-троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может разбиваться на множество единиц кодирования более глубокой глубины на основе структуры квадродерева, структуры двоичного и/или структуры троичного дерева. В этом случае, например, структура квадродерева применяется первой, а структура двоичного дерева и/или структура троичного дерева могут применяться позже. Альтернативно, структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с настоящим раскрытием может выполняться на основе конечной единицы кодирования, которая больше не разбивается. В этом случае, на основе эффективности кодирования в соответствии с характеристиками изображения или тому подобным, максимальная единица кодирования может непосредственно использоваться как конечная единица кодирования, или, при необходимости, единица кодирования может рекурсивно разбиваться на единицы кодирования более глубокой глубины, так что единица кодирования, имеющая оптимальный размер, может использоваться как конечная единица кодирования. Здесь, процедура кодирования может включать в себя процедуру предсказания, преобразования и восстановления, которые будут описаны далее. В качестве другого примера, единица обработки может дополнительно включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, каждая из единицы предсказания и единицы преобразования может разделяться или разбиваться из вышеупомянутой конечной единицы кодирования. Единица предсказания может быть единицей предсказания выборки, и единица преобразования может быть единицей для выведения коэффициента преобразования и/или единицей для выведения остаточного сигнала из коэффициента преобразования.
[60] Единица может использоваться взаимозаменяемо с такими терминами, как блок или область в некоторых случаях. В общем случае, блок M×N может представлять выборки, состоящие из M столбцов и N строк, или группу коэффициентов преобразования. Выборка может, в общем, представлять пиксел или значение пиксела, может представлять только пиксел/значение пиксела компонента яркости или представлять только пиксел/значение пиксела компонента цветности. Выборка может использоваться как термин, соответствующий пикселу или пелу, конфигурирующему одну картинку (или изображение).
[61] Устройство 200 кодирования может генерировать остаточный сигнал (остаточный блок, остаточный массив выборок) путем вычитания сигнала предсказания (предсказанного блока, массива выборок предсказания), выведенного из интер-предсказателя 221 или интра-предсказателя 222, из входного сигнала изображения (исходного блока, исходного массива выборок), и сгенерированный остаточный сигнал передается на преобразователь 232. В этом случае, как показано, модуль для вычитания предсказанного сигнала (предсказанного блока, массива выборок предсказания) из входного сигнала изображения (исходного блока, исходного массива выборок) в кодере 200 может называться вычитателем 231. Предсказатель может выполнять предсказание для блоке, подлежащего обработке (далее называемого текущим блоком), и генерировать предсказанный блок, включающий выборки предсказания текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание в единицах текущего блока или CU. Как описано далее в описании каждого режима предсказания, предсказатель может генерировать различную информацию, относящуюся к предсказанию, такую как информация режима предсказания, чтобы передавать сгенерированную информацию на энтропийный кодер 240. Информация о предсказании может кодироваться энтропийным кодером 240 и выводиться в форме битового потока.
[62] Интра-предсказатель 222 может предсказывать текущий блок с опорой на выборки в текущей картинке. Опорные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены от текущего блока в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, режим DC или планарный режим. Направленный режим может включать в себя, например, 33 направленных режима предсказания или 65 направленных режимов предсказания в соответствии со степенью детализации направления предсказания. Однако это только пример, и больше или меньше направленных режимов предсказания, чем указано выше, могут использоваться в соответствии с настройками. Интра-предсказатель 222 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.
[63] Интер-предсказатель 221 может выводить предсказанный блок текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. Здесь, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блока, подблока или выборки на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказания, L1-предсказания, Bi-предсказания и т.п.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, существующий в текущей картинке, и временной соседний блок, существующий в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, могут быть одинаковыми или разными. Временной соседний блок может называться совместно расположенным опорным блоком, совмещенной (co-located) CU (colCU) и т.п., и опорная картинка, включающая в себя временной соседний блок, может называться совмещенной картинкой (colPic). Например, интер-предсказатель 221 может конфигурировать список кандидатов информации движения на основе соседних блоков и генерировать информацию, указывающую, какой кандидат используется, чтобы вывести вектор движения и/или индекс опорной картинки текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, интер-предсказатель 221 может использовать информацию движения соседнего блока как информацию движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. Режим предсказания вектора движения (MVP) может указывать вектор движения текущего блока с использованием вектора движения соседнего блока в качестве предсказателя вектора движения и сигнализации разности векторов движения.
[64] Предсказатель 220 может генерировать предсказанный сигнал на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание для предсказания одного блока, но также может одновременно применять интра-предсказание и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для выполнения предсказания на блоке. Режим предсказания IBC или режим палитры могут использоваться для кодирования изображения/видео контента игры или тому подобного, такого как кодирование экранного контента (SCC). IBC в основном выполняет предсказание в текущей картинке, но это может выполняться аналогично интер-предсказанию в том, что оно выводит опорный блок в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем документе. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, значение выборки в картинке может сигнализироваться на основе информации об индексе палитры и о таблице палитры.
[65] Сигнал предсказания, сгенерированный предсказателем (включая интер-предсказатель 221 и/или интра-предсказатель 222), может использоваться, чтобы генерировать восстановленный сигнал или чтобы генерировать остаточный сигнал. Преобразователь 232 может генерировать коэффициенты преобразования путем применения метода преобразования к остаточному сигналу. Например, метод преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно-нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация отношения между пикселами представлена графом. CNT означает преобразование, которое получено на основе предсказанного сигнала, сгенерированного с использованием всех ранее восстановленных пикселов. К тому же процесс преобразования может также применяться к квадратным блокам пикселов, имеющим одинаковый размер, или может применяться к блокам, имеющим переменный размер, а не квадратным.
[66] Квантователь 233 может квантовать коэффициенты преобразования, чтобы передавать квантованные коэффициенты преобразования на энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию о квантованных коэффициентах преобразования) в закодированный квантованный сигнал в битовый поток. Информация о квантованных коэффициентах преобразования может называться остаточной информацией. Квантователь 233 может переупорядочивать квантованные коэффициенты преобразования, имеющие блочную форму, в форму одномерного вектора на основе порядка сканирования коэффициентов и генерировать информацию о квантованных коэффициентах преобразования на основе квантованных коэффициентов преобразования в форме одномерного вектора. Энтропийный кодер 240 может выполнять различные способы кодирования, такие как, например, экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Энтропийный кодер 240 может также кодировать информацию (например, значения синтаксических элементов и т.д.), необходимую для восстановления видео/изображения, отличную от квантованных коэффициентов преобразования, вместе или отдельно. Закодированная информация (например, закодированная информация видео/изображения) может передаваться или сохраняться в единицах уровня сетевой абстракции (NAL) в форме битового потока. Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. Описанные далее в настоящем документе сигнализируемые/ передаваемые информация и/или синтаксические элементы могут быть закодированы посредством вышеописанной процедуры кодирования и включены в битовый поток. Битовый поток может передаваться по сети или может сохраняться в цифровом носителе хранения. Сеть может включать в себя сеть вещания и/или сеть связи, и цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD и SSD. Передатчик (не показан) для передачи сигнала, выведенного из энтропийного кодера 240, и/или модуль хранения (не показан) для хранения сигнала могут быть сконфигурированы как внутренние/внешние элементы устройства 200 кодирования, или передатчик может быть включен в энтропийный кодер 240.
[67] Квантованные коэффициенты преобразования, выведенные из квантователя 233, могут использоваться, чтобы генерировать предсказанный сигнал. Например, деквантователь 234 и обратный преобразователь 235 применяют деквантование и обратное преобразование к квантованным коэффициентам преобразования, так что остаточный сигнал (остаточный блок или остаточные выборки) может быть восстановлен. Сумматор 250 может добавлять восстановленный остаточный сигнал к предсказанному сигналу, выведенному из интер-предсказателя 221 или интра-предсказателя 222, так что может генерироваться восстановленный сигнал (восстановленная картинка, восстановленный блок, восстановленный массив выборок). Как в случае, где применяется режим пропуска, если отсутствует остаток для блока, подлежащего обработке, предсказанный блок может использоваться как восстановленный блок. Сумматор 250 может называться модулем восстановления или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке в текущей картинке, и, как описано ниже, также может использоваться для интер-предсказания следующей картинки посредством фильтрации.
[68] Между тем отображение яркости с масштабированием цветности (LMCS) может применяться во время процесса кодирования и/или восстановления картинки.
[69] Фильтр 260 может применять фильтрацию к восстановленному сигналу, тем самым улучшая субъективное/объективное качество изображения. Например, фильтр 260 может применять различные способы фильтрации к восстановленной картинке, чтобы генерировать модифицированную восстановленную картинку, и сохранять модифицированную восстановленную картинку в памяти 270, конкретно, в DPB памяти 270. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное. Фильтр 260 может генерировать различную информацию, относящуюся к фильтрации, чтобы передать сгенерированную информацию на энтропийный кодер 240, как описано далее в описании каждого способа фильтрации. Информация, относящаяся к фильтрации, может кодироваться энтропийным кодером 240 для вывода в форме битового потока.
[70] Модифицированная восстановленная картинка, переданная в память 270, может использоваться как опорная картинка в интер-предсказателе 221. Когда интер-предсказание применяется интер-предсказателем, устройство кодирования может избежать рассогласования предсказания между устройством 200 кодирования и устройством 300 декодирования, а также улучшить эффективность кодирования.
[71] DPB памяти 270 может хранить модифицированную восстановленную картинку для использования в качестве опорной картинки в интер-предсказателе 221. Память 270 может хранить информацию движения блока, из которой выводится (или кодируется) информация движения в текущей картинке, и/или информацию движения блоков в ранее восстановленной картинке. Сохраненная информация движения может передаваться на интер-предсказатель 221, чтобы использоваться как информация движения пространственного соседнего блока или информация движения временного соседнего блока. Память 270 может хранить восстановленные выборки восстановленных блоков в текущей картинке и может переносить восстановленные выборки на интра-предсказатель 222.
[72] Фиг. 3 является диаграммой, схематично иллюстрирующей конфигурацию устройства декодирования видео/изображения, в котором применяются варианты осуществления настоящего раскрытия. Далее, устройство декодирования может включать в себя устройство декодирования изображений и/или устройство декодирования видео.
[73] Со ссылкой на фиг. 3, устройство 300 декодирования может включать в себя и конфигурироваться с энтропийным декодером 310, процессором 320 остатка, предсказателем 330, сумматором 340, фильтром 350 и памятью 360. Предсказатель 330 может включать в себя интер-предсказатель 331 и интра-предсказатель 332. Процессор 320 остатка может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, процессор 320 остатка, предсказатель 330, сумматор 340 и фильтр 350, которые были описаны выше, могут быть сконфигурированы посредством одного или более аппаратных компонентов (например, чипсетов или процессоров декодера) в соответствии с вариантом осуществления. К тому же, память 360 может включать в себя буфер декодированной картинки (DPB) или может быть сконфигурирована цифровым носителем хранения. Аппаратный компонент может дополнительно включать в себя память 360 как внутренний/внешний компонент.
[74] Когда битовый поток, включающий в себя информацию видео/изображения, вводится, устройство 300 декодирования может восстанавливать изображение в ответ на процесс, в котором информация видео/изображения обрабатывается в устройстве кодирования, показанном на фиг. 2. Например, устройство 300 декодирования может выводить единицы/блоки на основе информации, относящейся к разбиению блока, полученной из битового потока. Устройство 300 декодирования может выполнять декодирование с использованием единицы обработки, применяемой в устройстве кодирования. Поэтому единица обработки может представлять собой, например, единицу кодирования, и единица кодирования может разбиваться в соответствии со структурой квадродерева, структурой двоичного дерева и/или структурой троичного дерева из единицы дерева кодирования или максимальной единицы кодирования. Одна или более единиц преобразования могут выводиться из единицы кодирования. Дополнительно, восстановленный сигнал изображения, декодированный и выведенный посредством устройства 300 декодирования, может воспроизводиться посредством устройства воспроизведения.
[75] Устройство 300 декодирования может принимать сигнал, выведенный из устройства кодирования согласно фиг. 2 в форме битового потока, и принятый сигнал может декодироваться посредством энтропийного декодера 310. Например, энтропийный декодер 310 может выводить информацию (например, информацию видео/изображения), необходимую для восстановления изображения (или восстановления картинки), путем выполнения синтаксического анализа битового потока. Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. Устройство декодирования может дополнительно декодировать картинку на основе информации о наборе параметров и/или общей информации ограничения. Сигнализированная/принятая информация и/или синтаксические элементы, описанные далее в настоящем документе, могут быть декодированы посредством процедуры декодирования и получены из битового потока. Например, энтропийный декодер может декодировать информацию в битовом потоке на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC, и выводить значение синтаксического элемента, необходимое для восстановления изображения, и квантованные значения коэффициентов преобразования для остатка. Более конкретно, способ энтропийного декодирования CABAC может принимать бин, соответствующий каждому синтаксическому элементу из битового потока, определять контекстную модель с использованием информации декодируемого синтаксического элемента и информации декодирования соседнего блока и блока, подлежащего декодированию, или информации символа/бина, декодированного на предыдущей стадии, и генерировать символ, соответствующий значению каждого синтаксического элемента, путем предсказания вероятности генерации бина в соответствии с определенной контекстной моделью, чтобы выполнить арифметическое декодирование бина. В этом случае, способ энтропийного декодирования CABAC может определять контекстную модель и затем обновлять контекстную модель с использованием информации декодированного символа/бина для контекстной модели следующего символа/бина. Информация о предсказании, среди информации, декодированной энтропийным декодером 310, может предоставляться на предсказатель (интер-предсказатель 332 и интра-предсказатель 331), и значение остатка, с которым энтропийное декодирование было выполнено энтропийным декодером 310, то есть, квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в процессор 320 остатка. Процессор 320 остатка может выводить остаточный сигнал (остаточный блок, остаточные выборки, массив остаточных выборок). Дополнительно, информация о фильтрации среди информации, декодированной энтропийным декодером 310, может предоставляться на фильтр 350. Между тем, приемник (не проиллюстрирован) для приема сигнала, выведенного из устройства кодирования, может быть дополнительно сконфигурирован как внутренний/внешний элемент устройства 300 декодирования, или приемник может также быть компонентом энтропийного декодера 310. Между тем, устройство декодирования в соответствии с настоящим документом может называться устройством декодирования видео/изображения/картинки, и устройство декодирования может также классифицироваться на декодер информации (декодер информации видео/изображения/картинки) и декодер выборки (декодер выборки видео/изображения/картинки). Декодер информации может включать в себя энтропийный декодер 310, и декодер выборки может включать в себя по меньшей мере одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, памяти 360, интер-предсказателя 332 и интра-предсказателя 331.
[76] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования, чтобы выводить коэффициенты преобразования. Деквантователь 321 может переупорядочивать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, переупорядочивание может выполняться на основе порядка сканирования коэффициентов, выполняемого устройством кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования с использованием параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[77] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получить остаточный сигнал (остаточный блок, остаточный массив выборок).
[78] Предсказатель 330 может выполнять предсказание текущего блока и генерировать предсказанный блок, включающий в себя выборки предсказания текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание к текущему блоку, на основе информации о предсказании, выведенной из энтропийного декодера 310, и может определять конкретный режим интра/интер-предсказания.
[79] Предсказатель 320 может генерировать предсказанный сигнал на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание для предсказания одного блока, но также одновременно применять интра-предсказание и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для предсказания блока. Режим предсказания IBC или режим палитры могут использоваться для кодирования контента изображения/видео игры или тому подобного, например, кодирования экранного контента (SCC). IBC в основном выполняет предсказание в текущей картинке, но может выполняться аналогично интер-предсказанию тем, что оно выводит опорный блок в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем документе. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, информация о таблице палитры и индексе палитры может включаться в информацию видео/изображения и сигнализироваться.
[80] Интра-предсказатель 331 может предсказывать текущий блок с опорой на выборки в текущей картинке. Опорные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены от текущего блока в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Интра-предсказатель 331 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.
[81] Интер-предсказатель 332 может выводить предсказанный блок для текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блока, подблока или выборки на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказания, L1-предсказания, Bi-предсказания и т.д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, существующий в текущей картинке, и временной соседний блок, существующий в опорной картинке. Например, интер-предсказатель 332 может конфигурировать список кандидатов информации движения на основе соседних блоков и выводить вектор движения текущего блока и/или индекс опорной картинки на основе принятой информации выбора кандидата. Интер-предсказание может выполняться на основе различных режимов предсказания, и информация о предсказании может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.
[82] Сумматор 340 может суммировать полученный остаточный сигнал с предсказанным сигналом (предсказанным блоком, массивом выборок предсказания), выведенным из предсказателя (включая интер-предсказатель 332 и/или интра-предсказатель 331), чтобы генерировать восстановленный сигнал (восстановленную картинку, восстановленный блок, восстановленный массив выборок). В случае, когда применяется режим пропуска, если отсутствует остаток для блока, подлежащего обработке, то предсказанный блок может использоваться как восстановленный блок.
[83] Сумматор 340 может называться модулем восстановления или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке в текущей картинке, и, как описано ниже, может выводиться посредством фильтрации или может использоваться для интер-предсказания следующей картинки.
[84] Между тем отображение яркости с масштабированием цветности (LMCS) также может применяться в процессе декодирования картинки.
[85] Фильтр 350 может применять фильтрацию к восстановленному сигналу, тем самым улучшая субъективное/ объективное качество изображения. Например, фильтр 350 может применять различные способы фильтрации к восстановленной картинке, чтобы генерировать модифицированную восстановленную картинку, и передавать модифицированную восстановленную картинку в память 360, конкретно, в DPB памяти 360. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное.
[86] (Модифицированная) восстановленная картинка, сохраненная в DPB памяти 360, может использоваться как опорная картинка в интер-предсказателе 332. Память 360 может хранить информацию движения блока, в котором выводится (или декодируется) информация движения в текущей картинке, и/или информацию движения блоков в ранее восстановленной картинке. Сохраненная информация движения может передаваться на интер-предсказатель 260 для использования в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Память 360 может сохранять восстановленные выборки восстановленных блоков в текущей картинке и переносить сохраненные восстановленные выборки на интра-предсказатель 331.
[87] В настоящем раскрытии, варианты осуществления, описанные в фильтре 260, интер-предсказателе 221 и интра-предсказателе 222 устройства 200 кодирования, могут применяться таким же образом к фильтру 350, интер-предсказателю 332 и интра-предсказателю 331 устройства 300 декодирования.
[88] Как описано выше, при выполнении кодирования видео, предсказание выполняется, чтобы повысить эффективность сжатия. Посредством этого можно сгенерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока, в качестве блока, подлежащего кодированию. Здесь, предсказанный блок включает в себя выборки предсказания в пространственной области (или области пикселов). Предсказанный блок выводится одинаково в устройстве кодирования и устройстве декодирования, и устройство кодирования может сигнализировать информацию (остаточную информацию) об остатке между исходным блоком и предсказанным блоком, а не исходное значение выборки исходного блока, на устройство декодирования, тем самым повышая эффективность кодирования изображения. Устройство декодирования может выводить остаточный блок, включающий в себя остаточные выборки, на основе остаточной информации, суммировать остаточный блок и предсказанный блок, чтобы генерировать восстановленные блоки, включающие в себя восстановленные выборки, и генерировать восстановленную картинку, включающую в себя восстановленные блоки.
[89] Остаточная информация может генерироваться в процедуре преобразования и квантования. Например, устройство кодирования может выводить остаточный блок между исходным блоком и предсказанным блоком, выполнять процедуру преобразования на остаточных выборках (остаточном массиве выборок), включенных в остаточный блок, чтобы вывести коэффициенты преобразования, выполнять процедуру квантования на коэффициентах преобразования, чтобы вывести квантованные коэффициенты преобразования, и сигнализировать соответствующую остаточную информацию на устройство декодирования (посредством битового потока). Здесь, остаточная информация может включать в себя информацию значения квантованных коэффициентов преобразования, информацию местоположения, метод преобразования, ядро преобразования, параметр квантования и тому подобное. Устройство декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и выводить остаточные выборки (или остаточные блоки). Устройство декодирования может генерировать восстановленную картинку на основе предсказанного блока и остаточного блока. Также, для опоры при интер-предсказании затем картинки, устройство кодирования может также деквантовать/обратно преобразовывать квантованные коэффициенты преобразования, чтобы вывести остаточный блок и сгенерировать на его основе восстановленную картинку.
[90] Фиг. 4 показывает пример схематичной процедуры кодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия. На фиг. 4, S400 может выполняться предсказателем 220 устройства кодирования, описанного выше на фиг. 2, S410 может выполняться процессором 230 остатка, и S420 может выполняться энтропийным кодером 240. S400 может включать в себя процедуру интер/интра-предсказания, описанную в настоящем раскрытии, S410 может включать в себя процедуру обработки остатка, описанную в настоящем раскрытии, и S420 может включать в себя процедуру кодирования информации, описанную в настоящем раскрытии.
[91] Со ссылкой на фиг. 4, процедура кодирования видео/изображения может включать в себя не только процедуру кодирования информации для восстановления картинки (например, информации предсказания, остаточной информации, информации разбиения и т.д.) и вывод закодированной информации в форме битового потока, как представлено в описании фиг. 2, но также процедуру генерации восстановленной картинки для текущей картинки и процедуру (опциональную) применения внутриконтурной фильтрации к восстановленной картинке. Устройство кодирования может выводить (модифицированные) остаточные выборки из коэффициентов преобразования, квантованных посредством деквантователя 234 и обратного преобразователя 235, и генерировать восстановленную картинку на основе выборок предсказания, выведенных в S400, и (модифицированных) остаточных выборок. Таким образом сгенерированная восстановленная картинка может быть той же самой, что и восстановленная картинка, сгенерированная вышеописанным устройством декодирования. Модифицированная восстановленная картинка может генерироваться посредством процедуры внутриконтурной фильтрации для восстановленной картинки, которая может храниться в буфере декодированной картинки или памяти 270, и, как и в случае устройства декодирования, может использоваться в качестве опорной картинки в процедуре интер-предсказания во время последующего кодирования картинки. Как описано выше, часть или вся процедура внутриконтурной фильтрации может опускаться в некоторых случаях. Когда процедура внутриконтурной фильтрации выполняется, связанная с (внутриконтурной) фильтрацией информация (параметры) может кодироваться энтропийным кодером 240 и выводиться в форме битового потока, и устройство декодирования может выполнять процедуру внутриконтурной фильтрации аналогично этой процедуре устройства кодирования на основе связанной с фильтрацией информации.
[92] Посредством этой процедуры внутриконтурной фильтрации, шум, генерируемый во время кодирования изображения/видео, такой как артефакты блочности и артефакты звона, могут быть уменьшены, и субъективное/объективное визуальное качество может быть улучшено. К тому же, путем выполнения процедуры внутриконтурной фильтрации, как в устройстве кодирования, так и в устройстве декодирования, устройство кодирования и устройство декодирования могут выводить один и тот же результат предсказания, улучшать надежность кодирования картинки и уменьшать количество данных, подлежащих передаче для кодирования картинки.
[93] Как описано выше, процедура восстановления картинки может выполняться не только в устройстве декодирования, но также в устройстве кодирования. Восстановленный блок может генерироваться на основе интра-предсказания/интер-предсказания для каждого блока, и может генерироваться восстановленная картинка, включающая в себя восстановленные блоки. Когда текущая картинка/вырезка/группа мозаичных элементов является I-картинкой/вырезкой/группой мозаичных элементов, блоки, включенные в текущую картинку/вырезку/группу мозаичных элементов, могут быть восстановлены на основе только интра-предсказания. С другой стороны, когда текущая картинка/вырезка/группа мозаичных элементов является P- или B-картинкой/вырезкой/группой мозаичных элементов, блоки, включенные в текущую картинку/вырезку/группу мозаичных элементов, могут быть восстановлены на основе интра-предсказания или интер-предсказания. В этом случае, интер-предсказание может применяться к некоторым блокам в текущей картинке/вырезке/группе мозаичных элементов, и интра-предсказание может применяться к некоторым оставшимся блокам. Цветовой компонент картинки может включать в себя компонент яркости и компонент цветности, и, если не ограничено явно в настоящем раскрытии, способы и варианты осуществления, предложенные в настоящем раскрытии, могут применяться к компоненту яркости и компоненту цветности.
[94] Фиг. 5 показывает пример схематичной процедуры декодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия. На фиг. 5, S500 может выполняться энтропийным декодером 310 устройства декодирования, описанного выше на фиг. 3, S510 может выполняться предсказателем 330, S520 может выполняться остаточным процессором 320, S530 может выполняться сумматором 340, и S540 может выполняться фильтром 350. S500 может включать в себя процедуру декодирования информации, описанную в настоящем раскрытии, S510 может включать в себя процедуру интер/интра-предсказания, описанную в настоящем раскрытии, S520 может включать в себя процедуру обработки остатка, описанную в настоящем раскрытии, S530 может включать в себя процедуру восстановления блока/картинки, описанную в настоящем раскрытии, и S540 может включать в себя процедуру внутриконтурной фильтрации, описанную в настоящем раскрытии.
[95] Со ссылкой на фиг. 5, процедура декодирования картинки может включать в себя процедуру (S500) получения информации изображения/видео из битового потока (посредством декодирования), процедуру восстановления картинки (S510 до S530) и процедуру внутриконтурной фильтрации (S540) для восстановленной картинки, как представлено в описании фиг. 3. Процедура восстановления картинки может выполняться на основе выборок предсказания и остаточных выборок, полученных посредством интер-/интра-предсказания (S510) и обработки остатка (S520; деквантование и обратное преобразование для квантованных коэффициентов преобразования), описанных в настоящем раскрытии. Модифицированная восстановленная картинка может генерироваться посредством процедуры внутриконтурной фильтрации для восстановленной картинки, сгенерированной посредством процедуры восстановления картинки, и модифицированная восстановленная картинка может выводиться как декодированная картинка. Дополнительно, модифицированная восстановленная картинка может сохраняться в буфере декодированной картинки или памяти 360 устройства декодирования и использоваться как опорная картинка в процедуре интер-предсказания во время декодирования последующей картинки.
[96] В некоторых случаях, процедура внутриконтурной фильтрации может опускаться. В этом случае, восстановленная картинка может выводиться как декодированная картинка, сохраняться в буфере декодированной картинки или памяти 360 устройства декодирования, использоваться как опорная картинка в интер-предсказании во время декодирования последующей картинки. Процедура внутриконтурной фильтрации (S540) может включать в себя процедуру фильтрации устранения блочности, процедуру адаптивного смещения выборки (SAO), процедуру адаптивного контурного фильтра (ALF) и/или процедуру двунаправленного фильтра, как описано выше, и некоторые или все из них могут быть опущены. Дополнительно, одна или некоторые из процедуры фильтрации устранения блочности, процедуры адаптивного смещения выборки (SAO), процедуры адаптивного контурного фильтра (ALF) и процедуры двунаправленного фильтра могут применяться последовательно или все могут применяться последовательно. Например, после того как процедура фильтрации устранения блочности применяется к восстановленной картинке, может выполняться процедура SAO. Например, после того как процедура фильтрации устранения блочности применяется к восстановленной картинке, может выполняться процедура ALF. Это может выполняться в устройстве кодирования таким же образом.
[97] Как описано выше, устройство кодирования может выводить остаточный блок (остаточные выборки) на основе блока (выборок предсказания), предсказанного через интра/интер/IBC- предсказание и тому подобное и применять преобразование и квантование к выведенным остаточным выборкам, чтобы выводить квантованные коэффициенты преобразования. Информация о квантованных коэффициентах преобразования (остаточная информация) может включаться в синтаксис кодирования остатка и выводиться в форме битового потока после кодирования. Устройство декодирования может получать информацию (остаточную информацию) о квантованных коэффициентах преобразования из битового потока и декодировать информацию, чтобы выводить квантованные коэффициенты преобразования. Устройство декодирования может выводить остаточные выборки посредством деквантования/обратного преобразования на основе квантованных коэффициентов преобразования. Как описано выше, по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может быть опущено. Когда преобразование/обратное преобразование опущено, коэффициенты преобразования могут называться коэффициентами или остаточными коэффициентами, или могут еще называться коэффициентами преобразования для единообразия выражения. То, может ли опускаться преобразование/ обратное преобразование, может сигнализироваться на основе transform_skip_flag. Например, когда значение transform_skip_flag равно 1, это может указывать, что преобразование/обратное преобразование пропускается, что может называться режимом пропуска преобразования.
Y
C
[98] В общем, в кодировании видео/изображения, степень квантования может изменяться, и степень сжатия может регулироваться с использованием измененной степени квантования. С точки зрения реализации, параметр квантования (QP) может использоваться вместо степени квантования с учетом сложности. Например, параметры квантования целых значений от 0 до 63 могут использоваться, и каждое значение параметра квантования может соответствовать реальной степени квантования. Например, параметр квантования QP для компонента яркости (выборки яркости) и параметр квантования QP для компонента цветности (выборки цветности) могут устанавливаться по-разному.
step
[99] Процесс квантования может принимать коэффициент преобразования C в качестве входа, делить его на степень квантования Q, и на основе этого получать квантованный коэффициент преобразования C’. В этом случае, с учетом вычислительной сложности, степень квантования может умножаться на масштаб, чтобы сформировать целое, и может выполняться операция сдвига на значение, соответствующее значению масштаба. Масштаб квантования может выводиться на основе произведения степени квантования и значения масштаба. То есть, масштаб квантования может выводиться в соответствии с QP. Например, квантованный коэффициент преобразования C’ может выводиться путем применения масштаба квантования к коэффициенту преобразования C.
step
[100] Процесс деквантования является процессом, обратным процессу квантования и может получать восстановленный коэффициент преобразования C” путем умножения квантованного коэффициента преобразования C’ на степень квантования Q. В этом случае, масштаб уровня может выводиться в соответствии с параметром квантования, и восстановленный коэффициент преобразования C” может выводиться путем применения масштаба уровня к квантованному коэффициенту преобразования C’. Восстановленный коэффициент преобразования C” может несколько отличаться от исходного коэффициента преобразования C вследствие потерь в процессах преобразования и/или квантования. Соответственно, в устройстве кодирования, деквантование выполняется таким же образом, как в устройстве декодирования.
[101] Между тем, предсказание может выполняться на основе кодирования палитрой. Кодирование палитрой является полезным методом для представления блоков, включающих небольшое число уникальных цветовых значений. Вместо применения предсказания и преобразования к блокам, индекс для указания цветового значения каждой выборки сигнализируется в режиме палитры. Этот режим палитры полезен для сбережения буферного пространства памяти видео. Блок может кодироваться с использованием режима палитры (например, MODE_PLT). Чтобы декодировать блок, закодированный таким образом, декодеру необходимо декодировать цвет и индекс палитры. Цвет палитры может быть представлен таблицей палитры и может быть закодирован инструментом кодирования таблицы палитры.
[102] Фиг. 6 показывает пример для описания базовой структуры кодирования палитрой.
[103] Со ссылкой на фиг. 6, изображение 600 может быть представлено гистограммой 610. Здесь, преобладающие цветовые значения обычно отображаются на цветовые индексы (620), и изображение может кодироваться с использованием карты цветовых индексов (630).
[104] Кодирование палитрой может упоминаться как (интра) режим палитры, (интра) режим кодирования палитрой или тому подобное. Текущий блок может быть восстановлен в соответствии с кодированием палитрой или режимом палитры. Кодирование палитрой может рассматриваться в качестве примера интра-кодирования или может рассматриваться как один из способов интра-предсказания. Однако, подобно режиму пропуска, описанному выше, дополнительные остаточные значения для соответствующего блока могут не сигнализироваться.
[105] Например, режим палитры может использоваться, чтобы улучшать эффективность кодирования для экранного контента, такого как сгенерированное компьютером видео, которое содержит значительное количество текста и графики. В общем, локальная область экранного контента имеет различные цвета, различаемые резкими краями. Чтобы извлечь выгоду из этого свойства, режим палитры может представлять выборки блока на основе индексов, указывающих записи цвета в таблице палитры.
[106] Например, информация о таблице палитры может сигнализироваться. Таблица палитры может включать в себя значение индекса, соответствующее каждому цвету. Данные предсказания индекса палитры могут применяться, и таблица палитры может включать в себя данные, указывающие значения индекса для по меньшей мере части карты индексов палитры, которая отображает пикселы данных видео на индексы цветов таблицы палитры. Данные предсказания индекса палитры могут включать в себя данные значения серии, которые ассоциируют значения индекса для по меньшей мере части карты индексов палитры со значениями серии. Значение серии может быть ассоциировано с индексом цвета перехода. Карта индексов палитры может генерироваться из данных предсказания индекса палитры, по меньшей мере частично, путем определения, следует ли регулировать значение индекса данных предсказания индекса палитры на основе последнего значения индекса. Текущий блок в картинке может восстанавливаться в соответствии с картой индексов палитры.
[107] Когда используется режим палитры, значения пикселов CU могут быть представлены набором репрезентативных цветовых значений. Такой набор может упоминаться как палитра. В случае пиксела, имеющего значение, близкое к цветовому значению в палитре, индекс палитры, соответствующий цветовому значению в палитре, может сигнализироваться. В случае пиксела, имеющего цветовое значение иное, чем палитра, пиксел может быть представлен символом перехода, и квантованное значение пиксела может непосредственно сигнализироваться. В настоящем раскрытии, пиксел или значение пиксела может упоминаться как выборка или значение выборки.
[108] Чтобы декодировать блок, закодированный в режиме палитры, декодеру необходимо декодировать цвета и индексы палитры. Цвета палитры могут быть представлены в таблице палитры и закодированы с помощью инструмента кодирования таблицы палитры. Флаг перехода может указывать, присутствует ли символ перехода в текущей CU, путем сигнализации для каждой CU. Если символ перехода присутствует, таблица палитры получает приращение на 1, и последний индекс может назначаться режиму перехода. Индексы палитры всех пикселов в CU могут формировать карту индексов палитры и могут быть закодированы с помощью инструмента кодирования карты индексов палитры.
[109] Например, предсказатель палитры может поддерживаться для кодирования таблицы палитры. Предсказатель может быть инициализирован в начале каждой вырезки, где предсказатель сбрасывается в нуль. Для каждой записи предсказателя палитры, флаг повторного использования может сигнализироваться для указания, является ли она частью текущей палитры. Флаг повторного использования может передаваться с использованием кодирования длины серии нуля. Затем, число новых записей палитры может сигнализироваться с использованием экспоненциального кодирования Голомба нулевого порядка. Наконец, значение компонента для новой записей палитры может сигнализироваться. После кодирования текущий CU, предсказатель палитры может обновляться с использованием текущей палитры, и записи предсказателя старой палитры, которые не использованы повторно в текущей палитре, могут добавляться в конце предсказателя новой палитры до достижения разрешенного максимального размера (заполнение палитры).
[110] Например, индекс может кодироваться с использованием горизонтального и вертикального поперечных сканирований, чтобы кодировать карту индексов палитры. Порядок сканирования может явно сигнализироваться из битового потока с использованием информации флага (например, palette_transpose_flag).
[111] Фиг. 7 показывает пример для описания способов горизонтального и вертикального поперечного сканирования, используемых, чтобы кодировать карту индексов палитры.
[112] Фиг. 7(а) показывает пример кодирования карты индексов палитры с использованием горизонтального поперечного сканирования и фиг. 7(b) показывает пример кодирования карты индексов палитры с использованием вертикального поперечного сканирования.
[113] Как показано на фиг. 7(а), когда используется горизонтальное сканирование, индексы палитры могут кодироваться путем сканирования выборок от выборок в первой строке (верхней строке) до выборок в последней строке (нижней строке) в текущем блоке (т.е. текущей CU) в горизонтальном направлении.
[114] Как показано на фиг. 7(b), когда используется вертикальное сканирование, индексы палитры могут кодироваться путем сканирования выборок от выборок в первом столбце (самом левом столбце) до последнего столбца (самого правого столбца) в текущем блоке (т.е. текущей CU) в вертикальном направлении.
[115] Индекс палитры может кодироваться с использованием двух режимов выборок палитры, например, режима “INDEX” и режима “COPY_ABOVE”. Такой режим палитры может сигнализироваться с использованием флага, указывающего, является ли режимом “INDEX” или “COPY_ABOVE”. Здесь, флаг может сигнализироваться за исключением верхней строки, когда используется горизонтальное сканирование, и флаг может сигнализироваться за исключением первого столбца А, когда используется вертикальное сканирование или когда предыдущим режимом является режим “COPY_ABOVE”. В режиме “COPY_ABOVE”, индекс палитры выборки в верхней строке может копироваться. В режиме “INDEX”, индекс палитры может явно сигнализироваться. Как для режима “INDEX”, так и для режима “COPY_ABOVE”, значение серии, указывающее число пикселов, кодируемых с использованием того же самого режима, может сигнализироваться.
[116] Порядок кодирования для карты индексов может быть следующим. Сначала, может сигнализироваться число значений индексов для CU. Затем текущие значения индексов для всей CU могут сигнализироваться с использованием усеченного двоичного (TB) кодирования. Как число индексов, так и значения индексов могут кодироваться в режиме обхода. В этом случае, индексно-связанные бины обхода могут быть сгруппированы вместе. Затем, режим палитры (режим “INDEX” или режим “COPY_ABOVE”) и серия могут сигнализироваться с перемежением. Наконец, значения перехода компонента, соответствующие выборкам перехода для всей CU, могут группироваться вместе и кодироваться в режиме обхода. После сигнализации значений индексов, дополнительный синтаксический элемент last_run_type_flag может сигнализироваться. Не требуется, чтобы этот синтаксический элемент сигнализировал значение серии, соответствующее последней серии в блоке, вместе с числом индексов.
[117] Между тем, в стандарте VVC, двойное дерево может инициироваться для I-вырезки, которое разделяет разбиение единицы кодирования для яркости и цветности. Кодирование палитрой (режим палитры) может применяться к яркости (компонент Y) и цветности (компонент Cb и Cr) отдельно или вместе. Когда двойное дерево отключено, кодирование палитрой (режим палитры) может применяться к яркости (компонент Y) и цветности (компонент Cb и Cr) вместе.
[118] Фиг. 8 является диаграммой для описания примера способа кодирования на основе режима палитры.
[119] Со ссылкой на фиг. 8, устройство декодирования может получать информацию палитры на основе битового потока и/или предшествующей информации палитры (S800).
[120] В одном варианте осуществления, устройство декодирования может получать информацию о режиме палитры по отношению к каждому положению выборки и информацию о длине серии каждого режима палитры при проходе по информации индекса палитры, информацию о направлении прохождения (порядок сканирования) и выборки в CU из битового потока.
[121] Устройство декодирования может конфигурировать палитру на основе информации палитры (S810).
[122] В варианте осуществления, устройство декодирования может конфигурировать предсказатель палитры. Информация палитры, используемая в предыдущем блоке, может быть сохранена для CU следующей палитры (т.е. CU, кодируемой в режиме палитры), чтобы генерироваться позже, и это может быть определено как запись предсказателя палитры. Устройство декодирования может принимать информацию записей новой палитры и конфигурировать палитру для текущей CU. Например, после приема полученной информации повторного использования предсказателя палитры и новой информации записей палитры, подлежащей использованию в текущей CU, устройство декодирования может комбинировать эти две части информации записи, чтобы сформировать одну палитру, представляющую текущую CU.
[123] Устройство декодирования может выводить значения выборок (значения предсказания выборок) в основанном на палитре текущем блоке (S820).
[124] В варианте осуществления, устройство декодирования может конфигурировать выборки из полученной информации палитры при проходе по выборкам в CU в горизонтальном направлении или вертикальном направлении на основе информации направления прохождения (порядок сканирования). Если информация о режиме палитры указывает режим COPY_ABOVE, каждое значение выборки в CU может выводиться путем копирования информации индекса положения левой выборки в вертикальном сканировании и копирования информации индекса положения верхней выборки в горизонтальном сканировании. То есть путем выведения значения цвета каждой выборки из сконфигурированной таблицы палитры на основе информации индекса каждой выборки в CU, могут выводиться выборки предсказания в CU. Затем устройство декодирования может реконфигурировать каждую информацию выборки в CU с использованием информации палитры и обновлять предсказатель палитры.
[125] Между тем вышеописанное кодирование палитрой (режим палитры или режим кодирования палитрой) может сигнализировать информацию для указания, кодируется ли текущая CU в режиме палитры, и кодирования ее путем применения к ней режима палитры.
[126] В качестве примера, информация о том, доступен ли режим кодирования палитрой, может сигнализироваться посредством набора параметров последовательности (SPS), как показано в Таблице 1 ниже.
[127] [Таблица 1]
[128] Семантика синтаксических элементов, включенных в синтаксис Таблицы 1, может быть представлена, как показано в Таблице 2 ниже.
[129]
[Таблица 2]
sps_palette_enabled_flag, равный 1, специфицирует, что pred_mode_plt_flag может присутствовать в синтаксисе единицы кодирования. sps_palette_enabled_flag, равный 0, специфицирует, что pred_mode_plt_flag не присутствует в синтаксисе единицы кодирования. Когда sps_palette_enabled_flag не присутствует, он подразумевается равным 0. Дополнительно, при декодировании единицы кодирования (CU), флаг включается для указания, кодируется ли CU в режиме палитры.
[130] Со ссылкой на Таблицы 1 и 2, синтаксический элемент sps_palette_enabled_flag может синтаксически анализироваться/ сигнализироваться в SPS. Синтаксический элемент sps_palette_enabled_flag может указывать, доступен ли режим кодирования палитрой. Например, когда значение sps_palette_enabled_flag равно 1, это может указывать, что режим кодирования палитрой доступен, и в этом случае, информация (например, pred_mode_plt_flag), указывающая, следует ли применять режим кодирования палитрой к текущей единице кодирования в синтаксисе единицы кодирования, может синтаксически анализироваться/сигнализироваться. Когда значение sps_palette_enabled_flag равно 0, это может указывать, что режим кодирования палитрой не доступен, и в этом случае, информация (например, pred_mode_plt_flag), указывающая, следует ли применять режим кодирования палитры режим к текущей единице кодирования в синтаксисе единицы кодирования, может не анализироваться/сигнализироваться.
[131] Дополнительно, например, информация о том, следует ли выполнять кодирование, путем применения режима палитры, может сигнализироваться на основе информация о том, доступен ли режим кодирования палитрой (например, sps_palette_enabled_flag), и информация может сигнализироваться через синтаксис единицы кодирования, как показано в Таблице 3 ниже.
[132] [Таблица 3]
[133] Семантика синтаксических элементов, включенных в синтаксис Таблицы 3, может быть представлена, как показано в Таблице 4 ниже.
[134]
[Таблица 4]
pred_mode_plt_flag специфицирует использование режима палитры в текущей единице кодирования. pred_mode_plt_flag, равный 1, указывает, что режим палитры применяется в текущей единице кодирования. pred_mode_plt_flag, равный 0, указывает, что режим палитры не применяется в текущей единице кодирования. Когда pred_mode_plt_flag не присутствует, он подразумевается равным 0. Когда pred_mode_plt_flag равен нулю, переменная CuPredMode[x][y] устанавливается равной MODE_PLT для x=x0…x0+cbWidth-1 и y=y0…y0+cbHeight-1.
[135] Со ссылкой на Таблицы 3 и 4, синтаксический элемент pred_mode_plt_flag может синтаксически анализироваться/ сигнализироваться в синтаксисе единицы кодирования. Синтаксический элемент pred_mode_plt_flag может указывать, применяется ли режим палитры к текущей единице кодирования. Например, когда значение pred_mode_plt_flag равно 1, это может указывать, что режим палитры применяется к текущей единице кодирования, а если значение pred_mode_plt_flag равно 0, это может указывать, что режим палитры не применяется к текущей единице кодирования.
[136] В этом случае, pred_mode_plt_flag может синтаксически анализироваться/сигнализироваться на основе информации (например, sps_palette_enabled_flag) о том, доступен ли режим кодирования палитрой. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда режим кодирования палитрой доступен), pred_mode_plt_flag может синтаксически анализироваться/сигнализироваться.
[137] Дополнительно, кодирование может выполняться путем применения режима палитры к текущей единице кодирования на основе pred_mode_plt_flag. Например, когда значение pred_mode_plt_flag равно 1, режим палитры может применяться к текущей единице кодирования, чтобы генерировать восстановленную выборку путем синтаксического анализа/сигнализации синтаксиса palette_coding().
[138] В качестве примера, Таблица 5 ниже показывает синтаксис кодирования палитрой.
[139] [Таблица 5]
[140]
[141]
[142] Семантика синтаксических элементов, включенных в синтаксис Таблицы 5, может быть представлена, как показано в Таблице 6 ниже.
[143]
[Таблица 6]
В следующей семантике, индексы массива х0, y0 специфицируют положение (х0, y0) верхней-левой выборки яркости рассматриваемого блока кодирования относительно верхней-левой выборки яркости картинки. Индексы массива хС, yС специфицируют положение (хС, yС) выборки относительно верхней-левой выборки яркости картинки. Индекс массива startComp специфицирует первый цветовой компонент таблицы текущей палитры. startComp, равный 0, указывает компонент Y, startComp, равный 1, указывает компонент Cb, startComp, равный 2, указывает компонент Cr. numComp специфицирует число цветовых компонентов в таблице текущей палитры.Палитра предсказателя состоит из записей палитры из предыдущих единиц кодирования, которые используются для предсказания записей текущей палитры.Переменная PredictorPaletteSize[startComp] специфицирует размер палитры предсказателя для первого цветового компонента таблицы текущей палитры startComp. PredictorPaletteSize выводится, как специфицировано в Секции 1.4.Переменная PalettePredictorEntryReuseFlags[i], равная 1, специфицирует, что i-ая запись в палитре предсказателя повторно используется в текущей палитре. PalettePredictorEntryReuseFlags[i], равная 0, специфицирует, что i-ая запись в палитре предсказателя не является записью в текущей палитре. Все элементы массива PalettePredictorEntryReuseFlags[i] инициализируются в 0.palette_predictor_run используется для определения числа нулей, которые предшествуют ненулевой записи в массиве PalettePredictorEntryReuseFlags.Требованием для согласованности битового потока является то, что значение palette_predictor_run должно быть в диапазоне от 0 до (PredictorPaletteSize-predictorEntryIdx), включительно, где predictorEntryIdx соответствует текущему положению в массиве PalettePredictorEntryReuseFlags. Переменная NumPredictedPaletteEntries специфицирует число записей в текущей палитре, которые повторно используются из палитры предсказателя. Значение NumPredictedPaletteEntries должно быть в диапазоне от 0 до palette_max_size, включительно.num_signalled_palette_entries специфицирует число записей в текущей палитре, которые явно сигнализируются для первого цветового компонента таблицы текущей палитры startComp.Если num_signalled_palette_entries отсутствует, то он подразумевается равным 0.Переменная CurrentPaletteSize[startComp] специфицирует размер текущей палитры для первого цветового компонента таблицы текущей палитры startComp и выводится следующим образом:
[144]
<img file="00000006.jpg" he="13" wi="115" img-content="undefined" img-format="jpg" /> Значение CurrentPaletteSize[startComp] должно быть в диапазоне от 0 до palette_max_size, включительно.new_palette_entries[cIdx][i] специфицирует значение для i-ой сигнализированной записи палитры для цветового компонента cIdx.Переменная PredictorPaletteEntries[cIdx][i] специфицирует i-ый элемент в палитре предсказателя для цветового компонента cIdx.Переменная CurrentPaletteEntries[cIdx][i] специфицирует i-ый элемент в текущей палитре для цветового компонента cIdx и выводится следующим образом:
<img file="00000007.jpg" he="89" wi="130" img-content="undefined" img-format="jpg" />palette_escape_val_present_flag, равный 1, специфицирует, что текущая единица кодирования содержит по меньшей мере одну кодированную переходом выборку. escape_val_present_flag, равный 0, специфицирует, что не имеется кодированных переходом выборок в текущей единице кодирования. Если не присутствует, то значение palette_escape_val_present_flag подразумевается равным 1.
[145]
Переменная MaxPaletteIndex специфицирует максимальное возможное значение для индекса палитры для текущей единицы кодирования. Значение MaxPaletteIndex устанавливается равным CurrentPaletteSize[startComp] -1+palette_escape_val_present_flag.num_palette_indices_minus1 plus 1 является числом индексов палитры, явно сигнализируемых или выводимых для текущего блока.Если num_palette_indices_minus1 отсутствует, он подразумевается равным 0.palette_idx_idc является указанием индекса в таблице палитры, CurrentPaletteEntries. Значение palette_idx_idc должно быть в диапазоне от 0 до MaxPaletteIndex, включительно, для первого индекса в блоке и в диапазоне от 0 до (MaxPaletteIndex-1), включительно, для остальных индексов в блоке.Когда palette_idx_idc отсутствует, он подразумевается равным 0.Переменная PaletteIndexIdc[i] сохраняет i-ый palette_idx_idc явно сигнализированным или выводимым. Все элементы массива PaletteIndexIdc[i] инициализируются в 0.copy_above_indices_for_final_run_flag, равный 1, специфицирует, что индексы палитры последних положений в единице кодирования копируются из индексов палитры в строке выше, если используется горизонтальное поперечное сканирование, или индексов палитры в левом столбце, если используется вертикальное поперечное сканирование. copy_above_indices_for_final_run_flag, равный 0, специфицирует, что индексы палитры последних положений в единице кодирования копируются из PaletteIndexIdc[num_palette_indices_minus1].Если copy_above_indices_for_final_run_flag отсутствует, он подразумевается равным 0.palette_transpose_flag, равный 1, специфицирует, что вертикальное поперечное сканирование применяется для сканирования индексов для выборок в текущей единице кодирования. palette_transpose_flag, равный 0, специфицирует, что горизонтальное поперечное сканирование применяется для сканирования индексов для выборок в текущей единице кодирования. Если отсутствует, то значение palette_transpose_flag подразумевается равным 0.Массив TraverseScanOrder специфицирует массив порядка сканирования для кодирования палитрой. TraverseScanOrder присваивается горизонтальный порядок сканирования HorTravScanOrder, если
[146]
palette_transpose_flag равен 0; и TraverseScanOrder присваивается вертикальный порядок сканирования VerTravScanOrder, если palette_transpose_flag равен 1.copy_above_palette_indices_flag, равный 1, специфицирует, что индекс палитры равен индексу палитры в том же местоположении в строке выше, если используется горизонтальное поперечное сканирование, или том же положении в левом столбце, если используется вертикальное поперечное сканирование. copy_above_palette_indices_flag, равный 0, специфицирует, что указание индекса палитры выборки кодируется в битовом потоке или выводится.Переменная CopyAboveIndicesFlag[xC][yC], равная 1, специфицирует, что индекс палитры копируется из индекса палитры в верхней строке (горизонтальное сканирование) или левом столбце (вертикальное сканирование). CopyAboveIndicesFlag[xC][yC], равная 0, специфицирует, что индекс палитры явно кодируется в битовом потоке или выводится. Индексы массива xC, yC специфицируют местоположение (xC, yC) выборки относительно верхней-левой выборки яркости картинки. Значение PaletteIndexMap[xC][yC] должно быть в диапазоне от 0 до (MaxPaletteIndex-1), включительно.Переменная PaletteIndexMap[xC][yC] специфицирует индекс палитры, который является индексом в таблицу, представленную CurrentPaletteEntries. Индексы массива xC, yC специфицируют местоположение (xC, yC) выборки относительно верхней-левой выборки яркости картинки. Значение PaletteIndexMap[xC][yC] должно быть в диапазоне от 0 до MaxPaletteIndex, включительно.Переменная adjustedRefPaletteIndex выводится следующим образом:
<img file="00000008.jpg" he="84" wi="137" img-content="undefined" img-format="jpg" />
[147]
<img file="00000009.jpg" he="28" wi="126" img-content="undefined" img-format="jpg" />Если CopyAboveIndicesFlag[xC][yC] равен 0,то переменная CurrPaletteIndex выводится следующим образом:
<img file="00000010.jpg" he="13" wi="89" img-content="undefined" img-format="jpg" />palette_run_prefix, если присутствует, специфицирует префиксную часть в бинаризации PaletteRunMinus1.palette_run_suffix используется в выведении переменной PaletteRunMinus1. Если отсутствует, то значение palette_run_suffix подразумевается равным 0.Если RunToEnd равно 0, то переменная PaletteRunMinus1 выводится следующим образом:- Если PaletteMaxRunMinus1 равно 0, то PaletteRunMinus1 устанавливается равным 0.- Иначе (PaletteMaxRunMinus1 больше, чем 0), применимо следующее:- Если palette_run_prefix меньше, чем 2, применимо следующее:PaletteRunMinus1= palette_run_prefix- Иначе (palette_run_prefix больше или равно 2), применимо следующее:
<img file="00000011.jpg" he="14" wi="94" img-content="undefined" img-format="jpg" />Переменная PaletteRunMinus1 используется следующим образом:- Если CopyAboveIndicesFlag[xC][yC] равен 0, PaletteRunMinus1 специфицирует число последовательных местоположений минус 1 с тем же самым индексом палитры.- Иначе, если palette_transpose_flag равен 0, PaletteRunMinus1 специфицирует число последовательных местоположений минус 1 с тем же самым индексом палитры, как используется в соответствующем положении в строке выше.
[148]
- Иначе, PaletteRunMinus1 специфицирует число последовательных местоположений минус 1 с тем же самым индексом палитры, как используется в соответствующем положении в левом столбце.Когда RunToEnd равен 0, переменная PaletteMaxRunMinus1 представляет максимальное возможное значение для PaletteRunMinus1, и требование к согласованности битового потока состоит в том, что значение PaletteMaxRunMinus1 должно быть большим или равным 0.palette_escape_val специфицирует квантованное значение кодированной переходом выборки для компонента.Переменная PaletteEscapeVal[cIdx][xC][yC] специфицирует значение перехода выборки, для которой PaletteIndexMap[xC][yC] равно MaxPaletteIbdex, и palette_escape_val_pesent_flag равно 1. Индекс массива cIdx специфицирует цветовой компонент. Индексы массива xC, yC специфицируют местоположение (xC, yC) относительно верхней-левой выборки яркости картинки.Требованием для согласованности битового потока является то, что PaletteEscapeVal[cIdx][xC][yC] должно быть в диапазоне от 0 до (1<<(BitDepth<sub>Y</sub>+1)) -1, включительно, для cIdx, равного 0, и в диапазоне от 0 до ((1<<(BitDepth<sub>C</sub>+1)) -1, включительно, для cIdx, не равного 0.
[149] Со ссылкой на Таблицы 5 и 6, когда режим палитры применяется к текущему блоку (т.е. текущей единице кодирования), синтаксис кодирования палитры (например, palette_coding()), как в Таблице 5, может синтаксически анализироваться/ сигнализироваться.
[150] Например, таблица палитры может быть сконфигурирована на основе информации записей палитры. Информация записей палитры может включать в себя синтаксические элементы, такие как palette_predictor_run, num_signalled_palette_entries и new_palette_entries.
[151] Дополнительно, можно конфигурировать карту индексов палитры для текущего блока на основе информации индексов палитры. Информация индексов палитры может включать в себя синтаксические элементы, такие как num_palette_indices_minus1, palette_idx_idc, copy_above_indices_for_final_run_flag и palette_transpose_flag. На основе информации индексов палитры, как описано выше, можно выводить значения индекса палитры (например, PaletteIndexIdc) для выборок в текущем блоке при проходе в поперечном направлении сканирования (вертикальном направлении или горизонтальном направлении), чтобы конфигурировать карту индексов палитры (например, PaletteIndexMap).
[152] Дополнительно, можно выводить значение выборки для записи палитры в таблице палитры на основе карты индексов палитры и генерировать восстановленные выборки текущего блока на основе значения выборки (т.е. цветового значения), отображенного на запись палитры.
[153] Когда выборка имеет значение перехода в текущем блоке (т.е. когда значение palette_escape_val_present_flag равно 1), значение перехода для текущего блока может выводиться на основе информации перехода. Информация перехода может включать в себя синтаксические элементы, такие как palette_escape_val_present_flag и palette_escape_val. Например, значение перехода для кодированной переходом выборки в текущем блоке может выводиться на основе информации квантованного значения перехода (например, palette_escape_val). Восстановленные выборки текущего блока могут генерироваться на основе значения перехода.
[154] Как описано выше, информация (синтаксические элементы) в таблице синтаксиса, раскрытая в настоящем раскрытии, может включаться в информацию изображения/видео, сконфигурированную/закодированную в соответствии с методом кодирования (включая кодирование палитрой), выполняемым в устройстве кодирования, и доставляться на устройство декодирования в форме битового потока. Устройство декодирования может синтаксически анализировать/декодировать информацию (синтаксические элементы) в таблице синтаксиса. Устройство декодирования может выполнять метод кодирования, такой как кодирование палитрой, на основе декодированной информации и может выполнять процедуру восстановления (декодирования) блока/изображения/видео на этой основе. Далее, настоящее раскрытие предлагает таблицу синтаксиса и синтаксические элементы для эффективного кодирования блока/изображения/видео на основе кодирования палитрой.
[155] Настоящее раскрытие предлагает способ эффективного кодирования и сигнализации значений перехода при кодировании в режиме палитры. В режиме палитры, значения перехода могут использоваться, чтобы дополнительно передавать соответствующее значение выборки для выборки, имеющей значение, отличающееся от таковых для соседних выборок в блоке. Поскольку такие значения перехода являются дополнительными данными, квантование может выполняться для экономии значений перехода. Дополнительно, при кодировании переходом в режиме палитры, преобразование не применяется, и квантованное значение перехода может непосредственно сигнализироваться. Это может рассматриваться подобно режиму пропуска преобразования, в котором преобразование не применяется к единице кодирования (CU).
[156] В текущем стандарте VVC, полный диапазон значений параметров квантования (QP) применяется к значениям перехода в режиме палитры. Однако настоящее раскрытие предлагает способ ограничения диапазона значений QP, чтобы предотвращать то, что размер шага квантования для кодирования значения перехода в режиме палитры становится меньше, чем 1. В одном варианте осуществления, то же самое ограничение, что и минимальный QP для пропуска преобразования, может применяться к кодированию значения перехода в режиме палитры. Минимальный QP для режима палитры может ограничиваться с использованием минимального QP для пропуска преобразования.
[157] В качестве примера, информация о минимальном QP для пропуска преобразования может сигнализироваться посредством набора параметров последовательности (SPS), как показано в Таблице 7 ниже.
[158] [Таблица 7]
[159] Семантика синтаксических элементов, включенных в синтаксис Таблицы 7, может быть представлена, как показано в Таблице 8 ниже.
[160]
[Таблица 8]
min_qp_prime_ts_minus4 специфицирует минимальный разрешенный параметр квантования для режима пропуска преобразования следующим образом:QpPrimeTsMin= 4+min_qp_prime_ts_minus4min_qp_prime_ts_minus4 сигнализируется в SPS и обычно задается посредством 6*(inputBitDepth-8).
[161] Со ссылкой на Таблицы 7 и 8, синтаксический элемент min_qp_prime_ts_minus4 может синтаксически анализироваться/ сигнализироваться в SPS. Синтаксический элемент min_qp_prime_ts_minus4 может указывать минимальный параметр квантования, разрешенный для режима пропуска преобразования. Иными словами, минимальное значение параметра квантования (например, QpPrimeTsMin) в режиме пропуска преобразования может выводиться на основе синтаксического элемента min_qp_prime_ts_minus4. Например, минимальное значение параметра квантования (например, QpPrimeTsMin) может выводиться путем суммирования 4 со значением min_qp_prime_ts_minus4.
[162] Как описано выше, на основе синтаксического элемента min_qp_prime_ts_minus4, сигнализируемого посредством SPS, QP для значений перехода в режиме палитры может выводиться, как в алгоритме, раскрытом в Таблице 9 ниже. То есть, значение QP, используемое для реконфигурации значения перехода в режиме палитры, может выводиться, как в алгоритме, раскрытом в Таблице 9 ниже.
[163]
[Таблица 9]
Иначе (bIsEscapeSample равно 1 и cu_transquant_bypass_flag равно 0), применим следующий порядок этапов:1. Параметр квантования qP выводится следующим образом:- Если cIdx равен 0,qP=Max(QpPrimeTsMin, Qp’Y)- Иначе, если cIdx равен 1,qP=Max(QpPrimeTsMin, Qp’Cb)- Иначе (cIdx равен 2),qP=Max(QpPrimeTsMin, Qp’Cr)2. Переменная bitDepth выводится следующим образом:
<img file="00000013.jpg" he="6" wi="103" img-content="undefined" img-format="jpg" />3. Список levelScale[] специфицируется как levelScale[k]={40, 45, 51, 57, 64, 72} при k=0..5.4. Следующее применимо:
<img file="00000014.jpg" he="20" wi="113" img-content="undefined" img-format="jpg" />
[164] Со ссылкой на Таблицу 9, когда существует значение перехода режима палитры, может выводиться значение QP. То есть, QP для значения перехода режима палитры может выводиться на основе минимального значения параметра квантования (например, QpPrimeTsMin) в режиме пропуска преобразования, выведенного на основе синтаксического элемента min_qp_prime_ts_minus4, описанного выше. Например, как показано в Таблице 9, QP для значений перехода режима палитры может выводиться как большее значение между QpPrimeTsMin и параметром квантования Qp (Qp’Y) для компонента яркости и Qp’Cb или Qp’Cr для компонента цветности). Затем, значение перехода может выводиться на основе QP для значений перехода режима палитры, чтобы восстанавливать выборки в блоке.
[165] Дополнительно, в настоящем раскрытии, как описано выше, когда диапазон QP в режиме палитры ограничен, чтобы быть большим или равным минимальному значению параметра квантования (например, QpPrimeTsMin) в режиме пропуска преобразования, диапазон значений перехода, квантованных в режиме палитры, может быть ограничен. В качестве варианта осуществления, диапазон значений перехода, квантованных в режиме палитры, может быть определен на основе битовой глубины и может быть ограничен так, что он не больше, чем, например, (1<<BitDepth)-1.
[166] Например, значение перехода, квантованное в режиме палитры, может быть представлено синтаксическим элементом palette_escape_val. Синтаксический элемент palette_escape_val может сигнализироваться через синтаксис кодирования палитры, как показано в Таблице 10 ниже.
[167] [Таблица 10]
[168] Семантика синтаксических элементов, включенных в Таблицу 10, может быть представлена, как показано в Таблице 11 ниже.
[169]
[Таблица 11]
palette_escape_val специфицирует квантованное значение кодированной переходом выборки для компонента.Переменная PaletteEscapeVal[cIdx][xC][yC] специфицирует значение перехода выборки, для которой PaletteIndexMap[xC][yC] равно MaxPaletteIndex и palette_escape_val_present_flag равно 1. Индекс массива cIdx специфицирует цветовой компонент. Индексы массива xC, yC специфицируют местоположение (xC, yC) выборки относительно верхней-левой выборки яркости картинки.Требованием согласованности битового потока является то, что PaletteEscapeVal[cIdx][xC][yC] должно быть в диапазоне от 0 до (1<<(BitDepth<sub>Y</sub>))-1, включительно, для cIdx, равного 0, и в диапазоне от 0 до (1<<(BitDepth<sub>С</sub>))-1, включительно, для cIdx, не равного 0.
[170] Со ссылкой на Таблицы 10 и 11, синтаксический элемент palette_escape_val может синтаксически анализироваться/ сигнализироваться в синтаксисе кодирования палитры. Синтаксический элемент palette_escape_val может указывать квантованное значение перехода. Дополнительно, как показано в Таблице 10, значение синтаксического элемента palette_escape_val может быть установлено в PaletteEscapeVal, и PaletteEscapeVal может указывать значение перехода выборки, в которой карта индексов палитры (PaletteIndexMap) равна максимальному индексу палитры (MaxPaletteIndex) и значение palette_escape_val_present_flag равно 1. Здесь, случай, где значение palette_escape_val_present_flag равно 1, может означать, что по меньшей мере одна кодированная переходом выборка (значение перехода) включена в текущую CU. Например, для компонента яркости, PaletteEscapeVal может быть ограничено до диапазона от 0 до (1<<(BitDepthY)-1). Для компонента цветности, PaletteEscapeVal может быть ограничено до диапазона от 0 до (1<<(BitDepthC))-1.
[171] Дополнительно, настоящее раскрытие предлагает способ определения размера палитры и его сигнализации. Размер палитры может указывать число записей в таблице палитры (т.е. число индексов в таблице палитры). В качестве варианта осуществления, в настоящем раскрытии, число записей палитры может быть указано путем определения размера палитры с помощью одной или более констант.
[172] В качестве примера, размер палитры может быть представлен синтаксическим элементом palette_max_size, и синтаксический элемент palette_max_size может тем же самым для всей последовательности или может быть различным в соответствии с размером CU (т.е. числом пикселов в CU). Например, размер палитры (palette_max_size) может указывать максимальный допустимый индекс таблицы палитры и может быть определен как 31. В качестве другого примера, размер палитры (palette_max_size) может указывать максимальный допустимый индекс таблицы палитры, и может быть определен, как показано в Таблице 12 ниже в соответствии с размером CU.
[173]
[Таблица 12]
если (cbWidth*cbHeight>=1024)palette_max_size определен как 63иначе, если cbWidth*cbHeight>=256palette_max_size определен как 31иначе,palette_max_size определен как 15
[174] Размеры палитры 63, 31, 15 и т.д. и размеры CU 1024, 256 и т.д., раскрытые в Таблице 12, используются только в качестве примеров и могут быть изменены на другие числа.
[175] В качестве варианта осуществления, информация, указывающая размер палитры (например, palette_max_size), может сигнализироваться посредством SPS, как показано в Таблице 13 ниже.
[176] [Таблица 13]
[177] Семантика синтаксических элементов, включенных в синтаксис Таблицы 13, может быть представлена, как показано в Таблице 14 ниже.
[178]
[Таблица 14]
palette_max_size специфицирует максимальный разрешенный индекс таблицы палитры и должен быть в диапазоне от 1 до 63 включительно.
[179] Со ссылкой на Таблицы 13 и 14 выше, синтаксический элемент palette_max_size может синтаксически анализироваться/ сигнализироваться в синтаксическом элементе в SPS. Синтаксический элемент palette_max_size может указывать максимальный разрешенный индекс таблицы палитры и может быть ограничен до диапазона от 1 до 63.
[180] В этом случае, синтаксический элемент palette_max_size может синтаксически анализироваться/ сигнализироваться на основе синтаксического элемента sps_palette_enabled_flag, который является информацией для указания, включен ли режим палитры. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда он указывает, что режим палитры включен), синтаксический элемент palette_max_size может синтаксически анализироваться/сигнализироваться.
[181] Альтернативно, в качестве варианта осуществления, информация, указывающая размер палитры (например, log2_palette_max_size), может сигнализироваться посредством SPS, как показано в Таблице 15 ниже.
[182] [Таблица 15]
[183] Семантика синтаксических элементов, включенных в синтаксис Таблицы 15, может быть представлена, как показано в Таблице 16 ниже.
[184]
[Таблица 16]
log2_palette_max_size специфицирует log2 от (palette_max_size+1), palette_max_size=(1<<log2_palette_max_size)-1. palette_max_size специфицирует максимальный разрешенный индекс таблицы палитры и должен находиться в диапазоне от 1 до 63 включительно.
[185] Со ссылкой на Таблицы 15 и 16, синтаксический элемент log2_palette_max_size синтаксический элемент может синтаксически анализироваться/сигнализироваться в SPS. Синтаксический элемент log2_palette_max_size может указывать значение log2 размера палитры (т.е. palette_max_size+1). Соответственно, palette_max_size, указывающий максимальный разрешенный индекс таблицы палитры, может выводиться путем вычисления (1<< log2_palette_max_size)-1 и может быть ограничен до диапазона от 1 до 63.
[186] В этом случае, синтаксический элемент log2_palette_max_size может синтаксически анализироваться/ сигнализироваться на основе синтаксического элемента sps_palette_enabled_flag, который является информацией для указания, включен ли режим палитры. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда он указывает, что режим палитры включен), синтаксический элемент log2_palette_max_size может синтаксически анализироваться/ сигнализироваться.
[187] Альтернативно, в качестве варианта осуществления, информация, указывающая размер палитры (например, log2_palette_CU_size_TH1, log2_palette_max_size_TH1, log2_palette_max_size_default) может сигнализироваться посредством SPS, как показано в Таблице 17 ниже.
[188] [Таблица 17]
[189] Семантика синтаксических элементов, включенных в синтаксис Таблицы 17, может быть представлена, как показано в Таблице 18 ниже.
[190]
[Таблица 18]
log2_palette_CU_size_TH1 специфицирует log2 от предела размера palette_max_size_TH1. palette_CU_size_TH1=1<<log2_palette_CU_size_TH1log2_palette_max_size_TH1 специфицирует log2 от (palette_max_size_TH1+1). (palette_max_size_TH1=(1<<log2_palette_max_size_TH1)-1. palette_max_size_TH1 специфицирует максимальный разрешенный индекс таблицы палитры для CU с размером большим, чем palette_CU_size_TH1, и должно быть в диапазоне от 1 до 63 включительно.log2_palette_max_size_default специфицирует log2 от (palette_max_size_default+1). palette_max_size_default=(1<<log2_palette_max_size_default)-1. palette_max_size_default специфицирует максимальный разрешенный индекс таблицы палитры и должно быть в диапазоне от 1 до 63 включительно.Переменная palette_max_size специфицирует максимальный разрешенный индекс таблицы палитры и выводится следующим образом:
<img file="00000019.jpg" he="28" wi="85" img-content="undefined" img-format="jpg" />
[191] Со ссылкой на Таблицы 17 и 18, синтаксические элементы log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default могут синтаксически анализироваться/сигнализироваться в SPS.
[192] Синтаксический элемент log2_palette_CU_size_TH1 указывает значение log2 предела размера of palette_max_size_TH1, и palette_max_size_TH1 может выводиться как 1<< log2_Palette_CU_size_TH1.
[193] Синтаксический элемент log2_palette_max_size_TH1 указывает значение log2 от (palette_max_size_TH1+1), и palette_max_size_TH1 может выводиться как (1<< log2_palette_max_size_TH1)-1. palette_max_size_TH1 указывает максимальный разрешенный индекс таблицы палитры для CU, имеющей размер больший, чем Palette_CU_size_TH1, и может быть ограничен в диапазоне от 1 до 63.
[194] Синтаксический элемент log2_palette_max_size_default элемент указывает значение log2 от (palette_max_size_default+1), и palette_max_size_default может выводиться как (1<< log2_palette_max_size_default)-1. palette_max_size_default указывает максимальный разрешенный индекс таблицы палитры и может быть ограничен в диапазоне от 1 до 63.
[195] Здесь, синтаксические элементы log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default могут синтаксически анализироваться/сигнализироваться на основе синтаксического элемента sps_palette_enabled_flag, который является информацией для указания, включен ли режим палитры. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда оно указывает, что режим палитры включен), синтаксические элементы log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default могут синтаксически анализироваться/ сигнализироваться.
[196] Также, один или более наборов palette_CU_size_TH и palette_max_size_TH могут сигнализироваться и использоваться, чтобы указывать palette_max_size.
[197] Следующие чертежи были созданы, чтобы пояснять конкретный пример настоящего раскрытия. Наименования или конкретные термины или наименования конкретных устройств, проиллюстрированных на чертежах (например, термины синтаксиса/синтаксических элементов и т.д.), представлены в качестве примера, и, таким образом, технические признаки настоящего раскрытия не ограничены конкретным наименованиями, используемыми на чертежах ниже.
[198] Фиг. 9 схематично показывает пример способа кодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.
[199] Способ, раскрытый на фиг. 9, может выполняться устройством 200 кодирования, проиллюстрированным на фиг. 2. Конкретно, этапы S900 и S910 на фиг. 9 могут выполняться предсказателем 220, проиллюстрированным на фиг. 2, и этап S920 на фиг. 9 может выполняться энтропийным кодером 240, проиллюстрированным на фиг. 2. Дополнительно, способ, раскрытый на фиг. 9, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии. Соответственно, на фиг. 9, детальное описание избыточных частей фиг. 9 и вышеописанные варианты осуществления будут опущены или упрощены.
[200] Со ссылкой на фиг. 9, устройство кодирования может выводить значение перехода в режиме палитры для текущего блока (S900).
[201] В качестве варианта осуществления, устройство кодирования может определять режим предсказания для текущего блока и выполнять предсказание. Например, устройство кодирования может определять, следует ли выполнять интер-предсказание или интра-предсказание на текущем блоке. Альтернативно, устройство кодирования может определять, следует ли выполнять предсказание на текущем блоке на основе режима CIIP, режима IBC или режима палитры. Устройство кодирования может определять режим предсказания на основе стоимости RD. Устройство кодирования может выполнять предсказание в соответствии с определенным режимом предсказания, чтобы вывести выборки предсказания для текущего блока. Дополнительно, устройство кодирования может генерировать и кодировать информацию (например, информацию режима предсказания), относящуюся к предсказанию, применимому к текущему блоку.
[202] При выполнении режима палитры на основе предсказания на текущем блоке, устройство кодирования может применять кодирование в режиме палитры, раскрытое в вышеописанных вариантах осуществления. То есть, устройство кодирования может выводить записи палитры, индексы палитры, значения перехода и тому подобное путем применения кодирования в режиме палитры к текущему блоку.
[203] В качестве примера, устройство кодирования может генерировать информацию записей палитры на основе значений выборок текущего блока. То есть, устройство кодирования может выводить записи предсказателя палитры и информацию повторного использования записей палитры, используемую в блоке, кодируемом в предыдущем режиме палитры, чтобы сконфигурировать таблицу палитры, и может выводить записи палитры для текущего блока. Например, как показано в Таблицах 5 и 6, устройство кодирования может выводить информацию записей палитры, такую как palette_predictor_run, num_signalled_palette_entries и new_palette_entries, используемую, чтобы конфигурировать таблицу палитры.
[204] Дополнительно, устройство кодирования может генерировать информацию индексов палитры для текущего блока на основе информации записей палитры. То есть, устройство кодирования может выводить значение индекса палитры каждой выборки при проходе по выборкам текущего блока в поперечном направлении сканирования (вертикальном направлении или горизонтальном направлении) и конфигурировать карту индексов палитры. Например, как показано в Таблицах 5 и 6 выше, устройство кодирования может выводить информацию записей палитры, такую как palette_transpose_flag, palette_idx_idc, COPY_ABOVE_indices_for_final_run_flag, num_palette_indices_minus1, используемую, чтобы конфигурировать карту индексов палитры.
[205] Здесь, таблица палитры может включать в себя репрезентативные цветовые значения (записи палитры) для выборок в текущем блоке и может состоять из значений индексов палитры, соответствующих соответственным цветовым значениям. То есть, устройство кодирования может выводить значение индекса палитры, соответствующее записи (цветовому значению) в таблице палитры для каждой выборки в текущем блоке и сигнализировать его на устройство декодирования.
[206] Устройство кодирования может кодировать информацию изображения, включающую в себя информацию записей палитры и информацию индексов палитры, и сигнализировать ее на устройство декодирования.
[207] Дополнительно, при выполнении режима палитры на основе предсказания на текущем блоке, устройство кодирования может выводить значение перехода для текущего блока, включающего в себя по меньшей мере одну кодированную переходом выборку.
[208] Как описано выше, поскольку является эффективным дополнительно передавать соответствующее значение выборки для выборки, имеющей значение, отличное от таковых в соседних выборках в текущем блоке в режиме палитры, с точки зрения эффективности кодирования, это значение выборки может сигнализироваться как значение перехода. В этом случае, поскольку значение перехода является дополнительными данными, для их экономии может выполняться квантование. К тому же, преобразование не применяется к значению перехода режима палитры, и квантованное значение может непосредственно сигнализироваться.
[209] Устройство кодирования может выводить квантованное значение перехода на основе значения перехода (S910).
[210] В качестве варианта осуществления, устройство кодирования может выводить квантованное значение перехода путем применения параметра квантования для значения перехода к значению перехода.
[211] Здесь, параметр квантования может выводиться на основе информации минимального параметра квантования касательно режима пропуска преобразования. Например, параметр квантования может выводиться на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования, показанного в Таблицах 7-9. Как описано выше, поскольку преобразование не применяется к значению перехода режима палитры, значение перехода может квантоваться на основе информации минимального параметра квантования, используемой в режиме пропуска преобразования.
[212] В качестве конкретного примера, как показано в Таблице 9, сначала, устройство кодирования может выводить минимальное значение параметра квантования (например, QpPrimeTsMin) на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования. Дополнительно, устройство кодирования может выбрать большее значение между минимальным значением параметра квантования (например, QpPrimeTsMin) и параметром квантования Qp (Qp’Y для компонента яркости и Qp’Cb или Qp’Cr для компонента цветности) и использовать его в качестве параметра квантования в режиме палитры.
[213] Иными словами, параметр квантования в режиме палитры может иметь значение, большее или равное минимальному значению параметра квантования (например, QpPrimeTsMin), выведенному из информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования.
[214] Устройство кодирования может выводить квантованное значение перехода с использованием параметра квантования в режиме палитры, выведенного, как описано выше. Устройство кодирования может генерировать квантованное значение перехода как синтаксический элемент palette_escape_val, как показано в Таблицах 5 и 6, и сигнализировать его. Дополнительно, устройство кодирования может генерировать информацию (например, palette_escape_val_present_flag) для указания, что выборка, имеющая значение перехода, присутствует в текущем блоке, и сигнализировать ее.
[215] В соответствии с вариантом осуществления, устройство кодирования может ограничить квантованное значение перехода в конкретном диапазоне. Поскольку значения перехода имеют характеристики, отличные от таковых в соседних выборках, они квантуются и непосредственно сигнализируются. Однако может возникать ошибка вследствие квантования. Чтобы уменьшать такую ошибку и кодировать более точное значение, диапазон квантованного значения перехода может быть ограничен на основе битовой глубины.
[216] Например, диапазон информации о квантованном значении перехода может определяться на основе битовой глубины, как показано в Таблицах 10 и 11, и может ограничиваться так, что он не больше, чем (1<<BitDepth)-1, например. Дополнительно, битовая глубина может включать в себя битовую глубину BitDepthY для компонента яркости и битовую глубину BitDepthC для компонента цветности. Здесь, диапазон информации квантованного значения перехода для компонента яркости может иметь значение между 0 и (1<<BitDepthY)-1, и диапазон информации квантованного значения перехода для компонента цветности может иметь значение между 0 и (1<<BitDepthC)-1.
[217] Дополнительно, в одном варианте осуществления, устройство кодирования может определять число записей в таблице палитры (т.е. число индексов таблицы палитры) и сигнализировать его на устройство декодирования. То есть, устройство кодирования может определять информацию размера палитры касательно максимального индекс таблицы палитры и сигнализировать ее. Информация размера палитры может быть предварительно установленным значением или может определяться на основе размера единицы кодирования.
[218] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблице 12, может быть одинаковым для всей последовательности или может быть определен по-разному в соответствии с размером CU (т.е. числом пикселов в CU).
[219] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблицах 13 и 14, и может сигнализироваться посредством SPS. В этом случае, размер палитры (например, palette_max_size) может указывать максимальный разрешенный индекс таблицы палитры и может быть ограничен в диапазоне от 1 до 63. Дополнительно, размер палитры (например, palette_max_size) может сигнализироваться на основе информации (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.
[220] Дополнительно, например, размер палитры может быть представлен как log2_palette_max_size, как показано в Таблицах 15 и 16, и может сигнализироваться посредством SPS. В этом случае, размер палитры (например, log2_palette_max_size) может указывать значение log2 от размера палитры (т.е. palette_max_size+1). Соответственно, palette_max_size, указывающий максимальный разрешенный индекс таблицы палитры, может выводиться путем вычисления (1<<log2_palette_max_size)-1 и может быть ограничен в диапазон от 1 до 63. Дополнительно, размер палитры (например, log2_palette_max_size) может сигнализироваться на основе информации (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.
[221] Дополнительно, например, размер палитры может выводиться на основе log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default, как показано в Таблицах 17 и 18, и может сигнализироваться посредством SPS. Поскольку конкретный вариант осуществления выведения и сигнализации размера палитры был описан выше в Таблицах 17 и 18, их описание здесь будет опущено.
[222] Устройство кодирования может кодировать информацию изображения (или информацию видео) (S920). Здесь, информация изображения может включать в себя различные типы информации, используемой для вышеописанного кодирования в режиме палитры.
[223] В качестве примера, устройство кодирования может генерировать и кодировать информацию изображения, включая информацию о квантованных значениях перехода. Дополнительно, устройство кодирования может генерировать и кодировать информацию изображения, включая информацию записей палитры и информацию индексов палитры. Дополнительно, устройство кодирования может генерировать и кодировать информацию изображения, включая информацию минимального параметра квантования касательно режим пропуска преобразования. В этом случае, информация изображения может включать в себя SPS, и SPS может включать в себя информацию минимального параметра квантования касательно режим пропуска преобразования.
[224] Дополнительно, в соответствии с вариантом осуществления, устройство кодирования может определять, следует ли выполнять кодирование на текущем блоке с использованием вышеописанного режим палитры на основе информации о том, включен ли режим палитры.
[225] Например, как показано в Таблицах 1-4, устройство кодирования может определять включен ли режим палитры, генерировать информацию (например, sps_palette_enabled_flag) о том, включен ли режим палитры, в соответствии с определением и сигнализировать информация посредством SPS.
[226] Дополнительно, устройство кодирования может генерировать информацию (например, pred_mode_plt_flag), указывающую, следует ли кодировать текущий блок, путем применения к нему режима палитры на основе информации (например, sps_palette_enabled_flag) о том, включен ли режим палитры, и сигнализировать информацию посредством синтаксиса единицы кодирования. Например, когда значение pred_mode_plt_flag равно 1, возможно применить режим палитры к текущему блоку, чтобы генерировать восстановленную выборку путем сигнализации синтаксиса palette_coding().
[227] Информация о том, включен ли режим палитры (например, sps_palette_enabled_flag), и информация, указывающая, следует ли кодировать текущий блок путем применения к нему режима палитры (например, pred_mode_plt_flag), может кодироваться путем включения в информацию изображения.
[228] Информация изображения, включая различные типы информации, как описано выше, может кодироваться и выводиться в форме битового потока. Битовый поток может передаваться на устройство декодирования посредством сети или (цифрового) носителя хранения. Здесь, сеть может включать в себя сеть вещания и/или сеть связи, и цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD и SSD.
[229] Фиг. 10 схематично показывает пример способа декодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.
[230] Способ, раскрытый на фиг. 10, может выполняться устройством 300 декодирования, проиллюстрированным на фиг. 3. Конкретно, этап S1000 на фиг. 10 может выполняться энтропийным декодером 310, проиллюстрированным на фиг. 3, и этапы S1010 и S1020 на фиг. 10 могут выполняться предсказателем 330, проиллюстрированным на фиг. 3. Также, способ, раскрытый на фиг. 10, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии. Соответственно, на фиг. 10, детальное описание избыточных частей на фиг. 10 и вышеописанных вариантов осуществления будет опущено или упрощено.
[231] Со ссылкой на фиг. 10, устройство декодирования может принимать информацию изображения (или информацию видео) из битового потока (S1000).
[232] Устройство декодирования может синтаксически анализировать битовый поток, чтобы вывести информацию (например, информацию видео/изображения), необходимую для восстановления изображения (или восстановления картинки). В этом случае, информация изображения может включать в себя информацию, относящуюся к предсказанию (например, информацию режима предсказания). Дополнительно, информация изображения может включать в себя различные типы информации, используемой для вышеописанного кодирования в режиме палитры. Например, информация изображения может включать в себя информацию о квантованных значениях перехода, информацию записей палитры, информацию индексов палитры, информацию минимального параметра квантования касательно режима пропуска преобразования и тому подобное. То есть, информация изображения может включать в себя различные типы информации, требуемой в процессе декодирования, и может декодироваться на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC.
[233] В качестве варианта осуществления, устройство декодирования может получать информацию изображения, включая информацию квантованного значения перехода в режиме палитры, из битового потока. Например, информация квантованного значения перехода может представлять собой синтаксический элемент palette_escape_val, как показано в Таблицах 5 и 6. В этом случае, информация квантованного значения перехода (например, palette_escape_val) может быть получена на основе информации (например, palette_escape_val_present_flag), указывающей, существует ли выборка, имеющая значение перехода, в текущем блоке. Например, когда выборка, имеющая значение перехода, существует в текущем блоке (то есть, когда значение palette_escape_val_present_flag равно 1), устройство декодирования может получать информацию квантованного значения перехода (например, palette_escape_val) из битового потока.
[234] Устройство декодирования может выводить значение перехода для текущего блока на основе информации квантованного значения перехода (S1010).
[235] В качестве варианта осуществления, устройство декодирования может выводить значение перехода путем выполнения деквантования (процесса масштабирования) на квантованном значении перехода на основе параметра квантования.
[236] Здесь, параметр квантования может выводиться на основе информации минимального параметра квантования касательно режима пропуска преобразования. Например, параметр квантования может выводиться на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования, показанного в Таблицах 7-9. Как описано выше, поскольку преобразование не применяется к значению перехода режима палитры, значение перехода может быть квантовано на основе информации минимального параметра квантования, используемого в режиме пропуска преобразования. Здесь, информация минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования может синтаксически анализироваться/ сигнализироваться из SPS.
[237] В качестве конкретного примера, как показано в Таблице 9, сначала, устройство декодирования может выводить минимальное значение параметра квантования (например, QpPrimeTsMin) на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования. Дополнительно, устройство декодирования может выбрать большее значение между минимальным значением параметра квантования (например, QpPrimeTsMin) и параметром квантования Qp (Qp’Y для компонента яркости и Qp’Cb или Qp’Cr для компонента цветности) и использовать его в качестве параметра квантования в режиме палитры.
[238] Иными словами, параметр квантования в режиме палитры может иметь значение, большее или равное минимальному значению параметра квантования (например, QpPrimeTsMin), выведенному из информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования.
[239] Устройство декодирования может выводить значение перехода из квантованного значения перехода на основе параметра квантования в режиме палитры, выведенного, как описано выше.
[240] В соответствии с вариантом осуществления, устройство декодирования может ограничивать квантованное значение перехода в конкретном диапазоне. Поскольку значения перехода имеют характеристики, отличные от таковых в соседних выборках, они квантуются и непосредственно сигнализируются. Однако может возникать ошибка вследствие квантования. Чтобы снизить такую ошибку и кодировать более точное значение, диапазон квантованного значения перехода может быть ограничен на основе битовой глубины.
[241] Например, диапазон информации о квантованном значении перехода может быть определен на основе битовой глубины, как показано в Таблицах 10 и 11, и может быть ограничен так, что он не больше, чем (1<<BitDepth)-1, например. Дополнительно, битовая глубина может включать в себя битовую глубину BitDepthY для компонента яркости и битовую глубину BitDepthC для компонента цветности. Здесь, диапазон информации квантованного значения перехода для компонента яркости может иметь значение между 0 и (1<<BitDepthY)-1, и диапазон информации квантованного значения перехода для компонента цветности может иметь значение между 0 и (1<<BitDepthC)-1.
[242] Дополнительно, в одном варианте осуществления, устройство декодирования может получать информацию изображения, включая число записей таблицы палитры (т.е. число индексов таблицы палитры). То есть устройство декодирования может получать информацию изображения, включая информацию размера палитры касательно максимального индекса таблицы палитры. Здесь, информация размера палитры может быть предварительно установленным значением или может быть определена на основе размера единицы кодирования.
[243] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблице 12, может быть одинаковым для всей последовательности или может быть определен по-разному в соответствии с размером CU (т.е. числом пикселов в CU).
[244] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблицах 13 и 14, и может синтаксически анализироваться/сигнализироваться посредством SPS. В этом случае, размер палитры (например, palette_max_size) может указывать максимальный разрешенный индекс таблицы палитры и может быть ограничен в диапазон от 1 до 63. Дополнительно, размер палитры (например, palette_max_size) может синтаксически анализироваться/сигнализироваться на основе информации (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.
[245] Дополнительно, например, размер палитры может быть представлен как log2_palette_max_size, как показано в Таблицах 15 и 16, и может синтаксически анализироваться/сигнализироваться посредством SPS. В этом случае, размер палитры (например, log2_palette_max_size) может указывать значение log2 размера палитры (т.е. palette_max_size+1). Соответственно, palette_max_size, указывающий максимальный разрешенный индекс таблицы палитры, может выводиться путем вычисления (1<<log2_palette_max_size)-1 и может быть ограничен в диапазон от 1 до 63. Дополнительно, размер палитры (например, log2_palette_max_size) может синтаксически анализироваться/ сигнализироваться на основе информация (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.
[246] Дополнительно, например, размер палитры может выводиться на основе log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default, как показано в Таблицах 17 и 18, и может синтаксически анализироваться/сигнализироваться посредством SPS. Поскольку конкретный вариант осуществления выведения и синтаксического анализа/сигнализации размера палитры был описан выше в Таблицах 17 и 18, описание этого будет здесь опущено.
[247] Устройство декодирования может генерировать восстановленные выборки на основе значения перехода (S1020).
[248] В качестве варианта осуществления, устройство декодирования может генерировать восстановленные выборки на основе значения перехода по отношению к текущему блоку, включающему в себя по меньшей мере одну кодированную переходом выборку. Например, если имеется выборка, имеющая значение перехода в текущем блоке (то есть, когда значение palette_escape_val_present_flag равно 1), устройство декодирования может выводить значение перехода, как описано выше, для генерации восстановленной выборки кодированной переходом выборки.
[249] Дополнительно, при выполнении режима палитры на основе предсказания на текущем блоке (то есть, когда режим палитры применяется к текущему блоку), для выборок, отличных от кодированных переходом выборок в текущем блоке, устройство декодирования может получать информацию изображения, включая информацию записей палитры и информацию индексов палитры, и генерировать восстановленные выборки на основе полученной информации изображения.
[250] В качестве примера, устройство декодирования может конфигурировать таблицу палитры для текущего блока на основе информации записей палитры. Например, информация записей палитры может включать в себя palette_predictor_run, num_signalled_palette_entries, new_palette_entries и тому подобное, как показано в Таблицах 5 и 6. То есть, устройство декодирования может выводить записи предсказателя палитры и информацию повторного использования записей палитры, используемую в блоке, кодируемом в предыдущем режиме палитры, и выводить записи палитры для текущего блока, чтобы сконфигурировать таблицу палитры. Дополнительно, устройство декодирования может конфигурировать таблицу палитры на основе предыдущих записей предсказателя палитры и текущих записей палитры.
[251] Дополнительно, устройство декодирования может конфигурировать карту индексов палитры для текущего блока на основе информации индексов палитры. Например, информация индексов палитры может включать в себя palette_transpose_flag, palette_idx_idc, COPY_ABOVE_indices_for_final_run_flag, num_palette_indices_minus1 и тому подобное, используемое для конфигурирования карты индексов палитры, как показано в Таблицах 5 и 6. То есть, устройство декодирования может конфигурировать карту индексов палитры (например, PaletteIndexMap) на основе информации (например, palette_idx_idc), указывающей значение индекса палитры каждой выборки, при проходе по выборкам текущего блока на основе информации (например, palette_transpose_flag), указывающей направление поперечного сканирования (вертикальное направление или горизонтальное направление).
[252] Дополнительно, устройство декодирования может выводить значения выборок для записей палитры в таблице палитры на основе карты индексов палитры. Устройство декодирования может генерировать восстановленные выборки на основе карты индексов палитры и значений выборок для записей палитры.
[253] Здесь, таблица палитры может включать в себя репрезентативные цветовые значения (записи палитры) для выборок в текущем блоке и может состоять из значений индексов палитры, соответствующих соответственным цветовым значениям. Соответственно, устройство декодирования может выводить значения выборок (т.е. цветовые значения) записей в таблице палитры, соответствующих значениям индексов карты индексов палитры, и генерировать их как восстановленные значения выборок текущего блока.
[254] Дополнительно, в соответствии с вариантом осуществления, устройство декодирования может определять, следует ли выполнять кодирование на текущем блоке с использованием вышеописанного режим палитры, на основе информации о том, включен ли режим палитры.
[255] Например, как показано в Таблицах 1-4, устройство декодирования может получать информацию изображения, включая информацию (например, s_palette_enabled_flag) о том, включен ли режим палитры, и, на основе этой информации, получать информацию записей палитры, информацию индексов палитры, информацию квантованного значения перехода и тому подобное из битового потока.
[256] Дополнительно, например, устройство декодирования может получать информацию (например, pred_mode_plt_flag), указывающую, следует ли кодировать текущий блок путем применения к нему режима палитры, из битового потока на основе информации (например, sps_palette_enabled_flag) о том, включен ли режим палитры. Например, когда значение pred_mode_plt_flag равно 1, устройство декодирования может дополнительно получать синтаксис palette_coding() и применять режим палитры к текущему блоку на основе информации, включенной в синтаксис palette_coding(), для получения восстановленных выборок.
[257] В примерной системе, описанной выше, способы описаны в соответствии с блок-схемой с использованием последовательности этапов и блоков. Однако настоящий документ не ограничен конкретным порядком этапов, и некоторые этапы могут выполняться с другими этапами и в порядке, отличном от описанного выше, или одновременно. Также, специалистам в данной области должно быть понятно, что этапы, показанные в блок-схеме последовательности, не являются исключительными, и другие этапы могут быть дополнительно включены, или один или более этапов из блок-схемы последовательности могут быть удалены без оказания влияния на технический объем настоящего документа.
[258] Способ в соответствии с настоящим документом может быть в форме программного обеспечения, и устройство кодирования и/или устройство декодирования в соответствии с настоящим документом могут быть включены в устройство для выполнения обработки изображения, например, TV, компьютер, смартфон, телевизионную приставку, устройство отображения или тому подобное.
[259] Когда варианты осуществления настоящего документа реализуются программным обеспечением, вышеупомянутый способ может быть реализован модулем (процессом или функцией), который выполняет вышеупомянутую функцию. Модуль может храниться в памяти и исполняться процессором. Память может быть установлена внутри или вне процессора и может быть соединена с процессором посредством различных хорошо известных средств. Процессор может включать в себя специализированную интегральную схему (ASIC), другие чипсеты, логическую схему и/или устройство обработки данных. Память может включать в себя постоянную память (ROM), память с произвольным доступом (RAM), флэш-память, карту памяти, носитель хранения и/или другое устройство хранения. Иными словами, варианты осуществления в соответствии с настоящим документом могут реализовываться и исполняться на процессоре, микропроцессоре, контроллере или чипе. Например, функциональные модули, проиллюстрированные на соответственных чертежах, могут реализовываться и исполняться на компьютере, процессоре, микропроцессоре, контроллере или чипе. В этом случае, информация о реализации (например, информация об инструкциях) или алгоритмы могут храниться в цифровом носителе хранения.
[260] Кроме того, устройство декодирования и устройство кодирования, в которых применяется настоящее раскрытие, могут быть включены в приемопередатчик мультимедийного вещания, мобильный терминал связи, устройство домашнего кинотеатра, устройство цифрового кинотеатра, камеру наблюдения, устройство для разговора по видео, устройство связи в реальном времени, такой как видеосвязь, мобильное устройство стриминга, носитель хранения, камеру-регистратор, провайдер услуг видео по требованию (VoD), устройство доставки видео непосредственно от провайдера контента (OTT), провайдер услуг Интернет-стриминга, устройство 3D видео, устройство виртуальной реальности (VR), устройство дополненной реальности (AR), устройство видеотелефона для передачи изображений, терминал транспортного средства (например, терминал транспортного средства (включая автономное транспортное средство), бортовой терминал или судовой терминал) и медицинское видеоустройство; и могут использоваться для обработки сигнала или данных изображения. Например, видеоустройство OTT может включать в себя игровую консоль, Blu-ray-плеер, телевизор с интернет-доступом, систему домашнего кинотеатра, смартфон, планшетный PC, цифровой видео-регистратор (DVR).
[261] Кроме того, способ обработки, в котором применяется вариант(ы) осуществления настоящего раскрытия, может выполняться в форме программы, исполняемой компьютером, и может храниться в считываемом компьютером носителе записи. Мультимедийные данные, имеющие структуру данных в соответствии с вариантом(ами) осуществления настоящего раскрытия, могут также храниться в считываемых компьютером носителях записи. Считываемый компьютером носитель записи включает в себя все типы устройств хранения и распределенных устройств хранения, в которых хранятся считываемые компьютером данные. Считываемые компьютером носители записи могут включать в себя, например, Blu-ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, флоппи-диск и оптическое устройство хранения данных. Дополнительно, считываемый компьютером носитель записи включает в себя носители, воплощенные в форме несущей волны (например, передача через интернет). Кроме того, битовый поток, сгенерированный способом кодирования, может храниться в считываемом компьютером носителе записи или передаваться по сетям проводной/беспроводной связи.
[262] Дополнительно, вариант(ы) осуществления настоящего раскрытия может быть реализован как компьютерный программный продукт на основе программного кода, и программный код может исполняться на компьютере в соответствии с вариантом(ами) осуществления настоящего раскрытия. Программный код может храниться на считываемом компьютером носителе.
[263] Фиг. 11 показывает пример системы стриминга контента, в которой могут применяться варианты осуществления настоящего раскрытия.
[264] Со ссылкой на фиг. 11, система стриминга контента, в которой применяются варианты осуществления настоящего раскрытия, может, в основном, включать в себя сервер кодирования, стриминговый сервер, веб-сервер, медиа-хранилище, пользовательское оборудование и устройство мультимедийного ввода.
[265] Сервер кодирования функционирует для сжатия цифровых данных контента, введенного из устройств мультимедийного ввода, таких как смартфон, камера, камера-регистратор и т.д., чтобы сгенерировать битовый поток и передать его на стриминговый сервер. В качестве другого примера, когда устройство мультимедийного ввода, такое как смартфон, камера, камера-регистратор и тому подобное, непосредственно генерирует битовый поток, сервер кодирования может быть опущен.
[266] Битовый поток может генерироваться способом кодирования или способом генерации битового потока, в котором применяются варианты осуществления настоящего раскрытия, и стриминговый сервер может временно хранить битовый поток в процессе передачи или приема битового потока.
[267] Стриминговый сервер передает мультимедийные данные на пользовательское оборудование на основе запроса пользователя через веб-сервер, который функционирует как инструмент, который информирует пользователя об услуге. Когда пользователь запрашивает желаемую услугу, веб-сервер переносит запрос на стриминговый сервер, и стриминговый сервер передает мультимедийные данные пользователю. В этом отношении, система стриминга контента может включать в себя отдельный сервер управления, и в этом случае, сервер управления функционирует, чтобы управлять командами/откликами между соответствующим оборудованием в системе стриминга контента.
[268] Стриминговый сервер может принимать контент из медиа-хранилища и/или сервера кодирования. Например, когда контент принимается от сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы обеспечить плавную стриминговую услугу, стриминговый сервер может хранить битовый поток в течение предопределенного периода времени.
[269] Например, пользовательское оборудование может включать в себя мобильный телефон, смартфон, ноутбук, терминал цифрового вещания, персональный цифровой помощник (PDA), портативный мультимедийный плеер (PMP), навигатор, тонкий PC, планшетный PC, ультрабук, носимое устройство (например, терминал типа часов (умные часы), терминал типа очков (умные очки), наголовный дисплей (HMD)), цифровой телевизор, настольный компьютер, цифровой указатель и тому подобное.
[270] Каждый из серверов в системе стриминга контента может работать как распределенный сервер, и в этом случае, данные, принятые каждым сервером, могут обрабатываться распределенным образом.
[271] Пункты формулы изобретения, описанные в настоящем раскрытии, могут комбинироваться различным образом. Например, технические признаки в пунктах формулы на способ в настоящем описании могут комбинироваться для реализации или выполнения в устройстве, и технические признаки в пунктах формулы на устройство могут комбинироваться для реализации или выполнения в способе. Кроме того, технические признаки в пунктах формулы на способ и пунктах формулы на устройство могут комбинироваться для реализации или выполнения в устройстве. Кроме того, технические признаки в пунктах формулы на способ и в пунктах формулы на устройство могут комбинироваться для реализации или выполнения в способе.