СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО Российский патент 2023 года по МПК H04N19/70 H04N19/46 H04N19/105 H04N19/159 H04N19/44 H04N19/176 

Описание патента на изобретение RU2808148C1

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ

[00] В настоящей заявке испрашивается приоритет по заявке на патент США №17/220672 «СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО», поданной 1 апреля 2021 г., в которой испрашивается приоритет по предварительной заявке США №63/005 345 "Способ сигнализирования разделения субизображения и слайса в кодированном видеопотоке», поданной 5 апреля 2020 г., предварительной заявке США №63/010272, «Способ сигнализирования заголовка изображения и заголовка слайса в кодированном видеопотоке», поданной 15 апреля 2020 г., предварительной заявке США №63 / 024140, "Способы управления инструментами кодирования с помощью флагов ограничений в кодированном видеопотоке", поданной 13 мая 2020 г., предварительной заявке США №63 / 027848, "Способы сигнализирования информации кодирования полей в многослойном видеопотоке", поданной 20 мая 2020 г., и предварительной заявке США №63/028 222 "Способы условного сигнализирования флагов ограничения в кодированном видеопотоке", поданной 21 мая 2020 г. Полное раскрытие предшествующих заявок полностью включено в настоящее описание посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[1] Настоящее изобретение описывает варианты осуществления, в основном относящиеся к кодированию видео.

УРОВЕНЬ ТЕХНИКИ

[2] Описание уровня техники, представленное в данном документе, предназначено для общего представления контекста изобретения. Работа названных здесь изобретателей, в той мере, в какой она описана в этом разделе описания уровня техники, а также аспекты описания, которые в противном случае не могут считаться предшествующим уровнем техники на момент подачи заявки, ни прямо, ни косвенно не признаются в качестве предшествующего уровня техники в отношении настоящего изобретения.

[3] Кодирование и декодирование видео могут выполняться с использованием интер-кадрового предсказания с компенсацией движения. Несжатое цифровое видео может включать в себя серию изображений, при этом каждое изображение имеет пространственный размер, например, 1920x1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет определенные требования к битрейту. Например, для видео 1080р60 4:2:0 с частотой 8 бит на отсчет (разрешение 1920x1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 ГБ дискового пространства.

[4] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности и/или пространству памяти, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал полезным для предполагаемого применения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, пользователи определенных потребительских приложений потоковой передачи могут допускать более высокие искажения, чем пользователи приложений распределения телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.

[5] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.

[6] Технологии видеокодеков могут включать в себя методы, известные как интра-кодирование. При интра-кодировании значения отсчетов представлены без ссылки на отсчеты или другие данные из ранее восстановленных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, это изображение может быть интра-изображением. Интра-изображения и их производные, такие как изображения обновления независимого декодера, могут использоваться для сброса состояния декодера и, следовательно, могут использоваться в качестве первого изображения в кодированном битовом потоке видео и сеанса видео или как неподвижное изображение. Осчеты интра-блока могут подвергаться преобразованию, а коэффициенты преобразования могут квантоваться перед энтропийным кодированием. Интра-предсказание может быть методом, который минимизирует значения отсчетов в области до преобразования. В некоторых случаях, чем меньше значение DC после преобразования и чем меньше коэффициенты АС, тем меньше битов требуется при заданном размере шага квантования для представления блока после энтропийного кодирования.

[7] Традиционное интра-кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует интра-предсказание. Однако некоторые новые технологии сжатия видео включают в себя методы, которые пытаются, например, из окружающих данных отсчетов и/или метаданных, полученных во время кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования блоков данных. Такие методы в дальнейшем называются методами «интра-предсказания». Следует обратить внимание, что по меньшей мере в некоторых случаях интра-предсказание использует опорные данные только из текущего восстанавливаемого изображения, а не из опорных изображений.

[8] Может быть много разных форм интра-предсказания. Когда в данной технологии кодирования видео можно использовать более одного из таких методов, используемый метод может быть закодирован в режиме интра-предсказания. В некоторых случаях режимы могут иметь подрежимы и/или параметры, и они могут быть закодированы индивидуально или включены в кодовое слово режима. Выбор, какое кодовое слово использовать для данной комбинации режима/подрежима/параметра, может повлиять на повышение эффективности кодирования за счет интра-предсказания, как и технология энтропийного кодирования, используемая для преобразования кодовых слов в поток битов.

[9] Определенный режим интра-предсказания был введен в Н.264, усовершенствован в Н.265 и дополнительно усовершенствован в новых технологиях кодирования, таких как совместная модель исследования (JEM), универсальное кодирование видео (VVC) и набор тестов (BMS). Блок предиктора может быть сформирован с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения отсчетов соседних отсчетов копируются в блок предсказания в соответствии с направлением. Ссылка на используемое направление может быть закодирована в битовом потоке или сама может быть предсказана.

[10] На фиг.1А в правом нижнем углу изображен поднабор девяти направлений предсказания, известных из 33 возможных направлений предсказания Н.265 (соответствующих 33 угловым режимам из 35 интра-режимов). Точка, где сходятся стрелки (101), представляет собой предсказываемый отсчет. Стрелки указывают направление, в котором предсказывается отсчет. Например, стрелка (102) указывает, что отсчет (101) предсказывается на основе отсчета или отсчетов в правом верхнем углу под углом 45 градусов от горизонтали. Аналогично, стрелка (103) указывает, что отсчет (101) предсказывается из отсчета или отсчетов в нижнем левом углу отсчета (101) под углом 22,5 градуса от горизонтали.

[11] В верхнем левом углу фиг.1А изображен квадратный блок (104) из 4x4 отсчетов (обозначен пунктирной жирной линией). Квадратный блок (104) включает в себя 16 отсчетов, каждый из которых помечен буквой «S», его положение в измерении Y (например, индекс строки) и его положение в измерении X (например, индекс столбца). Например, отсчет S21 - это второй отсчет в измерении Y (сверху) и первый (слева) отсчет в измерении X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) как по Y, так и по X измерениям. Поскольку размер блока 4x4 отсчета, S44 находится внизу справа. Далее показаны опорные отсчеты, которые следуют аналогичной схеме нумерации. Опорный отсчет помечается буквой R, его положением Y (например, индекс строки) и положением X (индекс столбца) относительно блока (104). И в Н.264, и в Н.265 отсчеты предсказания соседствуют с восстанавливаемым блоком; поэтому нет необходимости использовать отрицательные значения.

[12] Интра-предсказание изображения может работать путем копирования значений опорных отсчетов из соседних отсчетов в соответствии с сигнальным направлением предсказания. Например, предположим, что кодированный поток битов видео включает в себя сигнализацию, которая для этого блока указывает направление предсказания, соответствующее стрелке (102), то есть отсчеты предсказываются из отсчета предсказания или отсчетов в правом верхнем углу под углом 45 градусов от горизонтали. В этом случае отсчеты S41, S32, S23 и S14 предсказываются на основе одного и того же опорного отсчета R05. Отсчет S44 затем предсказывается на основе опорного отсчета R08.

[13] В некоторых случаях значения нескольких опорных отсчетов могут быть объединены, например, посредством интерполяции, чтобы вычислить опорный отсчет; особенно когда направления не делятся на 45 градусов без остатка.

[14] Количество возможных направлений увеличивалось по мере развития технологии кодирования видео. В Н.264 (2003 год) может быть представлено девять различных направлений. Это число увеличилось до 33 в Н.265 (2013 год), а JEM/VVC/BMS на момент данного изобретения может поддерживать до 65 направлений. Были проведены эксперименты для определения наиболее вероятных направлений, и определенные методы энтропийного кодирования используются для представления этих вероятных направлений в небольшом количестве битов, принимая определенный штраф за менее вероятные направления. Кроме того, сами направления иногда могут быть предсказаны из соседних направлений, используемых в соседних, уже декодированных блоках.

[15] Фиг. 1 В иллюстрирует схему (180), которая изображает 65 направлений интра-предсказания согласно JEM, чтобы проиллюстрировать увеличивающееся количество направлений предсказания с течением времени.

[16] Отображение битов направлений интра-предсказания в кодированном битовом потоке видео, которые представляют направление, может отличаться от технологии кодирования видео к технологии кодирования видео; и может варьироваться, например, от простых прямых отображений направления предсказания в режим интра-предсказания, в кодовые слова, в сложные адаптивные схемы, включающие наиболее вероятные режимы, и аналогичные методы. Однако во всех случаях могут быть определенные направления, которые статистически менее вероятны в видеоконтенте, чем некоторые другие направления. Поскольку целью сжатия видео является уменьшение избыточности, эти менее вероятные направления в хорошо работающей технологии кодирования видео будут представлены большим числом битов, чем более вероятные направления.

[17] Компенсация движения может представлять собой технологию сжатия с потерями и может относиться к технологиям, в которых блок отсчетных данных из ранее восстановленного изображения или его части (опорное изображение) после пространственного сдвига в направлении, указанном посредством вектора движения (далее ВД), используется для предсказания нового восстановленного изображения или части изображения. В некоторых случаях опорное изображение может быть таким же, как восстанавливаемое в настоящее время изображение. MV могут иметь два измерения X и Y или три измерения, причем третье является показателем используемого опорного изображения (последнее, косвенно, может быть измерением времени).

[18] В некоторых методах сжатия видео MV, применимый к определенной области отсчетных данных, может быть предсказан из других MV, например, из тех, которые относятся к другой области отсчетных данных, пространственно смежных с восстанавливаемой областью и предшествующих этому MV в порядке декодирования. Это может существенно уменьшить объем данных, необходимых для кодирования MV, тем самым устраняя избыточность и увеличивая степень сжатия. Предсказание MV может работать эффективно, например, потому что при кодировании входного видеосигнала, полученного с камеры (известного как естественное видео), существует статистическая вероятность того, что области, большие, чем область, к которой применим отдельный MV, перемещаются в аналогичном направлении и, следовательно, в некоторых случаях могут быть предсказаны с использованием аналогичного вектора движения, полученного из MV соседней области. Это приводит к тому, что MV, найденный для данной области, аналогичен или совпадает с MV, предсказанным из окружающих MV, и который, в свою очередь, может быть представлен после энтропийного кодирования в меньшем количестве битов, чем то, которое было бы использовано при кодировании MB напрямую. В некоторых случаях предсказание MV может быть примером сжатия без потерь сигнала (а именно: MV), полученного из исходного сигнала (а именно: потока отсчетов). В других случаях само предсказание MV может быть с потерями, например, из-за ошибок округления при вычислении предиктора из нескольких окружающих MV.

[19] Различные механизмы предсказания MV описаны в H.265/HEVC (ITU-T Rec. Н.265, «High Efficiency Video Coding», декабрь 2016 г.). Из множества механизмов предсказания MV, которые предлагает Н.265, здесь описывается метод, далее именуемый «пространственным слиянием».

[20] Как показано на фиг.2, текущий блок (201) содержит отсчеты, которые были обнаружены кодером во время процесса поиска движения как предсказываемые из предыдущего блока того же размера, который был пространственно сдвинут.Вместо того, чтобы кодировать этот MV напрямую, MV может быть получен из метаданных, связанных с одним или несколькими опорными изображениями, например, из самого последнего (в порядке декодирования) опорного изображения, с использованием MV, связанного с одним из пяти окружающих отсчетов, обозначенных А0, А1 и В0, B1, В2 (от 202 до 206 соответственно). В Н.265 предсказание MV может использовать предикторы из того же опорного изображения, который использует соседний блок.

РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

[21] Аспекты изобретения относятся к способам и устройствам для кодирования/декодирования видео. В некоторых примерах устройство для декодирования видео включает в себя схему обработки. Схема обработки конфигурирована для получения флага регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализируемой в кодированном битовом потоке видео. Каждый флаг регулирования может указывать, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения. Информация ограничения может относиться к поднабору блоков кодирования в кодированном битовом потоке видео. Схема обработки конфигурирована так, чтобы определять на основе флага регулирования группы информации ограничения по меньшей мере одной группы информации ограничения, присутствует ли группа информации ограничения флага регулирования в информации ограничения, причем группа информации ограничения флага регулирования включает по меньшей мере один флаг ограничения для поднабора блоков кодирования. Схема обработки конфигурирована для определения информации предсказания для поднабора блоков кодирования на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения. Схема обработки конфигурирована для восстановления поднабора блоков кодирования на основе информации предсказания.

[22] В варианте осуществления определяется, что группа информации ограничения флага регулирования присутствует в информации ограничения. Схема обработки конфигурирована для определения информации предсказания для поднабора блоков кодирования на основе по меньшей мере одного флага ограничения в группе информации ограничения флага регулирования.

[23] В варианте осуществления определяется, что группа информации ограничения флага регулирования не присутствует в информации ограничения.

[24] В варианте осуществления каждый флаг регулирования указывает, что группа информации ограничения, соответствующая соответствующему флагу регулирования, не присутствует в информации ограничения, и в информации ограничения отсутствуют флаги ограничения.

[25] В варианте осуществления информация ограничения присутствует в синтаксисе высокого уровня по меньшей мере для одного изображения, и поднабор блоков кодирования включает в себя блоки кодирования по меньшей мере в одном изображении.

[26] В варианте осуществления, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения сигнализируется в соответствии с предопределенным порядком. Схема обработки конфигурирована для выполнения декодирования длин серий на множестве флагов ограничения и определения информации предсказания для поднабора блоков кодирования на основе множества флагов ограничений.

[27] В варианте осуществления по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования включает в себя множество флагов ограничения, сигнализируемых в соответствии с предопределенным порядком. Схема обработки конфигурирована для выполнения декодирования длин серий на множестве флагов ограничения.

[28] В варианте осуществления, смещение и длина присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования присутствует в информации ограничения.

[29] В варианте осуществления, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Для каждой из одной или более из по меньшей мере одной группы информации ограничения, смещение и длина присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в соответствующей одной из одной или более из по меньшей мере одной группы информации ограничения присутствует в информации ограничения. В кодированном битовом потоке видео сигнализируется число смещений.

[30] В варианте осуществления, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Один или более элементов синтаксиса в информации ограничения выровнены по байтам. Один или более элементов синтаксиса могут включать в себя флаг регулирования для каждой из по меньшей мере одной группы информации ограничения и множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения.

[31] Аспекты изобретения также относятся к невременному машиночитаемому носителю, на котором хранятся инструкции, которые при исполнении компьютером для декодирования видео побуждают компьютер выполнять способы декодирования видео. Краткое описание чертежей

[32] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых изображено следующее:

[33] Фиг. 1 - схематическая иллюстрация примерного поднабора режимов интра-предсказания.

[34] Фиг. 1В - иллюстрация примерных направлений интра-предсказания.

[35] На фиг. 2 показана схематическая иллюстрация текущего блока и окружающих его кандидатов на пространственное слияние в одном примере;

[36] На фиг. 3 показана схематическая иллюстрация упрощенной блок-схемы системы (300) связи в соответствии с вариантом осуществления;

[37] Фиг. 4 - схематическая иллюстрация упрощенной блок-схемы системы (400) связи в соответствии с вариантом осуществления.

[38] На фиг. 5 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления.

[39] На фиг. 6 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления.

[40] Фиг. 7 - блок-схема кодера в соответствии с другим вариантом осуществления.

[41] На фиг. 8 показана блок-схема декодера в соответствии с другим вариантом осуществления;

[42] На фиг. 9 показаны примеры сигнализирования параметров адаптивного изменения разрешения (ARC) согласно вариантам осуществления настоящего раскрытия.

[43] На фиг. 10 показаны примеры сигнализирования параметров ARC согласно вариантам осуществления раскрытия.

[44] На фиг. 11 показан пример набора элементов синтаксиса слоя слайса профиля (PTL) согласно варианту осуществления раскрытия.

[45] На фиг. 12 показан пример общей информации ограничения согласно варианту осуществления раскрытия.

[46] Фиг. 13А-13В показывают пример набора элементов синтаксиса PTL согласно варианту осуществления раскрытия.

[47] Фиг. 14А-14В показывают примерную структуру синтаксиса общей информации ограничения согласно варианту осуществления раскрытия.

[48] Фиг. 15A-15D показывают примерную структуру синтаксиса общей информации ограничения согласно варианту осуществления раскрытия.

[49] Фиг. 16 показывает пример набора элементов синтаксиса PTL в структуре синтаксиса PTL согласно варианту осуществления раскрытия.

[50] На фиг. 17 показан пример таблицы синтаксиса для указания информации кодирования поля набор параметров в наборе параметров последовательности согласно варианту осуществления раскрытия.

[51] На фиг. 18 показан пример таблицы синтаксиса для указания информации кодирования поля набор параметров в наборе параметров видео согласно варианту осуществления раскрытия.

[52] На фиг. 19 показана блок-схема, описывающая процесс согласно варианту осуществления изобретения.

[53] На фиг. 20 показаны примеры синтаксических таблиц согласно вариантам осуществления изобретения.

[54] Фиг. 21 показывает блок-схему цикла счетчика порядка изображений (РОС) синтаксического анализа и декодирования на единицу доступа и значение счетчика единицы доступа согласно варианту осуществления раскрытия.

[55] Фиг. 22 показывает пример структуры предсказания для масштабируемости с адаптивным изменением разрешения согласно варианту осуществления раскрытия.

[56] Фиг. 23 показывает пример структуры битового потока видео, содержащей многослойные субизображения, согласно варианту осуществления раскрытия.

[57] Фиг. 24 показывает схематическую иллюстрацию отображения выбранного субизображения с улучшенным разрешением согласно варианту осуществления раскрытия.

[58] Фиг. 25 показывает блок-схему процесса декодирования и отображения для битового потока видео, содержащего многослойные субизображения, согласно варианту осуществления раскрытия.

[59] Фиг. 26 показывает схематическую иллюстрацию отображения видео 360° со слоем улучшения субизображения согласно варианту осуществления раскрытия.

[60] Фиг 27 показывает пример информации компоновки субизображений и соответствующего слоя и структуры предсказания изображения согласно варианту осуществления раскрытия.

[61] На фиг. 28 показан пример информации компоновки субизображений и соответствующего слоя и структуры предсказания изображения с модальностью пространственной масштабируемости локальной области согласно варианту осуществления раскрытия.

[62] Фиг. 29А-29В показывают примеры таблиц синтаксиса для информации компоновки субизображения согласно варианту осуществления раскрытия.

[63] Фиг. 30 показывает пример таблицы синтаксиса сообщения SEI для информации компоновки субизображения согласно варианту осуществления раскрытия.

[64] На фиг. 31 показан пример таблицы синтаксиса, чтобы указать выходной слой и информацию PTL для набора выходных слоев согласно варианту осуществления раскрытия.

[65] На фиг. 32 показан пример таблицы синтаксиса, чтобы указать режим выходного слоя для набора выходных слоев согласно варианту осуществления раскрытия.

[66] Фиг. 33 показывает пример таблицы синтаксиса, чтобы указать текущее субизображение каждого слоя для каждого набора выходных слоев согласно варианту осуществления раскрытия.

[67] На фиг. 34 показан пример таблицы синтаксиса набора параметров в наборе параметров видео согласно варианту осуществления раскрытия.

[68] На фиг. 35 показан пример таблицы синтаксиса, чтобы указать набор выходного слоя для режима выходных слоев согласно варианту осуществления раскрытия.

[69] На фиг. 36 показана схематическая иллюстрация компьютерной системы в соответствии с одним вариантом осуществления.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[70] На фиг. 3 проиллюстрирована упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего изобретения. Коммуникационная система (300) включает в себя множество терминальных устройств, которые могут коммуницировать друг с другом, например, через сеть (350). Например, система (300) связи включает в себя первую пару оконечных устройств (410) и (3320), соединенных между собой через сеть (350). В примере с фиг. 3 первая пара оконечных устройств (3410) и (320) выполняет однонаправленную передачу данных. Например, оконечное устройство (310) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством (310)) для передачи другому оконечному устройству (320) через сеть (350). Кодированные видеоданные могут быть переданы в форме одного или более кодированных битовых потоков видео. Оконечное устройство (320) может принимать кодированные видеоданные из сети (350), декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения в соответствии с восстановленными видеоданными. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.

[71] В другом примере система (300) связи включает в себя вторую пару оконечных устройств (330) и (340), которые выполняют двунаправленную передачу кодированных видеоданных, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных, в примере, каждое оконечное устройство из оконечных устройств (330) и (340) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством) для передачи на другое оконечное устройство из оконечных устройств (330) и (340) через сеть (350). Каждое оконечное устройство из оконечных устройств (330) и (340) также может принимать кодированные видеоданные, переданные другим оконечным устройством из оконечных устройств (330) и (340), и может декодировать кодированные видеоданные для восстановления видеоизображений и может отображать видеоизображения на доступном устройстве отображения в соответствии с восстановленными видеоданными.

[72] В примере с фиг.3 оконечные устройства (310), (320), (330) и (340) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но принципы настоящего изобретения не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (350) представляет собой любое количество сетей, которые передают кодированные видеоданные между оконечными устройствами (310), (320), (330) и (340), включая, например, проводные (соединенные проводами) и/или беспроводные сети связи. Сеть (350) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Характерные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего описания архитектура и топология сети (350) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.

[73] На фиг.4 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в среде потоковой передачи. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.

[74] Система потоковой передачи может включать в себя подсистему (413) захвата, которая может включать в себя источник (401) видео, например цифровую камеру, создающий, например, поток видеоизображений (402), которые не сжаты. В примере поток видеоизображений (402) включает в себя отсчеты, снятые цифровой камерой. Поток видеоизображений (402), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (404) (или кодированными битовыми потоками видео), может обрабатываться электронным устройством (420), которое включает в себя видео кодер (403), подключенный к источнику (401) видео. Кодер (403) видео может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированные видеоданные (404) (или кодированный битовый поток видео (404)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (402), могут быть сохранены на сервере потоковой передачи (405) для будущего использования. Одна или более клиентских подсистем потоковой передачи, таких как клиентские подсистемы (406) и (408) на фиг.4, могут получить доступ к потоковому серверу (405) для извлечения копий (407) и (409) кодированных видеоданных (404). Клиентская подсистема (406) может включать в себя видеодекодер (410), например, в электронном устройстве (430). Видеодекодер (410) декодирует входящую копию (407) кодированных видеоданных и создает исходящий поток видеоизображений (411), которые могут быть визуализированы на дисплее (412) (например, экране дисплея) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи кодированные видеоданные (404), (407) и (409) (например, битовые потоки видео) могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию МСЭ-Т Н.265. В одном примере разрабатываемый стандарт кодирования видео неофициально известен как универсальное кодирование видео (VVC). Раскрытый объект изобретения может использоваться в контексте VVC.

[75] Следует отметить, что электронные устройства (420) и (430) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (420) может включать в себя видеодекодер (не показан), а электронное устройство (430) также может включать в себя видеокодер (не показан).

[76] На фиг.5 показана блок-схема видеодекодера (510) согласно варианту осуществления настоящего изобретения. Видеодекодер (510) может быть включен в электронное устройство (530). Электронное устройство (530) может включать в себя приемник (531) (например, приемную схему). Видеодекодер (510) может использоваться вместо видеодекодера (410) в примере с фиг.4.

[77] Приемник (531) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы видеодекодером (510); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (501), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (531) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (531) может отделять кодированную видеопоследовательность от других данных. Для борьбы с сетевым шумом буферная память (515) может быть подключена между приемником (531) и энтропийным декодером/анализатором (520) (далее «синтаксический анализатор (520)»). В некоторых приложениях буферная память (515) является частью видеодекодера (510). В других случаях она может находиться снаружи видеодекодера (510) (не показано). В других случаях может иметься буферная память (не изображена) снаружи видеодекодера (510), например, для борьбы с дрожанием сети, и, кроме того, другая буферная память (515) внутри видеодекодера (510), например, для обработки времени воспроизведения. Когда приемник (531) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (515) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буферная память (515), которая может быть сравнительно большой и может быть предпочтительно адаптивного размера, и может по меньшей мере частично быть реализована в операционной системе или аналогичных элементах (не изображены) снаружи видеодекодера (510).

[78] Видеодекодер (510) может включать в себя парсер (520) для восстановления символов (521) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510), и потенциально информацию для управления устройством визуализации, таким как устройство визуализации (512) (например, экран дисплея), которое не является неотъемлемой частью электронного устройство (530), но может быть подключено к электронному устройству (530), как показано на фиг.5. Информация управления для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной расширенной информации (сообщения SEI) или информации о пригодности видео (VUI) (не изображены). Синтаксический анализатор (520) может анализировать/энтропийно декодировать полученную кодированную видеопоследовательность. Кодирование закодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видео кодирования и может следовать различным принципам, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Синтаксический анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Синтаксический анализатор (520) также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.

