СИГНАЛИЗАЦИЯ ОБЩЕЙ ИНФОРМАЦИИ ОБ ОГРАНИЧЕНИЯХ Российский патент 2024 года по МПК H04N19/70 

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

Область техники, к которой относится изобретение

Данный патентный документ относится к кодированию и декодированию изображений и видео.

Уровень техники

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

Раскрытие сущности изобретения

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

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

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

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

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

В еще одном примерном аспекте раскрыт другой способ обработки видео. Способ включает в себя выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксис выравнивания байтов исключен из синтаксической структуры общей информации ограничения (GCI), которая присутствует в синтаксической структуре профиль-ярус-уровень, при этом синтаксис выравнивания байтов указывает, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам, от позиции первого бита в битовом потоке, а синтаксическая структура GCI содержит синтаксический элемент, относящийся к GCI.

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

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

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

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

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

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

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

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

Эти и другие признаки описаны в настоящем документе.

Краткое описание чертежей

Фиг. 1 – блок-схема, иллюстрирующая примерную систему обработки видео, в которой могут быть реализованы различные способы, раскрытые в данном документе.

Фиг. 2 – блок-схема примерной аппаратной платформы, используемой для обработки видео.

Фиг. 3 – блок-схема, иллюстрирующая примерную систему кодирования видео, которая может реализовать некоторые варианты осуществления настоящего раскрытия.

Фиг. 4 – блок-схема, иллюстрирующая пример кодера, который может реализовать некоторые варианты осуществления настоящего раскрытия.

Фиг. 5 – блок-схема, иллюстрирующая пример декодера, который может реализовать некоторые варианты осуществления настоящего раскрытия.

Фиг. 6-15 – блок-схемы последовательностей операций для примера способов обработки видео.

Осуществление изобретения

Заголовки разделов используются в настоящем документе для простоты понимания и не ограничивают применимость технологий и вариантов осуществления, раскрытых в каждом разделе, только этим разделом. Кроме того, терминология H.266 используется в некоторых описаниях только для простоты понимания, а не для ограничения объема раскрытых технологий. Таким образом, технологии, описанные в данном документе, также применимы к другим протоколам и исполнениям видеокодеков.

1. Введение

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

2. Сокращения

APS – набор параметров адаптации

AU – единица доступа

AUD – разделитель единиц доступа

AVC – усовершенствованное кодирование видео

CLVS – послойно кодированная видеопоследовательность

CPB – буфер кодированных изображений

CRA – чистый произвольный доступ

CTU – единица дерева кодирования

CVS – кодированная видеопоследовательность

DPB – буфер декодированного изображений

DPS – набор параметров декодирования

EOB – конец битового потока

EOS – конец последовательности

GCI – общая информация об ограничениях

GDR – постепенное обновление при декодировании

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

HRD – гипотетический опорный декодер

IDR – мгновенное обновление декодирования

JEM – модель совместного исследования

MCTS – набор файлов с ограничением по движению

NAL – слой сетевой абстракции

OLS – набор слоев вывода

PH – заголовок изображения

PPS – набор параметров изображения

PTL – профиль, ярус и уровень

PU – единица изображения

RRP – передискретизация опорного изображения

RBSP – полезная нагрузка последовательности необработанных байтов

SEI – дополнительная информация улучшения

SH – заголовок слайса

SPS – набор параметров последовательности

SVC – масштабируемое кодирование видео

VCL – слой кодирования видео

VPS – набор параметров видео

VTM – тестовая модель VVC

VUI – информация удобства и простоты использования видео

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

3. Предварительное обсуждение

Стандарты кодирования видео развивались в основном благодаря разработке хорошо известных стандартов ITU-T и ISO/IEC. ITU-T выпустил H.261 и H.263, ISO/IEC выпустил MPEG-1 и MPEG-4 Visual, и две организации совместно выпустили стандарты H.262/MPEG-2 Video и усовершенствованное кодирование видео (AVC) H.264/MPEG-4 Advanced. Начиная с H.262, стандарты кодирования видео основаны на структуре гибридного кодирования видео, в которой используются временное предсказание плюс кодирование с преобразованием. Для исследования будущих технологий кодирования видео, выходящих за рамки HEVC, в 2015 году VCEG и MPEG создали объединенную группу по исследованию видео (JVET). С тех пор JVET были одобрены многие новые способы и добавлены в справочное программное обеспечение под названием «модель совместного исследования (JEM)». Конференции JVET проводится на регулярной основе один раз в квартал, и новый стандарт кодирования нацелен на снижение скорости передачи данных на 50% по сравнению с HEVC. Новый стандарт кодирования видео был официально назван универсальным кодированием видео (VVC) на конференции JVET в апреле 2018 года, и тогда же была выпущена первая версия тестовой модели VVC (VTM). Так как предпринимаются постоянные усилия по стандартизации VVC, на каждой конференции JVET принимаются новые технологии кодирования для стандарта VVC. Затем после каждой конференции обновляются рабочий проект VVC и тестовая модель VTM. В настоящее время проект VVC нацелен на техническую доработку (FDIS) на конференции в июле 2020 года.

3.1. Изменение разрешения изображения в последовательности

В AVC и HEVC пространственное разрешение изображений не может изменяться до тех пор, пока не начнется новая последовательность, использующая новый SPS, с изображением IRAP. VVC позволяет изменять разрешение изображения в пределах последовательности в позиции без кодирования изображения IRAP, которое всегда внутрикадрово кодируется. Эту функцию иногда называют передискретизацией опорного изображения (RPR), так как эта функция требует передискретизации опорного изображения, используемого для межкадрового предсказания, когда это опорное изображение имеет разрешение, отличное от разрешения текущего декодируемого изображения.

Коэффициент масштабирования ограничивается значением, большим или равным 1/2 (2-кратная понижающая дискретизация от опорного изображения до текущего изображения) и меньшим или равным 8 (8-кратная повышающая дискретизация). Три набора фильтров передискретизации с разными граничными частотами предназначены для обработки различных коэффициентов масштабирования между опорным изображением и текущим изображением. Три набора фильтров передискретизации применяются, соответственно, для коэффициента масштабирования в диапазоне от 1/2 до 1/1,75, от 1/1,75 до 1/1,25 и от 1/1,25 до 8. Каждый набор фильтров передискретизации имеет 16 фаз для яркости и 32 фазы для цветности, что аналогично случаю интерполяционных фильтров компенсации движения. Фактически нормальный процесс интерполяции MC является частным случаем процесса передискретизации с коэффициентом масштабирования от 1/1,25 до 8. Коэффициенты масштабирования по горизонтали и вертикали определяются на основе ширины и высоты изображения и смещений масштабирования влево, вправо, вверх и вниз, заданных для опорного изображения и текущего изображения.

Другие аспекты дизайна VVC для поддержки этой функции, которые отличаются от HEVC, включают в себя: 1) разрешение изображения и соответствующее окно соответствия сигнализируются в PPS, а не в SPS, тогда как в SPS сигнализируется максимальное разрешение изображения; 2) для однослойного битового потока каждое хранилище изображений (слот в DPB для хранения одного декодированного изображения) занимает размер буфера, необходимый для хранения декодированного изображения с максимальным разрешением изображения.

3.2. Масштабируемое кодирование видео (SVC) в общем и в VVC

Масштабируемое кодирование видео (SVC, иногда также называемое просто масштабируемостью при кодировании видео) относится к кодированию видео, в котором используются базовый слой (BL), иногда называемый опорным слоем (RL), и один или более масштабируемых улучшающих слоев (EL). В SVC базовый слой может передавать видеоданные с базовым уровнем качества. Один или более улучшающих слоев могут переносить дополнительные видеоданные для поддержки, например, более высоких пространственно-временных уровней и/или уровней отношений сигнал/шум (SNR). Улучшающие слои могут быть определены относительно ранее кодированного слоя. Например, нижний слой может служить в качестве BL, и верхний слой может служить в качестве EL. Средние слои могут служить в качестве либо EL, либо RL, либо обоих. Например, средний слой (например, слой, который не является ни нижним слоем, ни верхним слоем) может быть EL для слоев ниже среднего слоя, такого как базовый слой, или любых промежуточных улучшающих слоев, и в то же время может служить в качестве RL для одного или более улучшающих слоев выше среднего слоя. Аналогичным образом, в Multiview или 3D расширении стандарта HEVC может быть несколько видов, и информация одного вида может использоваться для кодирования (например, кодирования или декодирования) информации другого вида (например, для оценки движения, предсказания вектора движения и/или другой избыточности).

В SVC параметры, используемые кодером или декодером, группируются в наборы параметров на основе уровня кодирования (например, уровня видео, уровня последовательности, уровня изображения, уровня слайса и т.д.), в котором они могут использоваться. Например, параметры, которые могут использоваться одной или более кодированными видеопоследовательностями разных слоев в битовом потоке, могут быть включены в набор параметров видео (VPS), и параметры, которые используются одним или более изображениями в кодированной видеопоследовательности, могут быть включены в набор параметров в пределах последовательности (SPS). Точно так же параметры, которые используются одним или более слайсами в изображении, могут быть включены в набор параметров изображения (PPS), и другие параметры, характерные для одного слайса, могут быть включены в заголовок слайса. Аналогичным образом, указатель того, какой(ие) набор(ы) параметров используется(ются) в конкретном слое в данный момент времени, может предоставляться на различных уровнях кодирования.

Благодаря поддержке передискретизации опорного изображения (RPR) в VVC, поддержка битового потока, содержащего несколько слоев, например, два слоя с разрешениями SD и HD в VVC, может быть разработана без необходимости какого-либо дополнительного средства кодирования на уровне обработки сигнала, так как повышающая дискретизация, необходимая для поддержки пространственной масштабируемости, может просто использовать фильтр повышающей дискретизации RPR. Тем не менее, для поддержки масштабируемости необходимы изменения синтаксиса высокого уровня (по сравнению с отсутствием поддержки масштабируемости). Поддержка масштабируемости указана в VVC версии 1. В отличие от поддержки масштабируемости в любых более ранних стандартах кодирования видео, в том числе в расширениях AVC и HEVC, дизайн масштабируемости VVC максимально оптимизирован для однослойных декодеров. Возможности декодирования для многослойных битовых потоков определяются таким образом, как если бы в битовом потоке был только один слой. Например, возможность декодирования, такая как размер DPB, определяется таким образом, который не зависит от количества слоев в битовом потоке, подлежащем декодированию. По существу декодер, предназначенный для однослойных битовых потоков, не требует особых изменений, чтобы иметь возможность декодировать многослойные битовые потоки. По сравнению с дизайнами многослойных расширений AVC и HEVC аспекты HLS были значительно упрощены за счет потери некоторых гибких возможностей. Например, требуется, чтобы AU IRAP содержала изображение для каждого из слоев, присутствующих в CVS.

