Область техники, к которой относится изобретение
Настоящий патентный документ относится к кодированию и декодированию изображений и видео.
Уровень техники
На цифровое видео приходится наибольшее использование полосы пропускания в сети Интернет и в других цифровых сетях связи. Поскольку количество присоединенных пользовательских устройств, способных принимать и представлять видео на дисплее, увеличивается, ожидается, что потребность в полосе пропускания для использования цифрового видео будет расти.
Раскрытие сущности изобретения
Настоящий документ предлагает технологию, которая может быть использована видеокодерами и видеодекодерами с целью осуществления кодирования или декодирования видео.
Согласно одному примерному аспекту предложен способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видео, содержащим множество слоев, и потоком битов данных видео в соответствии с некоторым правилом, причем правило устанавливает максимально допустимое значение идентификатора временных слоев для подпотока битов данных, извлекаемого из потока битов данных.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео и потоком битов данных видео в соответствии с некоторым правилом, причем правило определяет единицы слоя сетевой абстракции (network abstraction layer (NAL)), подлежащие извлечению из потока битов данных в ходе процедуры извлечения подпотока битов данных для вывода подпотока битов данных, при этом указанное правило устанавливает получить подпоток битов данных на основе того, действительно ли список значений идентификаторов заголовков единиц слоя NAL в выходном наборе слоев (output layer set (OLS)) с индексом целевого набора OLS не включает в себя все значения идентификаторов заголовков единиц слоя NAL во всех единицах слоя NAL в слое кодирования видео (video coding layer (VCL)) в потоке битов данных, поступающем на вход процедуры извлечения подпотока битов данных.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео и потоком битов данных видео в соответствии с правилом, причем правило определяет единицы слоя сетевой абстракции (NAL), подлежащие извлечению из указанного потока битов данных в ходе процедуры извлечения подпотока битов данных cлоя подпотока битов данных, при этом указанное правило устанавливает, в ответ на тип полезной нагрузки первого сообщения информации дополнительного улучшения (supplemental enhancement information (SEI)), входящего в единицу слоя сетевой абстракции (NAL) с информацией SEI, запретить единице NAL SEI содержать сообщение SEI с некоторым типом полезной нагрузки.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео и потоком битов данных видео в соответствии с правилом форматирования, причем правило форматирования устанавливает, что поток битов данных содержит флаг, устанавливающий, применяется ли одно или более немасштабируемых вложенных сообщений информации дополнительного улучшения (SEI) с одним или более конкретными типами полезной нагрузки ко всем выходным наборам слоев, на которые ссылается слой кодирования.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео и потоком битов данных видео в соответствии с правилом, причем правило устанавливает процедуру извлечения подпотока битов данных, посредством которой выходной подпоток битов данных извлекается из потока битов данных без удаления единиц слоя сетевой абстракции (NAL) конкретного типа, которые имеют конкретное значение идентификатора заголовка единицы слоя NAL, причем указанный конкретный тип представляет собой единицу слоя NAL с разделителем единиц доступа (access unit delimiter (AUD)).
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом, причем правило устанавливает, в процессе извлечения подпотока битов данных, удалить единицы слоя сетевой абстракции (NAL), которые содержат масштабируемое вмещающее сообщение информации дополнительного улучшения (SEI), применяемое к слоям, не входящим в целевой выходной набор слоев (OLS).
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом, причем правило устанавливает, в процессе извлечения подпотока битов данных, что генерируется немасштабируемое вложенное сообщение информации дополнительного улучшения (SEI) посредством извлечения сообщения информации SEI, которое является масштабируемо вложенным, из масштабируемого вмещающего сообщения SEI на основе первого флага, указывающего, применимо ли сообщение SEI к определенным выходным наборам слоев (OLS), и второго флага, указывающего, применимо ли сообщение SEI ко всем подизображениям или только к определенным подизображениям.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом, причем правило устанавливает, в процессе извлечения подпотока битов данных, что генерируется немасштабируемое вложенное сообщение информации дополнительного улучшения (SEI) посредством извлечения множества масштабируемо вложенных сообщений SEI из первой единицы слоя сетевой абстракции (NAL) SEI в блоке изображений.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом, причем правило устанавливает процедуру извлечения подпотока битов данных для генерирования выходного потока битов данных, при этом правило устанавливает обработать одну или более единиц слоя сетевой абстракции (NAL) с информацией дополнительного улучшения (SEI) в ходе выполнения процедуры извлечения подпотока битов данных.
Согласно еще одному другому примерному аспекту предложено устройство видеокодера. Видеокодер содержит процессор, выполненный с возможностью реализации описанных выше способов.
Согласно еще одному другому примерному аспекту предложено устройство видеодекодера. Видеодекодер содержит процессор, выполненный с возможностью реализации описанных выше способов.
Согласно еще одному другому примерному аспекту предложен читаемый компьютером носитель информации, имеющий хранящийся на нем код. Код реализует один из описанных здесь способов в виде выполняемого процессором кода.
Эти и другие признаки описаны в настоящем документе.
Краткое описание чертежей
Фиг. 1 представляет блок-схему, иллюстрирующую систему кодирования видео в соответствии с некоторыми вариантами предлагаемой технологии.
Фиг. 2 представляет блок-схему аппаратной платформы, используемой для обработки видео.
Фиг. 3 представляет логическую схему примера способа обработки видео.
Фиг. 4 представляет блок-схему, иллюстрирующую пример системы кодирования видео.
Фиг. 5 представляет блок-схему, иллюстрирующую кодирующее устройство в соответствии с некоторыми вариантами предлагаемой технологии.
Фиг. 6 представляет блок-схему, иллюстрирующую декодирующее устройство в соответствии с некоторыми вариантами предлагаемой технологии.
Фиг. 7A – 7D представляют логические схемы примеров способов обработки видео на основе некоторых вариантов реализации предлагаемой технологии.
Фиг. 8 представляют логическую схему примера способа обработки видео на основе некоторых вариантов реализации предлагаемой технологии.
Фиг. 9 представляют логическую схему примера способа обработки видео на основе некоторых вариантов реализации предлагаемой технологии.
Фиг. 10A – 10C представляют логические схемы примеров способов обработки видео на основе некоторых вариантов реализации предлагаемой технологии.
Осуществления изобретения
Заголовки разделов в настоящем документе используются только для облегчения понимания и не ограничивают применимость способов и вариантов, рассматриваемых в каждом разделе, только этим разделом. Более того, терминология стандарта H.266 используется в описаниях некоторых разделов только для облегчения понимания, а не для ограничения объема предлагаемых способов. Поэтому, описываемые здесь способы также применимы и к другим протоколам и устройствам для работы видео кодеков.
1. Введение
Настоящий документ относится к технологиям кодирования и декодирования видео. В частности, он посвящен некоторым усовершенствованиям в общей процедуре извлечения подпотока битов данных, передачи в виде сигнализации параметров гипотетического эталонного декодера HRD и введения сообщений SEI в единицы SEI NAL. Содержащиеся в документе идеи могут быть применены индивидуально или в разнообразных комбинациях, к любым стандартам кодирования и декодирования видео или к нестандартным видео кодекам, поддерживающим кодирование и декодирование многослойного видео, например, к разрабатываемому в настоящее время стандарту Универсального видео кодирования (Versatile Video Coding (VVC)).
2. Аббревиатуры
3. Первоначальное обсуждение
Стандарты кодирования и декодирования видео до настоящего момента развивались преимущественно через продолжение разработки хорошо известных стандартов сектора ITU-T и ИСО/МЭК (ISO/IEC). Сектор ITU-T разработал стандарты H.261 и H.263, ISO/IEC разработали стандарты MPEG-1 и MPEG-4 Visual, а совместно эти две организации разработали стандарты H.262/MPEG-2 Video и H.264/MPEG-4 AVC (усовершенствованное видео кодирование), а также стандарты H.265/HEVC. Начиная со стандарта H.262, стандарты кодирования и декодирования видео основаны на гибридной структуре кодирования видео, в которой используются временное прогнозирование плюс кодирование с преобразованием. Для исследований технологий будущего для кодирования и декодирования видео, сверх стандарта кодирования HEVC, группы экспертов VCEG и MPEG в 2015 г. создали Совместную группу по исследованиям видео (Joint Video Exploration Team (JVET)). С тех пор группа JVET разработала много новых стандартов и ввела их в эталонное программное обеспечение под названием Совместная исследовательская модель (Joint Exploration Model (JEM)). Сегодня совещания группы JVET проходят раз в квартал, а целью при разработке нового стандарта кодирования и декодирования является снижение скорости передачи битов данных на 50% по сравнению со стандартом кодирования HEVC. Новый стандарт кодирования и декодирования видео был официально назван Универсальное видео кодирование (Versatile Video Coding (VVC)) на совещании группы JVET в апреле 2018 г., и в это же время была выпущена первая версия тестовой модели стандарта кодирования VVC (VTM). В процессе продолжающихся работ по стандартизации кодирования VVC на каждом совещании группы JVET принимаются новые технологии кодирования и декодирования. Вследствие этого, на каждом совещании происходит обновление рабочего проекта стандарта VVC и тестовой модели VTM. Целью разработки проекта стандарта VVC сегодня является техническое завершение (FDIS) на совещании в июле 2020 г.
3.1. Изменение разрешения изображения в пределах последовательности
В стандартах кодирования AVC и HEVC, пространственное разрешение изображений не может изменяться, если только новая последовательность, использующая новый набор SPS, не начнется с изображения IRAP (изображения с внутрикадровой точкой произвольного доступа). Стандарт кодирования VVC позволяет изменять разрешение изображения в пределах последовательности в произвольной позиции без кодирования изображения IRAP, которое всегда кодировано с внутрикадровым прогнозированием. Это свойство иногда называется редискретизацией опорного изображения (reference picture resampling (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 относятся: i) Разрешение изображения и связанное с ним окно конформности сообщают в виде сигнализации в наборе PPS вместо набора SPS, тогда как в наборе SPS сообщают в виде сигнализации максимальное разрешение изображения. ii) Для однослойного потока битов данных, каждое сохраненное изображение (слот в буфере DPB для сохранения одного декодированного изображения) занимает в буфере место такого размера, какой требуется для сохранения декодированного изображения, имеющего максимальное разрешение изображения.
3.2. Масштабируемое видео кодирование (SVC) в общем случае и в стандарте кодирования VVC
Масштабируемое видео кодирование (SVC, иногда в системах кодирования и декодирования видео также называется просто масштабируемостью) обозначает способ кодирования и декодирования видео, в котором используются базовый слой (base layer (BL)), иногда называемый опорным слоем (reference layer (RL)), и один или несколько масштабируемых расширительных слоев (scalable enhancement layer (EL)). При кодировании SVC, базовый слой может нести данные видео с базовым уровнем качества. Один или несколько расширительных слоев могут нести дополнительные данные для поддержки, например, более высоких уровней пространственного и/или временного разрешения, и/или более высоких уровней отношения сигнал/шум (signal-to-noise (SNR)). Расширительные слои могут быть определены относительно ранее кодированного слоя. Например, нижний слой может служить слоем BL, тогда как верхний слой может служить слоем EL. Средние слои могут служить либо слоями EL, либо слоями RL, либо и теми и другими. Например, средний слой (например, слой, который не является ни самым нижним слоем, ни самым верхним слоем) может быть слоем EL для слоев, находящихся ниже этого среднего слоя, таких как базовый слой или какие-либо промежуточные расширительные слои, и в то же время случить слоем RL для одного или нескольких расширительных слоев, находящихся выше этого среднего слоя. Аналогично, в многовидовом (Multiview) или в трехмерном (3D) расширении стандарта кодирования HEVC, могут быть несколько видов, и информация одного вида может быть использована для кодирования (например, кодирования или декодирования) информации другого вида (например, при осуществлении оценки движения, прогнозирования вектора движения и/или других избыточностей).
При кодировании SVC, параметры, используемые кодирующим устройством или декодирующим устройством, группируют в наборы параметров на основе уровня кодирования (например, уровень видео, уровень последовательности, уровень изображения, уровень среза и т.д.), на котором они могут быть использованы. Например, параметры, которые могут быть использованы одной или несколькими кодированными последовательностями видео в разных слоях в потоке битов данных, могут быть включены в набор параметров видео (VPS), и параметры, используемые одним или несколькими изображениями в кодированной последовательности видео, могут быть включены в набор параметров последовательности (SPS). Аналогично, параметры, используемые одним или несколькими срезами в изображении, могут быть включены в набор параметров изображения (PPS), а другие параметры, специфичные для какого-то одного среза, могут быть включены в заголовок этого среза. Аналогично, индикация того, какой именно набор (ы) параметров использует конкретный слой в какой-то рассматриваемый момент времени, может быть предоставлена на различных уровнях кодирования.
Благодаря поддержке редискретизации опорного изображения (RPR) в стандарте кодирования VVC, поддержка потока битов данных, содержащего несколько слоев, например, два слоя с разрешения стандартной (SD) и высокой (HD) четкости в стандарте кодирования VVC, может быть построена без необходимости использования какого-либо дополнительного инструмента кодирования на уровне обработки сигнала, поскольку для повышающей дискретизации, необходимой для поддержки пространственной масштабируемости, можно просто использовать фильтр для повышающей дискретизации RPR. Тем не менее, для поддержки маштабируемости необходимы изменения синтаксиса высокого уровня (по сравнению с ситуацией отсутствия поддержки масштабируемости). Поддержка масштабируемости специфицирована в версии 1 стандарта кодирования VVC. В отличие от поддержки масштабируемости в каких-либо более ранних стандартах кодирования и декодирования видео, включая расширения стандартов кодирования AVC и HEVC, структура масштабируемости в стандарте кодирования VVC была сделана максимально дружественной к конфигурациям декодирующих устройств для однослойного видео. Возможности декодирования для многослойного потока битов данных специфицированы таким образом, как если бы в этом потоке битов данных был только один слой. Например, возможности декодирования, такие как размер буфера DPB, специфицированы таким образом, что они независимы от числа слоев в потоке битов данных, который нужно декодировать. В принципе, не требуется вносить больших изменений в декодер, разработанный для однослойных потоков битов данных, чтобы сделать его способным декодировать многослойные потоки битов данных. По сравнению с конфигурацией многослойных расширений стандартов AVC и HEVC, аспекты HLS были значительно упрощены в ущерб некоторым возможностям гибкости. Например, единица IRAP AU должна содержать изображение для каждого из слоев, присутствующих в последовательности 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. Общая процедура извлечения подпотока битов данных
Статья C.6 самой последней текстовой версии стандарта кодирования VVC специфицирует общую процедуру извлечения подпотока битов данных следующим образом:
C.6 Процедура извлечения подпотока битов данных
Входными данными для этой процедуры являются поток битов данных – inBitstream, индекс targetOlsIdx целевого множества OLS, и целевое значение наивысшего идентификатора TemporalId value – tIdTarget.
Выходными данными этой процедуры является подпоток битов данных outBitstream.
Требование конформности потока битов данных для входного потока битов данных состоит в том, что любой выходной подпоток битов данных, который удовлетворяет всем следующим условиям, будет конформным потоком битов данных:
– Выходной подпоток битов данных представляет собой выходные данные специфицированной в этой статье процедуры, где входными данными являются поток битов данных, индекс targetOlsIdx равный индексу к списку множеств OLS, специфицированных набором VPS, и идентификатор tIdTarget равен какому-либо значению в диапазоне от 0 до 6 включительно.
– Выходной подпоток битов данных содержит по меньшей мере одну единицу VCL NAL с параметром nuh_layer_id, равным каждому из значений параметра nuh_layer_id в списке LayerIdInOls[ targetOlsIdx ].
– Выходной подпоток битов данных содержит по меньшей мере одну единицу VCL NAL с идентификатором TemporalId равным tIdTarget.
Примечание – Соответствующий поток битов данных содержит одну или несколько единиц NAL кодированного среза, для которых идентификатор TemporalId равен 0, но не содержит единиц NAL кодированного среза, для которых параметр nuh_layer_id равен 0.
Выходной подпоток битов данных OutBitstream определяют следующим образом:
1. Установление потока битов данных outBitstream идентичным потоку битов данных inBitstream.
2. Удаление из потока outBitstream всех единиц NAL, для которых идентификатор TemporalId больше tIdTarget.
3. Удаление из потока outBitstream всех единиц NAL, для которых параметр nal_unit_type не равен какому-либо из параметров VPS_NUT, DCI_NUT и EOB_NUT и для которых параметр nuh_layer_id не входит в список LayerIdInOls[ targetOlsIdx ].
4. Удаление из потока outBitstream всех единиц VCL NAL, для которых все следующие условия являются истинными, и ассоциированных с этими единицами единиц не-VCL NAL с параметром nal_unit_type равным какому-либо из параметров PH_NUT, FD_NUT, SUFFIX_SEI_NUT и PREFIX_SEI_NUT с параметром PayloadType не равным 0, 1, или 130:
– параметр nal_unit_type равен одному из параметров TRAIL_NUT, STSA_NUT, RADL_NUT или RASL_NUT, либо параметр nal_unit_type равен GDR_NUT и ассоциированный с ним параметр ph_recovery_poc_cnt не равен 0.
– параметр nuh_layer_id равен LayerIdInOls[ targetOlsIdx ][ j ] для значения j в диапазоне от 0 to NumLayersInOls[ targetOlsIdx ] − 1 включительно.
– идентификатор TemporalId не меньше параметра NumSubLayersInLayerInOLS[ targetOlsIdx ][ GeneralLayerIdx[ nuh_layer_id ] ].
5. Удаление из потока outBitstream всех единиц SEI NAL, которые содержат масштабируемое несущее сообщение SEI, имеющее флаг sn_ols_flag равный 1, и при этом нет значения i в диапазоне от 0 до sn_num_olss_minus1, включительно, так что параметр NestingOlsIdx[ i ] равен targetOlsIdx.
6. Когда список LayerIdInOls[ targetOlsIdx ] не содержит все значения параметра nuh_layer_id во всех единицах NAL в потоке битов данных, применяется следующее:
a. Удаление из потока outBitstream всех единиц SEI NAL, которые содержит немасштабируемоек вложенное сообщение SEI с параметром payloadType равным 0 (BP) или 130 (DUI).
b. Когда флаг general_same_pic_timing_in_all_ols_flag равен 0, удаление из потока outBitstream всех единиц SEI NAL, которые содержат немасштабируемое вложенное сообщение SEI с параметром payloadType равным 1 (PT).
c. Когда поток outBitstream содержит единицы SEI NAL, которые содержат масштабируемое несущее сообщение SEI с флагом sn_ols_flag равным 1 и применимы к потоку outBitstream (параметр NestingOlsIdx[ i ] равен targetOlsIdx), применяется следующее:
– Если флаг general_same_pic_timing_in_all_ols_flag равен 0, извлечение соответствующих немасштабируемых вложенных сообщений SEI с параметром payloadType равным 0 (BP), 1 (PT) или 130 (DUI) из масштабируемого несущего сообщения SEI и включение этих извлеченных сообщений SEI в поток outBitstream.
– В противном случае (флаг general_same_pic_timing_in_all_ols_flag равен 1), извлечение соответствующего немасштабируемого вложенного сообщения SEI с параметром payloadType равным 0 (BP) или 130 (DUI) из масштабируемого несущего сообщения SEI и включение этих сообщений SEI в поток outBitstream.
4. Технические проблемы, решаемые посредством предлагаемых здесь технических решений
Существующая структура общей процедуры извлечения подпотока битов данных и соответствующих других частей, изложенной в самой последней текстовой версии стандарта кодирования VVC (в документе JVET-R2001-vA/v10), имеет следующие проблемы:
1) В ситуациях, когда требуется, чтобы выходной подпоток битов данных был конформным потоком битов данных, указано, что значение параметра tIdTarget должно быть в диапазоне от 0 до 6, включительно. Однако во многих потоках битов данных наибольше значение идентификатора TemporalId меньше 6, и значение определяется синтаксическим элементом vps_max_sublayers_minus1.
2) Единица слоя NAL с разделителем единиц доступа (AUD), когда она присутствует, может иметь любое значение параметра nuh_layer_id. Однако этап 3 процедуры извлечения подпотока битов данных должен будет удалить единицы AUD NAL, для которых значения параметра nuh_layer_id не входят в список LayerIdInOls[ targetOlsIdx ].
3) Некоторые единицы SEI NAL содержат масштабированное несущее сообщение SEI с флагом sn_ols_flag равным 0, тогда как применимые слои, как это заявлено в масштабируемом несущем сообщении SEI, не являются какими-либо слоями из целевого множества OLS, т.е. ни одно из значений параметров nuh_layer_id применимых слоев не входит в список LayerIdInOls[ targetOlsIdx ]. Такие единицы SEI NAL также следует удалить.
4) Условие этапа 6, т.е. «Когда список LayerIdInOls[ targetOlsIdx ] не содержит все значения параметров nuh_layer_id для всех единиц NAL в потоке битов данных», имеет следующие две проблемы.
a. Это условие не работает для случаев, когда единицы NAL с параметрами DCI, VPS, AUD или EOB и имеют параметр nuh_layer_id не равный какому-либо из значений параметров nuh_layer_id для единиц VCL NAL.
b. Фраза «поток битов данных» не является четко определенной, поскольку имеются два потока битов данных, вовлеченных в контекст, а именно потоки inBitstream и outBitstream.
5) На этапе 6.c следовало бы извлечь масштабируемые вложенные сообщения SEI, для генерации немасштабируемых вложенных сообщений SEI, из масштабируемых несущих сообщений SEI, для которых и флаг sn_ols_flag равен 1, и флаг sn_subpic_flag равен 1, тогда как такие масштабируемые вложенные сообщения SEI применимы только к каким-то определенным фрагментам, и вследствие этого их извлекать не следует.
6) На этапе 6.c, когда из одной единицы SEI NAL, именуемой seiNalUnitA, извлекают несколько масштабируемых вложенных сообщений SEI для получения немасштабируемых вложенных сообщений SEI, они должны быть по-прежнему включены в одну единицу SEI NAL, именуемую seiNalUnitB, и эта единица SEI NAL, именуемая seiNalUnitB, должна быть включена в ту же самую единицу PU, куда входила единица SEI NAL, именуемая seiNalUnitA. Однако это не специфицировано.
7) На этапе 6.c следует удалить, из потока outBitstream, все единицы SEI NAL, из которых какие-то сообщения SEI были извлечены и включены как немасштабируемые вложенные сообщения SEI. Однако это не специфицировано.
8) Отсутствует ограничение, состоящее в том, что когда единица SEI NAL содержит сообщение SEI с параметром payloadType, равным 0, 1 или 130, эта единица SEI NAL не должна содержать сообщение SEI с параметром payloadType не равным 0 (BP), 1 (PT), 130 (DUI) или 133 (масштабируемое несущее). Это приводит к тому, что удаление сообщений SEI на этапе 4 содержит больше, чем просто удаление единиц SEI NAL.
9) Флаг general_same_pic_timing_in_all_ols_flag специфицирует только, применимы ли немасштабируемые вложенные сообщения PT SEI ко всем множествам OLS. Однако информация, передаваемая в сообщениях DUI SEI, предназначена для целей, аналогичных информации в сообщениях PT SEI.
5. Список технических решений и вариантов
Для решения перечисленных выше и других проблем предложены способы, сводка которых приведена ниже. Эти позиции следует рассматривать в качестве примеров для пояснения общих концепций, и они не должны быть интерпретированы в узком смысле. Более этого, эти позиции могут быть применены индивидуально или в каких-либо комбинациях.
1) Для решения проблемы 1, условия, при которых требуется, чтобы выходной подпоток битов данных был конформным потоком битов данных, специфицированы таким образом, что значение параметра tIdTarget определено так, чтобы находиться в диапазоне от 0 до vps_max_sublayers_minus1, включительно.
a. В качестве альтернативы, условия, при которых требуется, чтобы выходной подпоток битов данных был конформным потоком битов данных, специфицированы таким образом, что значение параметра tIdTarget определено так, чтобы находиться в диапазоне от 0 до vps_max_sublayers_minus1, включительно, когда во входном потоке битов данных имеется больше одного слоя, и определено так, чтобы находиться в диапазоне от 0 до sps_max_sublayers_minus1, включительно, когда во входном потоке битов данных имеется только один слой.
2) Для решения проблемы 2, общая процедура выделения подпотока битов данных специфицирована так, что единицы AUD NAL обрабатывают таким же образом, как единицы NAL, для которых параметр nal_unit_type равен VPS_NUT, DCI_NUT или EOB_NUT. Другими словами, ни одну из единиц AUD NAL не удаляют из выходного потока битов данных outBitstream в соответствии со значением параметра nuh_layer_id.
3) Для решения проблемы 3, общая процедура выделения подпотока битов данных специфицирована так, что следует удалять, из выходного потока битов данных outBitstream, единицы SEI NAL, содержащие масштабируемое несущее сообщение SEI, для которого флаг sn_ols_flag равен 0, тогда как применимые слои, как заявлено в масштабируемом несущем сообщении SEI не включают какой-либо слой из целевого множества OLS.
a. В одном из примеров, специфицировано, что следует удалить из потока outBitstream все единицы SEI NAL, содержащие масштабируемое несущее сообщение SEI, имеющее флаг sn_ols_flag равный 0, и нет ни одного значения в списке nestingLayerId[ i ] для i в диапазоне от 0 до nestingNumLayers − 1, включительно, которое находится в списке LayerIdInOls[ targetOlsIdx ].
4) Для решения проблемы 4, условие «Когда список LayerIdInOls[ targetOlsIdx ] не содержит все значения параметра nuh_layer_id для всех единиц NAL в потоке битов данных» изменено на «Когда список LayerIdInOls[ targetOlsIdx ] не содержит все значения параметра nuh_layer_id для всех единиц VCL NAL в потоке битов данных inBitstream".
5) Для решения проблемы 5, общая процедура выделения подпотока битов данных специфицирована так, что она извлекает только масштабируемые вложенные сообщения SEI из масштабируемых несущих сообщений SEI, для которых флаг sn_ols_flag равен 1 и sn_subpic_flag флаг равен 0, для генерации немасштабируемых вложенных сообщений SEI.
6) Для решения проблемы 6, общая процедура выделения подпотока битов данных специфицирована так, что когда несколько масштабируемых вложенных сообщений SEI извлекают из одной единицы SEI NAL, именуемой seiNalUnitA, для получения немасштабируемых вложенных сообщений SEI, они по-прежнему включены в одну единицу SEI NAL, именуемую seiNalUnitB, в выходном потоке битов данных outBitstream, и эта единица SEI NAL, именуемая seiNalUnitB, входит в ту же самую единицу PU, куда входила единица SEI NAL, именуемая seiNalUnitA.
7) Для решения проблемы 7, общая процедура выделения подпотока битов данных специфицирована так, что она удаляет, из выходного потока битов данных outBitstream, все единицы SEI NAL, из которых какие-то сообщения SEI были извлечены и включены как немасштабируемые вложенные сообщения SEI.
a. В качестве альтернативы, когда масштабируемые вложенные сообщения SEI в такой единице SEI NAL применимы только к целевому множеству OLS (т.е. к targetOlsIdx-ому множеству OLS, специфицированному набором VPS), удаление этой единицы SEI NAL из потока outBitstream.
b. В качестве альтернативы, когда нет ни одного множества OLS, отличного от целевого множества OLS из совокупности множеств OLS, к которому применимы масштабируемые вложенные сообщения SEI в такой единице SEI NAL, какое (множество) содержит слои, все включенные в список LayerIdInOls[ targetOlsIdx ], удаление этой единицы SEI NAL из потока outBitstream.
8) Для решения проблемы 8, добавление такого ограничения, что когда единица SEI NAL содержит сообщение SEI с параметром payloadType равным 0, 1 или 130, эта единица SEI NAL не должна содержать сообщение SEI с параметром payloadType не равным 0 (BP), 1 (PT), 130 (DUI) или 133 (масштабируемое несущее).
9) Для решения проблемы 9, флаг general_same_pic_timing_in_all_ols_flag специфицирует, применимы ли немастабируемые вложенные сообщения PT и DUI SEI ко всем множествам OLS.
a. В качестве альтернативы, флаг general_same_pic_timing_in_all_ols_flag специфицирует, применимы ли немасштабируемые вложенные сообщения BP, PT и DUI SEI ко всем множествам OLS.
i. В одном из примеров, флаг general_same_pic_timing_in_all_ols_flag переименован во флаг general_same_pic_level_hrd_info_in_all_ols_flag, который специфицирует, применимы ли немасштабируемые вложенные сообщения BP, PT и DUI SEI ко всем множествам OLS.
b. В качестве альтернативы, добавлен новый флаг, например, под названием general_same_dui_in_all_ols_flag, чтобы специфицировать, применимы ли немасштабируемые вложенные сообщения DUI SEI ко всем множествам OLS.
c. В качестве альтернативы, добавлен новый флаг, например, под названием general_same_bp_in_all_ols_flag, чтобы специфицировать, применимы ли немасштабируемые вложенные сообщения BP SEI ко всем множествам OLS.
6. Варианты
Ниже приведены несколько примеров вариантов для некоторых аспектов настоящего изобретения, суммированных выше в Разделе 5, который может быть применен к спецификации стандарта кодирования VVC. Измененные тексты даны на основе самой последней текстовой версии стандарта VVC, приведенной в документе JVET-R2001-vA/v10. Наиболее значимые части, которые были добавлены или модифицированы, выделены жирным курсивом, а некоторые удаленные части маркированы двойными скобками (например, [[a]] обозначает удаление символа "a"). Здесь могут быть и другие изменения, являющиеся чисто редакционными по своей природе и потому не выделенными.
6.1. Первый вариант
Этот вариант предназначен для поз. 1, 2, 3, 3.a, 4, 5, 6, 7.b и 8.
Входными данными для этой процедуры являются поток битов данных inBitstream, индекс targetOlsIdx целевого множества OLS, и целевое значение наивысшего идентификатора TemporalId value – tIdTarget.
Выходными данными этой процедуры является подпоток битов данных outBitstream.
Требование конформности потока битов данных применительно к входному потоку битов данных состоит в том, что любой выходной подпоток битов данных, удовлетворяющий всем следующим условиям, будет конформным потоком битов данных:
– Выходной подпоток битов данных представляет собой выходные данные специфированной в настоящей статье процедуры, входными данными которой являются исходный поток битов данных, индекс targetOlsIdx равный индексу к списку множеств OLS, специфицированному набором VPS, и параметр tIdTarget равный какому-либо значению в диапазоне от 0 до включительно.
– Выходной подпоток битов данных содержит по меньшей мере по одной единице VCL NAL с параметров nuh_layer_id равным каждому из значений nuh_layer_id в списке LayerIdInOls[ targetOlsIdx ].
– Выходной подпоток битов данных содержит по меньшей мере одну единицу VCL NAL с идентификатором TemporalId равным tIdTarget.
Примечание – Конформный поток битов данных содержит одну или несколько единиц NAL кодированного среза с идентификатором TemporalId равным 0, но не обязательно должен содержать единицы NAL кодированного среза с параметром nuh_layer_id равным 0.
1. Установление потока битов данных outBitstream идентичным потоку битов данных inBitstream.
2. Удаление из потока outBitstream всех единиц NAL с идентификатором TemporalId больше tIdTarget.
3. Удаление из потока outBitstream всех единиц NAL, для которых параметр nal_unit_type не равен какому-либо из параметров DCI_NUT, VPS_NUT, AUD_NUT и EOB_NUT и параметр nuh_layer_id не входит в список LayerIdInOls[ targetOlsIdx ].
– параметр nal_unit_type равен TRAIL_NUT, STSA_NUT, RADL_NUT или RASL_NUT, либо параметр nal_unit_type равен GDR_NUT и ассоциированный параметр ph_recovery_poc_cnt не равен 0.
– [[параметр nuh_layer_id равен LayerIdInOls[ targetOlsIdx ][ j ] для значения j в диапазоне от 0 до NumLayersInOls[ targetOlsIdx ] − 1 включительно. ]]
– идентификатор TemporalId не меньше NumSubLayersInLayerInOLS[ targetOlsIdx ][ GeneralLayerIdx[ nuh_layer_id ] ].
5. Удаление из потока outBitstream всех единиц SEI NAL, содержащих масштабируемое несущее сообщение SEI, которое имеет флаг sn_ols_flag равный 1, и при этом нет значений i в диапазоне от 0 до sn_num_olss_minus1, включительно, так что параметр NestingOlsIdx[ i ] равен targetOlsIdx.
7. Когда список LayerIdInOls[ targetOlsIdx ] не содержит все значения параметра nuh_layer_id во всех единицах VCL NAL в потоке битов данных , применяется следующее
:
a. Удаление из потока outBitstream всех единиц SEI NAL, которые содержат немасштабируемое вложенное сообщение SEI с параметром payloadType равным 0 (BP) или 130 (DUI).
b. Когда флаг general_same_pic_timing_in_all_ols_flag равен 0, удаление из потока outBitstream всех единиц SEI NAL, которые содержат немасштабируемое вложенное сообщение SEI с параметром payloadType равным 1 (PT).
c. Когда в поток outBitstream входят единицы SEI NAL, которые содержат немасштабируемое вложенное сообщение SEI с флагом sn_ols_flag равным 1 где это сообщение применяется к targetOlsIdx-ому множеству OLS (т.е. имеется по меньшей мере одно значение i в диапазоне от 0 до sn_num_olss_minus1, включительно, так что параметр NestingOlsIdx[ i ] равен targetOlsIdx), применяется следующее
:
D.2.2 Общая семантика полезной нагрузки информации SEI
...
Требования конформности поток битов данных состоят в том, что к сообщениям SEI, входящим в единицы SEI NAL, применяются следующие ограничения:
– Когда единица SEI NAL содержит немасштабируемое вложенное сообщение BP SEI, немасштабируемое вложенное сообщение PT SEI или немасштабируемое вложенное сообщение DUI SEI, эта единица SEI NAL не должна содержать каких-либо других сообщений SEI с параметром payloadType не равным 0 (BP), 1 (PT) или 130 (DUI).
– Когда какая-то единица SEI NAL содержит масштабируемое вложенное сообщение BP SEI, масштабируемое вложенное сообщение PT SEI или масштабируемое вложенное сообщение DUI SEI, эта единица SEI NAL не должна содержать каких-либо других сообщений SEI с параметром payloadType не равным 0 (BP), 1 (PT), 130 (DUI) или 133 (масштабируемое несущее).
...
На фиг. 1 представлена блок-схема, показывающая пример системы 1900 обработки видео, в которой могут быть реализованы различные способы, описываемые здесь. Различные варианты могут содержать некоторые или все компоненты системы 1900. Система 1900 может иметь вход 1902 для приема контента видео. Этот контент видео может быть принят в необработанном или в несжатом формате, например, 8 битовые или 10 битовые многокомпонентные значения пикселей, либо он может быть в сжатом или кодированном формате. Вход 1902 может представлять собой сетевой интерфейс, интерфейс периферийных шин или интерфейс памяти. К примерам сетевых интерфейсов относятся проводные интерфейсы, такие как Этернет, пассивная оптическая сеть (passive optical network (PON)), и т.п., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы.
Система 1900 может содержать кодирующий компонент 1904, который может осуществлять различные способы кодирования, описываемые в настоящем документе. Кодирующий компонент 1904 может уменьшать среднюю скорость передачи битов данных видео от входа 1902 к выходу кодирующего компонента 1904 для генерации кодированного представления видео. Способы кодирования иногда называются способами сжатия видео или способами транскодирования видео. Выходные данные кодирующего компонента 1904 могут быть либо сохранены, либо переданы через соединение связи, как это представлено компонентом 1906. Сохраненное или сообщенное посредством связи представление видео в форме потока битов данных (или кодированное представление), которое принято на вход 1902 может быть использовано компонентом 1908 для генерации значений пикселей или представляемого на дисплее видео, передаваемого интерфейсу 1910 дисплея. Процесс генерации просматриваемого пользователем видео из представления этого видео в форме потока битов данных иногда называется декомпрессией (расширением) видео. Более того, тогда как некоторые операции обработки видео называются операциями или инструментами «кодирования», должно быть понятно, что инструменты или операции кодирования используются в кодирующем устройстве, а соответствующие инструменты или операции декодирования, обращающие результаты кодирования, будут осуществляться декодирующим устройством.
К примерам интерфейса периферийных шин или интерфейса дисплея могут относиться универсальная последовательная шина (universal serial bus (USB)) или мультимедийный интерфейс высокой четкости (high definition multimedia interface (HDMI)) или интерфейс Displayport, и т.д. К примерам интерфейсов памяти относятся SATA (усовершенствованная технология последовательного соединения (serial advanced technology attachment)), интерфейс PCI, интерфейс IDE или другой подобный интерфейс. Способы, предлагаемые в настоящем документе, могут быть реализованы в различных электронных устройствах, таких как мобильные телефоны, портативные компьютеры, смартфоны или другие устройства, способные осуществлять электронную цифровую обработку данных, и/или видео дисплей.
На фиг. 2 представлена блок-схема аппаратуры 3600 обработки видео. Аппаратура 3600 может быть использована для осуществления одного или нескольких способов, описываемых здесь. Аппаратура 3600 может быть выполнена в виде смартфона, планшета, компьютера, приемника Интернета вещей (Internet of Things (IoT)) и т.п. Аппаратура 3600 может содержать один или несколько процессоров 3602, одно или несколько запоминающих устройств 3604 и аппаратуру 3606 для обработки видео. Процессор (ы) 3602 может быть конфигурирован для осуществления одного или нескольких способов, описываемых в настоящем документе. Запоминающее устройство (устройства) 3604 может быть использовано для сохранения данных и кода, применяемых при осуществлении способов и технологий, описываемых здесь. Аппаратура 3606 для обработки видео может быть использована для осуществления, в аппаратной схеме, некоторых способов, описываемых в настоящем документе.
На фиг. 4 представлена блок-схема, иллюстрирующая пример системы 100 кодирования и декодирования видео, которая может использовать способ согласно настоящему изобретению.
Как показано на фиг. 4, система 100 кодирования и декодирования видео может содержать устройство-источник 110 и устройство-адресат 120. Устройство-источник 110 генерирует кодированные данные видео, так что оно может называться устройством для кодирования видео. Устройство-адресат 120 может декодировать кодированные данные видео, генерируемые устройством-источником 110, так что это устройство-адресат может называться устройством для декодирования видео.
Устройство-источник 110 может содержать источник 112 видео, видеокодер 114 и интерфейс 116 ввода/вывода (input/output (I/O)).
Источник 112 видео может представлять собой такой источник, как устройство для захвата (видео), интерфейс для приема данных видео от провайдера контента видео и/или система компьютерной графики для генерации данных видео или комбинацию таких источников. Данные видео могут содержать одно или несколько изображений. Видеокодер 114 кодирует данные видео от источника 112 видео для генерации потока битов данных. Поток битов данных может содержать последовательность битов, образующую кодированное представление данных видео. Этот поток битов данных может содержать кодированные изображения и ассоциированные данные. Кодированное изображение представляет собой кодированное представление изображения. Ассоциированные данные могут содержать наборы параметров последовательности, наборы параметров изображения и другие синтаксические структуры. Интерфейс 116 I/O может содержать модулятор/демодулятор (модем) и/или передатчик. Кодированные данные видео могут быть переданы напрямую к устройству-адресату 120 через интерфейс 116 I/O и далее через сеть 130a связи. Кодированные данные видео могут также быть сохранены на носителе для хранения информации/сервере 130b для доступа посредством устройства-адресата 120.
Устройство-адресат 120 может содержать интерфейс 126 I/O, видеодекодер 124 и дисплейное устройство 122.
Интерфейс 126 I/O может содержать приемник и/или модем. Интерфейс 126 I/O может получать кодированные данные видео от устройства-источника 110 или от носителя для хранения информации/сервера 130b. Видеодекодер 124 может декодировать кодированные данные видео. Дисплейное устройство 122 может представлять декодированные данные видео пользователю. Дисплейное устройство 122 может быть интегрировано с устройством-адресатом 120, либо оно может быть внешним относительно устройства-адресата 120, которое может быть конфигурировано для сопряжения с внешним дисплейным устройством.
Видеокодер 114 и видеодекодер 124 могут работать в соответствии со стандартом сжатия видео, таким как стандарт Высокоэффективного видео кодирования (High Efficiency Video Coding (HEVC)), стандарт Универсального видео кодирования (Versatile Video Coding (VVC)) и другие современные стандарты и/или стандарты будущего.
На фиг. 5 представлена блок-схема, иллюстрирующая пример видеокодера 200, которое может представлять собой видеокодер 114 в системе 100, иллюстрируемой на фиг. 4.
Видеокодер 200 может быть конфигурирован для осуществления какого-либо или всех способов согласно настоящему изобретению. В примере, показанном на фиг. 5, видеокодер 200 содержит несколько функциональных компонентов. Способы, излагаемые в настоящем описании, могут быть использованы совместно различными компонентами видеокодера 200. В некоторых примерах процессор может быть конфигурирован для осуществления каких-либо или всех способов, описываемых в настоящем изобретении.
Функциональными компонентами видеокодера 200 могут быть модуль 201 разбиения, модуль 202 прогнозирования, который может содержать модуль 203 выбора режима, модуль 204 оценки движения, модуль 205 компенсации движения и модуль 206 внутрикадрового прогнозирования, модуль 207 генерации остатка, модуль 208 преобразования, модуль 209 квантования, модуль 210 обратного квантования, модуль 211 обратного преобразования, модуль 212 реконструкции, буфер 213 и модуль 214 энтропийного кодирования.
В других примерах, видеокодер 200 может содержать больше, меньше или другие функциональные компоненты. В одном из примеров, модуль 202 прогнозирования может содержать модуль внутрикадрового копирования блоков (intra block copy (IBC)). Модуль IBC может осуществлять прогнозирование в режиме копирования IBC, в котором по меньшей мере одно опорное изображение представляет собой изображение, где находится текущий блок видео.
Более того, некоторые компоненты, такие как модуль 204 оценки движения и модуль 205 компенсации движения, могут быть в высокой степени интегрированы, но представлены в примере, показанном на фиг. 5, по отдельности для целей пояснения.
Модуль 201 разбиения может разбивать изображение на один или несколько блоков видео. Видеокодер 200 и видеодекодер 300 могут поддерживать различные размеры блоков видео.
Модуль 203 выбора режима может выбрать один из режимов кодирования, с внутрикадровым прогнозированием или с межкадровым прогнозированием, например, на основе получаемых по итогам кодирования ошибок, и передать полученный в результате блок, кодированный с внутрикадровым или с межкадровым прогнозированием, модулю 207 генерации остатка для генерации данных блока остатка и модулю 212 реконструкции для реконструкции кодированного блока с целью использования в качестве опорного изображения. В некоторых примерах, модуль 203 выбора режима может выбрать комбинированный режим с внутрикадровым и межкадровым прогнозированием (combination of intra and inter predication (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 оценки движения может идентифицировать, в синтаксической структуре, ассоциированной с текущим блоком видео, другой блок видео и разницу векторов движения (motion vector difference (MVD)). Эта разница векторов движения указывает разность между вектором движения текущего блока видео и вектором движения обозначенного блока видео. Видеодекодер 300 может использовать вектор движения обозначенного блока видео и разницу векторов движения для определения вектора движения текущего блока видео.
Как обсуждается выше, видеокдер 200 может прогностически передать вектор движения в виде сигнализации. Два примера реализации способов прогностической передачи в виде сигнализации, которые могут быть реализованы видеокодером 200, представляют собой усовершенствованное прогнозирование вектора движения (advanced motion vector predication (AMVP)) и передача сигнализации о режиме объединения.
Модуль 206 внутрикадрового прогнозирования может осуществлять внутрикадровое прогнозирование применительно к текущему блоку видео. Когда модуль 206 внутрикадрового прогнозирования осуществляет внутрикадровое прогнозирование применительно к текущему блоку видео, этот модуль 206 внутрикадрового прогнозирования может генерировать данные прогнозирования для текущего блока видео на основе декодированных отсчетов других блоков видео в том же самом изображении. Данные прогнозирования для текущего блока видео могут содержать прогнозируемый блок видео и различные синтаксические элементы.
Модуль 207 генерации остатка может генерировать данные остатка для текущего блока видео посредством вычитания (например, обозначенного знаком минус) прогнозируемого блока (ов) видео для текущего блока видео из этого текущего блока видео. Данные остатка для текущего блока видео могут содержать остаточные блоки видео, которые соответствуют разным составляющим отсчетов текущего блока видео.
В других примерах, для текущего блока могут отсутствовать данные остатка, например, в режиме пропуска, и модуль 207 генерации остатка может не осуществлять операцию вычитания.
Модуль 208 преобразования может генерировать один или несколько блоков видео из коэффициентов преобразования для текущего блока видео посредством применения одного или нескольких преобразований к остаточному блоку видео, ассоциированному с текущим блоков видео.
После того, как модуль 208 преобразования сформирует блок коэффициентов преобразования видео, ассоциированный с текущим блоком видео, модуль 209 квантования может осуществить квантование блока коэффициентов преобразования видео, ассоциированного с текущим блоком видео, на основе значений одного или нескольких параметров квантования (quantization parameter (QP)), ассоциированных с текущим блоком видео.
Модуль 210 обратного квантования и модуль 211 обратного преобразования могут применять обратное квантование и обратное преобразование к блоку коэффициентов преобразования видео, соответственно, для реконструкции остаточного блока видео из блока коэффициентов преобразования видео. Модуль 212 реконструкции может добавить реконструированный остаточный блок видео к соответствующим отсчетам из одного из нескольких прогнозируемых блоков видео, генерируемых модулем 202 прогнозирования, для получения реконструированного блока видео, ассоциированного с текущим блоком, для сохранения в буфере 213.
После того, как модуль 212 реконструкции осуществит реконструкцию блока видео, может быть произведена операция контурной фильтрации для уменьшения блокировочных артефактов видео в этом блоке видео.
Модуль 214 энтропийного кодирования может принимать данные от других функциональных компонентов видеокодера 200. Когда модуль 214 энтропийного кодирования принимает данные, этот модуль 214 энтропийного кодирования может осуществить одну или несколько операций энтропийного кодирования для генерации кодированных энтропийным способом данных и передает на выход поток битов данных, содержащий кодированные энтропийным способом данные.
На фиг. 6 представлена блок-схема, иллюстрирующая пример видеодекодера 300, которое может представлять собой видеодекодер 124 в системе 100, иллюстрируемой на фиг. 4.
Видеодекодер 300 может быть конфигурирован для осуществления каких-либо или всех способов согласно настоящему изобретению. В примере, показанном на фиг. 5, видеодекодер 300 содержит несколько функциональных компонентов. Способы, предлагаемые настоящим изобретением, могут совместно использоваться различными компонентами видеодекодера 300. В некоторых примерах, процессор может быть конфигурирован для осуществления каких-либо или всех способов согласно настоящему изобретению.
В примере, показанном на фиг. 6, видеодекодер 300 содержит модуль 301 энтропийного декодирования, модуль 302 компенсации движения, модуль 303 внутрикадрового прогнозирования, модуль 304 обратного квантования, модуль 305 обратного преобразования, модуль 306 реконструкции и буфер 307. Видеодекодер 300 может, в некоторых примерах, осуществлять декодирующий проход, в основном обратный кодирующему проходу, описываемому применительно к видеокодеру 200 (фиг. 5).
Модуль 301 энтропийного декодирования может вызвать кодированный поток битов данных. Кодированный поток битов данных может содержать данные видео, кодированные энтропийным способом (например, кодированные блоки данных видео). Модуль 301 энтропийного декодирования может декодировать данные видео, кодированные энтропийным способом, и из этих данных видео, декодированных энтропийным способом, модуль 302 компенсации движения может определить информацию движения, содержащую векторы движения, точность векторов движения, список индексов опорных изображений и другую информацию движения. Модуль 302 компенсации движения может, например, определить такую информацию посредством осуществления прогнозирования AMVP и режима объединения.
Модуль 302 компенсации движения может формировать блоки с компенсацией движения, возможно осуществляя интерполяцию посредством интерполяционных фильтров. Идентификаторы для интерполяционных фильтров, используемых с субпиксельной точностью, могут быть включены в синтаксические элементы.
Модуль 302 компенсации движения может использовать интерполяционные фильтры, какие применял видеокодер 200 во время кодирования блока видео, для вычисления интерполированных значений для пикселей, имеющих значение меньше целочисленного, из опорного блока. Модуль 302 компенсации движения может определить интерполяционные фильтры, используемые видеокодером 200 в соответствии с принятой синтаксической информацией, и применить эти интерполяционные фильтры для генерации прогнозируемых блоков.
Модуль 302 компенсации движения может использовать некоторую синтаксическую информацию для определения размеров блоков, применявшихся при кодировании кадра (ов) и/или среза (ов), в кодированной последовательности видео, информацию о разбиении, описывающую, как был разбит каждый макроблок изображения в кодированной последовательности видео, режимы, указывающие, как была кодирована каждая единица разбиения, один или несколько опорных кадров (и список опорных кадров) для каждого блока, кодированного с использованием межкадрового прогнозирования, и другую информацию для декодирования кодированной последовательности видео.
Модуль 303 внутрикадрового прогнозирования может использовать режимы внутрикадрового прогнозирования, указание которых принято, например, в потоке битов данных для образования прогнозируемого блока из пространственно соседних блоков. Модуль 304 обратного квантования осуществляет обратное квантование, т.е. деквантование, квантованных коэффициентов блока видео, поступающих в потоке битов данных и декодируемых модулем 301 энтропийного декодирования. Модуль 303 обратного преобразования применяет обратное преобразование.
Модуль 306 реконструкции может суммировать блоки остатка с соответствующими прогнозируемыми блоками, генерируемые модулем 202 компенсации движения или модулем 303 внутрикадрового прогнозирования, для образования декодированных блоков. Если нужно, для фильтрации декодированных блоков с целью удаления блочных артефактов применяют деблокирующий фильтр. Декодированные блоки видео после этого сохраняют в буфере 307, который предоставляет опорные блоки для последующей компенсации движения/внутрикадрового прогнозирования и генерирует декодированное видео для представления на дисплейном устройстве.
Список технических решений описывает некоторые варианты предлагаемой технологии.
Далее представлена первая группа технических решений. Следующие технические решения показывают примеры вариантов способов, описываемых в предыдущем разделе (например, поз. 1 – 9).
1. Способ обработки видео (например, способ 600, показанный на фиг. 3), содержащий осуществление (602) преобразования между видео, содержащим один или несколько слоев видео, содержащих одно или несколько изображений, и кодированным представлением этого видео, где кодированное представление соответствует правилу форматирования, относящемуся к извлечению подпотока битов данных из кодированного представления.
2. Способ согласно решению 1, дополнительно содержащий: извлечение подпотока битов данных из кодированного представления согласно правилу форматирования.
Следующие технические решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 1)
3. Способ согласно какому-либо из решений 1 – 2, отличающийся тем, что, во время извлечения подпотока битов данных, целевой идентификатор id, используемый для этого извлечения, может быть в диапазоне от 0 до значения синтаксического поля, имеющегося в наборе параметров видео для кодированного представления.
Следующие технические решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 2)
4. Способ согласно какому-либо из решений 1 – 3, отличающийся тем, что подпоток битов данных извлекают без удаления разделителя единиц доступа в слое сетевой абстракции (AUD NAL) из выходного потока битов данных в соответствии с идентификатором id слоя.
Следующие решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 3)
5. Способ согласно какому-либо из решений 1 – 4, отличающийся тем, что подпоток битов данных извлекают посредством избирательного удаления единиц слоя сетевой абстракции, содержащих масштабируемое несущее сообщение с информацией дополнительного улучшения, которое (сообщение) не применимо к выходным слоям, извлекаемым в текущий момент.
Следующие решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 5)
6. Способ согласно какому-либо из решений 1 – 5, отличающийся тем, что подпоток битов данных извлекают посредством ограничения извлечения для генерации немасштабируемого вложенного сообщения с информацией дополнительного улучшения (SEI) из масштабируемого несущего сообщения SEI, используя установленный флаг для выходного множества слоев, а флаг для подизображения при этом снят.
Следующие решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 6)
7. Способ согласно какому-либо из решений 1 – 6, отличающийся тем, что подпоток битов данных извлекают в соответствии с правилом, специфицирующим извлечение нескольких масштабируемых вложенных сообщений с информацией дополнительного улучшения (SEI) из одной единицы слоя сетевой абстракции с информацией SEI.
Следующие решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 7)
8. Способ согласно какому-либо из решений 1 – 7, отличающийся тем, что подпоток битов данных извлекают в соответствии с правилом, удаляющим, из кодированного представления, все единицы слоя сетевой абстракции с информацией дополнительного улучшения (SEI NAL), из которых уже извлечены некоторые сообщения SEI и включены в качестве немасштабируемых вложенных сообщений SEI.
Следующие решения показывают примеры вариантов способов, обсуждаемых в предыдущем разделе (например, поз. 8)
9. Способ согласно какому-либо из решений 1 – 8, отличающийся тем, что указанное правило форматирования специфицирует, что когда единица слоя сетевой абстракции с информацией дополнительного улучшения (SEI NAL) содержит сообщение SEI с параметром payloadType равным 0, 1 или 130, этой единице SEI NAL не разрешено содержать сообщение SEI с параметром payloadType не равным 0 (BP), 1 (PT), 130 (DUI) или 133 (масштабируемое несущее).
10. Способ согласно какому-либо из решений 1 – 9, отличающийся тем, что процедура осуществления преобразования содержит кодирование видео и превращение его в кодированное представление.
11. Способ согласно какому-либо из решений 1 – 9, отличающийся тем, что процедура осуществления преобразования содержит синтаксический анализ и декодирование кодированного представления для генерации видео.
12. Аппаратура для декодирования видео, содержащая процессор, конфигурированный для осуществления способа, описываемого в одном или нескольких решениях 1 – 11.
13. Аппаратура для кодирования видео, содержащая процессор, конфигурированный для осуществления способа, описываемого в одном или нескольких решениях 1 – 11.
14. Компьютерный программный продукт, имеющий сохраненный на нем компьютерный код, когда процессор выполняет этот код, процессор осуществляет способ, описываемый в одном или нескольких решениях 1 – 11.
15. Способ, аппаратура или система, описываемые в настоящем документе.
Вторая группа решений показывает примеры вариантов способа, обсуждаемых в предыдущем разделе (например, поз. 1, 4, 8 и 9).
1. Способ обработки видео (например, способ 700, как показано на фиг. 7A), содержащий: осуществление 702 преобразования между видео, содержащим несколько слоев, и потоком битов данных этого видео, в соответствии с некоторым правилом, где это правило специфицирует максимально допустимое значение идентификатора временных слоев для подпотока битов данных, извлеченного из потока битов данных.
2. Способ согласно решению 1, отличающийся тем, что указанное правило реагирует на число слоев в потоке битов данных.
3. Способ согласно решению 1 или 2, отличающийся тем, что если число слоев больше 1, указанное правило специфицирует, что максимально допустимое значение идентификатора временных слоев находится в диапазоне от нуля до некоторого значения на основе первого синтаксического элемента в наборе параметров видео, на который ссылается поток битов данных.
4. Способ согласно решению 1 или 2, отличающийся тем, что, если число слоев равно 1, указанное правило специфицирует, что максимально допустимое значение идентификатора временных слоев находится в диапазоне от нуля до значения на основе второго синтаксического элемента в наборе параметров последовательности, на который ссылается поток битов данных.
5. Способ согласно решению 3, отличающийся тем, что первый синтаксический элемент специфицирует максимальное допустимое число временных подслоев, которые могут присутствовать в слое, специфицированном набором параметров видео минус 1.
6. Способ согласно решению 4, отличающийся тем, что второй синтаксический элемент специфицирует максимальное допустимое число временных подслоев, которые могут присутствовать в слое, специфицированном набором параметров последовательности минус 1.
7. Способ согласно решению 3, отличающийся тем, что первый синтаксический элемент в наборе параметров видео представляет собой vps_max_sublayers_minus1.
8. Способ согласно решению 4, отличающийся тем, что второй синтаксический элемент в наборе параметров последовательности представляет собой sps_max_sublayers_minus1.
9. Способ согласно решению 3 или 4, отличающийся тем, что указанное значение равно значению первого синтаксического элемента или второго синтаксического элемента.
10. Способ обработки видео (например, способ 710, как показано на фиг. 7B), содержащий: осуществление 712 преобразования между видео и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило определяет единицы слоя сетевой абстракции (NAL), которые подлежат извлечению из потока битов данных в ходе процедуры извлечения подпотока битов данных для передачи подпотока битов данных на выход, и где это правило специфицирует, что следует определить подпоток битов данных на основе того, содержит ли список значений идентификаторов заголовков единиц NAL в выходном множестве слоев (OLS) с индексом целевого множества OLS все значения идентификаторов заголовков единиц NAL во всех единицах слоя кодирования видео (VCL) NAL в потоке битов данных, поступающем на вход процедуры извлечения подпотока битов данных, или не содержит.
11. Способ согласно решению 10, отличающийся тем, что указанное правило специфицирует, что следует удалить из подпотока битов данных все единицы NAL с информацией дополнительного улучшения (SEI), которые содержат немасштабируемые вложенные сообщения SEI с типом полезной нагрузки равным 0 или 130, если список значений идентификаторов заголовков единиц слоя NAL в выходном множестве слоев не содержит все значения идентификаторов заголовков единиц слоя NAL во всех единицах слоя VCL NAL в потоке битов данных.
12. Способ обработки видео (например, способ 720, как показано на фиг. 7C), содержащий: осуществление 722 преобразования между видео и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило определяет единицы слоя сетевой абстракции (NAL), подлежащие извлечению из потока битов данных в ходе процедуры извлечения подпотока битов данных для передачи подпотока битов данных на выход, и где указанное правило специфицирует, в соответствии с типом полезной нагрузки для первого сообщения информации дополнительного улучшения (SEI), входящего в единицу слоя сетевой абстракции (NAL) с информацией SEI, что не следует позволить единице SEI NAL содержать сообщение SEI с определенным типом полезной нагрузки.
13. Способ согласно решению 12, отличающийся тем, что тип полезной нагрузки для первого сообщения SEI равен 0, 1 или 130, и указанное правило специфицирует, что следует запретить единице SEI NAL содержать сообщение SEI, для которого указанный тип полезной нагрузки не равен 0, 1, 130 или 133.
14. Способ обработки видео (например, способ 730, как показано на фиг. 7D), содержащий: осуществление 732 преобразования между видео и потоком битов данных этого видео в соответствии с правилом форматирования, где это правило форматирования специфицирует, что поток битов данных содержит флаг, специфицирующий, применимы ли одно или несколько немасштабируемых вложенных сообщений с информацией дополнительного улучшения (SEI) с одним или несколькими конкретными типами полезной нагрузки ко всем выходным множествам слоев, на которые ссылается слой кодирования.
15. Способ согласно решению 14, отличающийся тем, что указанные один или несколько конкретных типов полезной нагрузки представляют собой 1 и 130.
16. Способ согласно решению 14, отличающийся тем, что указанные одно или несколько немасштабируемых сообщений SEI представляют собой сообщения для синхронизации изображений (picture timing (PT)) SEI и сообщения с информацией о единице декодирования (decoding unit information (DUI)) SEI.
17. Способ согласно решению 14, отличающийся тем, что указанные один или несколько конкретных типов полезной нагрузки равны 0, 1 и 130.
18. Способ согласно решению 14, отличающийся тем, что указанные одно или несколько немасштабируемых сообщений SEI представляют собой сообщения с периодом буферизации (buffering period (BP)) SEI и сообщения с информацией о единице декодирования (DUI) SEI.
19. Способ согласно решению 14, отличающийся тем, что указанные один или несколько конкретных типов полезной нагрузки равны 130.
20. Способ согласно решению 14, отличающийся тем, что указанные одно или несколько немасштабируемых сообщений SEI представляют собой сообщения с информацией о единице декодирования (DUI) SEI.
21. Способ согласно решению 14, отличающийся тем, что указанные один или несколько конкретных типов полезной нагрузки равны 0.
22. Способ согласно решению 1, отличающийся тем, что указанные одно или несколько немасштабируемых сообщений SEI представляют собой сообщения с периодом буферизации (BP) SEI.
23. Способ согласно какому-либо из решений 1 – 22, отличающийся тем, что процедура преобразования содержит кодирование видео и преобразование его в поток битов данных.
24. Способ согласно какому-либо из решений 1 – 22, отличающийся тем, что процедура преобразования содержит декодирование видео и преобразование его из потока битов данных.
25. Способ согласно какому-либо из решений 1 – 22, отличающийся тем, что процедура преобразования содержит генерацию потока битов данных из видео, а способ дополнительно содержит: сохранение потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
26. Аппаратура для обработки видео содержит процессор, конфигурированный для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 25.
27. Способ сохранения потока битов данных видео, содержащий, способ, описываемый в каком-либо одном или нескольких решениях 1 – 25, и далее содержащий сохранение потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
28. Читаемый компьютером носитель информации сохраняет программный код, при выполнении которого процессор осуществляет способ, описываемый в каком-либо одном или нескольких решениях 1 – 25.
29. Читаемый компьютером носитель информации, который сохраняет поток битов данных, генерируемый в соответствии с каким-либо одним из описываемых выше способов.
30. Аппаратура для обработки видео и для сохранения представления его в форме потока битов данных, где эта аппаратура для обработки видео конфигурирована для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 25.
Третья группа решений показывает примеры вариантов способа, обсуждаемых в предыдущем разделе (например, поз. 2).
1. Способ обработки видео (например, способ 800, как показано на фиг. 8), содержащий: осуществление 802 преобразования между видео и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило специфицирует процедуру извлечения подпотока битов данных, посредством которой выходной подпоток битов данных извлекают из потока битов данных без удаления единиц слоя сетевой абстракции (NAL) конкретного типа, которые имеют конкретное значение идентификатора заголовка единицы NAL, где этот конкретный тип представляет собой единицу слоя NAL с разделителем единиц доступа (AUD).
2. Способ согласно решению 1, отличающийся тем, что указанный конкретный тип представляет собой единицу слоя NAL с набором параметров видео (VPS).
3. Способ согласно решению 1 или 2, отличающийся тем, что указанный конкретный тип представляет собой единицу слоя NAL с информацией о способностях декодирования.
4. Способ согласно какому-либо из решений 1 – 3, отличающийся тем, что указанный конкретный тип представляет собой единицу слоя NAL, куда входит конец потока битов данных.
5. Способ согласно какому-либо из решений 1 – 4, отличающийся тем, что указанный конкретный тип содержит единицу слоя NAL с информацией дополнительного улучшения, содержащей немасштабируемое вложенное сообщение SEI с типом полезной нагрузки равным 0, 1, 130 или 203.
6. Способ согласно какому-либо из решений 1 – 5, отличающийся тем, что значение идентификатора заголовка конкретной единицы слоя NAL, представляет собой значение идентификатора слоя для передачи на выход подпотока битов данных.
7. Способ согласно решению 1, отличающийся тем, что указанное правило специфицирует, что единицу NAL какого-то конкретного типа не удаляют из выходного потока битов данных в соответствии с исключением независимо от значения идентификатора заголовка единицы NAL, ассоциированного с единицей NAL указанного конкретного типа.
8. Способ согласно какому-либо из решений 1 – 7, отличающийся тем, что процедура преобразования содержит кодирование видео и преобразование его в поток битов данных.
9. Способ согласно какому-либо из решений 1 – 7, отличающийся тем, что процедура преобразования содержит декодирование видео из потока битов данных.
10. Способ согласно какому-либо из решений 1 – 7, отличающийся тем, что процедура преобразования содержит генерацию потока битов данных из видео, а способ далее содержит: сохранение потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
11. Аппаратура для обработки видео, содержащая процессор, конфигурированный для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 10.
12. Способ сохранения потока битов данных видео, содержащий способ, описываемый в каком-либо одном из решений 1 – 10, и дополнительно содержащий сохранение потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
13. Читаемый компьютером носитель информации, сохраняющий программный код, при выполнении которого процессор осуществляет способ, описываемый в каком-либо одном или нескольких решениях 1 – 10.
14. Читаемый компьютером носитель информации, который сохраняет поток битов данных, генерируемый в соответствии с каким-либо из описываемых выше способов.
15. Аппаратура для обработки видео и сохранения представления видео в форме потока битов данных, где эта аппаратура для обработки видео конфигурирована для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 10.
Четвертая группа решений показывает примеры вариантов способа, обсуждаемых в предыдущем разделе (например, поз. 3).
1. Способ обработки видео (например, способ 900, как показано на фиг. 9), содержащий: осуществление 902 преобразования между видео, содержащим один или несколько слоев, и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило специфицирует, в процессе извлечения подпотока битов данных, что следует удалить единицы слоя сетевой абстракции (NAL), содержащие масштабируемое несущее сообщение с информацией дополнительного улучшения (SEI), применяемое к слоям, не входящим в целевое выходное множество слоев (OLS).
2. Способ согласно решению 1, отличающийся тем, что масштабируемое несущее сообщение SEI ассоциировано с флагом, имеющим значение, равное конкретному значению, которое определяет масштабируемое несущее сообщение SEI, применимое к указанным слоям.
3. Способ согласно решению 2, отличающийся тем, что указанное конкретное значению равно 0.
4. Способ согласно решению 1, отличающийся тем, что указанное правило далее специфицирует удаление единиц NAL, какие содержат сообщение SEI, не имеющее значения в первом списке (NestingLayerID[i]), которое находится во втором списке (LayerIdInOls[ targetOlsIdx ]), где этот первый список устанавливает значения идентификаторов заголовков единиц NAL, к каким применяется масштабируемое несущее сообщение SEI, и i находится в диапазоне от 0 до NumLayers − 1, параметр NumLayers указывает число слоев, к которым применяется масштабируемое несущее сообщение SEI, а второй список устанавливает значения идентификаторов заголовков единиц NAL в целевом выходном множестве слоев с индексом целевого выходного слоя.
5. Способ согласно какому-либо из решений 1 – 4, отличающийся тем, что процедура преобразования содержит кодирование видео и преобразование его в поток битов данных.
6. Способ согласно какому-либо из решений 1 – 4, отличающийся тем, что процедура преобразования содержит декодирование видео из потока битов данных.
7. Способ согласно какому-либо из решений 1 – 4, отличающийся тем, что процедура преобразования содержит генерацию потока битов данных из видео, и этот способ далее содержит сохранение этого потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
8. Аппаратура для обработки видео, содержащая процессор, конфигурированный для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 7.
9. Способ сохранения потока битов данных видео, содержащий способ, описываемый в каком-либо одном из решений 1 – 7, и дополнительно содержащий сохранение потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
10. Читаемый компьютером носитель информации, сохраняющий программный код, при выполнении которого процессор осуществляет способ, описываемый в каком-либо одном или нескольких решениях 1 – 7.
11. Читаемый компьютером носитель информации, который сохраняет поток битов данных, генерируемый в соответствии с каким-либо из описываемых выше способов.
12. Аппаратура для обработки видео и сохранения представления видео в форме потока битов данных, где эта аппаратура для обработки видео конфигурирована для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 7.
Пятая группа решений показывает примеры вариантов способа, обсуждаемых в предыдущем разделе (например, поз. 5-7).
1. Способ обработки видео (например, способ 1000, как показано на фиг. 10A), содержащий: осуществление 1002 преобразования между видео, содержащим один или несколько слоев, и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило специфицирует, в процессе извлечения подпотока битов данных, что немасштабируемое вложенное сообщение с информацией дополнительного улучшения (SEI) генерируют посредством извлечения сообщения SEI, являющегося масштабируемо вложенным, из масштабируемого несущего сообщения SEI на основе первого флага, указывающего, применяется ли это сообщение SEI к специфичным выходным множествам слоев (OLS), и второго флага, указывающего, применяется ли это сообщение SEI ко всем подизображениям или только к каким-то определенным подизображениям.
2. Способ согласно решению 1, отличающийся тем, что указанное правило специфицирует, что следует генерировать немасштабируемое вложенное сообщение SEI, когда удовлетворяются условия i) первый флаг имеет первое значение, указывающее, что сообщение SEI применяется к некоторым выходным множествам слоев (OLS) и ii) второй флаг имеет второе значение, указывающее, что сообщение SEI, которое применяется к некоторым множествам OLS, применяется ко всем подизображениям в этих некоторых множествах OLS.
3. Способ обработки видео (например, способ 1010, как показано на фиг. 10B), содержащий: осуществление 1012 преобразования между видео, содержащим один или несколько слоев, и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило специфицирует, в процессе извлечения подпотока битов данных, что немасштабируемое вложенное сообщение с информацией дополнительного улучшения (SEI) генерируют посредством извлечения нескольких масштабируемых вложенных сообщений SEI из первой единицы слоя сетевой абстракции (NAL) с информацией SEI в единице изображения.
4. Способ согласно решению 3, отличающийся тем, что указанные несколько масштабируемых вложенных сообщений SEI входят во вторую единицу SEI NAL в указанной единице изображения.
5. Способ согласно решению 4, отличающийся тем, что указанная вторая единица SEI NAL располагается сразу же после указанной первой единицы SEI NAL.
6. Способ обработки видео (например, способ 1020, как показано на фиг. 10C), содержащий: осуществление 1022 преобразования между видео, содержащим один или несколько слоев, и потоком битов данных этого видео в соответствии с некоторым правилом, где это правило специфицирует процедуру извлечения подпотока битов данных для генерации выходного потока битов данных, где указанное правило специфицирует обработку одной или нескольких единиц слоя сетевой абстракции (NAL) с информацией дополнительного улучшения (SEI) в ходе процедуры извлечения подпотока битов данных.
7. Способ согласно решению 6, отличающийся тем, что указанное правило специфицирует, что следует удалить указанные одну или несколько единиц SEI NAL, из которых были извлечены некоторые сообщения SEI и вставлены в качестве немасштабируемых вложенных сообщений SEI.
8. Способ согласно решению 6, отличающийся тем, что указанное правило специфицирует, что следует удалить единицу SEI NAL, содержащую масштабируемое вложенное сообщение SEI, применяющееся только к целевому выходному множеству слоев.
9. Способ согласно решению 6, отличающийся тем, что указанное правило специфицирует, что следует удалить единицу SEI NAL, содержащую масштабируемое вложенное сообщение SEI, применяющееся к выходным множествам слоев (OLS), среди которых нет других множеств OLS, отличных от целевого множества OLS.
10. Способ согласно какому-либо из решений 1 – 9, отличающийся тем, что процедура преобразования содержит кодирование видео и преобразование его в поток битов данных.
11. Способ согласно какому-либо из решений 1 – 9, отличающийся тем, что процедура преобразования содержит декодирование видео из потока битов данных.
12. Способ согласно какому-либо из решений 1 – 9, отличающийся тем, что процедура преобразования содержит генерацию потока битов данных из видео, и этот способ далее содержит сохранение этого потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
13. Аппаратура для обработки видео, содержащая процессор, конфигурированный для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 12.
14. Способ сохранения потока битов данных видео, содержащий способ, описываемый в каком-либо одном из решений 1 – 12, и дополнительно содержащий сохранение потока битов данных на энергонезависимом читаемом компьютером носителе для записи информации.
15. Читаемый компьютером носитель информации, сохраняющий программный код, при выполнении которого процессор осуществляет способ, описываемый в каком-либо одном или нескольких решениях 1 – 12.
16. Читаемый компьютером носитель информации, который сохраняет поток битов данных, генерируемый в соответствии с каким-либо из описываемых выше способов.
17. Аппаратура для обработки видео и сохранения представления видео в форме потока битов данных, где эта аппаратура для обработки видео конфигурирована для осуществления способа, описываемого в каком-либо одном или нескольких решениях 1 – 12.
Представленные здесь и другие технические решения, примеры, варианты, модули и функциональные операции, описываемые в настоящем документе могут быть реализованы в цифровой электронной схеме, либо в компьютерном загружаемом программном обеспечении, встроенном программном обеспечении или оборудовании, включая структуры, описываемые в настоящем документе, и их структурные эквиваленты, либо в комбинациях одного или нескольких перечисленных выше объектов. Предлагаемые и другие варианты могут быть реализованы в виде одного или нескольких компьютерных программных продуктов, т.е. одного или нескольких модулей компьютерных программных команд, закодированных на читаемом компьютером носителе информации для выполнения посредством аппаратуры для обработки данных или для управления операциями этой аппаратуры. Читаемый компьютером носитель информации может представлять собой машиночитаемое устройство для хранения информации, машиночитаемую подложку для хранения информации, запоминающее устройство, комбинацию объектов, создающую машиночитаемый распространяющийся сигнал, или комбинацию одного или нескольких перечисленных выше объектов. Термин «аппаратура для обработки данных» охватывает всю аппаратуру, устройства и машины для обработки данных, включая, в качестве примера, программируемый процессор, компьютер, либо несколько процессоров или компьютеров. Эта аппаратура может содержать, в дополнение к оборудованию, код, создающий среду выполнения для рассматриваемой компьютерной программы, например, код, составляющий встроенное программное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию одного или нескольких перечисленных объектов. Распространяющийся сигнал представляет собой искусственно генерируемый сигнал, например, генерируемый машиной электрический, оптический или электромагнитный сигнал, формируемый для кодирования информации для передачи подходящей приемной аппаратуре.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий (скрипт) или код) может быть записана на каком-либо языке программирования, включая компилируемые или интерпретируемые языки, и может быть развернута в любой форме, включая в качестве автономной программы или в качестве модуля, компонента, подпрограммы или другой программной единицы, подходящей для использования в компьютерной среде. Компьютерная программа не обязательно соответствует файлу в файловой системе. Программа может быть сохранена в части файла, который содержит другие программы или данные (например, один или несколько сценариев, сохраненных в документе на языке разметки), в одном файле, специально предназначенном только для рассматриваемой программы, или в нескольких координированных файлах (например, в файлах, сохраняющих один или несколько модулей, подпрограмм или сегментов кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на нескольких компьютерах, расположенных в одном месте или распределенных по нескольким пунктам и соединенных между собой посредством сети связи.
Процедуры и логические потоки, описываемые в настоящем документе, могут быть осуществлены одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для осуществления функций путем оперирования над входными данными и генерации выходных данных. Эти процедуры и логические потоки могут быть также осуществлены посредством логической схемы специального назначения, например, программируемой пользователем вентильной матрицы (FPGA (field programmable gate array)) или специализированной интегральной схемы ASIC (application specific integrated circuit), и аппаратура может быть также реализована в виде такой схемы.
К процессорам, подходящим для выполнения компьютерной программы, относятся, в качестве примера, микропроцессоры, как общего, так и специального назначения, а также какие-либо один или несколько процессоров из цифрового компьютера любого типа. В общем случае, процессор будет принимать команды и данные из постоянного запоминающего устройства и/или из запоминающего устройства с произвольной выборкой. Существенными элементами компьютера являются процессор для выполнения команд и одно или несколько запоминающих устройств для сохранения команд и данных. В общем случае, компьютер может также содержать одно или несколько устройств большой емкости для хранения информации, служащих для сохранения данных, например, магнитных, магнитооптических или оптических дисков, либо может быть оперативно связан для приема данных от или передачи данных таким устройствам. Однако компьютеру не обязательно иметь такие устройства. К читаемым компьютером носителям, подходящим для сохранения компьютерных программных команд и данных, относятся все формы энергонезависимой памяти, носителей и запоминающих устройств, включая, в качестве примеров, полупроводниковые запоминающие устройства, например, СППЗУ (EPROM), ЭСППЗУ (EEPROM) и устройства флэш-памяти; магнитные диски, например, встроенные жесткие диски или съемные диски; магнитооптические диски; а также диски CD ROM и DVD-ROM. Процессор и запоминающее устройство могут быть дополнены логической схемой специального назначения или встроены в такую схему.
Хотя настоящий документ содержит много конкретики, это не следует толковать в качестве ограничений объема какого-либо предмета или того, что может быть заявлено, а напротив, как описание признаков, которые могут быть специфичны для конкретных вариантов конкретных технологий. Некоторые признаки, описываемые в настоящем патентном документе в контексте отдельных вариантов, могут быть также реализованы в комбинации в одном варианте. И напротив, различные признаки, описываемые здесь в контексте одного варианта, могут также быть реализованы в нескольких вариантах по отдельности или в какой-либо подходящей субкомбинации. Более того, хотя признаки могут быть описаны выше в качестве действующих в определенных комбинациях и даже первоначально заявлены как таковые, один или несколько признаков из заявляемой комбинации могут в некоторых случаях быть исключены из такой комбинации, а заявляемая комбинация может быть адресована к субкомбинации или к варианту такой субкомбинации.
Аналогично, хотя операции показаны на чертежах в конкретном порядке, это не следует понимать как требование, чтобы такие операции были осуществлены именно в показанном конкретном порядке или в последовательном порядке, либо чтобы все показанные операции обязательно были выполнены, для достижения желаемого результата. Более того, разделение различных компонентов системы в вариантах, описываемых в настоящем патентном документе, не следует понимать как требование такого разделения во всех вариантах.
Здесь описаны только некоторые варианты и примеры, так что могут быть сделаны и другие усовершенствования, улучшения и вариации на основе того, что описано и иллюстрировано в настоящем документе.
название | год | авторы | номер документа |
---|---|---|---|
УПРАВЛЕНИЕ МАСШТАБИРУЕМЫМ ВКЛАДЫВАЕМЫМ SEI-СООБЩЕНИЕМ | 2020 |
|
RU2824781C1 |
ПАРАМЕТРЫ HRD НА УРОВНЕ ПОСЛЕДОВАТЕЛЬНОСТИ | 2020 |
|
RU2825440C1 |
ПАРАМЕТРЫ HRD ДЛЯ ТЕСТИРОВАНИЯ НА СООТВЕТСТВИЕ НА ОСНОВЕ СЛОЯ | 2020 |
|
RU2821048C1 |
ТЕСТЫ НА СООТВЕТСТВИЕ HRD ДЛЯ OLS | 2020 |
|
RU2820076C1 |
ПАРАМЕТРЫ HRD ДЛЯ СЛОЕВ | 2020 |
|
RU2827823C1 |
ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНОЙ СИГНАЛИЗАЦИИ В МНОГОСЛОЙНЫХ БИТОВЫХ ПОТОКАХ ВИДЕО | 2020 |
|
RU2822511C1 |
ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНОЙ СИГНАЛИЗАЦИИ В МНОГОСЛОЙНЫХ БИТОВЫХ ВИДЕОПОТОКАХ | 2020 |
|
RU2827899C1 |
ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНОЙ СИГНАЛИЗАЦИИ В МНОГОСЛОЙНЫХ БИТОВЫХ ВИДЕОПОТОКАХ | 2020 |
|
RU2821429C1 |
Предотвращение избыточной сигнализации в многослойных битовых видеопотоках | 2020 |
|
RU2829492C1 |
ОГРАНИЧЕНИЯ СИГНАЛИЗАЦИИ В НЕМАСШТАБИРУЕМЫХ ВЛОЖЕННЫХ СИНТАКСИЧЕСКИХ ЭЛЕМЕНТАХ ВИДЕО | 2021 |
|
RU2833592C1 |
Изобретение относится к технологиям кодирования и декодирования видео. Техническим результатом является повышение эффективности обработки видео. Результат достигается тем, что выполняют преобразование между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом, причем правило устанавливает, в процессе извлечения подпотока битов данных, что немасштабируемое вложенное сообщение с информацией дополнительного улучшения (SEI) генерируется посредством извлечения сообщения SEI, являющегося масштабируемо вложенным, из масштабируемого вмещающего сообщения SEI на основе первого флага, указывающего, применяется ли сообщение SEI к определенным выходным наборам слоев (OLS), и второго флага, указывающего, применяется ли сообщение SEI ко всем подизображениям или только к определенным подизображениям. 4 н. и 7 з.п. ф-лы, 15 ил.
1. Способ обработки данных видео, содержащий этап, на котором:
выполняют преобразование между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом,
причем правило устанавливает, в процессе извлечения подпотока битов данных, в котором первый подпоток битов данных используется для получения выходного подпотока битов данных, следует ли генерировать немасштабируемые вложенные сообщения с информацией дополнительного улучшения (SEI) посредством извлечения масштабируемых вложенных сообщений SEI из масштабируемого вмещающего сообщения SEI, на основе первого флага, обозначенного как sn_ols_flag, и второго флага, обозначенного как sn_subpic_flag,
причем масштабируемое вмещающее сообщение SEI содержится в первой единице слоя сетевой абстрации (NAL) SEI, содержащейся в первом подпотоке битов данных,
при этом в случае генерирования немасштабируемых вложенных сообщений SEI генерируется вторая единица NAL SEI, и масштабируемые вложенные сообщения SEI извлекаются из масштабируемого вмещающего сообщения SEI и включаются во вторую единицу NAL SEI в качестве немасштабируемых вложенных сообщений SEI.
2. Способ по п. 1, в котором вторая единица NAL SEI расположена непосредственно после первой единицы NAL SEI в единице PU, содержащей первую единицу NAL SEI в первом подпотоке битов данных.
3. Способ по п. 2, в котором первая единица NAL SEI удалена из первого подпотока битов данных для генерирования выходного подпотока битов данных.
4. Способ по п. 1, в котором правило указывает генерировать немасштабируемые вложенные сообщения SEI, когда выполняется группа условий, причем группа условий содержит условие, что первая единица NAL SEI содержит масштабируемое вложенное сообщение SEI, где флаг sn_ols_flag равен 1, а флаг sn_subpic_flag, который применяется к целевому выходному набору слоев (OLS), равен 0.
5. Способ по п. 4, в котором группа условий дополнительно содержит условие, что список значений идентификаторов заголовков единиц слоя сетевой абстракции (NAL) в наборе OLS с индексом целевого набора OLS не содержит все значения идентификаторов заголовков единиц NAL во всех единицах NAL в слое кодирования видео (VCL) в первом подпотоке битов данных.
6. Способ по п. 5, в котором правило дополнительно указывает, что в ответ на то, что список значений идентификаторов заголовков единиц NAL в выходном наборе слоев (OLS) не содержит все значения идентификаторов заголовков единиц NAL во всех единицах NAL VCL в потоке битов данных, поступающем на вход процесса извлечения подпотока битов данных, дополнительно применяется следующее:
1) все единицы NAL SEI, которые содержат немасштабируемое вложенное сообщение SEI с типом полезной нагрузки, равным 0 или 130, удаляются из выходного подпотока битов данных, и
2) когда флаг general_same_pic_timing_in_all_ols_flag равен 0, все единицы NAL SEI, которые содержат немасштабируемое вложенное сообщение SEI с типом полезной нагрузки, равным 1, удаляются из выходного подпотока битов данных.
7. Способ по п. 1, в котором на этапе преобразования кодируют видео в поток битов данных.
8. Способ по п. 1, в котором на этапе преобразования декодируют видео из потока битов данных.
9. Устройство обработки данных видео, содержащее процессор и энергонезависимое запоминающее устройство с записанными в нем командами, причем команды при их исполнении процессором вызывают выполнение процессором:
преобразования между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом,
причем правило устанавливает, в процессе извлечения подпотока битов данных, в котором первый подпоток битов данных используется для получения выходного подпотока битов данных, следует ли генерировать немасштабируемые вложенные сообщения с информацией дополнительного улучшения (SEI) посредством извлечения масштабируемых вложенных сообщений SEI из масштабируемого вмещающего сообщения SEI, на основе первого флага, обозначенного как sn_ols_flag, и второго флага, обозначенного как sn_subpic_flag,
причем масштабируемое вмещающее сообщение SEI содержится в первой единице слоя сетевой абстрации (NAL) SEI, содержащейся в первом подпотоке битов данных,
при этом в случае генерирования немасштабируемых вложенных сообщений SEI генерируется вторая единица NAL SEI, и масштабируемые вложенные сообщения SEI извлекаются из масштабируемого вмещающего сообщения SEI и включаются во вторую единицу NAL SEI в качестве немасштабируемых вложенных сообщений SEI.
10. Энергонезависимый читаемый компьютером носитель информации, хранящий команды, вызывающие выполнение процессором:
преобразования между видео, содержащим один или более слоев, и потоком битов данных видео в соответствии с правилом,
причем правило устанавливает, в процессе извлечения подпотока битов данных, в котором первый подпоток битов данных используется для получения выходного подпотока битов данных, следует ли генерировать немасштабируемые вложенные сообщения с информацией дополнительного улучшения (SEI) посредством извлечения масштабируемых вложенных сообщений SEI из масштабируемого вмещающего сообщения SEI, на основе первого флага, обозначенного как sn_ols_flag, и второго флага, обозначенного как sn_subpic_flag,
причем масштабируемое вмещающее сообщение SEI содержится в первой единице слоя сетевой абстрации (NAL) SEI, содержащейся в первом подпотоке битов данных,
при этом в случае генерирования немасштабируемых вложенных сообщений SEI генерируется вторая единица NAL SEI, и масштабируемые вложенные сообщения SEI извлекаются из масштабируемого вмещающего сообщения SEI и включаются во вторую единицу NAL SEI в качестве немасштабируемых вложенных сообщений SEI.
11. Способ сохранения потока битов данных видео, содержащий этапы, на которых:
генерируют поток битов данных видео, содержащего один или более слоев, в соответствии с правилом, и
сохраняют поток битов данных на энергонезависимом читаемом компьютером носителе записи,
причем правило устанавливает, в процессе извлечения подпотока битов данных, в котором первый подпоток битов данных используется для получения выходного подпотока битов данных, следует ли генерировать немасштабируемые вложенные сообщения с информацией дополнительного улучшения (SEI) посредством извлечения масштабируемых вложенных сообщений SEI из масштабируемого вмещающего сообщения SEI, на основе первого флага, обозначенного как sn_ols_flag, и второго флага, обозначенного как sn_subpic_flag,
причем масштабируемое вмещающее сообщение SEI содержится в первой единице слоя сетевой абстрации (NAL) SEI, содержащейся в первом подпотоке битов данных,
при этом в случае генерирования немасштабируемых вложенных сообщений SEI генерируется вторая единица NAL SEI, и масштабируемые вложенные сообщения SEI извлекаются из масштабируемого вмещающего сообщения SEI и включаются во вторую единицу NAL SEI в качестве немасштабируемых вложенных сообщений SEI.
US 2015358640 A1, 2015.12.10 | |||
US 2015271498 A1, 2015.09.24 | |||
WO 2015056182 A2, 2015.04.23 | |||
US 2015103921 A1, 2015.04.16 | |||
WO 2014106685 A1, 2014.07.10 | |||
Способ и устройство для кодирования видеоинформации | 2013 |
|
RU2612577C2 |
US 2018115787 A1, 2018.04.26. |
Авторы
Даты
2025-04-14—Публикация
2021-05-21—Подача