[79] Синтаксический анализатор (520) может выполнять операцию энтропийного декодирования/синтаксического анализа видеопоследовательности, полученной из буферной памяти (515), чтобы создавать символы (521).

[80] Восстановление символов (521) может задействовать множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: интер и интра изображение, интер и интра блок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью информации управления субгруппы, синтаксический анализ которой был выполнен из кодированной видеопоследовательности с помощью синтаксического анализатора (520). Поток такой информации управления подгруппой между синтаксическим анализатором (520) и множеством модулей ниже не показан для ясности.

[81] Помимо уже упомянутых функциональных блоков, видеодекодер (510) может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.

[82] Первым модулем является модуль (551) масштабирования/обратного преобразования. Модуль (551) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (521) от синтаксического анализатора (520). Модуль (551) масштабирования/обратного преобразования может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (555).

[83] В некоторых случаях выходные отсчеты модуля (551) масштабирования/обратного преобразования могут относиться к интра-кодированному блоку; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (5452) внутрикадрового предсказания. В некоторых случаях модуль (552) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего буфера (558) изображения. Буфер (558) текущего изображения буферизует, например, частично восстановленное текущее изображение и/или полностью восстановленное текущее изображение. Агрегатор (555) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (552) интра-предсказания, к информации выходных отсчетов, предоставляемой модулем (551) масштабирования/обратного преобразования.

[84] В других случаях выходные отсчеты модуля (551) масштабирования/обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (553) предсказания с компенсацией движения может обращаться к памяти (557) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (521), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (555) к выходу модуля (551) масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти (557) опорных изображений, откуда модуль (553) предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю (553) предсказания с компенсацией движения в форме символов (521), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (557) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания вектора движения и так далее.

[85] Выходные отсчеты агрегатора (555) могут подвергаться различным методам петлевой фильтрации в модуле (556) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в кодированную видеопоследовательность (также называемую битовым потоком кодированного видео) и предоставляемые модулю (556) петлевой фильтрации как символы (521) из синтаксического анализатора (520), но также может реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные петлей значения отсчетов.

[86] Выходной сигнал модуля (556) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (512) визуализации, а также сохранен в памяти (557) опорных изображений для использования в будущем межкадровом предсказании.

[87] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. Например, после того, как кодированное изображение, соответствующее текущему изображению, полностью восстановлено, и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (520)), буфер (558) текущего изображения может стать частью памяти (557) опорных изображений, и буфер свежего текущего изображения может быть перераспределен перед началом восстановления следующего кодированного изображения.

[88] Видеодекодер (510) может выполнять операции декодирования согласно заранее определенной технологии сжатия видео в стандарте, таком как ITU-T Rec. Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность соответствует как синтаксису технологии или стандарту сжатия видео, так и профилям, задокументированным в технологии или стандарте сжатия видео. В частности, профиль может выбирать определенные инструменты как единственные инструменты, доступные для использования в этом профиле, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах границ, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, сигнализируемых в кодированной видео последовательности.

[89] В варианте осуществления приемник (531) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.

[90] На фиг.6 показана блок-схема видеодекодера (603) согласно варианту осуществления настоящего изобретения. Видеокодер (603) включен в электронное устройство (620). Электронное устройство (620) включает в себя передатчик (640) (например, передающую схему). Видеокодер (603) может использоваться вместо видеокодера (603) в примере с фиг.4.

[91] Видеокодер (603) может принимать отсчеты видео от источника (601) видео (который не является частью электронного устройства (620) в примере с фиг.6), который может захватывать видеоизображение(я) для кодирования с помощью видеокодера (603). В другом примере источник (601) видео является частью электронного устройства (620).

[92] Источник (601) видео может предоставить исходную видеопоследовательность для кодирования видео кодером (603) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCb, RGB, …) и любую подходящую структуру дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (601) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (601) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры дискретизации, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.

[93] Согласно варианту осуществления кодер (603) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (643) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными модулями, как описано ниже, и функционально связан с другими функциональными модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером (650), могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение,...), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Контроллер (650) может быть конфигурирован так, чтобы иметь другие подходящие функции, которые относятся к видеокодеру (603), оптимизированному для определенной конструкции системы.

[94] В некоторых вариантах осуществления видеокодер (603) конфигурирован для работы в контуре кодирования. В качестве упрощенного описания, в примере контур кодирования может включать в себя кодер (630) источника (например, ответственный за создание символов, таких как поток символов, на основе входного изображения для кодирования, и опорного изображения (изображений), а также (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) восстанавливает символы для создания данных отсчетов аналогично тому, как (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте изобретения). Восстановленный поток отсчетов (данные отсчетов) вводится в память опорных изображений (634). Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое в памяти опорных изображений (634) также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые бы «видел» декодер при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) также используется в некоторых смежных областях техники.

[95] Работа «локального» декодера (633) может быть такой же, как у «удаленного» декодера, такого как видеодекодер (510), который уже был подробно описан выше в связи с фиг.5. Кратко ссылаясь также на фиг.5, однако, поскольку символы доступны, и кодирование/декодирование символов в закодированную видеопоследовательность энтропийным кодером (645) и синтаксическим анализатором (520) может быть без потерь, части энтропийного декодирования видеодекодера (510), включая буферную память (515), синтаксический анализатор (520), не могут быть полностью реализованы в локальном декодере (633).

[96] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме синтаксического анализа (синтаксического анализа) /энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.

[97] Во время работы в некоторых примерах исходный кодер (630) может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входное изображение с предсказанием со ссылкой на одно или более ранее кодированных изображений из видеопоследовательности, которые были обозначены как «опорные изображения». Таким образом, механизм (632) кодирования кодирует различия между блоками пикселей входного изображения и блоками пикселей опорного изображения (изображений), которые могут быть выбраны в качестве эталона(ов) предсказанием для входного изображения.

[98] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть обозначены как опорные изображения, на основе символов, созданных кодером (630) источника. Операции механизма (632) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг.6), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных изображениях, и может вызывать сохранение восстановленных опорных изображений в кэше (734) опорных изображений. Таким образом, видеокодер (603) может локально хранить копии восстановленных опорных изображений, которые имеют общий контент, в качестве восстановленных опорных изображений, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).

[99] Предиктор (635) может выполнять поиски с предсказанием для механизма (632) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (635) может искать в памяти (634) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (635) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (635), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (6734) опорных изображений.

[100] Контроллер (650) может управлять операциями кодирования исходного кодера (630), включая, например, установку параметров и параметров субгруппы, используемых для кодирования видеоданных.

[101] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (645). Энтропийный кодер (645) переводит символы, сгенерированные различными функциональными модулями, в закодированную видеопоследовательность путем сжатия без потерь символов согласно таким технологиям, как кодирование Хаффмана, кодирование с переменной длиной, арифметическое кодирование и так далее.

[102] Передатчик (640) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (645), чтобы подготовиться к передаче через канал (660) связи, который может быть аппаратным/программным соединением с устройством хранения, которое будет хранить кодированные видеоданные. Передатчик (640) может объединять кодированные видеоданные из видеокодера (630) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).

[103] Контроллер (650) может управлять работой видеокодера (603). Во время кодирования контроллер (650) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов изображений:

[104] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы интра-изображений, включая, например, изображения с независимым обновлением декодера («IDR»). Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.

[105] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.

[106] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.

[107] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и закодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интра-предсказание). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.

[108] Видеокодер (603) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как ITU-T Rec. Н.265. В своей работе видеокодер (603) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.

[109] В варианте осуществления передатчик (640) может передавать дополнительные данные с кодированным видео. Кодер (630) источника может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и так далее.

[110] Видео может быть захвачено как множество исходных изображений (видеоизображений) во временной последовательности. Внутрикадровое предсказание (часто сокращенно называемое интра-предсказанием) использует пространственную корреляцию в данном изображении, а межкадровое предсказание использует (временную или другую) корреляцию между изображениями. В примере конкретное изображение при кодировании/декодировании, называемое текущим изображением, разделяется на блоки. Когда блок в текущем изображении подобен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может быть кодирован вектором, который называется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множества опорных изображений.

[111] В некоторых вариантах осуществления при межкадровом предсказании может использоваться метод двойного предсказания. Согласно методу двойного предсказания, используются два опорных изображения, такие как первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может быть кодирован первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может быть предсказан комбинацией первого опорного блока и второго опорного блока.

[112] Кроме того, в межкадровом предсказании может использоваться метод режима слияния для повышения эффективности кодирования.

[113] Согласно некоторым вариантам осуществления изобретения, предсказания, такие как межкадровые предсказания и внутрикадровые предсказания, выполняются в единице блоков. Например, в соответствии со стандартом HEVC, изображение в последовательности видеоизображений разделяется на единицы дерева кодирования (CTU) для сжатия, причем CTU в изображении имеют одинаковый размер, например 64x64 пикселей, 32x32 пикселей или 16x16 пикселей. В общем, CTU включает в себя три блока дерева кодирования (СТВ), которые представляют собой один СТВ яркости и два СТВ цветности. Каждая CTU может быть рекурсивно разделена на квадродерево на одну или множество единиц кодирования (CU). Например, CTU размером 64x64 пикселей можно разделить на одну CU из 64x64 пикселей, или 4 CU из 32x32 пикселей, или 16 CU из 16x16 пикселей. В примере каждая CU анализируется для определения типа предсказания для CU, такого как тип интер-предсказания или тип интра-предсказания. CU разделяется на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. Обычно каждая PU включает в себя блок предсказания яркости (РВ) и два РВ цветности. В варианте осуществления операция предсказания при кодировании (кодировании/декодировании) выполняется в единицах блоков предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, такую как 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и т.п.

[114] На фиг.7 показана схему видеокодера (703) согласно другому варианту осуществления изобретения. Видеокодер (703) конфигурирован для приема блока обработки (например, блока предсказания) из значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое является частью кодированной видеопоследовательности. В одном примере видеокодер (703) используется вместо видеокодера (403) на примере с фиг.4.

[115] В примере HEVC видеокодер (703) принимает матрицу значений отсчетов для блока обработки, такого как блок предсказания из 8x8 отсчетов и т.п. Видеокодер (703) определяет, кодируется ли блок обработки лучше всего при использовании интра-режима, интер-режима или режима двойного предсказания, использующего, например, оптимизацию скорости-искажения. Когда блок обработки должен быть кодирован в интра-режиме, видеокодер (703) может использовать метод интра-предсказания для кодирования блока обработки в кодированное изображение; а когда блок обработки должен быть кодирован в интер-режиме или режиме двойного предсказания, видеокодер (703) может использовать метод интер-предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях кодирования видео, режим слияния может быть субрежимом межкадрового предсказания, в котором вектор движения выводят из одного или более предикторов вектора движения без преимущества кодированного компонента вектора движения вне предикторов. В некоторых других технологиях кодирования видео может присутствовать компонент вектора движения, применимый к рассматриваемому блоку. В одном примере видеокодер (703) включает в себя другие компоненты, такие как модуль выбора режима (не показан), для определения режима блоков обработки.

[116] На примере с фиг.7 видеокодер (703) включает в себя интер-кодер (730), интра-кодер (722), вычислитель (723) остатка, переключатель (726), кодер (724) остатка, общий контроллер (721) и энтропийный кодер (725), соединенные вместе, как показано на фиг.7.

[117] Интер-кодер (730) конфигурирован для приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоков в предыдущих изображениях и последующих изображениях), генерации информации интер-предсказания (например, описания избыточной информации согласно методу интер-кодирования, векторов движения, информации режима слияния) и вычисления результатов интер-предсказания (например, предсказанный блок) на основе информации интер-предсказания с использованием любого подходящего метода. В некоторых примерах опорные изображения являются декодированными опорными изображениями, которые декодируются на основе кодированной видеоинформации.

[118] Интра-кодер (722) конфигурирован для приема отсчетов текущего блока (например, блока обработки), в некоторых случаях сравнения блока с блоками, уже кодированными в том же изображении, генерации квантованных коэффициентов после преобразования, а в некоторых случаях также информации интра-предсказания (например, информации направления интра-предсказания согласно одному или более методов интра-кодирования). В одном примере интра-кодер (722) также вычисляет результаты интра-предсказания (например, предсказанный блок) на основе информации интра-предсказания и опорных блоков в одном и том же изображении.

[119] Общий контроллер (721) конфигурирован для определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. В одном примере общий контроллер (721) определяет режим блока и подает управляющий сигнал на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726), чтобы выбрать результат интра-режима для использования вычислителем (723) остатка, и управляет энтропийным кодером (725), чтобы выбрать информацию интра-предсказания и включить информацию интра-предсказания в битовый поток; и когда режимом является интер-режим, общий контроллер (721) управляет переключателем (726), чтобы выбрать результат интер-предсказания для использования вычислителем (723) остатка, и управляет энтропийным кодером (725), чтобы выбрать информацию интер-предсказания и включить информацию интер-предсказания в битовый поток.

[120] Вычислитель (723) остатка конфигурирован для вычисления разницы (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (722) или интер-кодера (730). Кодер (724) остатка конфигурирован для работы на основе данных остатка, чтобы кодировать данные остатка, чтобы генерировать коэффициенты преобразования. В одном примере кодер (724) остатка конфигурирован для преобразования данных остатка из пространственной области в частотную область и генерации коэффициентов преобразования. Коэффициенты преобразования затем подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (703) также включает в себя декодер (728) остатка. Декодер (728) остатка конфигурирован для выполнения обратного преобразования и генерации декодированных данных остатка. Декодированные данные остатка могут подходящим образом использоваться интра-кодером (722) и интеркодером (730). Например, интер-кодер (730) может генерировать декодированные блоки на основе декодированных данных остатка и информации интер-предсказания, а интра-кодер (722) может генерировать декодированные блоки на основе декодированных данных остатка и информации интра-предсказания. Декодированные блоки соответствующим образом обрабатываются для генерирования декодированных изображений, и декодированные изображения могут быть буферизованы в схеме памяти (не показана) и использоваться в качестве опорных изображений в некоторых примерах.

[121] Энтропийный кодер (725) конфигурирован для форматирования битового потока, чтобы включить в него кодированный блок. Энтропийный кодер (725) конфигурирован для включения различной информации в соответствии с подходящим стандартом, таким как стандарт HEVC. В одном примере энтропийный кодер (725) конфигурирован для включения общих данных управления, выбранной информации предсказания (например, информации интра-предсказания или информации интер-предсказания), информации остатка и другой подходящей информации в битовом потоке. Следует отметить, что согласно раскрытому объекту изобретения при кодировании блока в субрежиме слияния либо интер-режима, либо режима двойного предсказания информация остатка отсутствует.

[122] На фиг.8 показана схема видеодекодера (9810) согласно другому варианту осуществления изобретения. Видеодекодер (810) конфигурирован для приема кодированных изображений, которые являются частью кодированной видеопоследовательности, и декодирования кодированных изображений для создания восстановленных изображений. В одном примере видеодекодер (810) используется вместо видеодекодера (410) в примере с фиг.4.

[123] В примере с фиг.8 видеодекодер (810) включает в себя энтропийный декодер (871), интердекодер (880), декодер (873) остатка, модуль (874) восстановления и интрадекодер (872), соединенные вместе, как показано на фиг.8.

[124] Энтропийный декодер (871) может быть конфигурирован для восстановления из кодированного изображения определенных символов, которые представляют элементы синтаксиса, из которых состоит кодированное изображение. Такие символы могут включать в себя, например, режим, в котором кодируется блок (такой как, например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в субрежиме слияния или другом субрежиме), информацию предсказания (такую как, например, информация интра-предсказания или информация интерпредсказания), которая может идентифицировать определенный отсчет или метаданные, которые используются для предсказания интра-декодером (872) или интер-декодером (880), соответственно, остаточную информацию в форме, например, квантованных коэффициентов преобразования и т.п. В одном примере, когда режимом предсказания является интер-режим или режим двунаправленного предсказания, информация интер-предсказания предоставляется в интер-декодер (880); а когда тип предсказания является типом интра-предсказания, информация интра-предсказания предоставляется в интра-декодер (872). Остаточная информация может подвергаться обратному квантованию и предоставляется декодеру (873) остатка.

[125] Интер-декодер (880) конфигурирован для приема информации интер-предсказания и генерации результатов интер-предсказания на основе информации интер-предсказания.

[126] 8Интра-декодер (772) конфигурирован для приема информации интра-предсказания и генерации результатов предсказания на основе информации интра-предсказания.

[127] Декодер (873) остатка конфигурирован для выполнения обратного квантования для извлечения деквантованных коэффициентов преобразования, и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (873) остатка может также потребовать определенную информацию управления (чтобы включить параметр квантователя (QP)), и эта информация может быть предоставлена энтропийным декодером (871) (путь данных не показан, поскольку это может быть только информация управления малого объема).

[128] Модуль (874) восстановления конфигурирован для объединения в пространственной области остатка, выводимого декодером (873) остатка, и результатов предсказания (выводимых модулями интер- или интра-предсказания, в зависимости от случая) для формирования восстановленного блока, который может быть частью восстановленного изображения, которое, в свою очередь, может быть частью восстановленного видео. Следует отметить, что другие подходящие операции, такие как операция деблокирования и т.п., могут выполняться для улучшения визуального качества.

[129] Следует отметить, что видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием любого подходящего метода. В варианте осуществления видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (403), (603) и (603) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.

[130] Аспекты раскрытия включают в себя управление инструментом (инструментами) кодирования и функциональными возможностями с помощью флагов ограничения в кодированном видеопотоке.

[131] Видеокодеры и видеодекодеры могут работать с заданным размером изображения, который определен и остается постоянным для кодированной видеопоследовательности (CVS), группы изображений (GOP) или аналогичного временного кадра с множеством изображений. Например, в MPEG-2 известно, что конструкция системы изменяет горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендаций ITU-T Н.263 Приложение Р. Однако размер изображения не изменяется, передискретизируются только опорные изображения, в результате чего могут использоваться только части холста изображения (например, при понижающей дискретизации) или захватываться только части сцены (например, при повышающей дискретизации). В некоторых примерах, например в Приложении Q Н.263, разрешена передискретизация отдельного макроблока с коэффициентом два в каждом измерении (например, в сторону повышения или понижения). Размер изображения может оставаться прежним. Размер макроблока может быть фиксированным, как например, в Н.263, и поэтому нет необходимости его сигнализировать.

[132] Размер изображения в предсказываемых изображениях может изменяться. В примере, таком как VP9, разрешена передискретизация опорного изображения и изменение разрешения для всего изображения. Например, (включая, например, Hendry, и др., «Об изменении адаптивного разрешения (ARC) для VVC», документ Joint Video Team JVET-M0135-v1, 9-19 января 2019 г., содержание которого полностью включено в настоящий документ) допускается передискретизацию всего опорного изображения с другим разрешением (например, с более высоким разрешением или более низким разрешением). Различные варианты разрешения могут быть закодированы в наборе параметров последовательности (SPS), и на них можно ссылаться с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения (PPS).

[133] В настоящем раскрытии раскрыты способы сигнализирования адаптивного размера изображения в битовом потоке видео.

[134] Когда изображения кодируются в битовый поток, который включает в себя один или более слоев с разным качеством, битовый поток может иметь элементы синтаксиса, которые определяют, какой слой (или слои) (или набор слоев) может выводиться на стороне декодера. Набор слоев для вывода можно определить как набор выходных слоев. В примерном видеокодеке, поддерживающий несколько слоев и масштабируемостей, один или более наборов выходных уровней могут сигнализироваться в наборе параметров видео (VPS). Элементы синтаксиса, определяющие уровень яруса профиля (PTL) для всего битового потока или одного или более наборов выходных уровней, могут сигнализироваться в VPS, DPS, который идентичен информации о возможностях декодера (DCI), SPS, PPS, сообщению SEI, или тому подобному. В информации PTL может присутствовать общая информация ограничения, которая может указывать ограничения на инструменты кодирования или функциональные возможности. Желательно эффективно представлять и сигнализировать информацию ограничения для различных инструментов и функций кодирования.

[135] Субизображение может относиться, например, к прямоугольной компоновке отсчетов, блоков, макроблоков, единиц кодирования или подобных объектов, которые семантически сгруппированы и могут быть независимо кодированы с измененным разрешением. Одно или более субизображений могут образовывать изображение. Одно или более кодированных субизображений могут образовывать кодированное изображение. Одно или более субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В некоторых примерах одно или более кодированных фрагментов изображения могут быть собраны в сжатой области без перекодирования на уровень отсчета в кодированное изображение. В некоторых примерах одно или более кодированных фрагментов изображения могут быть извлечены из кодированного изображения в сжатом домене.

[136] Адаптивное изменение разрешения (ARC) может относиться к механизмам, которые позволяют изменять разрешение изображения или субизображения в CVS, например, посредством передискретизации опорного изображения. Параметры ARC могут ссылаться на информацию управления, используемую для выполнения адаптивного изменения разрешения. Параметры ARC могут включать в себя параметры фильтра, коэффициенты масштабирования, разрешения выходного и/или опорного изображения, различные флаги управления и/или тому подобное.

[137] Вышеприведенное описание может применяться к кодированию и декодированию одиночного и семантически независимого кодированного видеоизображения. Перед описанием кодирования / декодирования множества субизображений с независимыми параметрами ARC и подразумеваемой дополнительной сложностью, описываются параметры сигнализирования ARC.

[138] На фиг.9 показаны примеры (например, варианты) для сигнализирования параметров ARC согласно вариантам осуществления раскрытия. Эффективность кодирования, сложность и архитектура могут различаться в разных примерах. Стандарт или технология кодирования видео могут выбрать один или более примеров или другие варианты для сигнализирования параметров ARC. Примеры не могут быть взаимоисключающими, и их можно менять местами в зависимости от потребностей приложения, стандартных технологий, выбора кодера и/или тому подобного. [139] Классы параметров ARC могут включать в себя:

• Коэффициенты повышающей и/или понижающей дискретизации, отдельные или объединенные в измерении X и Y, где могут быть закодированы один или более коротких элементов синтаксиса, которые могут указывать на таблицу, включая коэффициенты повышающей и/или понижающей дискретизации;

• Коэффициенты повышающей и/или понижающей дискретизации с добавлением временного измерения, указывающего на постоянную скорость увеличения и/или уменьшения для заданного количества изображений, где один или более коротких элементов синтаксиса могут указывать на таблицу, включающую коэффициенты повышающей и/или понижающей дискретизации с добавлением временного измерения, могут быть закодированы;

• - разрешение в измерении X или Y, в единицах отсчетов, блоках, макроблоках, CU или любой другой подходящей степени детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, в сочетании или по отдельности. Если существует более одного разрешения (например, одно разрешение для входного изображения, другое разрешение для опорного изображения), набор значений может быть выведен из другого набора значений, которые могут быть зарегулированы, например, с использованием флагов, как описано ниже;

• Координаты деформации, подобные тем, которые используются в Приложении Р Н.263, с подходящей степенью детализации, как описано выше. Приложение Р Н.263 определяет эффективный способ кодирования координат деформации. Могут быть разработаны другие эффективные способы. Например, реверсивное кодирование в стиле Хаффмана с переменной длиной для координат деформации согласно Приложению Р может быть заменено двоичным кодированием подходящей длины, при котором длина двоичного кодового слова может быть получена из максимального размера изображения, умноженного на коэффициент и смещенного на значение, чтобы учесть деформацию за пределами границ максимального размера изображения;

• Параметры фильтра с повышающей и/или понижающей дискретизацией. Например, есть только один фильтр для повышающей и/или понижающей дискретизации. Например, предпочтительно обеспечивать большую гибкость конструкции фильтра. В примере сигнализируются параметры фильтра. Параметры фильтра можно выбрать с использованием индекса в списке возможных конструкций фильтра. Фильтр может быть полностью определен (например, путем определения списка коэффициентов фильтра, использования подходящих методов энтропийного кодирования), фильтр может быть неявно выбран посредством коэффициентов повышающей или понижающей дискретизации, которые сигнализируются согласно любому из механизмов, описанных выше, и/или подобное, аналогичное, похожее.

[140] Настоящее описание может быть применимо к кодированию конечного набора коэффициентов повышающей или понижающей дискретизации (один и тот же коэффициент используется как в измерении X, так и в измерении Y), указанных с помощью кодового слова. Кодовое слово может быть преимущественно переменной длины, кодированной например, с использованием кода Ext-Golomb для определенных элементов синтаксиса в спецификациях кодирования видео (например, Н.264 и Н.265). Подходящее сопоставление значений для коэффициентов повышающей или понижающей дискретизации может, например, основываться на Таблице 1.

[141] Аналогичные сопоставления могут быть разработаны в соответствии с приложением и возможностями механизмов увеличения и уменьшения масштаба, доступных в технологии или стандарте сжатия видео. Таблица 1 может быть расширена до дополнительных значений. Значения могут быть представлены механизмами энтропийного кодирования, отличными от Экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. В одном примере, механизмы энтропийного кодирования, отличные от кода Ext-Golomb, могут иметь определенные преимущества, когда коэффициенты передискретизации представляют интерес за пределами подсистем обработки видео (например, кодера и декодера), например, сетевыми элементами с поддержкой мультимедиа (МАНЕ). Когда изменение разрешения не требуется (например, исходное / целевое разрешение соответствует 1 в таблице 1), можно выбрать короткий код Ext-Golomb (например, только один бит, показанный в таблице 1), что может иметь преимущество с точки зрения эффективности кодирования, например, по сравнению с использованием двоичных кодов для наиболее распространенного случая.

[142] Число записей в таблице 1 и соответствующая семантика могут быть полностью или частично настраиваемыми. Например, базовая схема Таблицы 1 сигнализируется в наборе параметров высокого уровня, таком как SPS или DPS. В качестве альтернативы или в дополнение, одна или более таблиц, подобных таблице 1, могут быть определены в технологии или стандарте видеокодирования и могут быть выбраны, например, с помощью SPS или DPS.

[143] Выше приведено описание того, как коэффициент повышающей или понижающей дискретизации (информация ARC), закодированный, как описано выше, может быть включен в технологию кодирования видео или стандартный синтаксис. Подобные наблюдения могут применяться к одному или более кодовым словам, управляющим фильтрами повышающей или понижающей дискретизации. Описание случая, когда для фильтра или других структур данных требуется сравнительно большой объем данных, приводится ниже.

[144] Обращаясь к фиг.9, в примере, таком как приложение Р Н.263, информация (902) ARC в форме четырех координат деформации включена в заголовок изображения (901), в частности, в расширение заголовка PLUSPTYPE (903) Н.263. Заголовок (901) изображения, включающий в себя информацию (902) ARC и расширение (903) заголовка Н.263 PLUSPTYPE, может применяться, когда i) доступен заголовок изображения и ii) ожидаются частые изменения информации ARC. Однако служебные данные при использовании сигнализирования в стиле Н.263 могут быть высокими, и коэффициенты масштабирования могут не применяться к границам изображения, поскольку заголовок изображения может иметь временный характер.