3.3. Наборы параметров

AVC, HEVC и VVC устанавливают наборы параметров. Типы наборов параметров включают в себя SPS, PPS, APS и VPS. SPS и PPS поддерживаются во всех форматах AVC, HEVC и VVC. VPS был представлен после HEVC и включен как в HEVC, так и в VVC. APS не был включен в AVC или HEVC, но включен в последний проект текста VVC.

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

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

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

3.4. Общие синтаксис и семантика профиля, яруса и уровня

В последнем проекте текста VVC общие синтаксис и семантика профиля, яруса и уровня представлены следующим образом:

Синтаксическая структура profile_tier_level( ) предоставляет информацию уровня и при необходимости информацию профиля, яруса, подпрофиля и общих ограничений.

Когда синтаксическая структура profile_tier_level( ) включена в VPS, OlsInScope является одним или более OLS, заданными VPS. Когда синтаксическая структура profile_tier_level( ) включена в SPS, OlsInScope представляет собой OLS, которая включает в себя только слой, который является самым нижним слоем среди слоев, относящихся к SPS, и этот самый нижний слой является независимым слоем.

Параметр general_profile_idc указывает профиль, которому соответствует OlsInScope, как указано в приложении A. Битовые потоки не должны содержать значения general_profile_idc, отличные от указанных в приложении A. Другие значения general_profile_idc зарезервированы для будущего использования ITU-T | ISO/IEC.

Параметр general_tier_flag указывает контекст яруса для интерпретации general_level_idc, как указано в приложении A.

Параметр general_level_idc указывает уровень, которому соответствует OlsInScope, как указано в приложении A. Битовые потоки не должны содержать значений general_level_idc, отличных от указанных в приложении A. Другие значения general_level_idc зарезервированы для будущего использования ITU-T | ISO/IEC.

Примечание 1. Более высокое значение general_level_idc указывает на более высокий уровень. Максимальный уровень, просигнализированный в блоке NAL DCI для OlsInScope, может быть выше, но не может быть ниже уровня, просигнализированного в SPS для CLVS, содержащейся в OlsInScope.

Примечание 2. Когда OlsInScope соответствует нескольким профилям, general_profile_idc должен указывать профиль, который обеспечивает предпочтительный результат декодирования или предпочтительную идентификацию битового потока, как определено кодером (способом, не указанным в настоящей спецификации).

Примечание 3. Когда CVS OlsInScope соответствуют разным профилям, несколько синтаксических структур profile_tier_level( ) могут быть включены в блок NAL DCI, так что для каждой CVS OlsInScope имеется по меньшей мере один набор указанных профиля, яруса и уровня для декодера, способного декодировать CVS.

Параметр ptl_num_sub_profiles указывает количество синтаксических элементов general_sub_profile_idc[ i ].

Параметр general_sub_profile_idc[ i ] указывает индикатор i-ых метаданных с возможностью взаимодействия, зарегистрированных в соответствии с рекомендациями Rec. ITU-T T.35, содержание которых не указано в данной спецификации.

Значение ptl_sublayer_level_present_flag [ i ], равное 1, указывает то, что информация уровня присутствует в синтаксической структуре profile_tier_level( ) для представления подслоя со значением TemporalId, равным i. Значение ptl_sublayer_level_present_flag[ i ], равное 0, указывает то, что информация уровня отсутствует в синтаксической структуре profile_tier_level( ) для представления подслоя с TemporalId, равным i.

Значение ptl_alignment_zero_bits должно быть равно 0.

Семантика синтаксического элемента sublayer_level_idc[ i ], за исключением спецификации вывода отсутствующих значений, такая же, как у синтаксического элемента general_level_idc, но применяется к представлению подслоя с TemporalId, равным i.

Если она отсутствует, значение sublayer_level_idc[ i ] получается следующим образом:

– значение sublayer_level_idc[ maxNumSubLayersMinus1 ] получается равным значению general_level_idc с той же самой структурой, как у profile_tier_level( ),

– Для i от maxNumSubLayersMinus1 − 1 до 0 (в порядке убывания значений i) включительно sublayer_level_idc[ i ] получается равным sublayer_level_idc[i + 1].

3.5. Синтаксис и семантика общей информации ограничения

Значение general_non_packed_constraint_flag, равное 1, указывает то, что в битовом потоке OlsInScope не должно быть никаких сообщений SEI о конфигурации упаковки кадров. Значение general_non_packed_constraint_flag, равное 0, не налагает такого ограничения.

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

Значение general_frame_only_constraint_flag, равное 1, указывает то, что OlsInScope передает изображения, которые представляют кадры. Значение general_frame_only_constraint_flag, равное 0, указывает то, что OlsInScope передает изображения, которые могут представлять или не представлять кадры.

Примечание 2. Декодеры могут игнорировать значение general_frame_only_constraint_flag, так как с ним не связано никаких требований к процессу декодирования.

Значение general_non_projected_constraint_flag, равное 1, указывает то, что в битовом потоке OlsInScope не должно быть никаких сообщений SEI равнопрямоугольной проекции или сообщений SEI обобщенной кубической проекции. Значение general_non_projected_constraint_flag, равный 0, не налагает такого ограничения.

Примечание 3. Декодеры могут игнорировать значение general_non_projected_constraint_flag, так как отсутствуют требования к процессу декодирования, ассоциированные с наличием или интерпретацией сообщений SEI равнопрямоугольной проекции и сообщений SEI обобщенной кубической проекции.

Значение general_one_picture_only_constraint_flag, равное 1, указывает то, что в битовом потоке имеется только одно кодированное изображение. Значение general_one_picture_only_constraint_flag, равное 0, не налагает такого ограничения.

Значение intra_only_constraint_flag, равное 1, указывает то, что значение sh_slice_type должно быть равно I. Значение intra_only_constraint_flag, равное 0, не налагает такого ограничения.

Параметр max_bitdepth_minus8_constraint_idc указывает то, что значение sps_bitdepth_minus8 должно находиться в диапазоне от 0 до max_bitdepth_minus8_constraint_idc включительно.

Параметр max_chroma_format_constraint_idc указывает то, что значение sps_chroma_format_idc должно находиться в диапазоне от 0 до max_chroma_format_constraint_idc включительно.

Значение single_layer_constraint_flag, равное 1, указывает то, что значение nuh_layer_id должно быть одинаковым для всех блоков NAL VCL в OlsInScope. Значение single_layer_constraint_flag, равное 0, не налагает такого ограничения.

Значение all_layers_independent_constraint_flag, равное 1, указывает то, что значение vps_all_independent_layers_flag должно быть равно 1. Значение all_layers_independent_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_ref_pic_resampling_constraint_flag, равное 1, указывает то, что значение sps_ref_pic_resampling_enabled_flag должно быть равно 0. Значение no_ref_pic_resampling_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_res_change_in_clvs_constraint_flag, равное 1, указывает то, что значение sps_res_change_in_clvs_allowed_flag должно быть равно 0. Значение no_res_change_in_clvs_constraint_flag, равное 0, не налагает такого ограничения.

Значение one_tile_per_pic_constraint_flag, равное 1, указывает то, что каждое изображение должно содержать только один фрагмент, то есть значение NumTilesInPic для каждого изображения должно быть равно 1. Значение one_tile_per_pic_constraint_flag, равное 0, не налагает такого ограничения.

Значение pic_header_in_slice_header_constraint_flag, равное 1, указывает то, что каждое изображение должно содержать только один слайс, и значение sh_picture_header_in_slice_header_flag в каждом слайсе должно быть равно 1. Значение pic_header_in_slice_header_constraint_flag, равное 0, не налагает такого ограничения.

Значение one_slice_per_pic_constraint_flag, равное 1, указывает то, что каждое изображение должно содержать только один слайс, то есть если значение pps_rect_slice_flag равно 1, значение num_slices_in_pic_minus1 должно быть равно 0, в противном случае значение параметра num_tiles_in_slice_minus1, присутствующего в заголовке каждого слайса, должно быть равно NumTilesInPic – 1. Значение one_slice_per_pic_constraint_flag, равное 0, не налагает такого ограничения.