[145] Ссылаясь на фиг.9, в таком примере, как JVCET-M135-v1, опорная информация ARC (905) (например, индекс), расположенная в PPS (904), может указывать на таблицу (или таблицу целевого разрешения) (906), включающую целевые разрешения (например, разрешения 1-3), причем таблица (906) расположена внутри SPS (907). Размещение целевых разрешений в таблице (906) в SPS (907) может быть оправдано использованием SPS в качестве точки согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями (например, разрешениями 1-3) в таблице (906) от одного изображения к другому, посредством ссылки на соответствующий PPS (904).

[146] Возвращаясь к фиг.9, дополнительные опции или примеры могут использоваться для передачи информации ARC в битовом потоке видео. Множество опций могут одновременно присутствовать в одной и той же технологии или стандарте кодирования видео.

[147] В варианте осуществления информация (909) ARC, такая как коэффициент передискретизации (или коэффициент масштабирования), может присутствовать в заголовке, таком как заголовок слайса, заголовок GOB, заголовок тайла, заголовок группы тайлов и т.п.Заголовок (908) группы тайлов показан на фиг.9 в качестве примера. Вариант осуществления может быть адекватным, когда пространство памяти для информации (909) ARC невелико, например, для одиночного ue(v) переменной длины или кодового слова фиксированной длины из нескольких битов, как показано выше.

[148] Наличие информации ARC (909) в заголовке (например, заголовке группы (908) тайлов на фиг.9, заголовке слайса или заголовке тайла) напрямую может иметь дополнительные преимущества в том, что информация (909) ARC может быть применима к субизображению, представленному, например, соответствующей группой тайлов (или слайсом, тайлом), а не всем изображением. Кроме того, в качестве примера, даже если технология или стандарт сжатия видео предусматривает только изменение адаптивного разрешения всего изображения (в отличие, например, от изменений адаптивного разрешения на основе группы тайлов), размещение информации (909) ARC в заголовке (908) группы тайлов вместо помещения информации (909) ARC в заголовок изображения в стиле Н.263 может иметь определенные преимущества с точки зрения устойчивости к ошибкам.

[149] Ссылаясь на фиг.9, информация (912) ARC может присутствовать в наборе (911) параметров, таком как PPS, наборе параметров заголовка, наборе параметров таила, набор параметров адаптации (APS) и т.п. APS (911) показан на фиг.9 в качестве примера. Объем набора (911) параметров предпочтительно может быть не больше, чем изображение, например группа тайлов. Использование информации ARC (например, информации (912) ARC) может быть неявным посредством активации соответствующего набора параметров (например, APS (911)). Например, когда технология или стандарт видеокодирования рассматривают только ARC на основе изображения, подходящим может быть PPS или эквивалент.

[150] В некоторых вариантах осуществления опорная информация (913) ARC может присутствовать в заголовке (914) группы тайлов или аналогичной структуре данных (например, заголовке изображения, заголовке слайса, заголовке тайлов или заголовке GOP), как описано выше. Заголовок (914) группы тайлов показан на фиг.9 в качестве примера. Эталонная информация (913) ARC может относиться к поднабору информации ARC (915), доступной в наборе (916) параметров, с областью действия за пределами одного изображения, например, SPS, DPS и т.п.. SPS (916) показан на фиг.9 в качестве примера.

[151] На фиг.10 показаны примеры сигнализирования параметров ARC согласно вариантам осуществления раскрытия. На фиг.10 показаны примеры синтаксических диаграмм, используемых в стандартах кодирования видео. В примере обозначение синтаксических диаграмм примерно соответствует программированию в стиле С. Строки, выделенные жирным шрифтом, могут указывать на элементы синтаксиса, присутствующие в битовом потоке, а строки без жирного шрифта могут указывать на поток(и) управления или установку переменных.

[152] Как показано на фиг.10, заголовок группы тайлов (1001) в качестве примерной синтаксической структуры заголовка, применимого к части (например, прямоугольной) изображения, может условно содержать, кодированный с помощью экспоненциального кода Голомба элемент синтаксиса переменной длины dec_pic_size_idx (1002) (выделен жирным шрифтом). Наличие элемента синтаксиса (например, dec_pic_size_idx (1002)) в заголовке группы тайлов (1001) может быть зарегулировано на основе адаптивного разрешения, например, представленного флагом (например, adaptive_pic_resolution_change_flag) (1003). Значение флага (например, adaptive_pic_resolution_change_flag) (1003) не выделено жирным шрифтом, и, таким образом, флаг присутствует в битовом потоке в точке, где флаг встречается в синтаксической диаграмме. Информация о том, используется ли адаптивное разрешение для изображения или его части, может быть сигнализирована в синтаксической структуре высокого уровня (например, SPS (1010), как описано ниже) внутри или вне битового потока.

[153] На фиг.10 показан отрывок из SPS (1010). Первый показанный элемент синтаксиса - это флаг (например, adaptive_pic_resolution_change_flag) (1011). Когда флаг истинен, флаг может указывать на использование адаптивного разрешения, которое может требовать определенной информации управления. Например определенная информация управления присутствует условно на основе значения флага (1011), как показано оператором if () (1012) в SPS (1010) и заголовке группы тайлов (1001).

[154] Когда используется адаптивное разрешение, такое как показано в примере на фиг.10, может кодироваться выходное разрешение в единицах отсчетов (или разрешение выходного изображения) (1013). Выходное разрешение (1013) может относиться как к ширине разрешения (например, output_pic_width_in_luma_samples), так и к высоте разрешения (например, output_pic_height_in_luma_samples). Ширина и высота разрешения может определять выходное разрешение (1013). В технологии или стандарте видеокодирования могут быть определены определенные ограничения на значение(я) выходного разрешения (1013). Например, определение уровня может ограничивать количество общих выходных отсчетов (например, произведение output_pic_width_in_luma_samples и output_pic_height_in_luma_samples). Технология или стандарт видеокодирования, или внешняя технология или стандарт (например, системный стандарт) могут ограничивать диапазон (например, ширина разрешения / высота разрешения делятся на степень 2), соотношение сторон (например, отношение ширины разрешения к высоте разрешения составляет 4:3 или 16:9) или тому подобное. В примере вышеупомянутые ограничения могут быть введены для облегчения аппаратных реализаций.

[155] В некоторых приложениях кодер может инструктировать декодер использовать определенный размер опорного изображения, а не предполагать неявно, что размер является размером выходного изображения. Например, элемент синтаксиса (например, reference_pic_size_present_flag) (1014) регулирует условное присутствие размеров (1015) опорного изображения. Размеры (1015) опорного изображения могут относиться как к ширине (например, reference_pic_width_in_luma_samples), так и к высоте (например, reference_pic_height_in_luma_samples).

[156] На фиг.10 показана таблица применимых значений ширины и высоты изображения декодирования. Таблица может быть выражена посредством указания таблицы (например, элементом синтаксиса num_dec_pic_size_in_luma_samples_minusl) (1016). «minus1» может относиться к интерпретации значения элемента (1016) синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если кодированное значение равно пяти, в таблице присутствуют шесть записей. Для каждой строки в таблице ширина и высота декодированного изображения включены в элементы (1017) синтаксиса.

[157] Записи таблицы, представленные элементами синтаксиса (1017), могут быть проиндексированы с использованием элемента синтаксиса dec_pic_size_idx (1002) в заголовке группы (1001) тайлов, что позволяет использовать различные декодированные размеры и коэффициенты масштабирования для каждой группы тайлов.

[158] Некоторые технологии или стандарты видео кодирования (например, VP9) могут поддерживать пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения в сочетании с временной масштабируемостью и, таким образом, могут обеспечивать пространственную масштабируемость. В варианте осуществления опорное изображение подвергается повышающей дискретизации с использованием технологий в стиле ARC до более высокого разрешения для формирования базы слоя пространственного улучшения. Изображение после повышающей дискретизации может быть уточнено с использованием обычных механизмов предсказания (например, предсказания с компенсацией движения для интер-предсказания из опорных изображений) с высоким разрешением, например, для добавления деталей.

[159] Раскрытие может быть использовано в такой среде. В некоторых примерах значение в заголовке блока слоя сетевой абстракции (NAL), например, поле временного идентификатора, используется для указания временного и пространственного слоев. Преимущества могут заключаться в том, что существующие Выбранные Единицы пересылки (SFU) могут использоваться без модификации для масштабируемых сред. SFU могут быть созданы и оптимизированы для пересылки, выбранной на временном слое, на основе значения временного идентификатора заголовка блока NAL. Чтобы сделать это возможным, может быть выполнено отображение между размером кодированного изображения и временным слоем, как указано полем временного идентификатора в заголовке блока NAL.

[160] Когда изображения кодируются в битовый поток, который включает в себя один или более слоев с разным качеством, битовый поток может иметь элементы синтаксиса, которые определяют, какой слой (или слои) может выводиться на стороне декодера. Набор слоев для вывода можно определить как набор выходных слоев. В видеокодеке, поддерживающем несколько слоев и масштабируемость, один или более наборов выходных слоев могут сигнализироваться в одном или более VPS. Один или более элементов синтаксиса, которые определяют информацию PTL для всего битового потока, CVS, каждый набор выходных слоев и/или тому подобное, могут сигнализироваться в синтаксической структуре высокого уровня, такой как VPS, DPS, DCI, SPS, PPS, APS, GOP, последовательности, заголовке, сообщении SEI и т.п.

[161] Инструменты кодирования на уровне блоков могут использоваться для декодирования пикселей или отсчетов в изображении для восстановления изображения. Инструменты кодирования на уровне блоков могут включать в себя любые подходящие инструменты кодирования, используемые при восстановлении блока кодирования, такие как инструменты кодирования для интер-предсказания (или инструменты интеркодирования), инструменты кодирования для интра-предсказания (или инструменты интра-кодирования), адаптивный контурный фильтр (ALF), фильтр удаления блочности (DBF), энтропийное кодирование, преобразование и т.п.

[162] Синтаксис высокого уровня (HLS) может определять информацию о функциональных возможностях, системном интерфейсе, средствах управления на уровне изображения, управлении буфером и т.п. Например, HLS может указывать раздел (например, тайл, слайс, субизображение), управление буфером, произвольный доступ (например, IDR, чистый произвольный доступ (CRA)), набор(ы) параметров (например, VPS, SPS, PPS, APS), передискретизация опорного изображения (RPR), масштабируемость и/или тому подобное. Синтаксис высокого уровня может быть выше чем на уровне блоков.

[163] Информация управления может включать в себя информацию управления инструментом уровня SPS, информацию управления инструментом уровня PPS, информацию управления уровнем последовательности, информацию управления уровня битового потока и/или тому подобное.

[164] Флаги ограничения могут быть частью структуры HLS.

[165] В примере флаги ограничения указывают на управление инструментами. Флаги ограничения могут быть предоставлены в одном из: информации управления уровня последовательности и информации управления уровня битового потока. В одном примере, если определенные инструменты отключены флагами ограничения, информация управления не представлена в HLS, и инструменты не используются, например, для блоков кодирования в области, соответствующей HLS.

[166] Флаги ограничения могут сигнализироваться в структуре синтаксиса профиля.

[167] Информация ограничения может указывать, присутствуют ли или используются конкретные инструменты, функциональные возможности или элементы синтаксиса в соответствующем потоке видео или кодированном битовом потоке видео. Например, флаги ограничения могут указывать, могут ли инструменты интеркодирования, инструменты интра-кодирования, DBF, энтропийное кодирование, преобразование, разделение (например, тайл, слайс), управление буфером, произвольный доступ (например, IDR), набор параметров (например, SPS, PPS) и/или т.п. присутствовать или использоваться в кодированном битовом потоке видео. Информация ограничения может сигнализироваться в наборах параметров (например, SPS, VPS или DCI). Флаги ограничения могут сигнализироваться в синтаксической структуре высокого уровня (например, SPS, VPS, DCI).

[168] На фиг.11 показан пример набора элементов синтаксиса PTL согласно варианту осуществления раскрытия. Набор элементов синтаксиса PTL может включать в себя general_profile_idc, general_tier_flag, general_level_idc, num_sub_profiles, general_sub_profile_idc, sublayer_level_present_flag, ptl_alignment_zero_bit, sublayer_level_idc и общую информацию ограничения.

[169] Общая информация ограничения может включать в себя информацию ограничения для типа видеоисточника, инструментов кодирования, функциональных возможностей и/или тому подобного. На фиг.12 показан пример общей информации ограничения согласно варианту осуществления раскрытия. Общая информация ограничения может включать в себя множество флагов ограничения, как показано на фиг.12. Обращаясь к фиг.12, флаг ограничения (например, intra_only_constraint_flag) (1205), равный 1, указывает, что sh_slice_type равен I (то есть, слайс является интра-слайсом). Флаг ограничения (например, intra_only_constraint_flag) (1205), равный 0, не налагает ограничения (например, sh_slice_type равным I) для всех кодированных изображений в пределах информации PTL, где другая информация (например, profile_idc) может разрешить не интра-слайсы. В примере флаг ограничения (например, no_alf_constraint_flag) (1206), равный 1, может указывать на то, что sps_a_lf_enabled_flag равен 0 для всех CVS в пределах объема информации PTL, и, таким образом, адаптивная петлевая фильтрация не используется, даже если разрешена адаптивная петлевая фильтрация на основе, например, profile_idc. Флаг ограничения (например, no_alf_constraint_flag) (1206), равный 0, не накладывает вышеуказанное ограничение.

[170] Флаг ограничения (например, no_lossless_coding_tool_constraint-flag) (1201) может сигнализироваться в общей информации ограничения, как показано на фиг.12. Флаг ограничения (например, no_lossless_coding_tool_constraint_flag) (1201), равный 1, может указывать на то, что инструменты) кодирования, относящийся к кодированию без потерь, не может использоваться в пределах объема информации PTL, включая флаг (1201) ограничения. Флаг ограничения (например, no_lossless_coding_tool_constraint_flag) (1201), равный 0, не накладывает вышеупомянутое ограничение.

[171] Флаг (1202) ограничения (например, no_lossy_coding_tool_constraint_flag) может сигнализироваться в общей информации ограничения, как показано на фиг.12. Флаг ограничения (например, no_lossy_coding_tool_constraint_flag) (1202), равный 1, может указывать, что инструмент(ы) кодирования, относящийся к кодированию с потерями, не может использоваться в пределах объема информации PTL, включающей флаг (1202) ограничения. Флаг ограничения (например, no_lossy_coding_tool_constraint_flag) (1202), равный 0, не накладывает вышеупомянутое ограничение.

[172] В варианте осуществления флаг ограничения (например, no_lossless_coding_tool_constraint_flag) (1201) может не быть равным 1, когда флаг ограничения (например, no_lossy_coding_tool_constraint_flag) (1202) равен 1. В качестве альтернативы, флаг ограничения (например, no_lossy_coding_tool_constraint_flag) (1202) может не быть равен 1, когда флаг ограничения (например, no_lossless_coding_tool_constraint_flag) (1201) равен 1.

[173] Множество флагов ограничения в общей информации ограничения может быть отсортировано в определенном порядке. Порядок может быть установлен, например, на основании вероятности того, что соответствующие механизмы и/или инструменты не будут использоваться в объеме PTL. Порядок можно назвать приоритетным порядком. Порядок может быть представлен в общей структуре синтаксиса информации ограничения от высокого приоритета до низкого приоритета, где высокий приоритет указывает, что неиспользование инструмента (или механизма) имеет высокую вероятность, а низкий приоритет указывает, что неиспользование инструмента (или механизма) имеет низкую вероятность. Дополнительные факторы, влияющие на порядок, могут включать в себя инструменты, которые, вероятно, используются только для конкретных случаев использования (например, инструменты для субизображений, масштабируемость и/или поддержку чередования), влияние инструмента на сложность кодера/декодера/реализации и т.п.

[174] Фиг. 13А-13В показывают пример информации PTL (включая, например, набор элементов синтаксиса PTL) согласно варианту осуществления раскрытия. Элемент синтаксиса, указывающий число флагов ограничения (например, num_available_constraint_flags) (1301), может сигнализироваться в информации PTL. Например, число флагов ограничения может сигнализироваться вне рамок общей информации ограничения, как показано на фиг.13А. В качестве альтернативы, элемент синтаксиса, указывающий количество флагов ограничения, может сигнализироваться в начале структуры синтаксиса общей информации ограничения. Когда элемент синтаксиса (например, num_available_constraint_flags) присутствует и значение элемента синтаксиса (например, num_available_constraint_flags) равно N, первые N флагов ограничения могут присутствовать в структуре синтаксиса общей информации ограничения. Кроме того, другие флаги ограничения могут отсутствовать, и можно вывести, что они равны определенному значению. N может быть неотрицательным целым числом.

[175] В варианте осуществления значение N (например, num_available_constraint_flags) находится в диапазоне от 0 до максимального количества флагов ограничения (например, MaxNumConstraintFlags). Максимальное количество флагов ограничения может быть любым положительным целым числом. Значение максимального количества флагов ограничения (например, MaxNumConstraintFlags) может быть заранее определено равным 16, 32, 64, 128 или т.п. Когда значение N (например, num_available_constraint_flags) равно 0, в структуре синтаксиса общей информации ограничения отсутствуют флаги ограничения. Кодирование значения N (например, num_available_constraint_flags) может быть выбрано таким образом, чтобы соответствующее энтропийно кодированное представление для значения N и флагов ограничения могло прибавляться к числу, кратному 8, для обеспечения выравнивания байтов.

[176] Согласно аспектам раскрытия, флаги ограничения могут классифицироваться в одну или более групп информации ограничения. Каждая группа информации ограничения может включать в себя один или более флагов ограничения и может иметь соответствующий флаг регулирования. Флаг регулирования соответствующей группы информации ограничения может указывать, могут ли присутствовать флаг(и) ограничения в соответствующей группе информации ограничения. В одном примере флаг регулирования может назваться флагом наличия группы ограничения. В целом, флаг регулирования связан с соответствующей группой информации ограничения и связан с флагом (флагами) ограничения в соответствующей группе информации ограничения. В варианте осуществления, флаг регулирования определяет, присутствует ли (или сигнализируется) в информации ограничения флаг(и) ограничения в соответствующей группе информации ограничения. Например, если флаг регулирования соответствующей группы информации ограничения равен 1, флаг(и) ограничения, соответствующий группе информации ограничения, может/могут присутствовать, например, в информации ограничения. Если флаг регулирования соответствующей группы информации ограничения равен 0, флаг(и) ограничения, соответствующий группе информации ограничения, может/могут не присутствовать, например, в информации ограничения. В примере, если все флаги регулирования равны 0, флаги ограничения отсутствуют.