Значение one_subpic_per_pic_constraint_flag, равное 1, указывает то, что каждое изображение должно содержать только одно дополнительное изображение, то есть значение sps_num_subpics_minus1 для каждого изображения должно быть равно 0. Значение one_subpic_per_pic_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_qtbtt_dual_tree_intra_constraint_flag, равное 1, указывает то, что значение sps_qtbtt_dual_tree_intra_flag должно быть равно 0. Значение no_qtbtt_dual_tree_intra_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_partition_constraints_override_constraint_flag, равное 1, указывает то, что значение sps_partition_constraints_override_enabled_flag должно быть равно 0. Значение no_partition_constraints_override_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_sao_constraint_flag, равное 1, указывает то, что значение sps_sao_enabled_flag должно быть равно 0. Значение no_sao_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_alf_constraint_flag, равное 1, указывает то, что значение sps_alf_enabled_flag должно быть равно 0. Значение no_alf_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_ccalf_constraint_flag, равное 1, указывает то, что значение sps_ccalf_enabled_flag должно быть равно 0. Значение no_ccalf_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_joint_cbcr_constraint_flag, равное 1, указывает то, что значение sps_joint_cbcr_enabled_flag должно быть равно 0. Значение no_joint_cbcr_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_mrl_constraint_flag, равное 1, указывает то, что значение sps_mrl_enabled_flag должно быть равно 0. Значение no_mrl_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_isp_constraint_flag, равное 1, указывает то, что значение sps_isp_enabled_flag должно быть равно 0. Значение no_isp_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_mip_constraint_flag, равное 1, указывает то, что значение sps_mip_enabled_flag должно быть равно 0. Значение no_mip_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_ref_wraparound_constraint_flag, равное 1, указывает то, что значение sps_ref_wraparound_enabled_flag должно быть равно 0. Значение no_ref_wraparound_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_temporal_mvp_constraint_flag, равное 1, указывает то, что значение sps_temporal_mvp_enabled_flag должно быть равно 0. Значение no_temporal_mvp_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_sbtmvp_constraint_flag, равное 1, указывает то, что значение sps_sbtmvp_enabled_flag должно быть равно 0. Значение no_sbtmvp_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_amvr_constraint_flag, равное 1, указывает то, что значение sps_amvr_enabled_flag должно быть равно 0. Значение no_amvr_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_bdof_constraint_flag, равное 1, указывает то, что значение sps_bdof_enabled_flag должно быть равно 0. Значение no_bdof_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_dmvr_constraint_flag, равное 1, указывает то, что значение sps_dmvr_enabled_flag должно быть равно 0. Значение no_dmvr_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_cclm_constraint_flag, равное 1, указывает то, что значение sps_cclm_enabled_flag должно быть равно 0. Значение no_cclm_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_mts_constraint_flag, равное 1, указывает то, что значение sps_mts_enabled_flag должно быть равно 0. Значение no_mts_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_sbt_constraint_flag, равное 1, указывает то, что значение sps_sbt_enabled_flag должно быть равно 0. Значение no_sbt_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_lfnst_constraint_flag, равное 1, указывает то, что значение sps_lfnst_enabled_flag должно быть равно 0. Значение no_lfnst_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_affine_motion_constraint_flag, равное 1, указывает то, что значение sps_affine_enabled_flag должно быть равно 0. Значение no_affine_motion_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_mmvd_constraint_flag, равное 1, указывает то, что значение sps_mmvd_enabled_flag должно быть равно 0. Значение no_mmvd_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_smvd_constraint_flag, равное 1, указывает то, что значение sps_smvd_enabled_flag должно быть равно 0. Значение no_smvd_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_prof_constraint_flag, равное 1, указывает то, что значение sps_affine_prof_enabled_flag должно быть равно 0. Значение no_prof_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_bcw_constraint_flag, равное 1, указывает то, что значение sps_bcw_enabled_flag должно быть равно 0. Значение no_bcw_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_ibc_constraint_flag, равное 1, указывает то, что значение sps_ibc_enabled_flag должно быть равно 0. Значение no_ibc_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_ciip_constraint_flag, равное 1, указывает то, что значение sps_ciip_enabled_flag должно быть равно 0. Значение no_cipp_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_gpm_constraint_flag, равное 1, указывает то, что значение sps_gpm_enabled_flag должно быть равно 0. Значение no_gpm_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_ladf_constraint_flag, равное 1, указывает то, что значение sps_ladf_enabled_flag должно быть равно 0. Значение no_ladf_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_transform_skip_constraint_flag, равное 1, указывает то, что значение sps_transform_skip_enabled_flag должно быть равно 0. Значение no_transform_skip_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_bdpcm_constraint_flag, равное 1, указывает то, что значение sps_bdpcm_enabled_flag должно быть равно 0. Значение no_bdpcm_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_weighted_prediction_constraint_flag, равное 1, указывает то, что как значение sps_weighted_pred_flag, так и значение sps_weighted_bipred_flag должны быть равны 0. Значение no_weighted_prediction_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_palette_constraint_flag, равное 1, указывает то, что значение sps_palette_enabled_flag должно быть равно 0. Значение no_palette_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_act_constraint_flag, равное 1, указывает то, что значение sps_act_enabled_flag должно быть равно 0. Значение no_act_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_lmcs_constraint_flag, равное 1, указывает то, что значение sps_lmcs_enabled_flag должно быть равно 0. Значение no_lmcs_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_cu_qp_delta_constraint_flag, равное 1, указывает то, что значение pps_cu_qp_delta_enabled_flag должно быть равно 0. Значение no_cu_qp_delta_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_chroma_qp_offset_constraint_flag, равное 1, указывает то, что значение pps_cu_chroma_qp_offset_list_enabled_flag должно быть равно 0. Значение no_chroma_qp_offset_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_dep_quant_constraint_flag, равное 1, указывает то, что значение sps_dep_quant_enabled_flag должно быть равно 0. Значение no_dep_quant_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_sign_data_hiding_constraint_flag, равное 1, указывает то, что значение sps_sign_data_hiding_enabled_flag должно быть равно 0. Значение no_sign_data_hiding_constraint_flag, равное 0, не налагает такого ограничения.

Значение 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, не налагает такого ограничения.

Значение no_trail_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным TRAIL_NUT. Значение no_trail_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_stsa_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным STSA_NUT. Значение no_stsa_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_rasl_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным RASL_NUT. Значение no_rasl_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_radl_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным RADL_NUT. Значение no_radl_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_idr_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным IDR_W_RADL или IDR_N_LP. Значение no_idr_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_cra_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным CRA_NUT. Значение no_cra_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_gdr_constraint_flag, равное 1, указывает то, что значение sps_gdr_enabled_flag должно быть равно 0. Значение no_gdr_constraint_flag, равное 0, не налагает такого ограничения.

Значение no_aps_constraint_flag, равное 1, указывает то, что в OlsInScope не должно быть единицы NAL с nuh_unit_type, равным PREFIX_APS_NUT или SUFFIX_APS_NUT, и значения sps_lmcs_enabled_flag и sps_scaling_list_enabled_flag должны быть равны 0. Значение no_aps_constraint_flag, равное 0, не налагает такого ограничения.

Значение gci_alignment_zero_bits должно быть равно 0.

Параметр gci_num_reserved_bytes указывает количество зарезервированных байтов ограничения. Значение gci_num_reserved_bytes должно быть равно 0. Другие значения gci_num_reserved_bytes зарезервированы для будущего использования ITU-T | ISO/IEC и не должны присутствовать в битовых потоках, соответствующих этой версии данной спецификации.

Параметр gci_reserved_byte[ i ] может иметь любое значение. Его наличие и значение не влияют на соответствие декодера профилям, указанным в этой версии данной спецификации. Декодеры, соответствующие этой версии данной спецификации, должны игнорировать значения всех синтаксических элементов gci_reserved_byte[ i ].

3.6. Условная сигнализация полей GCI

В JVET-S0050 и JVET-S0127 предложено добавить флаг присутствия в синтаксическую структуру PTL, чтобы указать наличие синтаксической структуры GCI в синтаксической структуре PTL, с той лишь разницей, что нижеследующее: выполнено в S0050 и не выполнено в S0127: S0050 добавляет выравнивание по байтам в синтаксическую структуру PTL непосредственно после синтаксической структуры GCI, если она присутствует, чтобы убедиться, что general_level_idc начинается с позиции, выровненной по байтам в синтаксической структуре PTL, и, следовательно, удалено выравнивание по байтам внутри синтаксической структуры GCI.

Изменения синтаксиса JVET-S0050 состоят в следующем: части, которые были добавлены или изменены, выделены жирным шрифтом, подчеркнуты и выделены курсивом, например, «с использованием и некоторые из удаленных частей выделены курсивом и перечеркнуты, например, «на основе А и B».

Изменения синтаксиса JVET-S0127 представлены следующим образом:

Стандарт JVET-S0092 изменяет только саму синтаксическую структуру GCI. Он перемещает индикатор длины расширения GCI (gci_num_reserved_bytes) с последнего на первый (gci_num_constraint_bytes) в синтаксической структуре GCI, чтобы включить сигнализацию пропуска полей GCI. Значение gci_num_reserved_bytes должно быть равно 0 или 9.

Изменения синтаксиса S0092 представлены следующим образом:

Вот некоторые сравнения различных подходов:

1. Что касается JVET-S0050 и JVET-S0127, различие состоит в том, следует ли убедиться, что general_level_idc находится в позиции выравнивания байтов в синтаксической структуре PTL (включая случаи, когда флаг присутствия GCI равен 0). Синтаксис DCI, VPS и SPS был разработан таким образом, чтобы каждая синтаксическая структура PTL, если она присутствует, находилась в позиции выравнивания байтов в DCI/VPS/SPS. Надеемся, что нам не придется долго спорить, чтобы сделать вывод о том, что в синтаксической структуре PTL мы должны оставить general_level_idc в позиции выравнивания байтов. Если это может быть достигнуто, то JVET-S0050 и JVET-S0127 будут одинаковыми.

2. Различие между наличием флага присутствия GCI в синтаксической структуре PTL (как в JVET-S0050 и JVET-S0127) и манипуляцией синтаксисом в синтаксической структуре GCI состоит в следующем. Оба они указывают то, что между general_tier_flag и general_level_idc находится некоторая информация GCI в синтаксической структуре PTL. В подходе с флагом присутствия GCI используется флаг для указания присутствия полей GCI, в то время как в подходе JVET-S0092 для достижения этой цели используется 8-битовый индикатор размера. Подсчитывая количество бит, в подходе JVET-S0050 используется 1 бит для флага плюс от 0 до 7 битов выравнивания байтов, в то время как в подходе JVET-S0092 используется 8 битов для индикатора размера плюс от 0 до 7 битов выравнивания байтов. Таким образом, различие составляет всего 7 битов.

3. В JVET-S0092 имеется одна семантическая ошибка: если значение gci_num_reserved_bytes должно быть равно 0 или 9, то в синтаксической структуре GCI никогда не может быть gci_reserved_byte[ i ]. Конечно, это можно легко решить, сказав что-то вроде того, что значение gci_num_reserved_bytes должно быть либо равно 0, либо равно или больше 9.

4. Технические проблемы, решаемые раскрытыми здесь техническими решениями

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

5. Изобретение

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

1) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как в 1-м варианте осуществления:

а. Вместо того, чтобы располагаться непосредственно после general_tier_flag, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), после указания информации уровня.

(1) В одном примере переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) непосредственно после синтаксического элемента general_sub_profile_idc[ i ].

а. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в синтаксическую структуру profile_tier_level( ), чтобы обусловить присутствие синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 1 для синтаксической структуры profile_tier_level( ) со значением profileTierPresentFlag, равным 1, синтаксическая структура general_constraint_info( ) присутствует в синтаксической структуре profile_tier_level( ). Когда значение gci_present_flag равно 0 для синтаксической структуры profile_tier_level( ) (независимо от того, равно ли значение profileTierPresentFlag 1), синтаксическая структура general_constraint_info( ) отсутствует в синтаксической структуре profile_tier_level( ).

(2) Семантика изменена таким образом, чтобы семантика полей GCI применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

(3) В качестве альтернативы, кроме того, новый синтаксический элемент может сигнализироваться условно, например, в соответствии со значением profileTierPresentFlag.

b. Удалить синтаксис выравнивания байтов (то есть поле gci_alignment_zero_bit и его синтаксическое условие) из синтаксической структуры general_constraint_info( ).

c. Вместо сигнализации общего количества зарезервированных байтов ограничения и зарезервированных байтов ограничения может быть указано количество зарезервированных битов ограничения и/или значение каждого зарезервированного бита ограничения.

(1) В одном примере изменить синтаксический элемент GCI gci_num_reserved_bytes на gci_num_reserved_bits.

(2) В качестве альтернативы измененный синтаксический элемент GCI может быть закодирован с помощью u(11) вместо u(8),

(3) В качестве альтернативы, кроме того, изменить синтаксический элемент GCI gci_reserved_byte[ i ] на gci_reserved_bit[ i ], закодированный с помощью u(1) вместо u(8).

2) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как во втором варианте осуществления:

a. Вместо того, чтобы располагаться непосредственно после general_tier_flag, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), после указания информации уровня.

(1) В одном примере переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) таким образом, чтобы она располагалась непосредственно после синтаксического элемента general_sub_profile_idc[ i ] (а не непосредственно после general_tier_flag).

b. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в синтаксическую структуру profile_tier_level( ), чтобы обусловить присутствие синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 1 для синтаксической структуры profile_tier_level( ) со значением profileTierPresentFlag, равным 1, синтаксическая структура general_constraint_info( ) присутствует в синтаксической структуре profile_tier_level( ). Когда значение gci_present_flag равно 0 для синтаксической структуры profile_tier_level( ) (независимо от того, равно ли значение profileTierPresentFlag 1), синтаксическая структура general_constraint_info( ) отсутствует в синтаксической структуре profile_tier_level( ).

(2) Семантика изменена таким образом, чтобы семантика полей GCI применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

(3) В качестве альтернативы, кроме того, новый синтаксический элемент может сигнализироваться условно, например, в соответствии со значением profileTierPresentFlag.

3) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как в 1-м варианте осуществления:

a. Вместо того, чтобы располагаться непосредственно после general_tier_flag, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), непосредственно перед условиями проверки выравнивания байтов в синтаксической структуре PTL (например, непосредственно перед циклом while( !byte_aligned( ) )).

(1) В одном примере переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) таким образом, чтобы она располагалась непосредственно после синтаксического элемента ptl_sublayer_level_present_flag[ i ] (а не непосредственно после general_tier_flag).

b. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в синтаксическую структуру profile_tier_level( ), чтобы обусловить присутствие синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 1 для синтаксической структуры profile_tier_level( ) со значением profileTierPresentFlag, равным 1, синтаксическая структура general_constraint_info( ) присутствует в синтаксической структуре profile_tier_level( ). Когда значение gci_present_flag равно 0 для синтаксической структуры profile_tier_level( ) (независимо от того, равно ли значение profileTierPresentFlag 1), синтаксическая структура general_constraint_info( ) отсутствует в синтаксической структуре profile_tier_level( ).

(2) Семантика изменена таким образом, чтобы семантика полей GCI применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

(3) В качестве альтернативы, кроме того, новый синтаксический элемент может сигнализироваться условно, например, в соответствии со значением profileTierPresentFlag.

c. Удалить синтаксис выравнивания байтов (то есть поле gci_alignment_zero_bit и его синтаксическое условие) из синтаксической структуры general_constraint_info( ).

d. Вместо сигнализации общего количества зарезервированных байтов ограничения и зарезервированных байтов ограничения может быть указано количество зарезервированных битов ограничения и/или значение каждого зарезервированного бита ограничения.

(1) В одном примере изменить синтаксические элементы GCI gci_num_reserved_bytes на gci_num_reserved_bits.

(2) Альтернативно, кроме того, измененный синтаксический элемент GCI может быть закодирован с помощью u(11) вместо u(8).

(3) В качестве альтернативы, кроме того, изменить синтаксический элемент GCI gci_reserved_byte[ i ] на gci_reserved_bit[ i ], закодированный с помощью u(1) вместо u(8).

4) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как во втором варианте осуществления:

a. Вместо того, чтобы располагаться непосредственно после general_tier_flag, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), непосредственно перед условиями проверки выравнивания байтов в синтаксической структуре PTL (например, непосредственно перед циклом while( !byte_aligned( ) )).

(1) В одном примере переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) таким образом, чтобы она располагалась непосредственно после синтаксического элемента ptl_sublayer_level_present_flag[ i ].

b. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в синтаксическую структуру profile_tier_level( ), чтобы обусловить присутствие синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 1 для синтаксической структуры profile_tier_level( ) со значением profileTierPresentFlag, равным 1, синтаксическая структура general_constraint_info( ) присутствует в синтаксической структуре profile_tier_level( ). Когда значение gci_present_flag равно 0 для синтаксической структуры profile_tier_level( ) (независимо от того, равно ли значение profileTierPresentFlag 1), синтаксическая структура general_constraint_info( ) отсутствует в синтаксической структуре profile_tier_level( ).

(2) Семантика изменена таким образом, чтобы семантика полей GCI применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

(3) В качестве альтернативы, кроме того, новый синтаксический элемент может сигнализироваться условно, например, в соответствии со значением profileTierPresentFlag.

5) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как в 5-м варианте осуществления:

a. Вместо того, чтобы находиться перед general_level_idc, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), после general_level_idc.

(1) Переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) таким образом, чтобы она располагалась непосредственно после синтаксического элемента general_level_idc.

b. Переместить синтаксис выравнивания байтов (то есть поле gci_alignment_zero_bit и его синтаксическое условие) в конец синтаксической структуры general_constraint_info( ), то есть после зарезервированных полей GCI, и не перед зарезервированными полями GCI.

c. Вместо сигнализации общего количества зарезервированных байтов ограничения и зарезервированных байтов ограничения может быть указано количество зарезервированных битов ограничения и/или значение каждого зарезервированного бита ограничения.

(1) В одном примере изменить синтаксические элементы GCI gci_num_reserved_bytes на gci_num_reserved_bits.

(2) В качестве альтернативы, кроме того, измененный синтаксический элемент GCI может быть закодирован с помощью u(11) вместо u(8),

(3) В качестве альтернативы, кроме того, изменить синтаксический элемент GCI gci_reserved_byte[ i ] на gci_reserved_bit[ i ], закодированный с помощью u(1) вместо u(8).

d. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в начало синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 0, все поля в синтаксической структуре general_constraint_info( ), кроме полей выравнивания байтов, пропускаются. Семантика всех этих пропущенных полей изменяется таким образом, что семантика применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

6) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как в 6-м варианте осуществления:

a. Вместо того, чтобы находиться перед general_level_idc, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), после general_level_idc.

(1) В одном примере переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) таким образом, чтобы она располагалась непосредственно после синтаксического элемента general_level_idc.

b. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в синтаксическую структуру profile_tier_level( ), чтобы обусловить присутствие синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 1 для синтаксической структуры profile_tier_level( ) со значением profileTierPresentFlag, равным 1, синтаксическая структура general_constraint_info( ) присутствует в синтаксической структуре profile_tier_level( ). Когда значение gci_present_flag равно 0 для синтаксической структуры profile_tier_level( ) (независимо от того, равно ли значение profileTierPresentFlag 1), синтаксическая структура general_constraint_info( ) отсутствует в синтаксической структуре profile_tier_level( ).

(2) Семантика всей синтаксической структуры GCI изменена таким образом, чтобы семантика полей GCI применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

(3) Чтобы сохранить начальную позицию ptl_num_sub_profiles, если она присутствует, как позицию с выравниванием по байтам, непосредственно после синтаксической структуры general_constraint_info( ), добавить проверку выравнивания по байтам и, если не выравнивание по байтам, добавлять ptl_alignment_zero_bit до тех пор, пока оно не будет выровнено по байтам.

c. Удалить синтаксис выравнивания байтов (то есть поле gci_alignment_zero_bit и его синтаксическое условие) из синтаксической структуры general_constraint_info( ).

d. Вместо сигнализации общего количества зарезервированных байтов ограничения и зарезервированных байтов ограничения может быть указано количество зарезервированных битов ограничения и/или значение каждого зарезервированного бита ограничения.

(1) В одном примере изменить синтаксический элемент GCI gci_num_reserved_bytes на gci_num_reserved_bits.

(2) В качестве альтернативы, кроме того, измененный синтаксический элемент может быть закодирован с помощью u(11) вместо u(8),

(3) В качестве альтернативы, кроме того, изменить синтаксический элемент GCI gci_reserved_byte[ i ] на gci_reserved_bit[ i ], закодированный с помощью u(1) вместо u(8).

7) Для решения первой проблемы, касающейся условной сигнализации полей GCI в синтаксической структуре PTL, раскрыты один или более из следующих подходов, например, как в 5-м варианте осуществления:

a. Вместо того, чтобы находиться перед general_level_idc, переместить синтаксическую структуру general_constraint_info( ) и/или другие синтаксические элементы, относящиеся к GCI (например, присутствие флагов GCI), после general_level_idc.

(1) В одном примере переместить синтаксическую структуру general_constraint_info( ) в синтаксическую структуру profile_tier_level( ) таким образом, чтобы она располагалась непосредственно после синтаксического элемента general_level_idc.

b. Добавить новый синтаксический элемент (например, 1-битовый флаг с именем gci_present_flag) в синтаксическую структуру profile_tier_level( ), чтобы обусловить присутствие синтаксической структуры general_constraint_info( ).

(1) Когда значение gci_present_flag равно 1 для синтаксической структуры profile_tier_level( ) со значением profileTierPresentFlag, равным 1, синтаксическая структура general_constraint_info( ) присутствует в синтаксической структуре profile_tier_level( ). Когда значение gci_present_flag равно 0 для синтаксической структуры profile_tier_level( ) (независимо от того, равно ли значение profileTierPresentFlag 1), синтаксическая структура general_constraint_info( ) отсутствует в синтаксической структуре profile_tier_level( ).

(2) Семантика всей синтаксической структуры GCI изменена таким образом, чтобы семантика полей GCI применялась только тогда, когда они присутствуют (то есть, когда значение gci_present_flag равно 1). Другими словами, когда значение gci_present_flag равно 0, никакие общие ограничения не применяются в дополнение к другим указанным ограничениям, таким как те, которые указаны как часть определения профиля.

(3) Чтобы сохранить начальную позицию ptl_num_sub_profiles, если она присутствует, как позицию с выравниванием по байтам, непосредственно после синтаксической структуры general_constraint_info( ), добавить проверку выравнивания по байтам и, если не выравнивание по байтам, добавлять ptl_alignment_zero_bit до тех пор, пока оно не будет выровнено по байтам.

8) Изменить семантику max_bitdepth_minus8_constraint_idc следующим образом: значение max_bitdepth_minus8_constraint_idc меньше 8 указывает то, что значение sps_bitdepth_minus8 должно находиться в диапазоне от 0 до max_bitdepth_minus8_constraint_idc включительно. Значение max_bitdepth_minus8_constraint_idc, равное или превышающее 8, не налагает ограничения.

a. В качестве альтернативы, «не налагает ограничения» выше заменяется на «не налагает такого ограничения».

9) Изменить семантику max_chroma_format_constraint_idc следующим образом: значение max_chroma_format_constraint_idc меньше 2 указывает то, что значение sps_chroma_format_idc должно находиться в диапазоне от 0 до max_chroma_format_constraint_idc включительно. Значение max_chroma_format_constraint_idc, равное 2, не налагает ограничения.