[177] Флаги ограничения могут иметь разные области. Например, областью флагов ограничения в DCI может быть кодированный битовый поток видео. Флаги ограничения в VPS могут быть CLVS с множеством слоев. Областью флагов ограничения в SPS может быть одна CLVS.

[178] Флаг (например, gate flag all) может указывать, присутствуют ли флаг(и) регулирования. В одном примере флаг имеет значение ложь, что указывает на отсутствие флагов регулирования. В примере, когда нет флага (флагов) регулирования, в информации ограничения нет никаких флагов ограничения. В примере флаг имеет значение «истина», что указывает на наличие одного или более флагов регулирования.

[179] Согласно аспектам раскрытия, может быть получен флаг регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализированной в кодированном битовом потоке видео. Каждый флаг регулирования может указывать, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения. Информация ограничения может относиться к поднабору блоков кодирования в кодированном битовом потоке видео. Присутствует ли группа информации ограничения флага регулирования в информации ограничения, может быть определено на основе флага регулирования группы информации ограничения по меньшей мере одной группы информации ограничения. Группа информации ограничения флага регулирования может включать в себя по меньшей мере один флаг ограничения для поднабора блоков кодирования. Информация предсказания для поднабора блоков кодирования может быть определена на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения, поднабор блоков кодирования может быть восстановлено на основе информации предсказания.

[180] В варианте осуществления определяется, что группа информации ограничения флага регулирования присутствует в информации ограничения. Информация предсказания для поднабора блоков кодирования может быть определена на основе по меньшей мере одного флага ограничения в группе информации ограничения флага регулирования. В варианте осуществления определяется, что группа информации ограничения флага регулирования не присутствует в информации ограничения.

[181] В варианте осуществления каждый флаг регулирования указывает, что группа информации ограничения, соответствующая соответствующему флагу регулирования, не присутствует в информации ограничения, и в информации ограничения отсутствуют флаги ограничения.

[182] В варианте осуществления информация ограничения присутствует в синтаксисе высокого уровня по меньшей мере для одного изображения, и поднабор блоков кодирования включает в себя блоки кодирования по меньшей мере в одном изображении. Синтаксис высокого уровня может быть VPS, DPS, DCI, SPS, PPS, APS, GOP, последовательностью и т.п. В примере синтаксис высокого уровня - это DCI или DPS, объем информации ограничения включает в себя кодированный битовый поток видео и, таким образом, включает блоки кодирования в кодированном битовом потоке видео. В примере синтаксис высокого уровня - это VPS, объем информации ограничения включает в себя CLVS с несколькими слоями и, таким образом, включает блоки кодирования в CLVS. В примере синтаксис высокого уровня - это SPS, объем информации ограничения включает в себя одну CLVS и, таким образом, включает блоки кодирования в одной CLVS.

[183] В варианте осуществления каждый флаг ограничения, который может присутствовать (или сигнализироваться) в информации ограничения, классифицируется в одну или более групп информации ограничения и, таким образом, может регулироваться с помощью соответствующего флага регулирования. В примере одна или более групп информации ограничения включают в себя первую группу информации ограничения и вторую группу информации ограничения. Флаги ограничения включают в себя по меньшей мере один первый флаг ограничения и по меньшей мере один второй флаг ограничения. По меньшей мере один первый флаг ограничения классифицируется в первую группу информации ограничения, а по меньшей мере один второй флаг ограничения классифицируется во вторую группу информации ограничения. Первый флаг регулирования первой группы информации ограничения может указывать, присутствует ли по меньшей мере один первый флаг ограничения (или первая группа информации ограничения) (например, сигнализируется) в информации ограничения. Второй флаг регулирования второй группы информации ограничения может указывать, присутствует ли по меньшей мере один второй флаг ограничения (или вторая группа информации ограничения) (например, сигнализируется) в информации ограничения. Таким образом, в примере информация ограничения не включает в себя дополнительный флаг(и) ограничения для по меньшей мере одного первого флага ограничения и по меньшей мере одного второго флага ограничения.

[184] В варианте осуществления первый поднабор флагов ограничения классифицируется в одну или более групп информации ограничения и, таким образом, может регулироваться с помощью соответствующего флага регулирования. Кроме того, второй поднабор флагов ограничения находится вне одной или более групп информации ограничения и, таким образом, не регулируется флагом (флагами) регулирования. В примере одна или более групп информации ограничения включают в себя третью группу информации ограничения и четвертую группу информации ограничения. Первый поднабор флагов ограничения включает в себя по меньшей мере один третий флаг ограничения и по меньшей мере один четвертый флаг ограничения. По меньшей мере, один третий флаг ограничения классифицируется в третью группу информации ограничения, и по меньшей мере один четвертый флаг ограничения классифицируется в четвертую группу информации ограничения. Третий флаг регулирования третьей группы информации ограничения может указывать, присутствует ли по меньшей мере один третий флаг ограничения (или третья группа информации ограничения) (например, сигнализируется) в информации ограничения. Четвертый флаг регулирования четвертой группы информации ограничения может указывать, присутствует ли по меньшей мере один четвертый флаг ограничения (или четвертая группа информации ограничения) (например, сигнализируется) в информации ограничения. Кроме того, информация ограничения может включать в себя второй поднабор флагов ограничения. В примере, третий флаг регулирования и четвертый флаг регулирования указывают, что третья группа информации ограничения и четвертая группа информации ограничения не сигнализируются в информации ограничения, и, таким образом, информация ограничения включает в себя второй поднабор флагов ограничения и не включает в себя по меньшей мере один третий флаг ограничения и по меньшей мере один четвертый флаг ограничения. В примере, третий флаг регулирования и четвертый флаг регулирования указывают, что третья группа информации ограничения и четвертой группе информации ограничения сообщается в информации ограничения, и, таким образом, информация ограничения включает в себя второй поднабор флагов ограничения, по меньшей мере один третий флаг ограничения и по меньшей мере один четвертый флаг ограничения.

[185] Фиг. 14А-14В показывают примерную структуру (1400) синтаксиса общей информации ограничения согласно варианту осуществления раскрытия. Структура (1400) синтаксиса общей информации ограничениях может представлять информацию ограничения (например, называемую общей информацией ограничения). Общая информация ограничения (или структура (1400) синтаксиса общей информации ограничения) может включать в себя один или более флагов регулирования, таких как флаг регулирования (например, general_frame_structure_constraint_group_flag) (1401), флаг регулирования (например, high_level_functionality_constraint_group_flag) (1402), флаг регулирования (например, scalability_constraint_group_flag) (1403), флаг регулирования (например, partitioning_constraint_group_flag) (1404), флаг регулирования (например, intra_coding_tool_constraint_group_flag) (1405), флаг регулирования (например, inter_coding_tool_tool) (1406), флаг регулирования (например, transfom_contraint_group_flag) (1407), флаг регулирования (например, inloop_filtering_constraint_group_flag) (1408) на фиг.14A. Один или более флагов регулирования (например, флаги (1401) - (1408)) могут присутствовать в начале структуры (1400) синтаксиса общей информации ограничения, как показано на фиг.14А.

[186] Флаг регулирования (например, general_frame_structure_constraint_group_flag) (1401) связан с группой (1410) информации ограничения и связан с флагами (1411) - (1414) ограничения, которые находятся в группе (1410) информации ограничения. Флаг регулирования (например, general_frame_structure_constraint_group_flag) (1401), равный 1, может указывать, что могут присутствовать флаги (1411) - (1414) ограничения, которые находятся в группе (1410) информации ограничения.

[187] Группа (1410) информации ограничения (или флаги (1411) - (1414) ограничения) может быть связана с источником ввода и упаковкой кадра (например, упакованным или проецируемым кадром). Обращаясь к фиг.14А, флаги (1411) - (1414) ограничения соответствуют флагу general_non_packed_constraint_flag (1411), general_frame_only_constraint_flag (1412), general_non_projected_constraint_flag (1413) и general_one_picture_only_constraint_flag (1414). В противном случае флаг регулирования (например, general_frame_structure_constraint_group_flag) (1401), равный 0, может указывать, что могут не присутствовать флаги (1411) - (1414) ограничения, которые находятся в группе (1410) информации ограничения.

[188] Обращаясь к фиг.14В, флаг регулирования (например, high_level_functionality_constraint_group_flag) (1402), равный 1, может указывать, что могут присутствовать флаги ограничения, относящиеся к функциональным возможностям высокого уровня (например, передискретизация опорного изображения), которые находятся в группе (1420) информации ограничения. В противном случае флаг регулирования (например, high_level_functionality_constraint_group_flag) (1402), равный 0, может указывать, что флаги ограничения, которые находятся в группе информации ограничения (1420), могут отсутствовать.

[189] Возвращаясь к фиг.14А, флаг регулирования (например, scaleability_constraint_group_flag) (1403), равный 1, может указывать, что флаг(и) ограничения, относящийся к масштабируемости (например, межслойное предсказание), может присутствовать. В противном случае флаг(и) ограничения, относящиеся к масштабируемости, могут отсутствовать.

[190] Флаг регулирования (например, partitioning_constraint_group_flag) (1404), равный 1, может указывать, что может присутствовать флаг(и) ограничения, относящийся к разделению высокого уровня (например, субизображение или тайл). В противном случае флаги ограничения, относящиеся к разделению высокого уровня, могут отсутствовать.

[191] Флаг регулирования (например, intra_coding_tool_constraint_group_flag) (1405), равный 1, может указывать, что флаг(и) ограничения, относящиеся к интра-кодированию (например, интра-предсказанию), могут присутствовать. В противном случае флаг(и) ограничения, относящиеся к внутреннему кодированию, могут отсутствовать.

[192] Флаг регулирования (например, inter_coding_tool_constraint_group_flag) (1406), равный 1, может указывать, что может присутствовать флаг(и) ограничения, относящийся к интер-кодированию (например, компенсация движения для межкадрового предсказания). В противном случае флаги ограничения, относящиеся к интеркодированию, могут отсутствовать.

[193] Флаг регулирования (например, transfom_contraint_group_flag) (1407), равный 1, может указывать, что может присутствовать флаг(и) ограничения, относящийся к кодированию преобразования (например, множественным матрицам преобразования). В противном случае флаги ограничения, относящиеся к кодированию преобразования, могут отсутствовать.

[194] В варианте осуществления, когда все флаги регулирования (например, флаги (1401) - (1408) регулирования на фиг.14А) равны 0, в структуре синтаксиса информации ограничения (например, структуре (1400) синтаксиса общей информации ограничения) отсутствуют флаги ограничения.

[195] Согласно аспектам раскрытия синтаксис может быть спроектирован так, чтобы информация управления включала в себя флаги регулирования (например, флаги регулирования (1401) - (1408)), связанные флаги ограничения (например, флаги ограничения (1411) - (1412) и флаги ограничения в группе (1420) информации ограничения), дополнительная информация управления и/или т.п. могут быть выровнены по байтам, например, количество флагов кратно 8, чтобы сохранить выравнивание по байтам. В одном примере количество флагов регулирования и флагов ограничения в информации ограничения (например, в синтаксической структуре (1400) общей информации ограничения) кратно 8. Механизм байтового выравнивания может использоваться для достижения байтового выравнивания информации управления. Обращаясь к фиг.14В, синтаксис (например, цикл while) (1430) может использоваться для байтового выравнивания.

[196] В варианте осуществления информация смещения, такая как смещение (например, элемент синтаксиса constraint_info_offset [])), и информация о длине, такая как длина (например, элемент синтаксиса constraint_info_length []), присутствует в информации ограничения (например, в начале структуры синтаксиса общей информации ограничения), указывающий, что по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования присутствует в информации ограничения. В варианте осуществления, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Смещение и длина могут присутствовать в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в каждой из одной или более из по меньшей мере одной группы информации ограничения присутствует в информации ограничения. В кодированном битовом потоке может сигнализироваться число смещений.

[197] В варианте осуществления ноль или более смещений (или смещений информации ограничения) (например, обозначенных элементом синтаксиса constraint_info_offset []) и соответствующие ноль или более длин (или длин информации ограничения) (например, обозначенных элементом синтаксиса constraint_info_length []) может присутствовать в информации ограничения, например, в начале структуры синтаксиса общей информации ограничения. Количество нуля или более смещений информации ограничения и количество нуля или более длин информации ограничения могут явно указываться с помощью элемента(ов) синтаксиса.

[198] В примере число нуля или более смещений информации ограничения и число нуля или более длин информации ограничения идентичны, а число нуля или более смещений информации ограничения (представленных М) явно указывается (или сигнализируется) элементом синтаксиса (например, num_constaint_info_set). М может быть целым числом, большим или равным 0. Значение М, равное 0, может указывать на то, что в информации ограничения отсутствуют смещения информации ограничения и длины информации ограничения.

[199] В варианте осуществления смещение информации ограничения (например, элемент синтаксиса constraint_info_offset [i]) и длина информации ограничения (например, элемент синтаксиса constraint_info_length [i]) могут указывать доступные флаги ограничения, которые присутствуют в информации ограничения (например, структуре синтаксиса общей информации ограничения). В примере, когда значение смещения информации ограничения (например, элемент синтаксиса constraint_info_offset [i]) равно 5, а значение длины информации ограничения (например, элемент синтаксиса constraint_info_length [i]) равно 3, пятый, шестой и седьмой флаги ограничения присутствуют в информации ограничения (например, в структуре синтаксиса общей информации ограничения).

[200] В примере, если М равно 0, флаги ограничения не присутствуют в информации ограничения (например, в структуре синтаксиса общей информации ограничения).

[201] В примере, кодирование длин серий может использоваться для кодирования флагов ограничения, которые указаны в предопределенном порядке (или заданном порядке).

[202] В варианте осуществления может использоваться кодирование длин серий, когда флаги ограничения указываются в предопределенном порядке (или заданном порядке). Вместо того, чтобы кодировать флаги ограничения напрямую, соответствующим образом кодированный список "пропускаемых" значений может указывать флаги ограничения, которые равны нулю, при этом следующий флаг ограничения подразумевается равным 1. Кодирование длин серий, описанное выше, может быть особенно эффективным, если (i) количество флагов ограничения велико и (ii) небольшой процент флагов ограничения равен 1.

[203] В варианте осуществления, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения сигнализируется в соответствии с предопределенным порядком. Соответственно, множество флагов ограничения может быть кодировано с помощью кодирования длин серий (например, кодирования длин серий или декодирования длин серий). Кроме того, информация предсказания для поднабора блоков кодирования может быть определена на основе множества флагов ограничения.

[204] В варианте осуществления по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования включает в себя множество флагов ограничения, сигнализируемых в соответствии с предопределенным порядком. Соответственно, множество флагов ограничения может быть кодировано с помощью кодирования длин серий (например, кодирования длин серий или декодирования длин серий).

[205] В варианте осуществления полный список флагов ограничения может быть определен в стандарте кодирования видео (например, спецификации VVC), внешней таблице или тому подобном. В примере только доступные флаги ограничения флагов ограничения указываются, например, одним или более из следующих: количество доступных флагов ограничения (например, num_available_constraint_flags), флаг(и) регулирования (или флаг(и) присутствия группы ограничения), информация смещения информации ограничения и информация длины информации ограничения и т.п. присутствуют в кодированном потоке видео.

[206] В примере полный список флагов ограничения указывается и доступен для кодера и декодера. Полный список флагов ограничения может быть сохранен в декодере. Полный список флагов ограничения может включать 100 флагов ограничения. 10 из 100 флагов ограничения присутствуют в информации ограничения для CLVS и, таким образом, доступны для поднабора блоков кодирования в CLVS. 10 из 100 флагов ограничения называются 10 доступными флагами ограничения. В примере сигнализируется число доступных флагов ограничения (например, 10). В примере 10 доступных флагов ограничения находятся в двух группах информации ограничения и регулируются первым флагом регулирования и вторым флагом регулирования. Таким образом, можно сигнализировать первый флаг регулирования и второй флаг регулирования, чтобы указать 10 доступных флагов ограничения.

[207] В примере сигнализируется первое смещение информации ограничения (например, элемент синтаксиса constraint_info_offset [0]) и первая длина информации ограничения (например, элемент синтаксиса constraint_info_length [0]). Сигнализируется второе смещение информации ограничения (например, элемент синтаксиса constraint_info_offset [1]) и вторая длина информации ограничения (например, элемент синтаксиса constraint_info_length [1]). Например, элемент синтаксиса constraint_info_offset [0] равен 15, а элемент синтаксиса constraint_info_length [0] равен 3, элемент синтаксиса constraint_info_offset [1] равен 82, а элемент синтаксиса constraint_info_length [1] равен 7, и, таким образом, указывает, что с 15-го по 17-й флаг ограничения и с 82-го по 88-й флаги ограничения в полном списке (например, 100 флагов ограничения) доступны или присутствуют в информации ограничения.

[208] В варианте осуществления любой из различных методов (или способов, вариантов осуществления, примеров) для эффективного кодирования флагов ограничения может быть объединен, с использованием подходящей информации управления. Комбинация может быть соответствующей комбинацией двух или более таких методов. В качестве альтернативы, один из различных методов (или способов, вариантов осуществления, примеров) можно использовать независимо. Флаги ограничения могут группироваться. В определенной группе (группах) может использоваться кодирование длин серий, в то время как другая группа (группы) может использовать прямое двоичное кодирование.

[209] Значение максимального количества флагов ограничения (например, MaxNumConstraintFlags) может быть заранее определено равным 16, 32, 64, 128 или т.п.

[210] Значение максимального количества флагов ограничения (например, MaxNumConstraintFlags) может быть определено информацией профиля, такой как general_profile_idc или general_sub_profile_idc, или информацией о версии кодека, так что диапазон количества флагов ограничения (например, num_available_constraint_flags (1301)) может быть ограничен информацией профиля или информацией о версии. Например, значение количества флагов ограничения (например, num_available_constraint_flags (1301)) в основном профиле (например, где MaxNumConstraintFlags=64) может находиться в диапазоне от 0 до 64, в то время как значение числа флагов ограничения (например, num_available_constraint_flags (1301)) в расширенном профиле (например, где MaxNumConstraintFlags=128) может находиться в диапазоне от 0 до 128.

[211] В варианте осуществления значение числа флагов ограничения (например, num-available_constraint_flags) может быть выведено равным значению, предопределенному информацией профиля, такой как general_profile_idc или general_sub_profile_idc, или информацией о версии кодека, так что значение num_available_constraint_flags может быть определено без явной сигнализации.

[212] В варианте осуществления, показанном на фиг.12, информация о зарезервированных байтах может присутствовать в структуре синтаксиса общей информации ограничения. Например, флаги gci_num_reserved_bytes (1203) и gci_reserved_bytes [] (1204) могут присутствовать в структуре синтаксиса общей информации ограничения для расширения структуры синтаксиса общей информации ограничения. Флаг gci_num_reserved_bytes может указывать количество зарезервированных байтов ограничения. В одном примере зарезервированные байты ограничения предназначены для сигнализации дополнительных флагов (например, дополнительных флагов ограничения). Флаг gci_reserved_byte [] может иметь любое подходящее значение.

[213] В варианте осуществления значение gci_num_reserved_bytes может быть ограничено или определено информацией профиля, такой как general_profile_idc или general_sub_profile_idc, или информацией о версии кодека. С базовым профилем (или основным профилем) значение флага gci_num_reserved_bytes может быть 0. В расширенном профиле (или продвинутом профиле) значение gci_num_reserved_bytes может быть больше 0.

[214] Флаг последовательности полей может сигнализироваться в кодированном битовом потоке видео. Флаг последовательности полей может указывать, кодированы ли изображения в выходном слое с помощью кодирования поля. Флаг последовательности полей может сигнализироваться в SPS как sps_field_seq_flag. В варианте осуществления флаг sps_field_seq_flag может присутствовать в SPS. Флаг sps_field_seq_flag, равный 1, может указывать, что CLVS передает изображения, которые представляют поля. Флаг sps_field_seq_flag, равный 0, может указывать, что CLVS передает изображения, которые представляют кадры.

[215] В структуре синтаксиса общей информации ограничения на фиг.12 может присутствовать флаг general_frame_only_constraint_flag. Флаг general_frame_only_constraint_flag, равный 1, может указывать, что область для набора выходных слоев (например, OlsInScope) передает изображения, которые представляют кадры. Флаг general_frame_only_constraint_flag, равный 0, указывает, что область для набора выходных слоев (например, OlsInScope) передает изображения, которые могут или не могут представлять кадры. В варианте осуществления флаг general_frame_only_constraint_flag указывает, кодированы ли изображения в наборе выходных слоев с кодированием поля. Набор выходных слоев может включать в себя поднабор блоков кодирования. Флаг sps_field_seq_flag может иметь значение ложь на основе флага general_frame_only_constraint_flag (например, равного 1), указывающего, что поднабор изображений не кодирован с кодированием поля, поднабор изображений может быть на одном слое в наборе выходных слоев.

[216] Когда флаг general_frame_only_constraint_flag равен 1, значение флага sps_field_seq_flag может быть равно 0.

[217] В варианте осуществления флаг pps_mixed_nalu_types_in_pic_flag может присутствовать в PPS. Флаг pps_mixed_nalu_types_in_pic_flag, равный 1, может указывать, что каждое изображение, ссылающееся на PPS, имеет более одной единицы VCL NAL, а единицы NAL VCL не имеют одинакового значения nal_unit_type. Флаг pps_mixed_nalu_types_in_pic_flag, равный 0, может указывать, что каждое изображение, ссылающееся на PPS, имеет одну или более единиц NAL VCL, а единицы NAL VCL каждого изображения, ссылающегося на PPS, имеют одинаковое значение nal_unit_type. В общей структуре синтаксиса информации ограничения с фиг.12 может присутствовать флаг no_mixed_nalu_types_in_pic_constraint_flag. Флаг no_mixed_nalu_types_in_pic_constraint_flag, равный 1, может указывать, что значение pps_mixed_nalu_types_in_pic_flag должно быть равно 0. Флаг no_mixed_nalu_types_in_pic_constraint_flag, равный 0, не накладывает такого ограничения.

[218] В варианте осуществления флаг general_one_picture_only_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Значение general_one_picture_only_constraint_flag, равное 1, может указывать, что в битовом потоке есть только одно кодированное изображение. Флаг general_one_picture_only_constraint_flag, равный 0, не накладывает такого ограничения.

[219] В варианте осуществления флаг single_layer_constraint_flag может присутствовать в структуре синтаксиса информации общего ограничения на фиг.12. Флаг single-layer_constraint_flag, равный 1, может указывать, что sps_video_parameter_set_id должен быть равен 0. Флаг single_layer_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг general_one_picture_only_constraint_flag равен 1, значение флага single_layer_constraint_flag может быть равно 1.

[220] В варианте осуществления флаг all_layers_independent_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг all_layers_independent_constraint_flag, равный 1, может указывать, что флаг vps_all_independent_layers_flag может быть равен 1. Флаг all_layers_independent_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг single_layer_constraint_flag равен 1, значение флага all_layers_independent_constraint_flag может быть равно 1.

[221] В варианте осуществления флаг no_res_change_in_clvs_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг no_res_change_in_clvs_constraint_flag, равный 1, может указывать, что флаг sps_res_change_in_cfvs_allowed_flag может быть равен 0. Флаг no_res_change_in_clvs_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг no_ref_pic_resampling_constraint_flag равен 1, значение флага no_res_change_in_clvs_constraint_flag может быть равно 1.

[222] В варианте осуществления флаг no_mixed_nalu_types_in_pic_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг no_mixed_nalu_types_in_pic_constraint_flag, равный 1, указывает, что значение флага pps_mixed_nalu_types_in_pic_flag может быть равно 0. Флаг no_mixed_nalu_types_in_pic_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг one_subpic_per_pic_constraint_flag равен 1, значение флага no_mixed_nalu_types_in_pic_constraint_flag может быть равно 1.

[223] В варианте осуществления флаг no_trail_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг no_trail_constraint_flag, равный 1, может указывать, что в OlsInScope может отсутствовать единица NAL с nuh_unit_type, равным TRAIL_NUT. Флаг no_trail_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг general_one_picture_only-constraint_flag равен 1, флаг no_trail_constraint_flag может быть равен 1.

[224] В варианте осуществления флаг no_stsa_constraint_flag может присутствовать в общей структуре синтаксиса информации ограничения на фиг.12. Флаг no_stsa_constraint_flag, равный 1, может указывать, что в OlsInScope может отсутствовать единица NAL с nuh_unit_type, равным STSA_NUT. Флаг no_stsa_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг general_one_picture_only_constraint_flag равен 1, флаг no_stsa_constraint_flag может быть равен 1.

[225] В варианте осуществления флаг no_trail_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг no_trail_constraint_flag, равный 1, может указывать, что в OlsInScope может отсутствовать блок NAL с nuh_unit_type, равным TRAIL_NUT. Флаг no_trail_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг general_one_picture_only_constraint_flag равен 1, флаг no_trail_constraint_flag может быть равен 1.

[226] В варианте осуществления флаг no_stsa_constraint_flag может присутствовать в общей структуре синтаксиса информации ограничения на фиг.12. Флаг no_stsa_constraint_flag, равный 1, может указывать, что в OlsInScope может отсутствовать единица NAL с nuh_unit_type, равным STSA_NUT. Флаг no_stsa_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг general_one_picture_only_constraint-flag равен 1, флаг no_stsa_constraint_flag может быть равен 1.

[227] В варианте осуществления флаг no_idr_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг no_idr_constraint_flag, равный 1, может указывать на то, что в OlsInScope может отсутствовать единица NAL с nuh_unit_type, равным IDR_W_RADL или IDR_N_LP. Флаг no_idr_constraint_flag, равный 0, не накладывает такого ограничения.

[228] В варианте осуществления флаг no era constraint flag может присутствовать в структуре синтаксиса общей информации ограничения с фиг.12. Флаг flag_no_cra_constraint_flag, равный 1, может указывать на то, что в OlsInScope может отсутствовать единица NAL с nuh_unit_type, равным CRANUT. Флаг no_cra_constraint_flag, равный 0, не накладывает такого ограничения.

[229] В варианте осуществления флаг no_rasl_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения на фиг.12. Флаг no_rasl_constraint_flag, равный 1, может указывать на то, что в OlsInScope может отсутствовать единица NAL с nuh_unit_type, равным RASL_NUT. Флаг no_rasl_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг no_cra_constraint_flag равен 1, значение флага no_rasl_constraint_flag может быть равно 1.

[230] В варианте осуществления флаг no_radl_constraint_flag может присутствовать в структуре синтаксиса общей информации ограничения на фиг.12. Флаг no_radl_constraint_flag, равный 1, может указывать на то, что в OlsInScope может отсутствовать блок NAL с nuh_unit_type, равным RADL_NUT. Флаг no_radl_constraint_flag, равный 0, не накладывает такого ограничения. Когда флаг no_idr_constraint_flag равен 1, а флаг no_cra_constraint_flag равен 1, значение флага no_rasl_constraint_flag может быть равно 1.

[231] Фиг. 15A-15D показывают примерную структуру (1500) синтаксиса общей информации ограничения согласно варианту осуществления раскрытия. Структура (1500) синтаксиса общей информации ограничениях может представлять информацию ограничения (например, называемую общей информацией ограничения). Общая информация ограничения (или структура (1500) синтаксиса общей информации ограничения) может включать в себя флаг (например, gci_present_flag), указывающий, присутствуют ли флаги ограничения в структуре (1500) синтаксиса общей информации ограничения. В одном примере, если флаг (например, gci_present_flag) имеет значение «истина», один или более флагов ограничения могут присутствовать в структуре (1500) синтаксиса общей информации ограничения. Если флаг (например, gci_present_flag) имеет значение "ложь", никакие флаги ограничения не могут присутствовать в структуре (1500) синтаксиса общей информации ограничения.

[232] Как описано выше со ссылкой на фиг.14А-14В, флаги ограничения с фиг.15A-15D можно классифицировать в группы (например, группы информации ограничения). Тем, могут ли флаги ограничения в группе информации ограничения присутствовать в структуре (1500) синтаксиса общей информации ограничения, можно управлять, например, с помощью соответствующего флага регулирования для группы информации ограничения.

[233] Структура (1500) синтаксиса общей информации ограничения может включать в себя любое подходящее количество групп информации ограничения. В примере структура (1500) синтаксиса общей информации ограничения может дополнительно включать в себя флаг(и) ограничения, которые не включены в группы информации ограничения, и, таким образом, флаг(и) ограничения находится вне групп информации ограничения.

[234] В примере, показанном на фиг.15A-15D, структура (1500) синтаксиса общей информации ограничения включает в себя девять групп (1510) - (1518) информации ограничения. Группа (1510) информации ограничения связана с общей информацией ограничения и включает в себя три флага ограничения (например, флаг gci_intra_only_constraint_flag, флаг gci_all_layers_indepedent_constraint_flag, флаг gci_one_au_only_constraint_flag). В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1510) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[235] Группа (1511) информации ограничения и соответствующие флаги ограничения относятся к информации ограничения формата изображения. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1511) информации ограничения в общей структуре синтаксиса информации ограничения (1500).

[236] Группа информации ограничения (1512) и соответствующие флаги ограничения связаны с информацией ограничения типа единицы NAL. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1512) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[237] Группа (1513) информации ограничения и соответствующие флаги ограничения относятся к информации ограничения разделения на тайлы, слайсы или субизображения. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1503) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[238] Группа (1514) информации ограничения и соответствующие флаги ограничения связаны с CTU и информацией ограничения разделения блоков. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1514) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[239] Группа (1515) информации ограничения и соответствующие флаги ограничения относятся к информации ограничения интра-кодирования. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1515) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[240] Группа (1516) информации ограничения и соответствующие флаги ограничения относятся к информации ограничения интер-кодирования. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1516) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[241] Группа (1517) информации ограничения и соответствующие флаги ограничения связаны с информацией ограничения преобразования, квантования и остатка. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1517) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[242] Группа (1518) информации ограничения и соответствующие флаги ограничения относятся к информации ограничения петлевого фильтра. В одном примере флаг регулирования может регулировать или управлять тем, присутствует ли группа (1518) информации ограничения в структуре (1500) синтаксиса общей информации ограничения.

[243] В варианте осуществления, показанном на фиг.15D, элементы синтаксиса gci_num_reserved_bits и gci_reserved_zero_bit [] могут присутствовать в структуре (1500) синтаксиса общей информации ограничения для расширения структуры синтаксиса общей информации ограничения. Элемент синтаксиса gci_num_reserved_bits может указывать число зарезервированных битов ограничения. Элемент синтаксиса gci_reserved_zero_ bit [] может иметь любое подходящее значение. В примере наличие элемента синтаксиса gci_reserved_zero_bit [] и значение gci_reserved_zero_bit [] не влияют на процесс декодирования, указанный в определенном стандарте кодирования видео (например, в спецификации VVC). Наличие элемента синтаксиса gci_reserved_zero_bit [] и значение gci_reserved_zero_bit [] может использоваться для некоторых стандартов кодирования видео.

[244] Фиг. 16 показывает пример набора элементов синтаксиса PTL в структуре синтаксиса PTL согласно варианту осуществления раскрытия. Набор элементов синтаксиса PTL может включать в себя general_profile_idc, general_tier_flag, general_level_idc, ptl_frame_only_constraint_flag, ptl_multilayer_enabled_flag, plt_sublayer_level_present_flag[], ptl_reserved_zero_bit, sublayer_level_idc[], ptl_num_sub_profiles, general_sub_profile_idc, и/или общую информацию ограничения. То, могут ли присутствовать некоторые (например, general_profile_idc, general_tier_flag, информация общего ограничения, ptl_num_sub_profiles) набора элементов синтаксиса PTL, может быть основано на значениях флага (например, profileTierPresentFlag).

[245] Последовательность видео с одним или более слоями может быть закодирована как структура кодирования поля, где два или более последовательных изображения полей могут содержать изображение полного кадра. Информация кодирования поля может сигнализироваться в синтаксической структуре высокого уровня, такой как наборы параметров или сообщения SEI.

[246] В варианте осуществления каждый кадр чересстрочного видео имеет два поля для каждого кадра. В некоторых примерах можно использовать преобразование три-два (уменьшение 3: 2) для преобразования 24 кадров в секунду в 29,97 или 30 кадров в секунду. Снижение 3: 2 может преобразовать четыре кадра в пять кадров плюс небольшое снижение скорости, примерно.

[247] В варианте осуществления флаг (например, sps_field_seq_flag) может сигнализироваться в SPS, как показано на фиг. 17, чтобы указать, используется ли кодирование поля или нет.Флаг (например, sps_field_seq_flag), равный 1, может указывать, что CLVS передает изображения, которые представляют поля. Флаг (например, sps_field_seq_flag), равный 0, может указывать на то, что CLVS передает изображения, которые представляют кадры. Когда флаг (например, general_frame_only_constraint_flag) равен 1, значение флага (например, sps_field_seq_flag) может быть равно 0. В примере флаг (например, general_frame_only_constraint_flag), равный 1, указывает, что значение флага (например, sps_field_seq_flag) равно 0.

[248] В варианте осуществления, когда флаг (например, sps_field_seq_flag) равен 1, сообщение SEI с информацией о поле кадра может присутствовать для каждого кодированного изображения в CLVS. Такое присутствие может потребоваться для стандарта или технологии кодирования видео.

[249] В варианте осуществления процесс декодирования может не обрабатывать изображения, которые представляют поля или кадры, иначе, чем другие изображения. Последовательность изображений, представляющих поля, может быть закодирована с размерами изображения отдельного поля. Например, изображения, которые представляют поля 1080i, могут иметь обрезанные выходные размеры 1920x540, в то время как скорость изображения последовательности может выражать частоту исходных полей (например, обычно от 50 до 60 Гц) вместо частоты кадров источника (например, обычно между 25 и 30 Гц).

[250] В варианте осуществления значение флага (например, sps_field_seq_flag) может быть одинаковым для всех слоев. В одном примере значение флага (например, sps_field_seq_flag) может быть одинаковым во всех SPS, на которые ссылаются CLVS в CVS, например, потому что все уровни могут иметь одинаковую структуру поля или одинаковую структуру кадра.

[251] В варианте осуществления значение флага (например, sps_field_seq_flag) слоя А равно значению флага (например, sps_field_seq_flag) зависимого слоя в слое А в наборе выходных слоев.

[252] В варианте осуществления, когда флаг (например, sps_field_seq_flag) равен 1, все поля, которые включают в себя один и тот же кадр, могут относиться к одному и тому же PPS, так что все поля одного кадра могут иметь одинаковый размер изображения, окно соответствия и разделение на тайлы.

[253] В варианте осуществления два поля кадра могут иметь одинаковую структуру разделения с одинаковыми элементами синтаксиса тайла или одинаковыми элементами синтаксиса субизображения.

[254] В варианте осуществления два поля кадра могут иметь идентичную структуру слоев с одинаковым количеством слоев и субслоев.

[255] В варианте осуществления, показанном на фиг. 18, флаг (например, vps_field_seq_flag) может сигнализироваться в VPS, чтобы указать, кодированы ли слои, ссылающийся на VPS, как поле или кадр. Флаг (например, vps_field_seq_flag), равный 1, может указывать на то, что CVS, сссылающаюся на VPS, передает изображения, которые представляют поля. Флаг (например, vps_field_seq_flag), равный 0, может указывать, что CVS, сссылающаюся на VPS, передает изображения, которые представляют кадры. Когда флаг (например, general_frame_only_constraint_flag) равен 1, значение флага (например, sps_field_seq_flag) должно быть равно 0.

[256] Когда флаг (например, vps_field_seq_flag) присутствует в VPS, значение флага (например, sps_field_seq_flag) в SPS, ссылающегося на VPS, может быть равно значению флага (например, vps_field_seq_flag).

[257] Очистка синтаксиса высокого уровня в SPS

[258] Следующая очистка синтаксиса высокого уровня (HLS) может выполняться в наборе параметров последовательности (SPS) согласно вариантам осуществления настоящего раскрытия: (1) сигнализация sps_picture_header_in_slice_header_flag; (2) Выравнивание значения subpic_treated_as_pic_flag по слоям; (3) Ограничение на количество субизображений для маленького изображения; (4) Исправление диапазона значений sps_subpic_id_len_minus1.

[259] 1. Сигнализирование флага picture_header_in_slice_header

[260] Когда заголовок изображения содержится в заголовке слайса, предполагается, что информация субизображения не используется и только один слайс присутствует на каждое изображение в CLVS, ссылающееся на набор параметров последовательности (SPS). Это предположение было гипотетически согласовано, но четко не описано. Чтобы выполнить очистку потоковой передачи в реальном времени HTTP, можно определить и использовать новый флаг sps_picture_header_in_slice_header_flag в SPS. При этом sps_picture_header_in_slice_header_flag, равный 1, указывает, что структура синтаксиса заголовка изображения (РН) присутствует в заголовке слайса, и только один слайс присутствует на одно изображение в CLVS. Кроме того, информация о субизображении отсутствует, если sps_picture_header_in_slice_header_flag равен 1.

[261] Ниже приведены примеры семантических и синтаксических определений для нового флага sps_picture_header_in_slice_header_flag:

[272] sps_picture_header_in_slice_header_flag, равный 1, указывает, что структура синтаксиса РН присутствует в заголовке слайса, и только один слайс присутствует на каждое изображение в CLVS. При этом sps_picture_header_in_slice_header_flag, равный 0, указывает, что структура синтаксиса РН отсутствует в заголовке слайса в CLVS.

[273] subpic_info_present_flag, равный 1, указывает, что информация субизображения присутствует для CLVS, и в каждом изображении CLVS может быть одно или более субизображений. При этом subpic_info_present_flag, равный 0, указывает, что информация о субизображении отсутствует для CLVS и что в каждом изображении CLVS есть только одно субизображение. Если отсутствует, значение subpic_info_present_flag выводится равным 0.

[274] Когда res_change_in_clvs_allowed_flag равно 1, значение subpic_info_present_flag должно быть равно 0.

[275] В одном варианте осуществления picture_header_in_slice_header_flag сигнализируется в заголовке изображения.

[276] picture_header_in_slice_header_flag, равный 1, указывает, что структура синтаксиса РН присутствует в заголовке слайса. При этом picture_header_in_slice_header_flag, равный 0, указывает, что структура синтаксиса РН отсутствует в заголовке слайса.

[277] Значение picture_header_in_slice_header_flag должно быть равно sps_picture_header_in_slice_header_flag.

[278] Когда picture_header_in_slice_header_flag равен 1 для кодированного слайса, требование соответствия битового потока состоит в том, что в CLVS не должна присутствовать единица VCL NAL с nal_unit_type, равным РН NUT.

[279] Когда picture_header_in_slice_header_flag равен 0, все кодированные слайсы в текущем изображении должны иметь picture_header_in_slice_header_flag, равное 0, а текущий PU должен иметь единицу РН NAL.

[280] Кроме того, флаг константы pic_header_in_slice_header_constraint_flag может быть добавлен в general constraint_info (). Когда pic_header_in_slice_header_constraint_flag равно 1, значение picture_header_in_slice_header_flag в РН должно быть равно 1.

[281] pic_header_in_slice_header_constraint_flag, равное 1, указывает, что структура синтаксиса РН присутствует в заголовке слайса. pic_header_in_slice_header_constraint_flag, равное 0, не накладывает такого ограничения. Когда pic_header_in_slice_header_constraint_flag должно быть равно 1, значение picture_header_in_slice_header_flag должно быть равно 1.

[282] Когда pic_header_in_slice_header_constraint_flag равно 1, rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag, wp_info_in_ph_flag, qp_delta_info_in_ph_flag должны быть равны 0.

[283] Когда pic_header_in_slice_header_constraint_flag равно 1, rect_slice_flag должно быть равно 1.

[284] Когда pic_header_in_slice_header_constraint_flag равно 1, subpic_info_present_flag должен быть равен 0.

[285] Когда pic_header_in_slice_header_constraint_flag равно 1, separate_colour_plane_flag должен быть равен 0.

[286] Ниже приводится пример определения синтаксиса для нового флага ограничения:

[287] Ниже приводится пример определения семантики для нового флага ограничения:

[288] separate_colour_plane_flag, равный 1, указывает, что три цветовых компонента формата цветности 4:4:4 кодируются отдельно. При этом separate_colour_plane_flag, равный 0, указывает, что компоненты цвета не кодируются отдельно. Если separate_colour_plane_flag отсутствует, предполагается, что он равен 0. Когда separate_colour_plane_flag равен 1, кодированное изображение состоит из трех отдельных компонентов, каждый из которых состоит из кодированных выборок одной цветовой плоскости (Y, Cb или Cr) и использует синтаксис монохромного кодирования. В этом случае каждая цветовая плоскость связана с определенным значением colour_plane_id.

[289] ПРИМЕЧАНИЕ. - В процессах декодирования нет зависимости между цветовыми плоскостями, имеющими разные значения colour_plane_id. Например, процесс декодирования монохромного изображения с одним значением colour_plane_id не использует никаких данных из монохромных изображений, имеющих разные значения colour_plane_id для межкадрового предсказания.

[290] В зависимости от значения separate_colour_plane_flag значение переменной ChromaArrayType присваивается следующим образом:

[291] - Если separate_colour_plane_flag равен 0, ChromaArrayType устанавливается равным chroma_format_idc.

[292] - В противном случае (отдельный separate_colour_plane_flag равен 1) ChromaArrayType устанавливается равным 0.

[293] Когда pic_header_in_slice_header_constraint_flag равно 1, separate_colour_plane_flag должен быть равен 0.

[294] subpic_info_present_flag, равный 1, указывает, что информация субизображения присутствует для CLVS, и в каждом изображении CLVS может быть одно или более субизображений. При этом subpic_info_present_flag, равный 0, указывает, что информация о субизображении отсутствует для CLVS и что в каждом изображении CLVS есть только одно субизображение.

[295] Когда res_change_in_clvs_allowed_flag равно 1, значение subpic_info_present_flag должно быть равно 0.

[296] ПРИМЕЧАНИЕ. - Когда битовый поток является результатом процесса извлечения суб-битового потока и содержит только поднабор субизображений входящего битового потока для процесса извлечения суб-битового потока, может потребоваться установить значение subpic_info_present_flag равным 1 в RBSP SPS.

[297] Когда pic_header_in_slice_header_constraint_flag равно 1, subpic_info_present_flag должен быть равен 0.

[298] rect_slice_flag, равный 0, указывает, что тайлы в каждом слайсе находятся в порядке растрового сканирования, и информация о слайсе не сигнализируется в PPS. При этом rect_slice_flag, равный 1, указывает, что тайлы внутри каждого слайса покрывают прямоугольную область изображения, и информация о слайсе сигнализируется в PPS. Если отсутствует, rect_slice_flag считается равным 1. Когда subpic_info_present_flag равно 1, значение rect_slice_flag должно быть равно 1.

[299] Когда pic_header_in_slice_header_constraint_flag равно 1, rect_slice_flag должно быть равно 1.

[300] qp_delta_info_in_ph_flag, равный 1, указывает, что дельта-информация QP присутствует в структуре синтаксиса РН и не присутствует в заголовках слайсов, ссылающихся на PPS, которые не содержат структуру синтаксиса РН. qp_delta_info_in_ph_flag, равное 0, указывает, что дельта-информация QP не присутствует в структуре синтаксиса РН и может присутствовать в заголовках слайсов, ссылающихся на PPS, которые не содержат структуру синтаксиса РН.

[301] Когда pic_header_in_slice_header_constraint_flag равно 1, rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag, wp_info_in_ph_flag, qp_delta_info_in_ph_flag должны быть равны 0.

[302] one_subpic_per_pic_constraint_flag, равный 1, указывает, что каждое изображение должно содержать только одно субизображение, one_subpic_per_pic_constraint_flag, равное 0, не накладывает такого ограничения. Когда one_slice_per_pic_constraint_flag равно 1, значение one_subpic_per_pic_constraint_flag должно быть равно 1.

[303] pic_header_in_slice_header_constraint_flag, равный 1, указывает, что структура синтаксиса РН присутствует в заголовке слайса. pic_header_in_slice_header_constraint_flag, равный 0, не накладывает такого ограничения. Когда pic_header_in_slice_header_constraint_flag должно быть равно 1, значение picture_header_in_slice_header_flag должно быть равно 1.

[304] 2. Выравнивание значения subpic_treated_as_pic_flag по слоям

[305] Для извлечения субизображения из многослойного битового потока, когда subpic_treated_as_pic_flag [i] равно 1, для каждого выходного слоя и его опорных слоев в OLS все изображения в выходном слое и его опорных слоях должны иметь значение subpic_treated_as_pic_flag [j], равное до 1 для каждого значения j в диапазоне от 0 до sps_num_subpics_minus1. Следовательно, согласно вариантам осуществления настоящего раскрытия добавляется следующее ограничение.

[306] subpic_treated_as_pic_flag [i], равный 1, указывает, что i-e субизображение каждого кодированного изображения в CLVS обрабатывается как изображение в процессе декодирования, исключая операции внутрипетлевой фильтрации.

subpic_treated_as_pic_flag [i], равный 0, указывает, что i-oe субизображение каждого кодированного изображения в CLVS не обрабатывается как изображение в процессе декодирования, исключая операции внутрипетлевой фильтрации. Если отсутствует, значение subpic_treated_as_pic_flag [i] предполагается равным sps_independent_subpics_flag.

[307] Когда subpic_treated_as_pic_flag [i] равно 1, для соответствия битового потока требуется, чтобы все следующие условия выполнялись для каждого выходного слоя и его опорных слоев в OLS, который включает в себя слой, содержащий i-oe субизображение, в качестве выходного слоя:

[308] - Все изображения в выходном слое и его опорных слоях должны иметь одинаковое значение pic_width_in_luma_samples и одно и то же значение pic_height_in_luma_samples.

[309] - Все SPS, на которые ссылается выходной слой и его опорные слои, должны иметь одно и то же значение sps_num_subpics_minus1 и должны иметь одинаковые значения subpic_ctu_top_left_x [j], subpic_ctu_top_left_y [j], subpic_width_minus1 [j], subpic_fil_subpics_minus1 и subpic_height_subpics_minus1, [j], соответственно, для каждого значения j в диапазоне от 0 до sps_num_subpics_minus1 включительно.