a. В качестве альтернативы, «не налагает ограничения» выше заменяется на «не налагает такого ограничения».

6. Варианты осуществления

Ниже приведены некоторые примерные варианты осуществления некоторых аспектов изобретения, обобщенных выше в этом разделе, которые могут быть применены к спецификации VVC. Измененные тексты основаны на последнем тексте VVC в JVET-S0152-v3. Наиболее важные части, которые были добавлены или изменены, выделены жирным шрифтом, подчеркнуты и выделены курсивом, например, «используя и некоторые удаленные части выделены курсивом и перечеркнуты, например, «на основе A и B».

6.1. Вариант 1 осуществления

Этот вариант осуществления относится к пункту 1 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

И семантика изменяется следующим образом:

...

Синтаксическая структура general_constraint_info( ) изменена следующим образом:

И семантика изменяется следующим образом:

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

6.2. Вариант 2 осуществления

Этот вариант осуществления относится к пункту 2 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

И семантика изменяется следующим образом:

6.3. Вариант 3 осуществления

Этот вариант осуществления относится к пункту 3 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

И семантика изменяется следующим образом:

Кроме того, в одном примере синтаксическая структура general_constraint_info( ) изменена следующим образом:

И семантика изменяется следующим образом:

6.4. Вариант 4 осуществления

Этот вариант осуществления относится к пункту 4 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

И семантика изменяется следующим образом:

6.5. Вариант 5 осуществления

Этот вариант осуществления относится к пункту 5 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

Синтаксическая структура general_constraint_info( ) изменена следующим образом:

И семантика изменяется следующим образом:

6.6. Вариант 6 осуществления

Этот вариант осуществления относится к пункту 6 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

И семантика изменяется следующим образом:

...

Синтаксическая структура general_constraint_info( ) изменена следующим образом:

И семантика изменяется следующим образом:

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

6.7. Вариант 7 осуществления

Этот вариант осуществления относится к пункту 7 и его подпунктам.

Синтаксическая структура profile_tier_level( ) изменена следующим образом:

И семантика изменяется следующим образом:

На фиг. 1 показана блок-схема, иллюстрирующая пример системы 1000 обработки видео, в которой могут быть реализованы различные технологии, раскрытые в данном документе. Различные реализации могут включать в себя некоторые или все компоненты системы 1000. Система 1000 может включать в себя вход 1002 для приема видеосодержания. Видеосодержание может приниматься в необработанном или несжатом формате, например, с 8- или 10-разрядными многокомпонентными пиксельными значениями, или может быть представлено в сжатом или кодированном формате. Вход 1002 может представлять сетевой интерфейс, интерфейс периферийной шины или интерфейс запоминающего устройства. Примеры сетевого интерфейса включают в себя проводные интерфейсы, такие как Ethernet, пассивная оптическая сеть (PON) и т.д., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы.

Система 1000 может включать в себя компонент 1004 кодирования, который может реализовывать различные способы кодирования или шифрования, описанные в настоящем документе. Компонент 1004 кодирования позволяет уменьшить среднюю скорость передачи битов видео от входа 1002 до выхода компонента 1004 кодирования, чтобы создать кодированное представление видео. Поэтому технологии кодирования иногда называют технологиями сжатия видео или транскодирования видео. Выходной сигнал компонента 1004 кодирования может быть либо сохранен, либо передан через подключенную связь, как представлено компонентом 1006. Сохраненное или переданное битовое (или кодированное) представление видео, полученного на входе 1002, может использоваться компонентом 1008 для выработки пиксельных значений или отображаемого видео, которое отправляется в интерфейс 1010 дисплея. Процесс выработки доступного для просмотра пользователем видео из представления битового потока иногда называется распаковкой видео. Кроме того, хотя определенные операции обработки видео упоминаются как операции или инструменты «кодирования», следует понимать, что инструменты или операции кодирования используются в кодере, и соответствующие инструменты или операции декодирования, которые обращают результаты кодирования, будут выполняться посредством декодера.

Примеры интерфейса периферийной шины или интерфейса дисплея могут включать в себя универсальную последовательную шину (USB), мультимедийный интерфейс высокой четкости (HDMI) или порт дисплея (Displayport) и т.д. Примеры интерфейсов запоминающих устройств включают в себя SATA (последовательное подключение с использованием передовых технологий), PCI, интерфейс IDE и т.п. Технологии, описанные в настоящем документе, могут быть воплощены в различных электронных устройствах, таких как мобильные телефоны, ноутбуки, смартфоны или другие устройства, которые способны выполнять обработку цифровых данных и/или отображение видео.

На фиг. 2 показана блок-схема устройства 2000 обработки видео. Устройство 2000 может использоваться для реализации одного или более описанных в данном документе способов. Устройство 2000 может быть реализовано в виде смартфона, планшетного компьютера, компьютера, приемника Интернета вещей (IoT) и т.д. Устройство 2000 может включать в себя один или более процессоров 2002, одно или более запоминающих устройств 2004 и аппаратные средства 2006 для обработки видео. Процессор(ы) 2002 может(могут) быть выполнен(ы) с возможностью реализации одного или более способов, описанных в данном документе. Память (запоминающие устройства) 2004 может использоваться для хранения данных и кода, используемых для реализации описанных в данном документе способов и технологий. Аппаратные средства 2006 обработки видео могут использоваться для реализации в аппаратных схемах некоторых технологий, описанных в данном документе. В некоторых вариантах осуществления аппаратные средства 2006 могут частично или полностью выполнены в виде одного или нескольких процессоров 2002, например, в виде графического процессора.

На фиг. 3 показана блок-схема, которая иллюстрирует примерную систему 100 кодирования видео, в которой могут использоваться способы настоящего раскрытия. Как показано на фиг. 3, система 100 кодирования видео может включать в себя устройство-источник 110 и устройство-получатель 120. Устройство-источник 110, которое может называться устройством кодирования видео, вырабатывает кодированные видеоданные. Устройство-получатель 120, которое может называться устройством декодирования видео, может декодировать кодированные видеоданные, выработанные устройством-источником 110. Устройство-источник 110 может включать в себя источник 112 видео, видеокодер 114 и интерфейс 116 ввода/вывода (I/O).

Источник 112 видео может включать в себя источник, такой как устройство захвата видео, интерфейс для приема видеоданных от поставщика содержания видео и/или систему компьютерной графики для выработки видеоданных или сочетание таких источников. Видеоданные могут содержать одно или несколько изображений. Видеокодер 114 кодирует видеоданные из источника 112 видео для выработки битового потока. Битовый поток может включать в себя последовательность битов, которые образуют кодированное представление видеоданных. Битовый поток может включать в себя кодированные изображения и ассоциированные данные. Кодированное изображение представляет собой кодированное представление изображения. Ассоциированные данные могут включать в себя наборы параметров последовательности, наборы параметров изображения и другие синтаксические структуры. Интерфейс 116 ввода/вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. Кодированные видеоданные могут быть переданы непосредственно в устройство-получатель 120 через интерфейс 116 ввода/вывода через сеть 130a. Кодированные видеоданные также могут быть сохранены на носителе информации/сервере 130b для доступа со стороны устройства-получателя 120.

Устройство-получатель 120 может включать в себя интерфейс 126 ввода/вывода, видеодекодер 124 и устройство 122 отображения.

Интерфейс 126 ввода/вывода может включать в себя приемник и/или модем. Интерфейс 126 ввода/вывода может получать кодированные видеоданные из устройства-источника 110 или носителя информации/сервера 130b. Видеодекодер 124 может декодировать кодированные видеоданные. Устройство 122 отображения может отображать декодированные видеоданные для пользователя. Устройство 122 отображения может быть интегрировано с целевым устройством 120 или может быть внешним по отношению к целевому устройству 120, которое конфигурируется для взаимодействия с внешним устройством отображения.

Видеокодер 114 и видеодекодер 124 могут работать в соответствии со стандартом сжатия видео, например, стандартом высокоэффективного кодирования видео (HEVC), стандартом универсального кодирования видео (VVM) и другими существующими и/или дополнительными стандартами.

На фиг. 4 показана блок-схема, иллюстрирующая пример видеокодера 200, который может быть видеокодером 114 в системе 100, проиллюстрированной на фиг. 3.

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

Функциональные компоненты видеокодера 200 могут включать в себя блок 201 разделения, блок 202 предсказания, который может включать в себя блок 203 выбора режима, блок 204 оценки движения, блок 205 компенсации движения и блок 206 внутрикадрового предсказания, блок 207 выработки остатка, блок 208 преобразования, блок 209 квантования, блок 210 обратного квантования, блок 211 обратного преобразования, блок 212 восстановления, буфер 213 и блок 214 энтропийного кодирования.

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

Кроме того, некоторые компоненты, такие как блок 204 оценки движения и блок 205 компенсации движения, могут быть выполнены с высокой степенью интеграции, но в примере, показанном на фиг. 4, они представлены отдельно для упрощения объяснения.

Блок 201 разделения может разбивать изображение на один или несколько видеоблоков. Видеокодер 200 и видеодекодер 300 могут поддерживать различные размеры видеоблоков.

Блок 203 выбора режима может выбрать один из режимов кодирования, внутрикадровый или межкадровый, например, на основе результатов ошибок, и предоставить результирующий внутрикадровый или межкадровый кодированный блок в блок 207 выработки остатка для выработки данных блока остатка и в блок 212 восстановления для восстановления кодированного блока с целью использования в качестве опорного изображения. В некотором примере блок 203 выбора режима может выбрать комбинацию режима внутрикадрового и межкадрового предсказания (CIIP), в котором предсказание основано на сигнале межкадрового предсказания и сигнале внутрикадрового предсказания. Блок 203 выбора режима также может выбирать разрешение для вектора движения (например, с точностью подпикселей или целочисленных пикселей) для блока в случае межкадрового предсказания.

Чтобы выполнить межкадровое предсказание для текущего видеоблока, блок 204 оценки движения может выработать информацию движения для текущего видеоблока путем сравнения одного или нескольких опорных кадров из буфера 213 с текущим видеоблоком. Блок 205 компенсации движения может определять предсказанный видеоблок для текущего видеоблока на основе информации движения и декодированных выборок изображений из буфера 213, которые отличаются от изображения, ассоциированного с текущим видеоблоком.

Блок 204 оценки движения и блок 205 компенсации движения могут выполнять разные операции для текущего видеоблока, например, в зависимости от того, находится ли текущий видеоблок в I-слайсе, P-слайсе или B-слайсе.