[310] - Все изображения в каждой единице доступа в выходном слое и его опорных слоях должны иметь одинаковое значение SubpicIdVal [j] для каждого значения j в диапазоне от 0 до sps num subpics minus1 включительно.

[311] - Все изображения в выходном слое и его опорных слоях должны иметь значение subpic_treated_as_pic_flag [j], равное 1 для каждого значения j в диапазоне от 0 до sps_num_subpics_minus1 включительно.

[312] 3. Ограничение на количество субизображения для небольшого изображения

[313] В одном варианте осуществления может быть наложено дополнительное ограничение, так что количество фрагментов изображения должно быть равно 1, когда размер изображения не превышает CtbSizeY.

[314] Ниже приведены примеры синтаксиса и/или семантических определений для дополнительного ограничения:

[315] Когда pic_width_max_in_luma_samples не больше CtbSizeY и pic_height_max_in_luma_samples не больше CtbSizeY, значение sps_num_subpics_minus1 должно быть равно 0.

[316] 4. Корректирование диапазона значений sps_subpic_id_len_minus1

[317] В одном варианте осуществления семантика sps_subpic_id_len_minus1 может быть изменена следующим образом, чтобы элемент синтаксиса мог иметь более точный диапазон значений.

[318] sps_subpic_id_len_minus1 плюс 1 указывает количество битов, используемых для представления синтаксического элемента sps_subpic_id [i], синтаксических элементов pps_subpic_id [i], если они есть, и синтаксического элемента slice_subpic_id, если они есть. Значение sps_subpic_id_len_minus1 должно находиться в диапазоне от 0 до 15 включительно. Значение 1<<(sps_subpic_id_len_minus1) должно быть больше или равно sps_num_subpics_minus1 +1.

[319] Вышеупомянутые варианты осуществления можно использовать по отдельности или комбинировать в любом порядке. Кроме того, каждый вариантов осуществления, кодера и/или декодера может быть реализован схемами обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе.

[320] На фиг. 19 показана блок-схема, описывающая процесс (1900) согласно варианту осуществления изобретения. Процесс (1900) может использоваться при реконструкции блока, чтобы сгенерировать блок предсказания для восстанавливаемого блока. Термин «блок» в раскрытии может интерпретироваться как блок предсказания, СВ, CU и т.п. В различных вариантах осуществления процесс (1900) выполняется схемой обработки, например схемой обработки в оконечных устройствах (310), (320), (330) и (340), причем схема обработки выполняет функции видеокодера (403), схема обработки выполняет функции видеодекодера (410), схема обработки выполняет функции видеодекодера (510), схема обработки выполняет функции видеокодера (603), и т.п. В некоторых вариантах осуществления процесс (1900) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки выполняет процесс (1900). Процесс начинается с (S1901) и переходит к (S1910).

[321] На (S1910) может быть получение флага регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализированный в кодированном битовом потоке видео, каждый флаг регулирования может указывать, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения, информация ограничения может относиться к поднабору блоков кодирования в кодированном битовом потоке видео.

[322] Информация ограничения может присутствовать в синтаксисе высокого уровня (например, SPS, VPS, DCI, DPS) по меньшей мере для одного изображения, и поднабор блоков кодирования может включать в себя блоки кодирования по меньшей мере в одном изображении.

[323] В примере каждый флаг регулирования указывает, что группа информации ограничения, соответствующая соответствующему флагу регулирования, не присутствует в информации ограничения, и в информации ограничения отсутствуют флаги ограничения.

[324] На (S1920) определение, присутствует ли группа информации ограничения флага регулирования в информации ограничения, на основе флага регулирования группы информации ограничения по меньшей мере одной группы информации ограничения, группа информации ограничения флага регулирования может включать в себя по меньшей мере один флаг ограничения для поднабора блоков кодирования.

[325] На (S1930) определение информации предсказания для поднабора блоков кодирования на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения.

[326] В примере определяется, что группа информации ограничения флага регулирования присутствует в информации ограничения. Информация предсказания для поднабора блоков кодирования может быть определена на основе по меньшей мере одного флага ограничения в группе информации ограничения флага регулирования.

[327] В примере определяется, что группа информации ограничения флага регулирования не присутствует в информации ограничения. Информация предсказания для поднабора блоков кодирования может быть определена независимо от группы информации ограничения флага регулирования.

[328] На (S1940) восстановление поднабора блоков кодирования на основе информации предсказания.

[329] Процесс (1900) можно соответствующим образом адаптировать. Этап(ы) в процессе (1900) может быть изменен и/или опущен. Может быть добавлен дополнительный этап(ы). Может быть использован любой подходящий порядок реализации. Например, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения может сигнализироваться в соответствии с предопределенным порядком. Множество флагов ограничения может быть декодировано с помощью декодирования длин серий, и, таким образом, информация предсказания для поднабора блоков кодирования может быть определена на основе множества флагов ограничения.

[330] В примере, по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования включает в себя множество флагов ограничения, сигнализированных в соответствии с заранее определенным порядком, и множество флагов ограничения в группе информации ограничения флага регулирования может быть декодировано с помощью декодирования длин серий.

[331] В примере, смещение и длина присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования присутствует в информации ограничения.

[332] Например, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Смещение и длина присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в каждой из одной или более из по меньшей мере одной группы информации ограничения присутствует в информации ограничения. В кодированном битовом потоке может сигнализироваться число смещений.

[333] Например, одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео. Один или более элементов синтаксиса в информации ограничения могут быть выровнены по байтам. Один или более элементов синтаксиса могут включать в себя флаг регулирования для каждой из по меньшей мере одной группы информации ограничения и множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения.

[334] В примере, по меньшей мере один флаг регулирования включает в себя флаг ограничения только кадра (например, general_frame_only_constraint_flag), указывающий, кодировано ли изображения в наборе выходных слоев с кодированием поля. Набор выходных слоев может включать в себя поднабор блоков кодирования. Флаг последовательности полей (например, sps_field_seq_flag) имеет значение "ложь" на основе флага ограничения только кадра, указывающего, что поднабор изображений не кодирован с помощью кодирования поля, где поднабор изображений находится на одном слое набора выходных слоев.

[335] В одном примере флаг последовательности полей сигнализируется в кодированном битовом потоке видео, а флаг последовательности полей указывает, кодированы ли изображения в выходном слое с кодированием поля.

[336] Варианты осуществления настоящего изобретения можно использовать по отдельности или комбинировать в любом порядке. Кроме того, каждый из способов (или вариантов осуществления), кодера и декодера может быть реализован схемой обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе.

[337] Аспекты раскрытия относятся к сигнализированию информации кодирования поля в кодированном потоке видео, например, с множеством слоев.

[338] Когда изображения кодируются в битовый поток, который включает нескольких слоев с разным качеством, битовый поток может иметь элементы синтаксиса, которые указывают, какие слои могут выводиться на стороне декодера. В определенном видеокодеке, поддерживающем несколько слоев и масштабируемость, один или более наборов выходных слоев могут сигнализироваться в VPS. Элементы синтаксиса, указывающие наборы выходных слоев и их зависимости, профиль/ярус/уровень и параметры эталонной модели гипотетического декодера, должны эффективно сигнализироваться в наборе параметров. Когда многослойные видеопоследовательности кодируются как структура поля, где два или более изображений полей включают в себя одно изображение кадра, информация кодирования поля может сигнализироваться в виде синтаксической структуры высокого уровня, такой как SPS, VPS или сообщение SEI.

[339] В некоторых технологиях кодирования видео единица доступа (AU) может относиться к кодированному изображению(ям), слайсу(ам), тайлу(ам), блоку(ам) NAL и так далее, которые захвачены и скомпонованы в соответствующие изображение/слайс/тайл/битовый поток единицы NAL в данный момент времени. Данный момент времени может быть временем компоновки.

[340] В некоторых примерах, например HEVC, и некоторых других технологиях кодирования видео значение счетчика порядка изображений (РОС) может использоваться для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB). Когда AU включает в себя одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащие одному и тому же AU, может иметь одно и то же значение РОС, из которого можно получить, что одно или более изображений, слайсов или тайлов создаются из контента того же времени компоновки. Таким образом, два изображения/слайса/тайла, имеющие одинаковое заданное значение РОС, могут указывать, что два изображения/слайса/тайла принадлежат одному и тому же AU и имеют одинаковое время компоновки. И наоборот, два изображения/слайса/тайла, имеющие разные значения РОС, могут указывать два изображения/слайса/тайла, которые принадлежат разным AU и имеют разное время компоновки.

[341] В варианте осуществления вышеупомянутая жесткая взаимосвязь может быть ослаблена, когда AU может содержать изображения, слайсы или тайлы с разными значениями РОС.Допуская различные значения РОС в пределах AU, значения РОС могут использоваться для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с идентичным временем представления. Таким образом, может быть обеспечена поддержка множества масштабируемых слоев без изменения сигнализирования выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.

[342] В некоторых примерах желательно идентифицировать AU, которой принадлежит изображение/слайс/тайл, по отношению к другому изображению/слайсу/тайлу, имеющему другие значения РОС, только на основе значения РОС. Этого можно добиться, как описано ниже.

[343] В вариантах осуществления счетчик единиц доступа (AUC) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение AUC (или значение AUC) может использоваться, чтобы идентифицировать, какие единицы NAL, изображения, слайсы или тайлы принадлежат данному AU. Значение AUC может соответствовать отдельному моменту времени компоновки. Значение AUC может быть кратным значению РОС. Путем деления значения РОС на целочисленное значение может быть вычислено значение AUC. В некоторых примерах операции деления могут накладывать определенную нагрузку на реализации декодера. Таким образом, небольшие ограничения в пространстве нумерации значений AUC могут позволить замену операций деления операциями сдвига. Например, значение AUC может быть равно значению старшего значащего бита (MSB) диапазона значений РОС.

[344] В варианте осуществления значение цикла РОС на каждую AU (например, рос_cycle_au) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение цикла РОС на каждую AU (например, poc_cycle_au) может указывать, сколько разных и последовательных значений РОС может быть связано с одной и той же AU. Например, если значение цикла РОС на AU на каждую AU (например, рос_cycle_au) равно 4, изображения, слайсы или тайлы со значением РОС от 0 до 3 включительно, связаны с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением РОС от 4 до 7 включительно, связаны с AU со значением AUC, равным 1. Следовательно, значение AUC может быть выведено путем деления значения РОС на значение цикла РОС на каждую AU (например, рос_cycle_au).

[345] В варианте осуществления, значение цикла РОС на каждую AU (например, poc_cyle_au) может быть получено из информации, расположенной, например, в VPS, которая идентифицирует количество пространственных слоев или слоев SNR в кодированной видеопоследовательности. Хотя вывод, как описано выше, может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, может быть выгодно явно кодировать значение цикла РОС на каждую AU (например, poc_cycle_au) в соответствующей структуре синтаксиса высокого уровня иерархически ниже VPS, чтобы минимизировать значение цикла РОС на каждую AU (например, рос_cycle_au) для данной небольшой части битового потока (например, изображения). Эта оптимизация может сэкономить больше битов, чем может быть сохранено посредством процесса получения, описанного выше, потому что значения РОС (и/или значения элементов синтаксиса, косвенно ссылающиеся на РОС) могут быть кодированы в синтаксических структурах низкого уровня.

[346] В варианте осуществления, на фиг. 20 показан пример таблиц синтаксиса для сигнализации элемента синтаксиса vps_рос_cycle_au в VPS (или SPS), который указывает рос_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и элемента синтаксиса slice_poc_cycle_au, который указывает poc_cycle_au текущего слайса в заголовке слайса.

[347] Если значение РОС увеличивается равномерно для каждого AU, элемент синтаксиса vps_contant_poc_cycle_per_au в VPS устанавливается равным 1, а элемент синтаксиса vps_poc_cycle_au сигнализируется в VPS. Таким образом, элемент синтаксиса slice_poc_cycle_au явно не сигнализируется, и значение AUC для каждой AU может быть вычислено путем деления значения РОС на элемент синтаксиса vps_рос_cycle_au.

[348] Если значение РОС не увеличивается равномерно на AU, синтаксический элемент vps_contant_poc_cycle_per_au в VPS устанавливается равным 0. Таким образом, элемент синтаксиса vps_access_unit_cnt не сигнализируется, в то время как элемент синтаксиса slice_access_unit_cnt сигнализируется в заголовке фрагмента для каждого фрагмента или изображения. Каждый слайс или изображение может иметь различное значение slice_access_unit_cnt. Значение AUC для каждой AU может вычисляться путем деления значения РОС на элемент синтаксиса slice_рос_cycle_au.

[349] На фиг. 21 показана блок-схема, иллюстрирующая соответствующий рабочий процесс, описанный выше. Рабочий процесс начинается с (S2101) и переходит к (S2110).

[350] В (S2110) может быть проанализирован VPS или SPS, и может быть определено, является ли цикл РОС на каждую AU постоянным или нет.

[351] На (S2120) может быть определено, является ли цикл РОС на каждую AU постоянным в кодированной видеопоследовательности. Если цикл РОС на каждую AU определен как постоянный в кодированной видеопоследовательности, рабочий процесс переходит к (S2130). В противном случае рабочий процесс переходит к (S2140).

[352] В (S2130) значение счетчика единиц доступа может быть вычислено из значения poccycleau уровня последовательности и значения РОС.Затем рабочий процесс переходит к (S2150).

[353] В (S2140) значение счетчика единиц доступа может быть вычислено из значения рос_cycle_au уровня изображения и значения РОС.Затем рабочий процесс переходит к (S2150).

[354] В (S2150) VPS или SPS могут быть проанализированы, и может быть определено, является ли цикл РОС на каждую AU постоянным.

[355] В варианте осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо зависимости от интер-парсинга/декодирования между изображениями, слайсами или тайлами в одной и той же AU, все или поднабор изображений, слайсов или тайлов, связанных с одной и той же AU, могут быть декодированы параллельно и могут быть выведены в один и тот же момент времени.

[356] В варианте осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени компоновки/отображения. Когда время компоновки содержится в формате контейнера, даже если изображения соответствуют разным AU, если изображения имеют одинаковое время компоновки, изображения могут отображаться в один и тот же момент времени.

[357] В варианте осуществления каждое изображение, слайс или тайл может иметь один и тот же временной идентификатор (например, temporal_id) в одной и той же AU. Все или поднабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с одним и тем же временным субслоем. В варианте осуществления каждое изображение, слайс или тайл может иметь одинаковые или разные идентификаторы пространственного уровня (например, layer_id) в одной и той же AU. Все или поднабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с тем же или другим пространственным слоем.

[358] На фиг. 22 показан пример структуры видеопоследовательности с комбинацией значений temporal_id, layer_id, РОС и AUC с адаптивным изменением разрешения. В примере, показаном на фиг. 22 изображение, слайс или тайл в первой AU с AUC =0 может иметь temporal_id =0 и layer_id =0 или 1, в то время как изображение, слайс или тайл во второй AU с AUC =1 может иметь temporal_id =1 и layer_id =0 или 1 соответственно. Значение РОС увеличивается на 1 для каждого изображения независимо от значений temporal_id и layer_id. Обращаясь к фиг. 22 значение poc_cycle_au может быть равно 2. В примере, значение рос_cycle_au может быть предпочтительно установлено равным количеству слоев (пространственной масштабируемости). В этом примере значение РОС увеличивается на 2, а значение AUC увеличивается на 1.

[359] В вышеупомянутых вариантах осуществления все или поднабор структуры межкадрового или межслойного предсказания и индикация опорного изображения могут поддерживаться с использованием сигнализации набора опорных изображений (RPS) в видеотандартах, таких как HEVC или сигнализации списка опорных изображений (RPL). В RPS или RPL выбранное опорное изображение может указываться посредством сигнализации значения РОС или значения дельты РОС между текущим изображением и выбранным опорным изображением. В различных примерах RPS и RPL могут использоваться для указания структуры предсказания интер-изображения или интер-слоя без изменения сигнализации, и со следующими ограничениями. Если значение temporal_id опорного изображения больше, чем значение temporal_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний.

[360] В варианте осуществления, масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть отключено для множества изображений в AU. Следовательно, хотя каждое изображение может иметь различное значение РОС в AU, вектор движения нельзя масштабировать и использовать для временного предсказания вектора движения в AU, поскольку опорное изображение с другим РОС в одном и том же AU может рассматриваться как опорное изображение, имеющее тот же момент времени. Следовательно, функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, связанной с текущим изображением.

[361] В варианте осуществления, масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть опционально отключено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основе как разности РОС, так и отношения пространственного разрешения между текущим изображением и опорным изображением.

[362] В варианте осуществления вектор движения может масштабироваться на основе разности AUC вместо разности РОС для временного предсказания вектора движения, особенно когда рос_cycle_au имеет неоднородное значение (например, когда vps_contant_poc_cycle_per_au =0). В противном случае (например, когда vps_contant_poc_cycle_per_au =1) масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности РОС.

[363] В варианте осуществления, когда вектор движения масштабируется на основе разности AUC, опорный вектор движения в том же AU (с тем же значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственного разрешения между текущим изображением и опорным изображением.

[364] В варианте осуществления значение AUC используется для идентификации границы AU и используется для операции гипотетического эталонного декодера (HRD), для которой может потребоваться синхронизация ввода и вывода с детализацией AU. В различных примерах декодированное изображение с наивысшим уровнем в AU может выводиться для отображения. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.

[365] В варианте осуществления изображение может содержать одно или более субизображений. Каждое субизображения может охватывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, составленная из одного или более субизображений, может покрывать или не покрывать всю область изображения. Если изображение включает субизображения, область, поддерживаемая субизображением, может быть идентична области, поддерживаемой изображением.

[366] В варианте осуществления субизображение может быть кодировано способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может быть независимо закодировано или может быть закодировано в зависимости от другого субизображения или кодированного изображения. Субизображение может иметь или не иметь какую-либо зависимость синтаксического анализа от другого субизображения или кодированного изображения.

[367] В варианте осуществления кодированное субизображение может содержаться в одном или более слоев. Кодированное субизображение в слое может иметь другое пространственное разрешение. Исходное субизображение может подвергаться пространственной передискретизации (например, повышающей или понижающей дискретизации), кодироваться с различными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем слою.

[368] В варианте осуществления фрагмент изображения с (W, Н) может быть кодирован и содержаться в кодированном битовом потоке, соответствующем слою 0. W указывает ширину субизображения, а Н указывает высоту субизображения, соответственно. Субизображение с повышающей (или понижающей) дискретизацией может быть подвергнуто повышающей (или понижающей) части изображения с исходным пространственным разрешением. Субизображение с повышающей (или понижающей) дискретизацией может иметь пространственное разрешение (W*Sw, k, Н*Sh, k) и может быть закодировано и содержаться в кодированном битовом потоке, соответствующем уровню k. Параметры Sw, k и Sh, k могут указывать соотношения горизонтальной и вертикальной передискретизации соответственно. Если значения Sw,k, Sh, k больше 1, передискретизация является повышающей дискретизацией. Если значения Sw, k, Sh, k меньше 1, передискретизация является понижающей.

[369] В варианте осуществления кодированное субизображение в слое может иметь визуальное качество, отличное от качества кодированного субизображения в другом слое в том же субизображении или другом субизображении. Например, субизображение i в слое n кодируется с помощью параметра квантования (например, Qi, n), в то время как субизображение j в слое m кодируется с параметром квантования (например, QJ, m.

[370] В варианте осуществления кодированное субизображение в слое может быть декодировано независимо, без какой-либо зависимости от синтаксического анализа или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно независимо декодировать без ссылки на другой слой субизображения той же локальной области, является независимым слоем субизображения. Кодированное субизображение в независимом слое субизображения может иметь или не иметь зависимость декодирования или синтаксического анализа от ранее кодированного субизображения в том же слое субизображения. Кодированное субизображение может не иметь никакой зависимости от кодированного изображения в другом слое субизображения.

[371] В варианте осуществления кодированное субизображение в слое может быть декодировано зависимо, с любой зависимостью от синтаксического анализа или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно зависимо декодировать со ссылкой на другой слой субизображения той же локальной области, является зависимым слоем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированное субизображение в том же слое субизображения или на оба опорных субизображения.

[372] В варианте осуществления кодированное субизображение содержит один или более независимых слоев субизображений и один или более зависимых слоев субизображений. Однако по меньшей мере одно независимое субизображение может присутствовать для кодированного субизображения. Независимый слой субизображения может иметь значение идентификатора слоя (layer_id), который может присутствовать в заголовке единицы NAL или другой синтаксической структуре высокого уровня, равное 0. Слой субизображения с layer_id, равным 0, является базовым слоем субизображения.

[373] В варианте осуществления, изображение может включать в себя одно или более субизображений переднего плана и одно субизображение заднего плана. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением заднего плана. Субизображение заднего плана может быть базовым слоем субизображения, тогда как субизображение переднего плана может быть небазовым слоем субизображения (улучшающим слоем субизображения). Один или более неосновных слоев субизображения могут ссылаться на один и тот же базовый слой для декодирования. Каждый небазовый слой субизображения с layer_id, равным а, может ссылаться на небазовый слой субизображения с layer_id, равным b, где а больше b.

[374] В варианте осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. Каждое субизображение может иметь свой собственный базовый слой субизображения и один или более небазовых (улучшающих) слоев. На каждый базовый слой субизображения может ссылаться один или более небазовых слоев субизображения. Каждый небазовый слой субизображения с layer_id, равным а, может ссылаться на небазовый слой субизображения с layer_id, равным b, где а больше b.

[375] В варианте осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. На каждое кодированное субизображение в (базовом или небазовом) слое субизображения может ссылаться одно или более субизображений небазового слоя, принадлежащих одному и тому же субизображению, и одно или более субизображений небазового слоя, которые не принадлежат одному и тому же субизображению.

[376] В варианте осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. Субизображение в слое а может быть дополнительно разделено на множество субизображений в этом же слое. Одно или более кодированных субизображений в слое b могут ссылаться на разделенное субизображение в слое а.

[377] В варианте осуществления кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может включать одну или более последовательность кодированных субизображений (CSPS), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь то же или другое временное разрешение, что и кодированная видеопоследовательность.

[378] В варианте осуществления CSPS может быть кодирована и содержаться в одном или более слоях. CSPS может включать в себя один или более слоев CSPS. Декодирование одного или более слоев CSPS, соответствующих CSPS, может восстанавливать последовательность субизображений, соответствующих одной и той же локальной области.

[379] В варианте осуществления количество слоев CSPS, соответствующих CSPS, может быть идентичным или отличаться от количества слоев CSPS, соответствующих другой CSPS.

[380] В варианте осуществления слой CSPS может иметь временное разрешение (например, частоту кадров), отличное от другого уровня CSPS. Исходная (например, несжатая) последовательность субизображений может подвергаться временной передискретизации (например, повышающей или понижающей дискретизации), кодироваться с различными параметрами временного разрешения и содержаться в битовом потоке, соответствующем слою.

[381] В варианте осуществления последовательность субизображений с частотой кадров F может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как последовательность субизображений с временной повышающей (или понижающей) дискретизацией из исходной последовательности субизображений с F*St,k может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою k, где St,k указывает коэффициент временной дискретизации для слоя k. Если значение St,k больше 1, процесс временной передискретизации соответствует преобразованию с повышением частоты кадров. Если значение St,k меньше 1, процесс временной передискретизации соответствует преобразованию с понижением частоты кадров.

[382] В варианте осуществления, когда субизображение со слоем CSPS а является ссылкой субизображения со слоем CSPS b для компенсации движения или любого межслойного предсказания, если пространственное разрешение слоя CSPS а отличается от пространственного разрешения слоя CSPS b, декодированные пиксели в слое CSPS а подвергаются передискретизации и используются для ссылки. Для процесса передискретизации может потребоваться фильтрация с повышающей или понижающей дискретизацией.

[383] На фиг. 23 показан примерный видеопоток, включающий в себя CSPS видео заднего плана с layer_id, равным 0, и множество слоев CSPS переднего плана. Хотя кодированное субизображение может включать один или более слоев CSPS, область заднего плана, которая не принадлежит какому-либо слою CSPS переднего плана, может включать базовый слой. Базовый слой может содержать область заднего плана и области переднего плана. Слой улучшения CSPS может содержать область переднего плана. Слой CSPS улучшения может иметь лучшее визуальное качество, чем базовый слой, в той же области. Слой CSPS улучшения может ссылаться на восстановленные пиксели и векторы движения базового слоя, соответствующие одной и той же области.

[384] В варианте осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS, соответствующие каждому субизображению, содержатся в отдельной дорожке в видеофайле.

[385] В вариантах осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS с тем же layer_id содержатся в отдельной дорожке. В примере дорожка, соответствующая уровню k, включает в себя только слои CSPS, соответствующие слою k.

[386] В варианте осуществления каждый слой CSPS каждого субизображения хранится в отдельной дорожке. Каждая дорожка может иметь или не иметь зависимость синтаксического анализа или декодирования от одной или более других дорожек.

[387] В варианте осуществления каждая дорожка может содержать битовые потоки, соответствующие от слоя i до слоя j слоев CSPS всех или поднабора субизображений, где 0<i≤j≤k, a k - наивысший слой CSPS.

[388] В вариантах осуществления изображение содержит один или более тип связанных мультимедийных данных, включая карту глубины, альфа-карту, данные 3О геометрии, карту занятости и т.д. Такие связанные синхронизированные мультимедийные данные могут быть разделены на один или множество субпотоков данных, каждый из которых соответствует одному субизображению.

[389] В варианте осуществления фиг. 24 иллюстрирует пример видеоконференции, основанной на способе создания многослойных субизображений. В потоке видео содержатся один битовый поток видео базового слоя, соответствующий изображению заднего плана, и один или более битовых потоков видео слоя улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видео слоя улучшения соответствует слою CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому слою. t содержит одно или более картинок-в-картинке (PIP) пользователя. Когда конкретный пользователь выбирается управлением клиента, слой CSPS улучшения, соответствующий выбранному пользователю, декодируется и отображается с улучшенным качеством или пространственным разрешением.

[390] На фиг. 25 показана схема вышеописанной операции. Операция начинается в (S2501) и переходит к (S2510).

[391] На (S2510) многослойный битовый поток видео может быть декодирован.

[392] На (S2520) могут быть идентифицированы область заднего плана и одно или более субизображений переднего плана.

[393] На (S2530) может быть определено, выбрана ли конкретная область субизображения. Если определено, что конкретная область субизображения должна быть выбрана, операция переходит к (S2540). В противном случае операция переходит к (S2550).

[394] На (S2540) субизображение улучшения может быть декодировано и отображено. Затем операция переходит к (S2599) и завершается.

[395] На (S2550) область заднего плана может быть декодирована и отображена. Затем операция переходит к (S2599) и завершается.

[396] В варианте осуществления промежуточный блок сети (такой как маршрутизатор) может выбирать поднабор слоев для отправки пользователю в зависимости от своей полосы пропускания. Организация изображения/субизображения может использоваться для адаптации полосы пропускания. Например, если у пользователя нет полосы пропускания, маршрутизатор разделяет слои или выбирает некоторые субизображения из-за их важности или на основе используемых настроек, и операция может выполняться динамически для адаптации к полосе пропускания.

[397] На фиг. 26 показан пример использования 360-градусного видео. Когда сферическое 360-градусное изображение проецируется на плоское изображение, изображение проекции 360 может быть разделено на множество субизображений в качестве базового слоя. Слой улучшения конкретного субизображения может быть кодирован и передан клиенту. Декодер может декодировать как базовый слой, включающий в себя все субизображения, так и слой улучшения выбранного субизображения. Когда текущее окно просмотра идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество с декодированным субизображением со слоем улучшения. В противном случае декодированное изображение с базовым слоем может отображаться с низким качеством.

[398] В варианте осуществления любая подходящая информация о компоновке для отображения может присутствовать в файле в качестве дополнительной информации (такой как сообщение SEI или метаданные). Одно или более декодированных субизображений могут быть перемещены и отображены в зависимости от сигнализированной информации компоновки. Информация компоновки может быть сигнализирована сервером потоковой передачи или вещательной компанией, или может быть восстановлена сетевым объектом или облачным сервером, или может быть определена индивидуальной настройкой пользователя.

[399] В варианте осуществления, когда входное изображение делится на одну или более субобластей (прямоугольных), каждая субобласть может кодироваться как независимый слой. Каждый независимый слой, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого слоя может сигнализироваться информация о размере и местоположении субизображения. Например, размер изображения (например, ширина и/или высота изображения), информация смещения левого верхнего угла (например, х_offset, у_offset). На фиг. 27 показан пример макета разделенных субизображений, информации о размере и положении его субизображений и его соответствующей структуры предсказания изображения. Информация компоновки, включая размер(ы) субизображения и положение(я) субизображения, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров, заголовок группы слайсов или тайлов или сообщение SEI.

[400] В варианте осуществления каждое субизображение, соответствующее независимому слою, может иметь свое уникальное значение РОС в пределах AU. Когда опорное изображение среди изображений, хранящихся в DPB, указывается с использованием элемента(ов) синтаксиса в структуре RPS или RPL, может использоваться значение(я) РОС каждого субизображения, соответствующего слою.

[401] В варианте осуществления, чтобы указать структуру предсказания (например, структуру межслойного предсказания), layer_id может не использоваться, и может использоваться значение РОС (например, значение дельты РОС).

[402] В варианте осуществления субизображение со значением РОС, равным N, соответствующее слою (или локальной области), может использоваться или не использоваться в качестве опорного изображения субизображения со значением РОС, равным N+K, соответствующего тому же слою (или той же локальной области) для предсказания с компенсацией движения. В различных примерах значение числа К может быть равно максимальному количеству слоев (например, независимых слоев), которое может быть идентично количеству субобластей.

[403] В варианте осуществления, показанном на фиг. 28 показывает расширенный случай с фиг. 27. Когда входное изображение разделено на множество (например, четыре) субобластей, каждая локальная область может быть кодирована с одним или более слоями. Обращаясь к фиг. 28, количество независимых слоев может быть равно количеству субобластей, и один или более уровней могут соответствовать субобласти. Таким образом, каждая субобласть может быть кодирована одним или более независимых слоев и нулем или более зависимых слоев.

[404] В варианте осуществления, показанном на фиг. 28, входное изображение может быть разделено на четыре субобласти. Правая верхняя субобласть может быть закодирована как два слоя (например, слой 1 и слой 4), и правая нижняя субобласть может быть закодирована как два слоя (например, слой 3 и слой 5).. На фиг. 28, слой 4 может ссылаться на слой 1 для предсказания с компенсацией движения, а слой 5 может ссылаться на слой 3 для компенсации движения.

[405] В варианте осуществления внутрипетлевая фильтрация (например, деблокирующая фильтрация, адаптивная внутрипетлевая фильтрация, изменение формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу слоя может быть (опционально) отключена.

[406] В варианте осуществления предсказание с компенсацией движения или внутриблочное копирование через границу слоя может быть (опционально) отключено.

[407] В варианте осуществления граничное заполнение для предсказания с компенсацией движения или внутрипетлевая фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли граничное заполнение или нет, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров (VPS, SPS, PPS или APS), заголовок группы слайсов или тайлов или сообщение SEI.

[408] В варианте осуществления информация компоновки субобласти(ей) (или субизображения(й)) может сигнализироваться в VPS или SPS. Фиг. 29А-29 В показывают пример элементов синтаксиса в VPS и SPS. Обращаясь к фиг. 29А, в VPS сигнализируется флаг (например, vps_sub_picture_dividing_flag). Флаг (например, vps_sub_picture_dividing_flag) может указывать, разделены ли входные изображения на несколько субобластей или нет.Когда значение флага (например, vps_sub_picture_dividing_flag) равно 0, входное изображение(я) в кодированной видеопоследовательности(ях), соответствующей текущей VPS, не может быть разделено на множество субобластей. Таким образом, размер входного изображения может быть равен размеру кодированного изображения (например, pic_width_in_luma_samples, pic_height_in_luma_samples), который сигнализируется в SPS. Когда значение флага (например, vps_sub_picture_dividing_flag) равно 1, входное изображение(я) может быть разделено на множество субобластей. Таким образом, в этом случае элементы синтаксиса vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples сигнализируются в VPS. Значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples могут быть равны ширине и высоте входного изображения(й) соответственно.

[409] В варианте осуществления значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples не могут использоваться для декодирования, но могут использоваться для компоновки и отображения.

[410] В варианте осуществления, когда значение флага (например, vps_sub_picture_dividing_flag) равно 1, элементы синтаксиса pic_offset_x и pic_offset_y могут сигнализироваться в SPS, что соответствует конкретному слою (слоям). Таким образом, размер кодированного изображения (например, pic_width_in_luma_samples, pic_height_in_luma_samples), сигнализируемый в SPS, может быть равен ширине и высоте субобласти, соответствующей конкретному слою. Позиция (например, элементы синтаксиса pic_offset_x и pic_offset_y) левого верхнего угла субобласти может сигнализироваться в SPS.

[411] В варианте осуществления информация о положении (например, pic_offset_x, pic_offset_y) левого верхнего угла субобласти не может использоваться для декодирования, но может использоваться для компоновки и отображения.

[412] В варианте осуществления информация о компоновке (например, размер и положение) всех или поднабора субобластей входного изображения (изображений), а также информация о зависимости между слоями может сигнализироваться в наборе параметров или сообщении SEI. На фиг. 30 показан пример элементов синтаксиса для указания информации о макете субобластей, зависимости между слоями и отношения между субобластью и одним или более слоев. Обращаясь к фиг. 30, элемент синтаксиса num_sub_region может указывать количество (прямоугольных) субобластей в текущей кодированной видеопоследовательности. Элемент синтаксиса num_layers может указывать количество слоев в текущей кодированной видеопоследовательности. Значение num_layers может быть равно или больше значения num_sub_region. Когда любая субобласть кодируется как один слой, значение num_layers может быть равно значению num_sub_region. Когда одна или более субобластей кодируются как множество слоев, значение num_layers может быть больше, чем значение num_sub_region. Элемент синтаксиса direct_dependency_flag [i] [j] может указывать зависимость от j-го слоя от i-го слоя. Элемент синтаксиса num_layers_for_region [i] может указывать количество слоев, связанных с i-й субобластью. Элемент синтаксиса sub_region_layer_id [i] [j] может указывать layer_id j-го слоя, связанного с i-й субобластью. Sub_region_offset_x [i] и sub_region_offset_у [i] могут указывать горизонтальное и вертикальное положение левого верхнего угла i-й субобласти, соответственно. Sub_region_width [i] и sub_region_height [i] могут указывать ширину и высоту i-й субобласти соответственно.

[413] В варианте осуществления один или более элементов синтаксиса, которые задают набор выходных слоев для указания одного или более слоев, которые должны выводиться с информацией PTL или без нее, могут сигнализироваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS APS или сообщение SEI.

[414] На фиг. 31 синтаксический элемент num_output_layer_sets, указывающий количество наборов выходных слоев (OLS) в кодированной видеопоследовательности, ссылающейся на VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев флаг (например, output_layer_flag) может сигнализироваться для каждого из выходных слоев.

[415] В варианте осуществления output_layer_flag [i], равный 1, может указывать, что i-й слой является выходным. Значение vps_output_layer_flag [i], равное 0, может указывать, что i-й слой не является выходным.

[416] В варианте осуществления один или более элементов синтаксиса, которые определяют информацию PTL для каждого набора выходных уровней, могут сигнализироваться в синтаксической структуре высокого уровня, например, в VPS, DPS, SPS, PPS, APS или сообщении SEI. Обращаясь к фиг. 31, элемент синтаксиса num_profile_tile_level, указывающий количество информации уровня яруса профиля на OLS в кодированной видеопоследовательности, ссылающейся на VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев набор элементов синтаксиса для информации PTL или индекс, указывающий конкретную информацию PTL среди записей в информации PTL, может сигнализироваться для каждого выходного слоя.

[417] В варианте осуществления profile_tier_level_idx [i] [j] указывает индекс в списке синтаксических структур profile_tier_level () в VPS синтаксической структуры profile_tier_level (), которая применяется к j-му слою i-го OLS.

[418] В варианте осуществления, как показано на фиг. 32, элементы синтаксиса num_profile_tile_level и/или num_output_layer_sets могут сигнализироваться, когда количество максимальных слоев больше 1 (vps_max_layers_minus1 >0).

[419] В вариантах осуществления, как показано на фиг. 32, элемент синтаксиса vps_output_layers_mode [i], указывающий режим сигнализации выходного слоя для i-го набора выходных слоев, может присутствовать в VPS.

[420] В том же варианте осуществления vps_output_layers_mode [i], равное 0, указывает, что только самый верхний слой выводится с i-м набором выходных слоев; vps_output_layer_mode [i], равное 1, указывает, что все слои выводятся с i-м набором выходных слоев; vps_output_layer_mode [i], равное 2, указывает, что выводимые слои - это слои с vps_output_layer_flag [i] [j], равным 1, с i-м набором выходных слоев. Могут быть зарезервированы другие значения.

[421] В варианте осуществления output_layer_flag [i] [j] может сигнализироваться или не сигнализироваться в зависимости от значения vps_output _layers_mode [i] для i-го набора выходных слоев.

[422] В варианте осуществления, как показано на фиг. 32, флаг vps_ptl_signal_flag [i] может присутствовать для i-го набора выходных слоев. В зависимости от значения vps_ptl_signal_flag [i] информация PTL для i-го набора выходных слоев может сигнализироваться или не сигнализироваться.

[423] В варианте осуществления согласно фиг. 33, число субизображений (например, max_subpics_minus1) в текущем CVS может сигнализироваться в синтаксической структуре высокого уровня, например, в VPS, DPS, SPS, PPS, APS или сообщении SEI.

[424] В варианте осуществления, как показано на фиг. 33, идентификатор субизображения, (например, sub_pic_id [i]) для i-го субизображения может сигнализироваться, когда число субизображений больше 1 (max_subpics_minus1 >0).

[425] В варианте осуществления один или более синтаксических элементов, указывающих идентификатор субизображения, принадлежащий каждому слою каждого набора выходных слоев, могут сигнализироваться в VPS. Обращаясь к фиг. 34, sub_pic_id_layer [i] [j] [k], который указывает k-e субизображение, присутствующее в j-м слое i-го набора выходных слоев. С помощью вышеизложенной информации декодер может определить, какое субизображение может быть декодировано и выведено для каждого слоя конкретного набора выходных слоев.

[426] В варианте осуществления заголовок изображения (РН) представляет собой синтаксическую структуру, содержащую элементы синтаксиса, которые применяются ко всем слайсам кодированного изображения. Заголовок слайса может быть частью кодированного слайса, содержащего элементы данных, относящиеся ко всем тайлам или строкам CTU в тайле, представленном в слайсе. Единица изображения (PU) - это набор единиц NAL, которые связаны друг с другом согласно заданному правилу классификации, являются последовательными в порядке декодирования и содержат, например, ровно одно кодированное изображение. PU может содержать заголовок изображения (РН) и один или более единиц NAL VCL, составляющих кодированное изображение.

[427] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка на SPS, он будет включен по меньшей мере в одну AU с TemporalId, равным 0, или предоставлен через внешние средства.

[428] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на SPC будет сделана ссылка, он будет включен по крайней мере в одну AU с TemporalId, равным 0, в CVS, который содержит один или более PPS, ссылающихся на SPS, или предоставлен через внешние средства.

[429] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на SPS будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые ссылаются на единицу NAL SPS в CVS, который содержит один или более PPS, ссылающихся на SPS, или предоставлен через внешние средства.

[430] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на SPS будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые ссылаются на единицу NAL SPS или предоставлены через внешние средства.

[431] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на SPS будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0 и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые ссылаются на единицу NAL SPS в CVS, который содержит один или более PPS, ссылающихся на SPS, или предоставлен через внешние средства.

[432] В варианте осуществления pps_seq_parameter_set_id указывает значение sps_seq_parameter_set_id для SPS, на который делается ссылка. В примере значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.

[433] В варианте осуществления все единицы NAL SPS с конкретным значением sps_seq_parameter_set_id в CVS могут иметь одинаковое содержимое.

[434] В варианте осуществления, независимо от значений nuh_layer_id, единицы NAL SPS могут совместно использовать одно и то же пространство значений sps_seq_parameter_set_id.

[435] В варианте осуществления значение nuh_layer_id единицы NAL SPS может быть равно наименьшему значению nuh_layer_id единиц NAL PPS, которые ссылаются на единицу NAL SPS.

[436] В варианте осуществления, когда на SPS с nuh_layer_id, равным m, делается ссылка одним или более PPS с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.

[437] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.

[438] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированного слайса), ссылающихся на PPS, или предоставлен через внешние средства.

[439] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), ссылающихся на PPS, или предоставлен через внешние средства.

[440] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), включенный по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), ссылающихся на PPS, или предоставлен через внешние средства.

[441] В варианте осуществления ph_pic_parameter_set_id в РН указывает значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.

[442] В варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.

[443] В варианте осуществления, независимо от значений nuh_layer_id, блоки NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.

[444] В варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL. Единица NAL относится к единице PPS NAL.

[445] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.

[446] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.

[447] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированного слайса), ссылающихся на PPS, или предоставлен через внешние средства.

[448] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), ссылающихся на PPS, или предоставлен через внешние средства.

[449] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на PPS будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), включенный по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), ссылающихся на PPS, или предоставлен через внешние средства.

[450] В варианте осуществления ph_pic_parameter_set_id в РН указывает значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.

[451] В варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.

[452] В варианте осуществления, независимо от значений nuh_layer_id, блоки NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.

[453] В варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.

[454] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.

[455] Выходной слой указывает слой из набора выходных слоев, который выводят.Набор выходных слоев (OLS) указывает набор слоев, включающий указанный набор слоев, где один или более слоев в наборе слоев указаны как выходные слои. Индекс уровня OLS - это индекс уровня в OLS. Индекс слоя OLS может указывать на список слоев в OLS.

[456] Субслой указывает на временный масштабируемый слой временного масштабируемого битового потока, включающего единицы NAL VCL с конкретным значением переменной TemporalId и связанных единиц NAL, не относящихся к VCL. Представление субслоя указывает поднабор битового потока, который включает в себя единицы NAL конкретного субслоя и нижних субслоев.

[457] RBSP VPS может быть доступен процессу декодирования до ссылки на RBSP VPS, включен по крайней мере в один AU с TemporalId, равным 0, или предоставлен через внешние средства. Все единицы NAL VPS с определенным значением vps_video_parameter_set_id в CVS могут иметь одинаковое содержимое.

[458] vps_video_parameter_set_id предоставляет идентификатор VPS для ссылки другими элементами синтаксиса. Значение vps_video_parameter_set_id может быть больше 0.

[459] vps_max_layers_minus1 плюс 1 указывает максимально допустимое количество слоев в каждой CVS, ссылающейся на VPS.

[460] vps_max_sublayers_minus1 плюс 1 указывает максимальное количество временных подуровней, которые могут присутствовать на уровне в каждой CVS, ссылающейся на VPS. Значение vps_max_sublayers_minus1 может находиться в диапазоне от 0 до 6 включительно.

[461] В примере флаг (например, vps_all_layers_same_num_sublayers_flag), равный 1, указывает, что количество временных субслоев одинаково для всех слоев в каждой CVS, ссылающейся на VPS. Флаг (например, vps_all_layers_same_num_sublayers_flag), равный 0, указывает, что уровни в каждой CVS, относящейся к VPS, могут иметь или не иметь одинаковое количество временных подуровней. При отсутствии, значение флага (например, vps_all_layers_same_num_sublayers_flag) принимается равным 1.

[462] Флаг (например, vps_all_independent_layers_flag), равный 1, указывает, что все слои в CVS независимо кодируются без использования межслойного предсказания. Флаг (например, vps_all_independent_layers_flag), равный 0, указывает, что один или более уровней в CVS могут использовать межслойное предсказание. Если он отсутствует, значение флага (например, vps_all_independent_layers_flag) выводится равным 1.

[463] vps_layer_id [i] может указывать значение nuh_layer_id i-го слоя. Для любых двух неотрицательных целочисленных значений тип значение vps_layer_id [m] может быть меньше vps_layer_id [n], когда m меньше n.

[464] vps_independent_layer_flag [i], равное 1, может указывать, что слой с индексом i не использует межслойное предсказание, vps_independent_layer_flag [i], равный 0, может указывать, что слой с индексом i может использовать межслойное предсказание, а элементы синтаксиса vps_direct_ref_layer_flag [i] [j] для j в диапазоне от 0 до i-1 включительно присутствуют в VPS. При отсутствии, значение vps_independent_layer_flag [i] выводится равным 1.

[465] vps_direct_ref_layer_flag [i] [j], равное 0, может указывать, что слой с индексом j не является слоем прямой опоры для слоя с индексом i. При этом vps_direct_ref_layer_flag [i] [j], равное 1, может указывать, что слой с индексом j является прямым опорным слоем для слоя с индексом i. Когда vps_direct_ref_layer_flag [i] [j] не присутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, он может быть выведено равным 0. Когда vps_independent_layer_flag [i] равно 0, может быть по меньшей мере одно значение j в диапазоне от 0 до i-1 включительно, так что значение vps_direct_ref_layer_flag [i] [j] равно 1.

[466] Переменные NumDirectRefLayers [i], DirectRefLayerldx [i] [d], NumRefLayers [i], RefLayerldx [i] [r] и LayerUsedAsRefLayerFlag [j] могут быть получены следующим образом:

[467] Переменная GeneralLayerldx [i], определяющая индекс слоя для слоя с nuh_layer_id, равным vps_layer_id [i], может быть получена следующим образом: for (i=0; i<=vps_max_layers_minus1; i++) GeneralLayerldx [vps_layer_id [i]]=i

[468] В примере, для любых двух разных значений i и j, оба находятся в диапазоне от 0 до vps_max_layers_minus1 включительно, когда флаг (например, dependencyFlag [i] [j]) равен 1. Требование соответствия битового потока может заключаться в том, что значения chroma_format_idc и bit_depth_minus8, которые применяются к i-му уровню, могут быть равны значениям chroma_format_idc и bit_depth_minus8, соответственно, которые применяются к j-му слою.

[469] max_tid_ref_present_flag [i], равный 1, может указывать, что присутствует элемент синтаксиса max_tid_il_ref_pics_plus1 [i]. При этом max_tid_ref_present_flag [i], равный 0, может указывать, что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] отсутствует.