В некоторых примерах блок 204 оценки движения может выполнять однонаправленное предсказание для текущего видеоблока, и блок 204 оценки движения может отыскивать опорные изображения из списка 0 или списка 1 для опорного видеоблока для текущего видеоблока. Затем блок 204 оценки движения может выработать опорный индекс, который указывает опорное изображение в списке 0 или списке 1, который содержит опорный видеоблок, и вектор движения, который указывает пространственное смещение между текущим видеоблоком и опорным видеоблоком. Блок 204 оценки движения может выводить опорный индекс, индикатор направления предсказания и вектор движения в качестве информации движения текущего видеоблока. Блок 205 компенсации движения может выработать предсказанный видеоблок текущего блока на основе опорного видеоблока, указанного в информации движения текущего видеоблока.

В других примерах блок 204 оценки движения может выполнять двунаправленное предсказание для текущего видеоблока, блок 204 оценки движения может отыскивать опорные изображения в списке 0 для опорного видеоблока для текущего видеоблока и может отыскивать опорные изображения в списке 1 для другого опорного видеоблока для текущего видеоблока. Затем блок 204 оценки движения может выработать опорные индексы, которые указывают опорные изображения в списке 0 и списке 1, содержащем опорные видеоблоки и векторы движения, которые указывают пространственные смещения между опорными видеоблоками и текущим видеоблоком. Блок 204 оценки движения может выводить опорные индексы и векторы движения текущего видеоблока в качестве информации движения текущего видеоблока. Блок 205 компенсации движения может выработать предсказанный видеоблок текущего видеоблока на основе опорных видеоблоков, указанных в информации движения текущего видеоблока.

В некоторых примерах блок 204 оценки движения может выводить полный набор информации движения для процесса декодирования декодера.

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

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

В другом примере блок 204 оценки движения может идентифицировать в структуре синтаксиса, ассоциированной с текущим видеоблоком, другой видеоблок и разность векторов движения (MVD). Разность векторов движения указывает разницу между вектором движения текущего видеоблока и вектором движения указанного видеоблока. Видеодекодер 300 может использовать вектор движения указанного видеоблока и разность векторов движения для определения вектора движения текущего видеоблока.

Как обсуждалось выше, видеокодер 200 может с предсказанием сигнализировать о векторе движения. Два примера способов сигнализации предсказания, которые могут быть реализованы видеокодером 200, включают в себя расширенное предсказание вектора движения (AMVP) и сигнализацию в режиме слияния.

Блок 206 внутрикадрового предсказания может выполнять внутрикадровое предсказание для текущего видеоблока. Когда внутрикадровый блок предсказания 206 выполняет внутрикадровое предсказание в текущем блоке видеосигнала, блок 206 внутрикадрового предсказания может выработать данные предсказания для текущего видеоблока на основе декодированных выборок других видеоблоков в одном том же кадре. Данные предсказания для текущего видеоблока могут включать в себя предсказанный видеоблок и различные синтаксические элементы.

Блок 207 выработки остатка может выработать данные остатка для текущего видеоблока путем вычитания (например, обозначенного знаком минус) предсказанного видеоблока(ов) текущего видеоблока из текущего видеоблока. Данные остатка текущего видеоблока могут включать в себя видеоблоки остатка, которые соответствуют различным компонентам выборок в текущем видеоблоке.

В других примерах могут отсутствовать данные остатка для текущего видеоблока для текущего видеоблока, например, в режиме пропуска, и блок 207 выработки остатка может не выполнять операцию вычитания.

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

После того, как блок 208 обработки преобразования выработает видеоблок коэффициента преобразования, ассоциированный с текущим видеоблоком, блок 209 квантования может квантовать видеоблок коэффициента преобразования, ассоциированный с текущим видеоблоком, на основе одного или нескольких значений параметра квантования (QP), ассоциированных с текущим видеоблоком.

Блок 210 обратного квантования и блок 211 обратного преобразования могут применять обратное квантование и обратное преобразование к видеоблоку коэффициентов преобразования, соответственно, для восстановления видеоблока остатка из видеоблока коэффициентов преобразования. Блок 212 восстановления может добавить восстановленный видеоблок остатка к соответствующим выборкам из одного или нескольких предсказанных видеоблоков, выработанных блоком 202 предсказания, чтобы получить восстановленный видеоблок, ассоциированный с текущим блоком, для хранения в буфере 213.

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

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

На фиг. 5 показана блок-схема, иллюстрирующая пример видеодекодера 300, который может быть видеодекодером 114 в системе 100, проиллюстрированной на фиг. 3.

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

В примере, показанном на фиг. 5, видеодекодер 300 включает в себя блок 301 энтропийного декодирования, блок 302 компенсации движения, блок 303 внутрикадрового предсказания, блок 304 обратного квантования, блок 305 обратного преобразования, блок 306 восстановления и буфер 307. В некоторых примерах видеодекодер 300 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 200 (фиг. 4).

Блок 301 энтропийного декодирования может извлекать закодированный битовый поток. Кодированный битовый поток может включать в себя энтропийно-кодированные видеоданные (например, кодированные блоки видеоданных). Блок 301 энтропийного декодирования может декодировать энтропийно-кодированные видеоданные, и из энтропийно-декодированных видеоданных блок 302 компенсации движения может определять информацию движения, включая векторы движения, точность вектора движения, индексы списка опорных изображений и другую информацию движения. Блок 302 компенсации движения может, например, определять такую информацию, выполняя AMVP и режим слияния.

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

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

Блок 302 компенсации движения может использовать некоторую информацию синтаксиса для определения размеров блоков, используемых для кодирования кадра(ов) и/или слайса(ов) кодированной видеопоследовательности, информации о разделах, которая описывает то, как каждый макроблок изображения закодированной видеопоследовательности разбивается на разделы, режимов, указывающих то, как кодируется каждый раздел, одного или более опорных кадров (и списков опорных кадров) для каждого межкадрового кодированного блока и другой информации для декодирования кодированной видеопоследовательности.

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

Блок 306 восстановления может суммировать блоки остатка с соответствующими блоками предсказания, выработанными блоком 202 компенсации движения или блоком 303 внутрикадрового предсказания, чтобы сформировать декодированные блоки. При необходимости фильтр удаления блочности также может применяться для фильтрации декодированных блоков с целью удаления артефактов блочности. Затем декодированные видеоблоки сохраняются в буфере 307, который предоставляет опорные блоки для последующей компенсации движения/внутрикадрового предсказания, а также создает декодированное видео для представления на экране устройства отображения.

На фиг. 6-15 показаны примерные способы, которые могут реализовать описанное выше техническое решение, например, в вариантах осуществления, показанных на фиг. 1-5.

На фиг. 6 показана блок-схема примерного способа 600 обработки видео. Способ 600 включает в себя, на этапе 610, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксическая структура в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента, причем синтаксическая структура содержит информацию, относящуюся к общей информации ограничения (GCI), для битового потока, и синтаксический элемент указывает уровень, которому соответствует набор выходных слоев, ассоциированный с синтаксической структурой профиль-ярус-уровень.

На фиг. 7 показана блок-схема примерного способа 700 обработки видео. Способ 700 включает в себя, на этапе 710, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксис выравнивания байтов в синтаксической структуре общей информации ограничения (GCI) находится после одного или более зарезервированных полей GCI, причем синтаксис выравнивания байтов указывает то, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам, от позиции первого бита в битовом потоке, и синтаксическая структура GCI содержит синтаксические элементы, относящиеся к GCI.

На фиг. 8 показана блок-схема примерного способа 800 обработки видео. Способ 800 включает в себя, на этапе 810, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксическая структура в синтаксической структуре профиль-ярус-уровень находится после указателя информации уровня, причем синтаксическая структура содержит информацию, относящуюся к общей информации ограничения (GCI), и указатель информации уровня, определяющий индикатор функциональной совместимости.

На фиг. 9 показана блок-схема примерного способа 900 обработки видео. Способ 900 включает в себя, на этапе 910, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксический элемент в синтаксической структуре профиль-ярус-уровень указывает то, включена ли синтаксическая структура общей информации ограничения (GCI) в синтаксическую структуру профиль-ярус-уровень.

На фиг. 10 показана блок-схема примерного способа 1000 обработки видео. Способ 1000 включает в себя, на этапе 1010, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксис выравнивания байтов исключен из синтаксической структуры общей информации ограничения (GCI), которая присутствует в синтаксической структуре профиль-ярус-уровень, синтаксис выравнивания байтов указывает то, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам, от позиции первого бита в битовом потоке, и синтаксическая структура GC, содержит синтаксический элемент, относящийся к GCI.

На фиг. 11 показана блок-схема примерного способа 1100 обработки видео. Способ 1100 включает в себя, на этапе 1110, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксическая структура общей информации ограничения (GCI) находится непосредственно перед условием проверки выравнивания байтов. в синтаксической структуре профиль-ярус-уровень, причем синтаксическая структура GCI содержит синтаксические элементы, относящиеся к GCI, и условие проверки выравнивания байтов проверяет то, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам, от позиции первого бита в битовом потоке.

На фиг. 12 показана блок-схема примерного способа 1200 обработки видео. Способ 1200 включает в себя, на этапе 1210, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что ряд из множества зарезервированных битов ограничения, ассоциированных с общей информацией ограничения (GCI) синтаксический элемент включен в битовый поток.

На фиг. 13 показана блок-схема примерного способа 1300 обработки видео. Способ 1300 включает в себя, на этапе 1310, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает, что синтаксический элемент общей информации ограничения (GCI) включен в начало синтаксической структуры GCI, синтаксический элемент GCI, указывающий то, включены ли один или более синтаксических элементов GCI в синтаксическую структуру GCI.

На фиг. 14 показана блок-схема примерного способа 1400 обработки видео. Способ 1400 включает в себя, на этапе 1410, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает ограничение на синтаксический элемент, причем синтаксический элемент соответствует битовой глубине, используемой для представления видео в битовом потоке.

На фиг. 15 показана блок-схема примерного способа 1500 обработки видео. Способ 1500 включает в себя, на этапе 1510, выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, которое устанавливает ограничение на синтаксический элемент, причем синтаксический элемент соответствует формату цветности видео.

Следующие решения показывают примерные варианты осуществления способов, рассмотренных в предыдущем разделе (например, пункты 1-9).

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

А1. Способ обработки видео, содержащий выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, где правило устанавливает, что синтаксическая структура в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента, причем синтаксическая структура содержит информацию, относящуюся к общей информации ограничения (GCI) для битового потока, при этом синтаксический элемент указывает уровень, которому соответствует набор выходных слоев, ассоциированный с синтаксической структурой профиль-ярус-уровень.

А2. Способ согласно решению A1, в котором информация, относящаяся к GCI, указывает то, указаны ли один или более флагов GCI.

А3. Способ согласно решению A1 или A2, в котором синтаксическая структура находится непосредственно после синтаксического элемента.

А4. Способ согласно любому из решений A1-A3, в котором синтаксическая структура является синтаксической структурой general_constraint_info( ), и синтаксическим элементом является синтаксический элемент general_level_idc.

А5. Способ обработки видео, содержащий выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксис выравнивания байтов в синтаксической структуре общей информации ограничения (GCI) находится после одного или более зарезервированных полей GCI, синтаксис выравнивания байтов указывает то, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам, от позиции первого бита в битовом потоке, и синтаксическая структура GCI содержит синтаксические элементы, относящиеся к GCI.

А6. Способ согласно решению A5, в котором синтаксис выравнивания байтов находится в конце синтаксической структуры GCI.

А7. Способ согласно решению A5 или A6, в котором синтаксис выравнивания байтов содержит поле gci_alignment_zero_bit и его синтаксическое условие, и синтаксическая структура GCI является синтаксической структурой general_constraint_info( ).

А8. Способ обработки видео, содержащий выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксическая структура в синтаксической структуре профиль-ярус-уровень находится после указателя информации уровня, синтаксическая структура содержит информацию, относящуюся к общей информации ограничения (GCI), и указатель информации уровня задает индикатор функциональной совместимости.

А9. Способ согласно решению A8, в котором синтаксическая структура является синтаксической структурой general_constraint_info( ), и указателем является синтаксический элемент general_sub_profile_idc[ i ].

А10. Способ обработки видео, содержащий выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксический элемент в синтаксической структуре профиль-ярус-уровень указывает то, включена ли синтаксическая структура общей информации ограничения (GCI) в синтаксическую структуру профиль-ярус-уровень.

А11. Способ согласно решению A10, в котором синтаксическим элементом является первый флаг.

А12. Способ согласно решению A11, в котором первый флаг, равный единице, и второй флаг, равный единице, указывают то, что синтаксическая структура GCI присутствует в синтаксической структуре профиль-ярус-уровень.

А13. Способ согласно решению A12, в котором вторым флагом является profileTierPresentFlag.

А14. Способ согласно решению A11, в котором первый флаг, равный нулю, указывает то, что синтаксическая структура GCI отсутствует в синтаксической структуре профиль-ярус-уровень.

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

А16. Способ согласно решению A11, в котором включение первого флага в синтаксическую структуру профиль-ярус-уровень основано на значении второго флага.

А17. Способ согласно решению A16, в котором вторым флагом является profileTierPresentFlag.

А18. Способ согласно любому из решений A11-A17, в котором первым флагом является gci_present_flag.

А19. Способ обработки видео, содержащий выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксис выравнивания байтов исключен из синтаксической структуры общей информации ограничения (GCI). который присутствует в синтаксической структуре профиль-ярус-уровень, синтаксис выравнивания байтов указывает то, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам от позиции первого бита в битовом потоке, и синтаксическая структура GCI содержит синтаксический элемент, ассоциированный с GCI.

А20. Способ согласно решению A19, в котором синтаксис выравнивания байтов содержит поле gci_alignment_zero_bit и его синтаксическое условие, и синтаксическая структура GCI является синтаксической структурой general_constraint_info( ).

А21. Способ согласно решению A19, в котором правило дополнительно устанавливает, что ряд из множества зарезервированных битов ограничения, ассоциированных с синтаксическим элементом, относящимся к GCI, включен в битовый поток.

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

А23. Способ согласно решению A22, в котором синтаксическим элементом GCI является gci_num_reserved_bits.

А24. Способ согласно решению A22, в котором синтаксический элемент кодируется как 11-битовое целое число без знака.

А25. Способ согласно решению A22, в котором значение каждого из множества зарезервированных битов ограничения кодируется как 1-битовое целое число без знака.

А26. Способ обработки видео, содержащий выполнение преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксическая структура общей информации ограничения (GCI) находится непосредственно перед условием проверки выравнивания байтов в синтаксической структуре профиль-ярус-уровень, синтаксическая структура GCI содержит синтаксические элементы, относящиеся к GCI, и условие проверки выравнивания байтов проверяет то, является ли текущая позиция в битовом потоке целым числом, кратным 8 битам, от позиции первого бита в битовом потоке.

А27. Способ согласно решению A26, в котором синтаксическая структура GCI является синтаксической структурой general_constraint_info( ), и в котором условие проверки выравнивания байтов основано на синтаксическом элементе byte_aligned( ).

А28. Способ согласно любому из решений A1-A27, в котором преобразование содержит декодирование видео из битового потока.

А29. Способ согласно любому из решений A1-A27, в котором преобразование содержит кодирование видео в битовый поток.

А30. Способ сохранения битового потока, представляющего видео, на машиночитаемом носителе записи, содержащий выработку битового потока из видео в соответствии со способом, изложенным в любом одном или более решениях A1-A27; и сохранение битового потока на машиночитаемом носителе записи.

А31. Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа, изложенного в любом одном или более решениях A1-A30.

А32. Машиночитаемый носитель информации, имеющий хранящимися на нем инструкции, причем инструкции, при исполнении, предписывают процессору реализовать способ, изложенный в одном или более решениях A1-A30.

А33. Машиночитаемый носитель информации, на котором хранится битовый поток, выработанный в соответствии с одним или более решениями A1-A30.

А34. Устройство обработки видео для хранения битового потока, причем устройство обработки видео выполнено с возможностью реализации способа, изложенного в любом одном или более решениях A1-A30.

Далее приводится другой перечень решений, предпочтительных для некоторых вариантов осуществления.

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

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

В3. Способ согласно решению B2, в котором синтаксический элемент кодируется как 11-битовое целое число без знака.

В4. Способ согласно решению B2, в котором значение каждого из множества зарезервированных битов ограничения кодируется как 1-битовое целое число без знака.

В5. Способ согласно решению B2, в котором синтаксическим элементом GCI является gci_num_reserved_bits.

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

В7. Способ согласно решению B6, в котором синтаксический элемент GCI, равный нулю, указывает то, что один или более синтаксических элементов GCI не включены в синтаксическую структуру GCI.

В8. Способ согласно решению B7, в котором один или более синтаксических элементов GCI исключают поле выравнивания байтов.

В9. Способ согласно решению B7, в котором синтаксическая структура GCI не налагает ограничения.

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

В11. Способ согласно решению B10, в котором второй синтаксический элемент находится непосредственно после синтаксической структуры GCI.

В12. Способ согласно решению B10 или B11, в котором проверка выравнивания байтов для второго синтаксического элемента добавляется в ответ на присутствие второго синтаксического элемента в битовом потоке.

В13. Способ согласно решению B12, в котором один или более битов выравнивания добавляются в ответ на то, что второй синтаксический элемент не выровнен по байтам, и в котором добавление одного или более битов выравнивания приводит к выравниванию второго синтаксического элемента по байтам.

В14. Способ согласно решению B13, в котором один или более битов выравнивания содержат один или более ptl_alignment_zero_bit.

В15. Способ согласно любому из решений B10-B14, в котором вторым синтаксическим элементом является ptl_num_sub_profiles.

В16. Способ согласно решению B6, в котором синтаксический элемент GCI, равный единице, указывает то, что один или более синтаксических элементов GCI включены в синтаксическую структуру GCI.

В17. Способ согласно любому из решений B6-B16, в котором первым синтаксическим элементом GCI является gci_present_flag, и синтаксической структурой GCI является синтаксическая структура general_constraint_info( ).

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

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

В20. Способ согласно решению B19, в котором синтаксический элемент меньше 8 налагает ограничения.

В21. Способ согласно решению B19, в котором синтаксический элемент больше или равен 8, не налагает ограничения.

В22. Способ согласно любому из решений B18-B21, в котором синтаксическим элементом является max_bitdepth_minus8_constraint_idc.

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

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

В25. Способ согласно решению B24, в котором синтаксический элемент меньше 2 налагает ограничения.

В26. Способ согласно решению B24, в котором синтаксический элемент, равный 2, не налагает ограничения.

В27. Способ согласно любому из решений B23-B26, в котором синтаксическим элементом является max_chroma_format_constraint_idc.

В28. Способ согласно любому из решений B1-B27, в котором преобразование содержит декодирование видео из битового потока.

В29. Способ согласно любому из решений B1-B27, в котором преобразование содержит кодирование видео в битовый поток.

В30. Способ сохранения битового потока, представляющего видео, на машиночитаемом носителе записи, содержащий выработку битового потока из видео в соответствии со способом, изложенным в любом одном или более решениях B1-B27; и сохранение битового потока на машиночитаемом носителе записи.

В31. Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа, указанного в любом одном или более решениях B1-B30.

В32. Машиночитаемый носитель информации с хранящимися на нем инструкциями, при выполнении которых процессор реализует способ, изложенный в одном или более решениях B1-B30.

В33. Машиночитаемый носитель информации, на котором хранится битовый поток, выработанный в соответствии с одним или более решениями B1-B30.

В34. Устройство обработки видео для хранения битового потока, причем устройство обработки видео выполнено с возможностью реализации способа, изложенного в любом одном или более решениях B1-B30.

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

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

Р2. Способ согласно решению P1, в котором правило устанавливает, что поле GCI включается после указания информации уровня для видео.

Р3. Способ согласно любому из решений P1-P2, в котором правило устанавливает включить поле GCI после поля, указывающего, включено ли поле GCI в кодированное представление.

Р4. Способ согласно решению P1, в котором правило устанавливает, что поле GCI включается после флага указания яруса и перед синтаксическим элементом выравнивания байтов в синтаксической структуре профиль-ярус-уровень.

Р5. Способ согласно любому из решений P1-P4, в котором правило дополнительно устанавливает, что кодированное представление включает в себя ряд битов ограничения или значение каждого зарезервированного ограничения вместо сигнализации общего количества зарезервированных байтов ограничения.

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

P7. Способ согласно решению P6, в котором правило формата задает ограничение для значения поля меньше 8.

Р8. Способ согласно решению P6, в котором правило формата указывает то, что ограничение не накладывается для значения 2 синтаксического элемента.

Р9. Способ согласно любому из решений P1-P8, в котором выполнение преобразования содержит кодирование видео для выработки кодированного представления.

P10. Способ согласно любому из решений P1-P8, в котором выполнение преобразования содержит синтаксический анализ и декодирование кодированного представления для выработки видео.

P11. Устройство декодирования видео, содержащее процессор, выполненный с возможностью реализации способа, указанного в одном или более решений P1-P10.

P12. Устройство кодирования видео, содержащее процессор, выполненный с возможностью реализации способа, указанного в одном или более решений P1-P10.

P13. Компьютерный программный продукт, имеющий хранящийся в нем компьютерный код, причем код при исполнении процессором предписывает процессору реализовать способ, указанный в любом из решений P1-P10.

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