[470] max_tid_il_ref_pics_plus1 [i], равное 0, может указывать, что межслойное предсказание не используется изображениями не-IRAP i-го слоя, max_tid_il_ref_pics_plus1 [i] больше 0 может указывать, что для декодирования изображений i-го слоя никакое изображение с TemporalId больше max_tid_il_ref_pics_plus1 [i] - 1 не используется в качестве ILRP. При отсутствии, значение max_tid_il_ref_pics_plus1 [i] принимается равным 7.

[471] Значение each_layer_is_an_ols_flag, равное 1, может указывать, что каждый OLS содержит только один слой, а каждый слой сам по себе в CVS, ссылающийся на VPS, является OLS с единственным включенным слоем, который является единственным выходным слоем. Значение each_layer_is_an_ols_flag, равное 0, может указывать, что OLS может содержать более одного слоя. Если vps_max_layers_minus1 равно 0, значение each_layer_is_an_ols_flag принимается равным 1. В противном случае, когда vps_all_independent_layers_flag равно 0, значение each_layer_is_an_ols_flag принимается равным 0.

[472] ols_mode_idc, равное 0, может указывать, что общее количество OLS, указанных VPS, равно vps_max_layers_minus1 +1, причем i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводится только слой самого высокого уровня в OLS.

[473] ols_mode_idc, равное 1, может указывать, что общее количество OLS, указанных VPS, равно vps_max_layers_minus1 +1, i-й OLS включает в себя слои с индексами слоев от 0 до i включительно. Для каждой OLS все слои OLS являются выходными.

[474] Значение ols_mode_idc, равное 2, может указывать, что общее количество OLS, указанных VPS, явно сигнализировано, и для каждого OLS выходные слои явно сигнализированы, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев OLS.

[475] Значение ols_mode_idc может находиться в диапазоне от 0 до 2 включительно. Значение 3 ols_mode_idc может быть зарезервировано для определенных технологий или стандартов кодирования видео, например, ITU-T или ISO/IEC.

[476] Когда флаг (например, vps_all_independent_layers_flag) равен 1, а флаг (например, each_layer_is_an_ols_flag) равен 0, значение ols_mode_idc выводится равным 2.

[477] num_output_layer_sets_minus1 плюс 1 может указывать общее количество OLS, указанных VPS, когда ols_mode_idc равно 2.

[478] Переменная TotalNumOlss, указывающая общее количество OLS, указанных VPS, может быть выведена следующим образом:

[479] ols_output_layer_flag [i] [j], равный 1, может указывать, что слой с nuh_layer_id, равным vps_layer_id [j], является выходным слоем i-го OLS, когда ols_mode_idc равен 2. ols_output_layer_flag [i] [j] равен 0 может указать, что слой с nuh_layer_id, равным vps_layer_id [j], не является выходным слоем i-го OLS, когда ols_mode_idc равно 2.

[480] Переменная NumOutputLayerslnOls [i], указывающая количество выходных слоев в i-м OLS, переменная NumSubLayerslnLayerlnOLS [i] [j], указывающая количество субслоев в j-м слое в i-м OLS, переменная OutputLayerldlnOls [i] [j], определяющая значение nuh_layer_id j-го выходного слоя в i-м OLS, и переменную LayerUsedAsOutputLayerFlag [k], определяющую, используется ли k-й слой в качестве выходного слоя по меньшей мере в одном OLS, может быть получено следующим образом:

[481] Для каждого значения i в диапазоне от 0 до vps_max_layers_minus1 включительно значения LayerUsedAsRefLayerFlag [i] и LayerUsedAsOutputLayerFlag [i] не могут быть равными 0 одновременно. Таким образом, может не быть слоя, который не является ни выходным слоем по меньшей мере одного OLS, ни прямым опорным слоем любого другого слоя.

[482] Для каждой OLS может быть по меньшей мере один слой, который является выходным слоем. Таким образом, для любого значения i в диапазоне от 0 до TotalNumOlss - 1 включительно значение NumOutputLayerslnOls [i] может быть больше или равно 1.

[483] Можно получить переменную NumLayerslnOls [i], определяющую количество слоев в i-м OLS, и переменную LayerldlnOls [i] [j], определяющую значение nuh_layer_id j-го слоя в i-м OLS следующим образом:

[484] Переменная OlsLayerldx [i] [j], определяющая индекс слоя OLS для слоя с nuh_layer_id, равным LayerldlnOls [i] [j], может быть получена следующим образом:

[485] Самый нижний слой в каждой OLS может быть независимым слоем. Таким образом, для каждого i в диапазоне от 0 до TotalNumOlss - 1 включительно значение vps_independent_layer_flag [GeneralLayerldx [LayerldlnOls [i] [0]]] может быть равно 1.

[486] Каждый слой может быть включен по крайней мере в один OLS, указанный VPS. Таким образом, для каждого слоя с конкретным значением nuh_layer_id nuhLayerld, равным одному из vps_layer_id [k] для k в диапазоне от 0 до vps_max_layers_minus1 включительно, может быть по крайней мере одна пара значений i и j, где i находится в диапазон от 0 до TotalNumOlss - 1 включительно, a j находится в диапазоне NumLayerslnOls [i] - 1 включительно, так что значение LayerldlnOls [i] [j] равно nuhLayerld.

[487] В варианте осуществления процесс декодирования для текущего изображения CurrPic работает следующим образом:

- PictureOutputFlag устанавливается следующим образом:

- Если выполняется одно из следующих условий, PictureOutputFlag устанавливается равным 0:

- текущее изображение является RASL изображением, и значение NoOutputBeforeRecoveryFlag связанного изображения IRAP равно 1.

- gdr_enabled_flag равен 1, а текущее изображение - это изображение GDR с NoOutputBeforeRecoveryFlag, равным 1.

- элемент синтаксиса gdr_enabled_flag равен 1, текущее изображение связано с изображением GDR с NoOutputBeforeRecoveryFlag, равным 1, и PicOrderCntVal текущего изображения меньше RpPicOrderCntVal связанного изображения GDR;

- sps_video_parameter_set_id больше 0, ols_mode_idc равно 0, и текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям:

- PicA имеет PictureOutputFlag, равный 1.

- PicA nuh_layer_id имеет nuhLid больше, чем у текущего изображения.

- PicA принадлежит к выходному слою OLS (т.е. OutputLayerldlnOls [TargetOlsldx] [0] равен nuhLid).

- sps_video_parameter_set_id больше 0, ols_mode_idc равно 2 и ols_output_layer_flag [TargetOlsldx] [GeneralLayerldx [nuh_layer_id]] равен 0.

- В противном случае PictureOutputFlag устанавливается равным pic_output_flag.

[488] После того, как все слайсы текущего изображения декодированы, текущее декодированное изображение помечается как «используется для краткосрочной ссылки», и каждая запись ILRP в RefPicList [0] или RefPicList [1] помечается как «используется для краткосрочной ссылки».

[489] В вариантах осуществления, когда каждый слой является набором выходных слоев, PictureOutputFlag установливается равным pic_output_flag, независимо от значения ols_mode_idc.

[490] В варианте осуществления PictureOutputFlag устанавливается равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равно 0, ols_mode_idc равно 0 и текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям: PicA имеет PictureOutputFlag, равный 1, PicA имеет nuh_layer_id nuhLid больше, чем у текущего изображения, и PicA принадлежит к выходному слою OLS (т.е. OutputLayerldlnOls [TargetOlsldx] [0] равен nuhLid).

[491] В варианте осуществления PictureOutputFlag устанавливается равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равен 0, ols_mode_idc равен 2, a ols_output_layer_flag [TargetOlsldx][GeneralLayerldx[nuh_layer_id]] равен 0.

[492] На фиг. 35 показан пример синтаксической структуры RBSP VPS. Структура синтаксиса, показанная на фиг. 35 аналогична структуре синтаксиса, показанной на фиг. 34, поэтому подробные описания опущены для краткости.

[493] Описанные выше методы (например, методы сигнализации флагов ограничения, параметров адаптивного разрешения и/или тому подобное) могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг. 36 показана компьютерная система (3600), подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.

[494] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т.п., одним или более центральными процессорами компьютера (CPU), графическими процессорами (GPU) и т.п.

[495] Инструкции могут исполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.

[496] Компоненты, показанные на фиг. 36 для компьютерной системы (3600), являются примерными по своей сущности и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего раскрытия. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (3600).

[497] Компьютерная система (3600) может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).

[498] Устройства ввода с человеко-машинным интерфейсом могут включать в себя одно или более из следующих элементов (только по одному из каждого изображено): клавиатура (3601), мышь (3602), трекпад (3603), сенсорный экран (3610), управляющая перчатка (не показана), джойстик (3605), микрофон (3606), сканер (3607), камера (3608).

[499] Компьютерная система (3600) также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана (3610), управляющей перчатки (не показана) или джойстика (3605), но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики (3609), наушники (не показаны)), устройства вывода изображения (например, экраны (3610), включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).

[500] Компьютерная система (3600) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (3620) с CD/DVD или подобными носителями (3621), флэш-накопитель (3622), съемный жесткий диск или твердотельный накопитель (3623), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.

[501] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.

[502] Компьютерная система (3600) также может включать в себя интерфейс к одной или более коммуникационным сетям. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное телевещание, автомобильное и промышленное оборудование, включая CAN-шину и т.д. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры, которые подключены к определенным портам данных общего назначения или периферийным шинам (3649) (например, к портам USB компьютерной системы (3600)); другие обычно интегрированы в ядро компьютерной системы (3600) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (3600) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов, как описано выше.

[503] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру (3640) компьютерной системы (3600).

[504] Ядро (3640) может включать в себя один или более центральных процессоров (CPU) (3641), графических процессоров (GPU) (3642), специализированных программируемых процессоров в виде программируемых вентильных областей (FPGA) (3643), аппаратного обеспечения (3644), графических ускорителей (3650) и т.д. Эти устройства, наряду с постоянной памятью (ROM) (3645), памятью с произвольным доступом (3646), внутренними запоминающими устройствами, такими как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и т.п.(3647), могут быть подключены через системную шину (3648). В некоторых компьютерных системах системная шина (3648) может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине (3648) ядра, либо через периферийную шину (3649). Например, экран (3610) может быть подключен к графическому адаптеру (3650). Архитектуры для периферийной шины включают PCI, USB и т.п.

[505] CPU (3641), GPU (3642), FGPA (3643) и ускорители (3644) могут исполнять определенные инструкции, которые в сочетании могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (3645) или RAM (3646). Переходные данные также могут храниться в RAM (3646), тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости (3647). Быстрое хранение и извлечение на любое из запоминающих устройств могут быть включены за счет использования кэш-памяти, которая может быть тесно связана с одним или более CPU (3641), GPU (3642), запоминающим устройством (3647), ROM (3645), RAM (3646) и тому подобное.

[506] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.

[507] В качестве примера, но не ограничения, компьютерная система, имеющая архитектуру (3600) и, в частности, ядро (3640), может обеспечивать функциональность за счет процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т.п.), исполняющего программное обеспечение, воплощенное на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенным хранилищем ядра (3640), которые имеют невременной характер, например, внутренним ЗУ (3647) большой емкости ядра или ROM (3645). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (3640). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (3640) и, в частности, процессоры в нем (включая CPU, GPU, FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (3646) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель (3644)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (IC)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее изобретение включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.

Приложение А: Сокращения

JEM: объединенная исследовательская модель

VVC: универсальное кодирование видео

BMS: набор тестов

MV: вектор движения

HEVC: высокоэффективное видеокодирование

SEI: дополнительная расширенная информация

VUI: информация о свойствах видео

GOPs: группы изображений

TUs: единицы преобразования,

PUs: единицы предсказания

CTUs: единицы дерева кодирования

CTBs: блоки дерева кодирования

PBs: блоки предсказания

HRD: гипотетический эталонный декодер

SNR: соотношение сигнал-шум

CPUs (ЦП): центральные процессоры

GPUs (ГП): графические процессоры

CRT (ЭЛТ): электронно-лучевая трубка

LCD (ЖКД): жидкокристаллический дисплей

OLED: органический светоизлучающий диод

CD: компакт-диск

DVD: Цифровой видеодиск

ROM (ПЗУ): постоянное запоминающее устройство

RAM (ОЗУ): оперативное запоминающее устройство

ASIC: специализированная интегральная схема

PLD: программируемое логическое устройство

LAN: локальная сеть

GSM: глобальная система мобильной связи

LTE: долгосрочное развитие

CANBus (CAN-шина): шина локальной сети контроллера

USB: универсальная последовательная шина

PCI: соединение периферийных компонентов

FPGA (ППВМ): программируемые пользователем вентильные матрицы

SSD: твердотельный накопитель

IC: интегральная схема

CU: единица кодирования

[508] Хотя это описание раскрывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем изобретения. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в рамках его сущности и объема.

Похожие патенты RU2808148C1

название год авторы номер документа
СПОСОБЫ СИГНАЛИЗИРОВАНИЯ КОМБИНАЦИИ ПЕРЕДИСКРЕТИЗАЦИИ ОПОРНОГО ИЗОБРАЖЕНИЯ И ПРОСТРАНСТВЕННОЙ МАСШТАБИРУЕМОСТИ 2021
  • Чой Беондоо
  • Венгер Штефан
  • Лю Шань
RU2810966C1
СПОСОБ СИГНАЛИЗИРОВАНИЯ РАЗДЕЛЕНИЯ СУБИЗОБРАЖЕНИЙ В КОДИРОВАННОМ ПОТОКЕ ВИДЕО 2021
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2806281C1
СПОСОБ ВЫВОДА НАБОРА СЛОЕВ ДЛЯ МНОГОСЛОЙНОГО ВИДЕОПОТОКА 2020
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2807213C1
СПОСОБ ВЫВЕДЕНИЯ НА ОСНОВЕ НАБОРА ВЫХОДНЫХ СЛОЕВ ПО СУБСЛОЮ 2021
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2809562C1
СПОСОБ ИНДИКАЦИИ ЧИСЛА ПОДУРОВНЕЙ В МНОГОУРОВНЕВОМ ВИДЕОПОТОКЕ 2020
  • Чой Бёнду
  • Лю Шань
  • Венгер Стефан
RU2783961C1
СПОСОБ СИГНАЛИЗАЦИИ РАЗДЕЛЕНИЯ ПРЯМОУГОЛЬНОГО СЛАЙСА В КОДИРОВАННОМ ВИДЕОПОТОКЕ 2021
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2814858C1
СПОСОБ СИГНАЛИЗАЦИИ НАБОРА ВЫХОДНЫХ СЛОЕВ С СУБИЗОБРАЖЕНИЕМ 2020
  • Чой Беондоо
  • Венгер Штефан
  • Лю Шань
RU2799572C1
СПОСОБ ВЫРАВНИВАНИЯ ПО СЛОЯМ В КОДИРОВАННОМ ВИДЕОПОТОКЕ 2020
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2803890C1
СПОСОБ ОГРАНИЧЕНИЯ ССЫЛКИ НА НАБОР ПАРАМЕТРОВ В КОДИРОВАННОМ ПОТОКЕ ВИДЕО 2020
  • Чой Бёнду
  • Лю Шань
  • Венгер Стефан
RU2787213C1
Техника извлечения битового потока субизображения из потока кодированных видеоданных 2021
  • Чой Бёнду
  • Венгер Стефан
  • Лю Шань
RU2785689C1

Иллюстрации к изобретению RU 2 808 148 C1

Реферат патента 2023 года СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Получают флаг регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализируемой в кодированном битовом потоке видео. Каждый флаг регулирования указывает, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения, при этом информация ограничения предназначена для поднабора блоков кодирования в кодированном битовом потоке видео. Определяют, присутствует ли группа информации ограничения флага регулирования в информации ограничения, причем группа информации ограничения флага регулирования включает в себя по меньшей мере один флаг ограничения для поднабора блоков кодирования. Определяют информацию предсказания для поднабора блоков кодирования на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения. Восстанавливают поднабор блоков кодирования на основе информации предсказания. 3 н. и 17 з.п. ф-лы, 42 ил.

Формула изобретения RU 2 808 148 C1

1. Способ декодирования видео в декодере, содержащий:

получение флага регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализируемой в кодированном битовом потоке видео, причем каждый флаг регулирования указывает, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения, при этом информация ограничения предназначена для поднабора блоков кодирования в кодированном битовом потоке видео;

определение, на основе флага регулирования группы информации ограничения из по меньшей мере одной группы информации ограничения, присутствует ли группа информации ограничения флага регулирования в информации ограничения, причем группа информации ограничения флага регулирования включает в себя по меньшей мере один флаг ограничения для поднабора блоков кодирования;

определение информации предсказания для поднабора блоков кодирования на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения; и

восстановление поднабора блоков кодирования на основе информации предсказания.

2. Способ по п. 1, в котором

определяют, что группа информации ограничения флага регулирования присутствует в информации ограничения; и

определение информации предсказания включает в себя определение информации предсказания для поднабора блоков кодирования на основе по меньшей мере одного флага ограничения в группе информации ограничения флага регулирования.

3. Способ по п. 1, в котором

определяют, что группа информации ограничения флага регулирования не должна присутствовать в информации ограничения.

4. Способ по п. 1, в котором каждый флаг регулирования указывает, что группа информации ограничения, соответствующая соответствующему флагу регулирования, не присутствует в информации ограничения, и в информации ограничения отсутствуют флаги ограничения.

5. Способ по п. 1, в котором информация ограничения присутствует в синтаксисе высокого уровня по меньшей мере для одного изображения, и поднабор блоков кодирования включает в себя блоки кодирования по меньшей мере в одном изображении.

6. Способ по п. 1, в котором

одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео,

множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения сигнализируется в соответствии с предопределенным порядком, и

определение информации предсказания дополнительно включает в себя выполнение декодирования длин серий на множестве флагов ограничения; и определение информации предсказания для поднабора блоков кодирования на основе множества флагов ограничения.

7. Способ по п. 2, в котором

по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования включает в себя множество флагов ограничения, сигнализируемых в соответствии с предопределенным порядком, и

определение информации предсказания дополнительно включает в себя выполнение декодирования длин серий на множестве флагов ограничения.

8. Способ по п. 2, в котором

смещение информации ограничения и длина информации ограничения присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования присутствует в информации ограничения.

9. Способ по п. 1, в котором

одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео;

для каждой из одной или более из по меньшей мере одной группы информации ограничения смещение информации ограничения и длина информации ограничения присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в соответствующей одной из одной или более из по меньшей мере одной группы информации ограничения присутствует в информации ограничения; и

число смещений информации ограничения сигнализируется в кодированном битовом потоке видео.

10. Способ по п. 1, в котором

одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео,

один или более элементов синтаксиса в информации ограничения выровнены по байтам, при этом один или более элементов синтаксиса включают в себя флаг регулирования для каждой из по меньшей мере одной группы информации ограничения и множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения.

11. Устройство декодирования видео, содержащее схему обработки, конфигурированную для:

получения флага регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализируемой в кодированном битовом потоке видео, причем каждый флаг регулирования указывает, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения, при этом информация ограничения предназначена для поднабора блоков кодирования в кодированном битовом потоке видео;

определения, на основе флага регулирования группы информации ограничения из по меньшей мере одной группы информации ограничения, присутствует ли группа информации ограничения флага регулирования в информации ограничения, причем группа информации ограничения флага регулирования включает в себя по меньшей мере один флаг ограничения для поднабора блоков кодирования;

определения информации предсказания для поднабора блоков кодирования на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения; и

восстановления поднабора блоков кодирования на основе информации предсказания.

12. Устройство по п. 11, в котором

определяется, что группа информации ограничения флага регулирования присутствует в информации ограничения; и

схема обработки конфигурирована для определения информации предсказания для поднабора блоков кодирования на основе по меньшей мере одного флага ограничения в группе информации ограничения флага регулирования.

13. Устройство по п. 11, в котором

определяется, что группа информации ограничения флага регулирования не должна присутствовать в информации ограничения.

14. Устройство по п. 11, в котором каждый флаг регулирования указывает, что группа информации ограничения, соответствующая соответствующему флагу регулирования, не присутствует в информации ограничения, и в информации ограничения отсутствуют флаги ограничения.

15. Устройство по п. 11, в котором информация ограничения присутствует в синтаксисе высокого уровня по меньшей мере для одного изображения, и поднабор блоков кодирования включает в себя блоки кодирования по меньшей мере в одном изображении.

16. Устройство по п. 11, в котором

одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео,

множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения сигнализируется в соответствии с предопределенным порядком, и

схема обработки конфигурирована для:

выполнения декодирования длин серий на множестве флагов ограничения; и определения информации предсказания для поднабора блоков кодирования на основе множества флагов ограничения.

17. Устройство по п. 12, в котором

по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования включает в себя множество флагов ограничения, сигнализируемых в соответствии с предопределенным порядком, и

схема обработки конфигурирована для выполнения декодирования длин серий на множестве флагов ограничения.

18. Устройство по п. 12, в котором

смещение информации ограничения и длина информации ограничения присутствуют в информации ограничения, указывающей, что по меньшей мере один флаг ограничения в группе информации ограничения флага регулирования присутствует в информации ограничения.

19. Устройство по п. 11, в котором

одна или более из по меньшей мере одной группы информации ограничения присутствует в кодированном битовом потоке видео,

один или более элементов синтаксиса в информации ограничения выровнены по байтам, при этом один или более элементов синтаксиса включают в себя флаг регулирования для каждой из по меньшей мере одной группы информации ограничения и множество флагов ограничения в одной или более из по меньшей мере одной группы информации ограничения.

20. Невременный машиночитаемый носитель данных, хранящий инструкции, исполняемые по меньшей мере одним процессором для выполнения:

получения флага регулирования для каждой из по меньшей мере одной группы информации ограничения в информации ограничения, сигнализируемой в кодированном битовом потоке видео, причем каждый флаг регулирования указывает, присутствует ли группа информации ограничения из по меньшей мере одной группы информации ограничения, соответствующей соответствующему флагу регулирования, в информации ограничения, при этом информация ограничения предназначена для поднабора блоков кодирования в кодированном битовом потоке видео;

определения, на основе флага регулирования группы информации ограничения из по меньшей мере одной группы информации ограничения, присутствует ли группа информации ограничения флага регулирования в информации ограничения, причем группа информации ограничения флага регулирования включает в себя по меньшей мере один флаг ограничения для поднабора блоков кодирования;

определения информации предсказания для поднабора блоков кодирования на основе того, присутствует ли группа информации ограничения флага регулирования в информации ограничения; и

восстановления поднабора блоков кодирования на основе информации предсказания.

Документы, цитированные в отчете о поиске Патент 2023 года RU2808148C1

Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
Токарный резец 1924
  • Г. Клопшток
SU2016A1
ИНИЦИАЛИЗАТОР ПРЕДСКАЗАТЕЛЯ ПАЛИТРЫ ПРИ КОДИРОВАНИИ ИЛИ ДЕКОДИРОВАНИИ САМОСТОЯТЕЛЬНЫХ КОДИРУЕМЫХ СТРУКТУР 2016
  • Жиске Кристоф
  • Ларош Гийом
  • Онно Патрис
RU2686559C2
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1

RU 2 808 148 C1

Авторы

Чой Беондоо

Лю Шань

Венгер Штефан

Даты

2023-11-24Публикация

2021-04-02Подача