Раскрытые и другие решения, примеры, варианты осуществления, модули и функциональные операции, описанные в данном документе, могут быть реализованы в виде цифровой электронной схемы или в виде компьютерного программного обеспечения, программно-аппаратных средств или аппаратных средств, включая структуры, раскрытые в данном документе, и их структурные эквиваленты, или в виде комбинаций одного или нескольких из них. Раскрытые и другие варианты осуществления могут быть реализованы в виде одного или нескольких программных продуктов, компьютерных, то есть одного или нескольких модулей инструкций компьютерной программы, закодированных на машиночитаемом носителе информации, для исполнения или для управления работой из устройства обработки данных. Машиночитаемый носитель информации может представлять собой машиночитаемое запоминающее устройство, машиночитаемый носитель информации, устройство памяти, состав вещества, обеспечивающий распространяемый сигнал, считываемый машиной, или комбинацию из одного или нескольких их. Термин «устройство обработки данных» включает в себя все аппаратные устройства, устройства и машины для обработки данных, включая в качестве примера программируемый процессор, компьютер, или несколько процессоров или компьютеров. Устройство может включать в себя, в дополнение к аппаратным средствам, код, который создает среду исполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограмму процессора, стек протоколов, систему управления базами данных, операционную систему или комбинацию одного или нескольких из них. Распространяющийся сигнал является искусственно вырабатываемым сигналом, например, вырабатываемым машиной электрическим, оптическим или электромагнитным сигналом, который вырабатывается для того, чтобы кодировать информацию для передачи на подходящее приемное устройство.

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

Процессы и логические потоки, описанные в настоящем документе, могут выполняться одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для выполнения функций, оперируя входными данными и вырабатывая выходные данные. Кроме того, могут также выполняться процессы и логические потоки, и устройство может быть также реализовано в виде логической схемы специального назначения, например, FPGA (программируемая пользователем вентильная матрица) или ASIC (специализированная интегральная схема).

Процессоры, подходящие для исполнения компьютерной программы включают в себя, в качестве примера, микропроцессоры как общего, так и специального назначения, и любой один или более процессоров любого типа цифрового компьютера. Как правило, процессор принимает инструкции и данные только для считывания памяти или оперативной памяти или обоих. Основными элементами компьютера являются процессор для исполнения инструкций и одного или более устройств памяти для хранения инструкций и данных. В общем, компьютер будет также включать в себя или функционально соединен с возможностью приема данных из или передачи данных в или и то, и другое, одно или более запоминающих устройства большой емкости для хранения данных, например, магнитных дисков, магнитооптических или оптических дисков. Однако компьютер необязательно должен иметь такие устройства. Машиночитаемые носители информации, подходящие для хранения инструкций и данных компьютерных программ, включают в себя все виды энергонезависимой памяти, носителей информации и запоминающих устройств, включая, например, полупроводниковые запоминающие устройства, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут быть дополнены специализированной логической схемой или включены в нее.

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

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

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

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

название год авторы номер документа
ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНОЙ СИГНАЛИЗАЦИИ В МНОГОСЛОЙНЫХ БИТОВЫХ ВИДЕОПОТОКАХ 2020
  • Ван, Е-Куй
RU2821429C1
СИГНАЛИЗАЦИЯ ИДЕНТИФИКАТОРОВ УРОВНЕЙ ДЛЯ РАБОЧИХ ТОЧЕК ПРИ КОДИРОВАНИИ ВИДЕО 2013
  • Ван Е-Куй
RU2635892C2
УСОВЕРШЕНСТВОВАННАЯ СИГНАЛИЗАЦИЯ ИДЕНТИФИКАТОРОВ СЛОЕВ ДЛЯ РАБОЧИХ ТОЧЕК ВИДЕОКОДЕРА 2013
  • Ван Е-Куй
RU2656827C2
КОДИРОВАНИЕ НАБОРОВ ПАРАМЕТРОВ И ЗАГОЛОВКОВ ЕДИНИЦ NAL ДЛЯ КОДИРОВАНИЯ ВИДЕО 2013
  • Чэнь Ин
  • Ван Е-Куй
RU2633117C2
СИСТЕМЫ И СПОСОБЫ СИГНАЛИЗАЦИИ ПАРАМЕТРОВ ПРИ КОДИРОВАНИИ ВИДЕОСИГНАЛОВ 2019
  • Дешпанде, Сачин Г.
RU2771478C1
ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНОЙ СИГНАЛИЗАЦИИ В МНОГОСЛОЙНЫХ БИТОВЫХ ПОТОКАХ ВИДЕО 2020
  • Ван, Е-Куй
RU2822511C1
ТЕСТИРОВАНИЕ НА СООТВЕТСТВИЕ БИТОВОГО ПОТОКА 2013
  • Ван Е-Куй
RU2613737C2
ПЕРЕНОС ПОТОКОВ БИТОВ РАСШИРЕНИЯ СТАНДАРТА ВЫСОКОЭФФЕКТИВНОГО КОДИРОВАНИЯ ВИДЕО (HEVC) И БУФЕРНОЙ МОДЕЛИ С ПОМОЩЬЮ СИСТЕМ СТАНДАРТА ЭКСПЕРТНОЙ ГРУППЫ ПО ДВИЖУЩИМСЯ ИЗОБРАЖЕНИЯМ (MPEG)-2 2015
  • Чэнь Ин
  • Ван Е-Куй
RU2685233C2
СИНТАКСИЧЕСКАЯ СТРУКТУРА ПАРАМЕТРОВ ГИПОТЕТИЧЕСКОГО ЭТАЛОННОГО ДЕКОДЕРА 2013
  • Ван Е-Куй
RU2643463C2
СПОСОБ И АППАРАТНЫЙ КОМПОНЕНТ СИГНАЛИЗАЦИИ ЧИСЛА КАНДИДАТОВ ДЛЯ РЕЖИМА СЛИЯНИЯ 2021
  • Филиппов, Алексей Константинович
  • Руфицкий, Василий Алексеевич
  • Алшина, Елена Александровна
RU2823267C1

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

Реферат патента 2024 года СИГНАЛИЗАЦИЯ ОБЩЕЙ ИНФОРМАЦИИ ОБ ОГРАНИЧЕНИЯХ

Изобретение относится к кодированию и декодированию изображений и видео. Техническим результатом является повышение эффективности кодирования видео. Результат достигается тем, что выполняют преобразование между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с правилом, причем правило устанавливает, что синтаксическая структура в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента, при этом указанная синтаксическая структура содержит информацию, относящуюся к общей информации ограничения (GCI) для битового потока, а синтаксический элемент указывает уровень, которому соответствует набор выходных слоев, ассоциированный с синтаксической структурой профиль-ярус-уровень. 4 н. и 13 з.п. ф-лы, 15 ил.

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

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

выполняют преобразование между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с первым правилом,

причем первое правило устанавливает, что синтаксическая структура общей информации ограничения (GCI) в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента,

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

синтаксический элемент указывает уровень, которому соответствует один или более наборов выходных слоев,

при этом преобразование выполняют дополнительно в соответствии со вторым правилом,

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

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

3. Способ по п. 1 или 2, в котором синтаксическая структура GCI является синтаксической структурой general_constraint_info( ), а синтаксическим элементом является синтаксический элемент general_level_idc.

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

5. Способ по п. 1, в котором синтаксис выравнивания байтов находится в конце синтаксической структуры GCI.

6. Способ по п. 1, в котором синтаксис выравнивания байтов содержит поле gci_alignment_zero_bit и его синтаксическое условие, а синтаксическая структура GCI является синтаксической структурой general_constraint_info( ).

7. Способ по п. 1, в котором преобразование выполняют дополнительно в соответствии с третьим правилом:

причем третье правило устанавливает, что первый синтаксический элемент GCI, указывающий количество резервных битов GCI, включен в битовый поток.

8. Способ по п. 7, в котором третье правило дополнительно указывает, что значение каждого из резервных битов GCI включено в битовый поток.

9. Способ по п. 8, в котором значение каждого из резервных битов GCI кодировано как 1-битовое целое число без знака.

10. Способ по п. 7, в котором первым синтаксическим элементом GCI является gci_num_reserved_bits.

11. Способ по п. 1, в котором преобразование выполняют дополнительно в соответствии с четвертым правилом,

причем четвертое правило устанавливает, что второй синтаксический элемент GCI включен в начало синтаксической структуры GCI,

при этом второй синтаксический элемент GCI указывает, включены ли один или более синтаксических элементов GCI в синтаксическую структуру GCI.

12. Способ по п. 11, в котором второй синтаксический элемент GCI, равный нулю, указывает, что указанный один или более синтаксических элементов GCI не включены в синтаксическую структуру GCI.

13. Способ по п. 12, в котором указанный один или более синтаксических элементов GCI исключают поле выравнивания байтов.

14. Способ по п. 12, в котором синтаксическая структура GCI не налагает ограничения.

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

преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с первым правилом,

причем первое правило устанавливает, что синтаксическая структура общей информации ограничения (GCI) в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента,

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

синтаксический элемент указывает уровень, которому соответствует один или более наборов выходных слоев,

при этом преобразование выполняется дополнительно в соответствии со вторым правилом,

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

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

преобразования между видео, содержащим одно или более изображений, и битовым потоком видео в соответствии с первым правилом,

причем первое правило устанавливает, что синтаксическая структура общей информации ограничения (GCI) в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента,

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

синтаксический элемент указывает уровень, которому соответствует один или более наборов выходных слоев,

при этом преобразование выполняется дополнительно в соответствии со вторым правилом,

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

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

вырабатывают битовый поток видео, содержащий одно или более изображений, в соответствии с первым правилом,

причем первое правило устанавливает, что синтаксическая структура общей информации ограничения (GCI) в синтаксической структуре профиль-ярус-уровень находится после синтаксического элемента,

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

синтаксический элемент указывает уровень, которому соответствует один или более наборов выходных слоев,

при этом преобразование выполняют дополнительно в соответствии со вторым правилом,

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

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

WO 2020058567 A1, 2020.03.26
US 10194160 B2, 2019.01.29
US 2020021853 A1, 2020.01.16
US 2016234516 A1, 2016.08.11
US 2016065982 A1, 2016.03.03
КОДИРОВАНИЕ НАБОРОВ ПАРАМЕТРОВ И ЗАГОЛОВКОВ ЕДИНИЦ NAL ДЛЯ КОДИРОВАНИЯ ВИДЕО 2013
  • Чэнь Ин
  • Ван Е-Куй
RU2633117C2

RU 2 825 252 C1

Авторы

Ван, Е-Куй

Чжан, Ли

Даты

2024-08-22Публикация

2021-06-02Подача