Перекрестная ссылка на родственную заявку
[1] Эта заявка испрашивает приоритет согласно 35 USC § 119 по предварительной заявке США № 63/027 835, поданной 20 мая 2020 г., предварительной заявке США № 63/035 647, поданной 5 июня 2020 г., предварительной заявке США № 63/036 174, поданная 8 июня 2020 г., предварительной заявке США № 63/036 342, поданной 8 июня 2020 г., и заявке США № 17/211 236, поданной 24 марта 2021 г. в Агентство по патентам и товарным знакам США, содержание которых включено в настоящий документ посредством ссылки во всей своей полноте.
Область техники, к которой относится изобретение
[2] Раскрытый объект изобретения относится к кодированию и декодированию видео, а конкретнее, к сигнализированию комбинации передискретизации опорного изображения и пространственной масштабируемости в кодированном потоке видео с множеством слоев.
Уровень техники
[3] Известно кодирование и декодирование видео с использованием межкадрового предсказания с компенсацией движения. Несжатое цифровое видео может состоять из серии изображений, причем каждое изображение имеет пространственный размер, например, 1920 x 1080 отсчетов яркости и связанных отсчетов цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет значительные требования к битрейту. Например, для видео 1080p60 4:2:0 с частотой 8 бит на отсчет (разрешение 1920x1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 гигабайт (ГБ) дискового пространства.
[4] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к полосе пропускания или пространству для хранения, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал пригодным для предполагаемого приложения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, для пользователей определенных потребительских приложений потоковой передачи допустимы более высокие искажения, чем для пользователей приложений вещательного телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.
[5] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.
[6] Исторически видеокодеры и видеодекодеры имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS), группы изображений (GOP) или аналогичного временного кадра с множеством изображений. Например, в MPEG-2 известно, что конструкция системы изменяет горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендаций МСЭ-Т H.263, Приложение P. Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально могут использоваться только части холста изображения (в случае понижающей дискретизации) или захватываться только части сцены (в случае повышающей дискретизации). Кроме того, Приложение Q H.263 разрешает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повышения или понижения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в H.263, и поэтому его не нужно сигнализировать.
[7] Изменение размера изображения в предсказанных изображениях стало более распространенным явлением в современном кодировании видео. Например, VP9 позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении VVC (включая, например, Hendry, и др., «On adaptive resolution change (ARC) for VVC», документ Объединенной команды видеоэкспертов (JVT) JVET-M0135-v1, 9-19 января 2019 г., полностью включенный в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений с другим - более высоким или более низким - разрешением. В этом документе предлагается кодировать различные кандидаты разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.
Раскрытие сущности изобретения
[8] В варианте осуществления предусматривается способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий: получение из кодированного битового потока видео первого флага, указывающего, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS); определение значения второго флага, указывающего, изменяется ли разрешение изображения в CVS; на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC.
[9] В варианте осуществления предусматривается устройство для декодирования кодированного битового потока видео, включающее по меньшей мере один элемент памяти, конфигурированную для хранения программного кода; и по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, при этом программный код включает: первый код получения, конфигурированный предписывать по меньшей мере одному процессору получать из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS); код определения, конфигурированный предписывать по меньшей мере одному процессору определять значение второго флага, указывающего, изменяется ли разрешение изображения в CVS; первый код декодирования, конфигурированный предписывать по меньшей мере одному процессору на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и второй код декодирования, конфигурированный предписывать по меньшей мере одному процессору на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC
[10] В варианте осуществления предусмотрен невременный машиночитаемый носитель, хранящий инструкции, включающие: одну или несколько инструкций, которые при выполнении одним или несколькими процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам: получать из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS); определять значение второго флага, указывающего, изменяется ли разрешение изображения в CVS; на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC.
Краткое описание чертежей
[11] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых изображено следующее:
[12] На фиг. 1 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.
[13] На фиг. 2 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.
[14] На фиг. 3 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления.
[15] На фиг. 4 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления.
[16] На фиг. 5A-5E показаны схематические иллюстрации вариантов сигнализации параметров ARC в соответствии с вариантом осуществления, в соответствии с вариантом осуществления.
[17] На фиг. 6A-6B показаны схематические иллюстрации примеров синтаксических таблиц в соответствии с вариантом осуществления.
[18] На фиг.7 показан пример структуры предсказания для масштабируемости с изменением адаптивного разрешения в соответствии с вариантом осуществления.
[19] На фиг.8 показан пример таблицы синтаксиса в соответствии с вариантом осуществления.
[20] На фиг. 9 показана схематическая иллюстрация упрощенной блок-схемы синтаксического анализа и декодирования цикла POC на единицу доступа и значение счетчика единиц доступа в соответствии с вариантом осуществления.
[21] На фиг. 10 показана схематическая иллюстрация структуры видеобитового потока, содержащей многослойные субизображения, в соответствии с вариантом осуществления.
[22] а фиг. 11 показана схематическая иллюстрация отображения выбранного субизображения с улучшенным разрешением в соответствии с вариантом осуществления.
[23] На фиг. 12 показана блок-схема процесса декодирования и отображения битового потока видео, содержащего многослойные субизображения, в соответствии с вариантом осуществления.
[24] На фиг. 13 показана схематическая иллюстрация отображения видео 360° с улучшенным слоем субизображения в соответствии с вариантом осуществления.
[25] На фиг. 14 показан пример информации компоновки субизображения и его соответствующего слоя и структуры предсказания изображения в соответствии с вариантом осуществления.
[26] На фиг. 15 показан пример информации компоновки субизображения и их соответствующего слоя и структуры предсказания изображения с модальностью пространственной масштабируемости локальной области в соответствии с вариантом осуществления.
[27] На фиг. 16A-16B показаны примеры таблиц синтаксиса для информации компоновки субизображения в соответствии с вариантами осуществления.
[28] На фиг. 17 показан пример таблицы синтаксиса сообщения SEI для информации компоновки субизображения в соответствии с вариантом осуществления.
[29] На фиг. 18 показан пример таблицы синтаксиса для указания выходных слоев и информации профиля/яруса/уровня для каждого набора выходных слоев согласно варианту осуществления.
[30] На фиг. 19 показан пример таблицы синтаксиса, чтобы указать режим выходного слоя для каждого набора выходных слоев согласно варианту осуществления.
[31] На фиг. 20 показан пример таблицы синтаксиса для указания текущего субизображения каждого слоя для каждого набора выходных слоев в соответствии с вариантом осуществления.
[32] На фиг. 21 показан пример таблицы синтаксиса полезной нагрузки необработанной последовательности байтов (RBSP).
[33] На фиг. 22 показан пример таблицы синтаксиса для указания набора выходного слоя с режимом набора выходного слоя.
[34] На фиг.23 показан пример таблицы синтаксиса для указания передискретизации опорного изображения и изменений разрешения в кодированной видеопоследовательности в наборе параметров последовательности (SPS).
[35] На фиг. 24 показан пример таблицы синтаксиса для указания размера изображения в PPS (PPS).
[36] На фиг. 25A-25C показаны блок-схемы примерных процессов декодирования кодированного битового потока видео в соответствии с вариантом осуществления.
[37] На фиг. 26 показана схематическая иллюстрация компьютерной системы в соответствии с одним вариантом осуществления.
Осуществление изобретения
[38] На фиг.1 проиллюстрирована упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего раскрытия. Система (100) может включать в себя по меньшей мере два терминала (110-120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т. п.
[39] На фиг.1 показана вторая пара терминалов (130, 140), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.
[40] На фиг.1 терминалы (110-140) могут быть изображены как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (150) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, сети проводной и/или беспроводной связи. Сеть (150) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего раскрытия, если это не объясняется в данном документе ниже.
[41] На фиг.2 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.
[42] Система потоковой передачи может включать в себя субсистему (213) захвата, которая может включать в себя источник (201) видео, например цифровую камеру, создающую, например, поток (202) отсчетов несжатого видео. Данный поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми потоками видео, может быть обработан кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированный битовый поток (204) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на сервере (205) потоковой передачи для будущего использования. Один или более клиентов (206, 208) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) кодированного битового потока (204) видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию кодированного битового потока видео (207) и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не изображено). В некоторых системах потоковой передачи битовые потоки (204, 207, 209) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию МСЭ-T H.265. В стадии разработки находится стандарт кодирования видео, неофициально известный как универсальное кодирование видео или VVC. Раскрытый объект изобретения может использоваться в контексте VVC.
[43] Фиг.3 может быть функциональной блок-схемой видеодекодера (210) согласно варианту осуществления настоящего раскрытия.
[44] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (210); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети между приемником (310) и энтропийным декодером/парсером (320) (далее «парсер») может быть подключена буферная память (315). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (315) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буфер (315), который может быть сравнительно большим и может быть предпочтительно адаптивного размера.
[45] Видеодекодер (210) может включать в себя синтаксический анализатор (320) для восстановления символов (321) из энтропийной кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как это было показано на фиг.3. Управляющая информация для устройства (устройств) визуализации может быть в форме дополнительной информации улучшения (сообщения SEI) или фрагментов набора параметров информации о пригодности видео (VUI) (не изображены). Парсер (320) может выполнять парсинг и/или энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в уровне техники, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (320) может извлекать из кодированной видеопоследовательности набор параметров субгруппы по меньшей мере для одной из субгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, кирпичики, макроблоки, единицы дерева кодирования (CTU), единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Тайл может указывать прямоугольную область CU/CTU в конкретном столбце и ряде тайлов в изображении. Кирпичик может указывать на прямоугольную область рядов CU/CTU в пределах конкретного тайла. Слайс может указывать на один или несколько кирпичиков изображения, которые содержатся в единице NAL. Субизображение может указывать на прямоугольную область одного или нескольких слайсов в изображении. Энтропийный декодер/парсер также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.
[46] Парсер (320) может выполнять операцию энтропийного декодирования и/или парсинга видеопоследовательности, принятой из буфера (315), чтобы создавать символы (321).
[47] Восстановление символов (321) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: интер- и интраизображение, интер- и интраблок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации субгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (320). Поток такой управляющей информации субгруппы между парсером (320) и множеством модулей ниже не показан для ясности.
[48] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.
[49] Первым модулем является модуль (351) масштабирования и/или обратного преобразования. Модуль (351) масштабирования и/или обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (321) от парсера (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).
[50] В некоторых случаях выходные отсчеты модуля (351) масштабирования и/или обратного преобразования могут относиться к блоку с интракодированием; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (352) внутрикадрового предсказания. В некоторых случаях модуль (352) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (358). Агрегатор (355), в некоторых случаях, добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) интрапредсказания, к информации выходных отсчетов, предоставляемой модулем (351) масштабирования и/или обратного преобразования.
[51] В других случаях выходные отсчеты модуля (351) масштабирования и/или обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может обращаться к памяти (357) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу модуля масштабирования и/или обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.
[52] Выходные отсчеты агрегатора (355) могут подвергаться различным методам петлевой фильтрации в модуле (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и предоставляются модулю (356) петлевой фильтрации как символы (321) из парсера (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные посредством петлевой фильтрации значения отсчетов.
[53] Выходной сигнал модуля (356) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (212) визуализации, а также сохранен в памяти опорных изображений для использования в будущем межкадровом предсказании.
[54] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, парсером (320)), текущее опорное изображение (358) может стать частью буфера (357) опорных изображений, и свежая память текущих изображений может быть перераспределена перед началом восстановления следующего кодированного изображения.
[55] Видеодекодер 210 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как ITU-T Rec. H.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах границ, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.
[56] В варианте осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.
[57] Фиг.4 может быть функциональной блок-схемой видеокодера (203) согласно варианту осуществления настоящего раскрытия.
[58] Кодер (203) может принимать отсчеты видео от источника (201) видео (который не является частью кодера), который может захватывать видеоизображение(я) для кодирования кодером (203).
[59] Источник (201) видео может предоставлять исходную видеопоследовательность для кодирования кодером (203) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, ...), любое цветовое пространство (например, BT.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (203) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т. д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.
[60] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально связан с этими модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером, могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной конструкции системы.
[61] Некоторые видеокодеры работают в том, что специалист в данной области легко распознает как «петля кодирования». В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (430) (далее «кодер источника») (ответственной за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения(й)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое буфера опорных изображений также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видел» бы при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалисту в данной области техники.
[62] Работа «локального» декодера (433) может быть такой же, как у «удаленного» декодера (210), который уже был подробно описан выше со ссылкой на фиг.3. Кратко ссылаясь также на фиг.4, однако, поскольку символы доступны, и кодирование и/или декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и парсером (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и парсер (320), не могут быть полностью реализованы в локальном декодере (433).
[63] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме парсинга и/или энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[64] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, механизм (432) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.
[65] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг.4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общее содержимое, в качестве восстановленных опорных кадров, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[66] Предиктор (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (435) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.
[67] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров субгруппы, используемых для кодирования видеоданных.
[68] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия без потерь символов согласно технологиям, известным специалистам в данной области техники, как, например, кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.
[69] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал (460) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (440) может обеспечивать слияние кодированных видеоданных из видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[70] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов кадров:
[71] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы интра-изображений, включая, например, изображения с независимым обновлением декодера. Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.
[72] Изображение с предсказанием (P-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[73] Изображение с двунаправленным предсказанием (B-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.
[74] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интрапредсказание). Пиксельные блоки P-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки B-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[75] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендация МСЭ-Т H.265. В своей работе видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[76] В варианте осуществления передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать в себя такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной информации улучшения (SEI), фрагменты набора параметров информации о пригодности видео (VUI) и так далее.
[77] В последнее время некоторое внимание привлекла агрегация сжатой области или извлечение множества семантически независимых частей изображения в одно видеоизображение. В частности, в контексте, например, кодирования 360 или определенных приложений наблюдения, несколько семантически независимых исходных изображений (например, поверхность шести кубов проектируемой кубом сцены 360 или входы отдельных камер в случае многокамерного наблюдения setup) могут потребоваться отдельные настройки адаптивного разрешения, чтобы справиться с различной активностью каждой сцены в данный момент времени. Другими словами, кодеры в данный момент времени могут выбирать использование разных коэффициентов передискретизации для разных семантически независимых изображений, составляющих всю 360-градусную сцену или сцену наблюдения. При объединении в одно изображение, в свою очередь, возникает необходимость в выполнении передискретизации опорного изображения и доступности сигнализирования кодирования с адаптивным разрешением для частей кодированного изображения.
[78] Ниже представлены несколько терминов, на которые приводится ссылка в оставшейся части этого описания.
[79] Суб-изображение может относиться к, в некоторых случаях, прямоугольной компоновке отсчетов, блоков, макроблоков, единиц кодирования или подобных объектов, которые семантически сгруппированы и которые могут быть независимо кодированы с измененным разрешением. Одно или несколько субизображений могут образовывать изображение. Одно или более кодированных субизображений могут образовывать кодированное изображение. Одно или более субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В определенных средах одно или более кодированных суб-изображений могут быть собраны в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или других случаях одно или более кодированных суб-изображений могут быть извлечены из кодированного изображения в сжатой области.
[80] Адаптивное изменение разрешения (ARC) может относится к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. В дальнейшем параметры ARC относятся к управляющей информации, необходимой для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и так далее.
[81] В вариантах осуществления кодирование и декодирование могут выполняться для одного семантически независимого кодированного видеоизображения. Перед описанием последствий кодирования/декодирования множества субизображений с независимыми параметрами ARC и их подразумеваемой дополнительной сложности должны быть описаны варианты сигнализации параметров ARC.
[82] На фиг. 5A-5E показаны несколько вариантов осуществления сигнализирования параметров ARC. Как отмечено для каждого из вариантов осуществления, они могут иметь определенные преимущества и определенные недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видео могут выбрать один или более из этих вариантов осуществления или вариантов, известных из уровня техники, для сигнализирования параметров ARC. Варианты осуществления могут не быть взаимоисключающими и, возможно, могут быть взаимозаменяемыми в зависимости от потребностей приложения, используемых стандартов или выбора кодера.
[83] Классы параметров ARC могут включать в себя:
[84] - коэффициенты повышающей и/или понижающей дискретизации, отдельные или объединенные в измерениях X и Y,
[85] - коэффициенты повышающей и/или понижающей дискретизации с добавлением временного измерения, указывающие на увеличение/уменьшение размера с постоянной скоростью для заданного количества изображений,
[86] - любой из двух вышеупомянутых вариантов может включать в себя кодирование одного или более предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициент(ы),
[87] Разрешение в измерении X или Y в единицах отсчетов, блоках, макроблоках, единицах кодирования (CU) или любой другой подходящей степени детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, в сочетании или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть выведен из другого набора значений. Это может быть передано, например, путем использования флагов. Более подробный пример см. ниже.
[88] координаты «деформации», подобные тем, которые используются в Приложении P H.263, опять же с подходящей степенью детализации, как описано выше. Приложение P H.263 определяет один эффективный способ кодирования таких координат деформации, но, возможно, также разрабатываются другие, потенциально более эффективные способы. Например, реверсивное кодирование Хаффмана с переменной длиной координат деформации согласно Приложению P может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть «деформацию» за пределами границ максимального размера изображения.
[89] Параметры фильтра с повышающей и/или понижающей дискретизацией. В вариантах осуществления может быть только один фильтр для повышающей и/или понижающей дискретизации. Однако в вариантах осуществления может быть желательным обеспечить большую гибкость в конструкции фильтра, и для этого может потребоваться сигнализирование параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть неявно выбран с помощью соответствующих соотношений повышающей и/или понижающей дискретизации, которые, в свою очередь, сигнализируются в соответствии с любым из механизмов, упомянутых выше, и так далее.
[90] Ниже описание предполагает кодирование конечного набора коэффициентов повышающей и/или понижающей дискретизации (тот же коэффициент, который должен использоваться в измерениях X и Y), указанных с помощью кодового слова. Это кодовое слово может быть закодировано с переменной длиной, например, с использованием экспоненциального кода Голомба, общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как H.264 и H.265. Одно подходящее сопоставление значений для коэффициентов повышающей и/или понижающей дискретизации может, например, соответствовать Таблице 1:
[91] Многие аналогичные сопоставления могут быть разработаны в соответствии с потребностями приложения и возможностями механизмов повышения и понижения дискретизации, доступных в технологии или стандарте сжатия видео. Таблица может быть расширена до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от Экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляли интерес за пределами самих механизмов обработки видео (прежде всего кодера и декодера), например, посредством MANE. Следует отметить, что для ситуаций, когда изменение разрешения не требуется, может быть выбран Экспоненциальный код Голомба, который является коротким; в таблице выше только один бит. Это может иметь преимущество в эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.
[92] Количество записей в таблице, а также их семантика могут быть полностью или частично настраиваемыми. Например, основная структура таблицы может быть передана в «высоком» наборе параметров, таком как последовательность или набор параметров декодера. В вариантах осуществления, одна или более таких таблиц могут быть определены в технологии или стандарте кодирования видео и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.
[93] Ниже приведено описание того, как коэффициент повышающей и/или понижающей дискретизации (информация ARC), закодированный, как описано выше, может быть включен в технологию кодирования видео или стандартный синтаксис. Подобные соображения могут применяться к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. Смотри ниже обсуждение, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.
[94] Как показано на фиг.5А, приложение P H.263 включает информацию (502) ARC в форме четырех координат деформации в заголовок (501) изображения, в частности, в расширение заголовка PLUSPTYPE (503) H.263. Это может быть разумным выбором структуры, когда а) имеется доступный заголовок изображения и б) ожидаются частые изменения информации ARC. Однако служебные данные при использовании сигнализации в стиле H.263 могут быть довольно высокими, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.
[95] Как показано на фиг.5В, JVCET-M135-v1 включает эталонную информацию ARC (505) (индекс), расположенную в наборе (504) параметров изображения, индексирует таблицу (506), включая целевые разрешения, которая, в свою очередь, находится внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности может, в соответствии со словесными заявлениями, сделанными авторами, быть оправдано использованием SPS в качестве точки согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506) от изображения к изображению, путем обращения к соответствующему набору (504) параметров изображения.
[96] Ссылаясь на фиг. 5C-5E, следующие варианты осуществления могут существовать для передачи информации ARC в битовом потоке видео. Каждая из этих опций имеет определенные преимущества по сравнению с вариантами осуществления, описанными выше. Варианты осуществления могут одновременно присутствовать в одной и той же технологии или стандарте видеокодирования.
[97] В вариантах осуществления, например, в варианте осуществления с фиг. 5C, информация (509) ARC , такая как коэффициент передискретизации (масштабирования), может присутствовать в заголовке слайса, заголовке GOP, заголовке тайла или заголовке группы тайлов. Фиг. 5C иллюстрирует вариант осуществления, в котором используется заголовок (508) группы тайлов. Этого может быть достаточно в случае информации ARC небольшого размера, такой как одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из нескольких битов, например, как показано выше. Наличие информации ARC непосредственно в заголовке группы тайлов имеет дополнительное преимущество, поскольку информация ARC может быть применима к субизображению, представленному, например, этой группой тайлов, а не ко всему изображению. См. также ниже. Кроме того, даже если технология или стандарт сжатия видео предусматривает только изменение адаптивного разрешения всего изображения (в отличие, например, от изменений адаптивного разрешения на основе группы тайлов), размещение информации ARC в заголовке группы тайлов вместо помещения ее в заголовок изображения в стиле H.263 имеет определенные преимущества с точки зрения устойчивости к ошибкам.
[98] В вариантах осуществления, например, в варианте осуществления с фиг. 5D, информация (512) ARC сама по себе может присутствовать в соответствующем наборе параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров мозаичного элемента, набор параметров адаптации и так далее. Фиг. 5D иллюстрирует вариант осуществления, в котором используется набор (511) параметров адаптации. Объем этого набора параметров предпочтительно может быть не больше, чем изображение, например группа тайлов. Использование информации ARC неявно осуществляется путем активации соответствующего набора параметров. Например, когда технология или стандарт кодирования видео рассматривают только ARC на основе изображения, тогда подходящим вариантом может быть набор параметров изображения или эквивалент.
[99] В вариантах осуществления, например, в варианте осуществления с фиг. 5E, опорная информация (513) ARC может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Данная эталонная информация (513) может относиться к субнабору информации (515) ARC, доступному в наборе (516) параметров с объемом, выходящим за рамки одного изображения, например, наборе параметров последовательности или наборе параметров декодера.
[100] Как показано на фиг.6А, заголовок группы тайлов (601) в качестве примерной синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать, кодированный с помощью экспоненциального кода Голомба элемент синтаксиса переменной длины dec_pic_size_idx (602) (выделен жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть ограничено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в той точке, где он встречается на синтаксической диаграмме. Тот факт, используется ли адаптивное разрешение для этого изображения или его частей, можно быть сигнализировано в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это сигнализируется в наборе параметров последовательности, как показано ниже.
[101] На фиг.6В показана также выборка набора (610) параметров последовательности. Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). При значении истина (true), этот флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if() в наборе (612) параметров и заголовке (601) группы тайлов.
[102] Когда используется адаптивное разрешение, в этом примере кодировано выходное разрешение в единицах отсчетов (613). Номер позиции 613 относится как к output_pic_width_in_luma_samples, так и к output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте технологии или стандарта кодирования видео могут быть определены определенные ограничения для любого значения. Например, определение уровня может ограничивать количество общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Также, определенные технологии или стандарты кодирования видео, или внешние технологии или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон нумерации (например, одно или оба измерения должны делиться на степень 2) или соотношение ширины и высоты (например, ширина и высота должны быть в таком соотношении, как 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам, и они хорошо известны в данной области техники.
[103] В некоторых приложениях может быть целесообразно, чтобы кодер инструктировал декодер использовать определенный размер опорного изображения вместо того, чтобы неявно предполагать, что этот размер является размером выходного изображения. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) передает условное присутствие размеров (615) опорного изображения (опять же, номер позиции относится как к ширине, так и к высоте).
[104] Наконец, показана таблица возможной ширины и высоты изображения декодирования. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minus1) (616). «Minus1» может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если значение равно пяти, присутствуют шесть записей таблицы. Затем для каждой «строки» в таблице в синтаксис (617) включаются ширина и высота декодированного изображения.
[105] Представленные записи (617) таблицы могут быть проиндексированы с использованием элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, тем самым разрешая различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.
[106] Некоторые технологии или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения (сигнализируемую совершенно иначе, чем в раскрытом объекте изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость. В частности, некоторые опорные изображения могут подвергаться повышающей дискретизации с использованием технологий в стиле ARC до более высокого разрешения для формирования базы слоя пространственного улучшения. Эти изображения с повышенной дискретизацией можно улучшить, используя нормальные механизмы предсказания с высоким разрешением, чтобы добавить деталей.
[107] Обсуждаемые здесь варианты осуществления могут использоваться в такой среде. В некоторых случаях, в том же или другом варианте осуществления, значение в заголовке единицы NAL, например поле временного идентификатора, может использоваться для указания не только временного, но и пространственного слоя. Это может иметь определенные преимущества для определенных конфигураций систем; например, существующая архитектура Selected Forwarding Units (SFU), созданная и оптимизированная для выбранных временных слоев, пересылаемых на основе значения временного идентификатора заголовка единицы NAL, может использоваться без модификации для масштабируемых сред. Для того чтобы сделать это возможным, может существовать требование для сопоставления между размером кодированного изображения и временным слоем, указываемым полем временного идентификатора в заголовке единицы NAL.
[108] В некоторых технологиях кодирования видео единица доступа (AU) может относиться к кодированному изображению(ям), слайсу(ам), тайлу(ам), блоку(ам) NAL и так далее, которые были захвачены и скомпонованы в соответствующие изображение, слайс, тайл и/или битовый поток единицы NAL в данный момент времени. Таким моментом во времени может быть, например, время компоновки.
[109] В HEVC и некоторых других технологиях кодирования видео значение счетчика порядка изображений (POC) может использоваться для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB). Когда единица доступа (AU) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащие одной и той же AU, могут нести одно и то же значение POC, из которого можно сделать вывод, что они были созданы из содержимого то же времени компоновки. Другими словами, в сценарии, где два изображения/слайса/тайла несут одно и то же заданное значение POC, это может указывать на то, что два изображения/слайса/тайла принадлежат одной и той же AU и имеют одинаковое время компоновки. И наоборот, два изображения/среза/мозаичных элемента, имеющие разные значения POC, могут указывать, что эти изображения/срезы/мозаичных элемента принадлежат разным AU и имеют разное время композиции.
[110] В вариантах осуществления эта жесткая взаимосвязь может быть ослаблена, поскольку блок доступа может содержать изображения, срезы или мозаичные элементы с разными значениями POC. Допуская различные значения POC в AU, становится возможным использовать значение POC для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с идентичным временем представления. Это, в свою очередь, может обеспечить поддержку множества масштабируемых слоев без изменения сигнализации выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.
[111] Однако все еще желательно иметь возможность идентифицировать AU, которой принадлежит изображение/слайс/тайл, по отношению к другому изображению/слайсу/тайлу, имеющему другие значения POC, только на основе значения POC. Этого можно добиться, как описано ниже.
[112] В вариантах осуществления счетчик единиц доступа (AUC) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение AUC может использоваться, чтобы идентифицировать, какие единицы NAL, изображения, слайсы или тайлы принадлежат данной AU. Значение AUC может соответствовать отдельному моменту времени компоновки. Значение AUC может быть кратным значению POC. Путем деления значения POC на целочисленное значение можно вычислить значение AUC. В некоторых случаях операции деления могут накладывать определенную нагрузку на реализации декодеров. В таких случаях небольшие ограничения в пространстве нумерации значений AUC могут позволить заменить операцию деления операциями сдвига. Например, значение AUC может быть равно значению старшего значащего бита (MSB) диапазона значений POC.
[113] В вариантах осуществления значение цикла POC для каждой AU (poc_cycle_au) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Величина poc_cycle_au может указывать, сколько различных и последовательных значений POC может быть связано с одной и той же AU. Например, если значение poc_cycle_au равно 4, изображения, слайсы или тайлы со значением POC, равным 0-3 включительно, могут быть связаны с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением POC, равным 4-7 включительно, могут быть связаны с AU со значением AUC, равным 1. Следовательно, значение AUC может быть выведено путем деления значения POC на значение poc_cycle_au.
[114] В вариантах осуществления значение poc_cyle_au может быть получено из информации, расположенной, например, в наборе параметров видео (VPS), которая идентифицирует количество пространственных слоев или слоев SNR в кодированной видеопоследовательности. Пример такой возможной взаимосвязи кратко описывается ниже. Хотя получение, как описано выше, может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, в некоторых вариантах осуществления poc_cycle_au может быть явно кодирован в соответствующей синтаксической структуре высокого уровня иерархически ниже набора параметров видео, чтобы иметь возможность минимизировать poc_cycle_au для данной небольшой части битового потока, такого как изображение. Эта оптимизация может сэкономить больше битов, чем может быть сохранено посредством процесса получения, описанного выше, потому что значения POC и/или значения элементов синтаксиса, косвенно относящиеся к POC могут быть кодированы в синтаксических структурах низкого уровня.
[115] В вариантах осуществления на фиг.8 показан пример таблиц синтаксиса для сигнализации элемента синтаксиса vps_poc_cycle_au в VPS (или SPS), который указывает poc_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и элемента синтаксиса slice_poc_cycle_au, который указывает poc_cycle _au текущего слайса в заголовке слайса. Если значение POC увеличивается равномерно для каждого AU, vps_contant_poc_cycle_per_au в VPS может быть установлено равным 1, и vps_poc_cycle_au может сигнализироваться в VPS. В этом случае slice_poc_cycle_au может сигнализируется неявно, и значение AUC для каждой AU может вычисляться путем деления значения POC на vps_poc_cycle_au. Если значение POC не увеличивается равномерно на AU, vps_contant_poc_cycle_per_au в VPS может устанавливаться равным 0. В этом случае vps _access_unit_cnt может не сигнализироваться, в то время как slice_access_unit_cnt может сигнализироваться в заголовке слайса для каждого слайса или изображения. Каждый слайс или изображение может иметь различное значение slice_access_unit_cnt. Значение AUC для каждой AU может вычисляться путем деления значения POC на slice_poc_cycle_au.
[116] На фиг. 9 показана блок-схема, иллюстрирующая пример вышеописанного процесса. Например, в операции S910 может быть проанализирован VPS (или SPS), а в операции S920 может быть определено, является ли цикл POC на AU постоянным в пределах кодированной видеопоследовательности. Если цикл POC на AU является постоянным (ДА в операции S920), то значение счетчика единиц доступа для конкретной единицы доступа может быть вычислено из poc_cycle_au, который сигнализируется для кодированной видеопоследовательности, и значения POC конкретной единицы доступа в операции S930. Если цикл POC на AU не является постоянным (НЕТ в операции S920), то значение счетчика единиц доступа для конкретной единицы доступа может быть вычислено из poc_cycle_au, который сигнализируется на уровне изображения, и значения POC конкретной единицы доступа в операции S940. В операции S950 новый VPS (или SPS) может быть проанализирован.
[117] В вариантах осуществления, даже если значение POC изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо зависимости от интерпарсинга/декодирования между изображениями, слайсами или тайлами в одной и той же AU, все или субнабор изображений, слайсов или тайлов, связанных с одной и той же AU, могут быть декодированы параллельно и могут быть выведены в один и тот же момент времени.
[118] В вариантах осуществления, даже если значение POC изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени компоновки/отображения. Когда время компоновки содержится в формате контейнера, даже если изображения соответствуют разным AU, если изображения имеют одинаковое время компоновки, изображения могут отображаться в один и тот же момент времени.
[119] В вариантах осуществления каждое изображение, слайс или тайл может иметь один и тот же временной идентификатор (temporal_id) в одной и той же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с одним и тем же временным субслоем. В вариантах осуществления каждое изображение, слайс или тайл может иметь одинаковый или другой идентификатор пространственного слоя (layer_id) в одной и той же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с тем же или другим пространственным слоем.
[120] На фиг.7 показан пример структуры видеопоследовательности с комбинацией значений temporal_id, layer_id, POC и AUC с адаптивным изменением разрешения. В этом примере изображение, слайс или тайл в первой AU с AUC = 0 может иметь temporal_id = 0 и layer_id = 0 или 1, в то время как изображение, слайс или тайл во второй AU с AUC = 1 может иметь temporal_id = 1 и layer_id = 0 или 1 соответственно. Значение POC увеличивается на 1 для каждого изображения независимо от значений temporal_id и layer_id. В этом примере значение poc_cycle_au может быть равно 2. В вариантах осуществления значение poc_cycle_au может быть установлено равным количеству слоев (пространственной масштабируемости). Следовательно, в этом примере значение POC увеличивается на 2, а значение AUC увеличивается на 1.
[121] В вышеупомянутых вариантах осуществления все или субнабор структуры межкадрового или межслойного предсказания и индикация опорного изображения могут поддерживаться с использованием сигнализации существующего набора опорных изображений (RPS) в HEVC или сигнализации списка опорных изображений (RPL). В RPS или RPL выбранное опорное изображение может указываться посредством сигнализации значения POC или значения дельты POC между текущим изображением и выбранным опорным изображением. В вариантах осуществления RPS и RPL могут использоваться для указания структуры предсказания интер-изображения или интер-слоя без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id опорного изображения больше, чем значение temporal_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний.
[122] В вариантах осуществления масштабирование вектора движения на основе разности POC для временного предсказания вектора движения может быть отключено для множества изображений в единице доступа. Следовательно, хотя каждое изображение может иметь различное значение POC в единице доступа, вектор движения не масштабируется и используется для временного предсказания вектора движения в единице доступа. Это связано с тем, что опорное изображение с другим POC в одной и той же AU считается опорным изображением, имеющим тот же момент времени. Следовательно, в варианте осуществления функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, связанной с текущим изображением.
[123] В вариантах осуществления масштабирование вектора движения на основе разности POC для временного предсказания вектора движения может быть опционально отключено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основе как разности POC, так и отношения пространственного разрешения между текущим изображением и опорным изображением.
[124] В вариантах осуществления вектор движения может масштабироваться на основе разности AUC вместо разности POC для временного предсказания вектора движения, особенно когда poc_cycle_au имеет неоднородное значение (когда vps_contant_poc_cycle_per_au == 0). В противном случае (например, когда vps_contant_poc_cycle_per_au == 1) масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности POC.
[125] В вариантах осуществления, когда вектор движения масштабируется на основе разности AUC, опорный вектор движения в том же AU (с тем же значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственного разрешения между текущим изображением и опорным изображением.
[126] В вариантах осуществления значение AUC может использоваться для идентификации границы AU и используется для операции гипотетического эталонного декодера (HRD), для которой требуется синхронизация ввода и вывода с детализацией AU. В вариантах осуществления декодированное изображение с самым высоким слоем в AU может выводиться для отображения. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.
[127] В вариантах осуществления изображение может включать в себя одно или несколько субизображения. Каждое субизображения может охватывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, покрытая одним или более субизображениями, может покрывать или не покрывать всю область изображения. Если изображение включает субизображения, область, поддерживаемая субизображением, может быть идентична области, поддерживаемой изображением.
[128] В вариантах осуществления субизображение может быть закодировано способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может быть независимо закодировано или может быть закодировано в зависимости от другого субизображения или кодированного изображения. Субизображение может иметь или не иметь какую-либо зависимость парсинга от другого субизображения или кодированного изображения.
[129] В варианте осуществления кодированное субизображение может содержаться в одном или более слоев. Кодированное субизображение в слое может иметь другое пространственное разрешение. Исходное субизображение может подвергаться пространственной передискретизации (например, повышающей или понижающей дискретизации), кодироваться с различными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем слою.
[130] В вариантах осуществления субизображение с (W, H), где W обозначает ширину субизображения, а H обозначает высоту субизображения, соответственно, может кодироваться и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как субизображение с повышающей (или понижающей) дискретизацией из субизображения с исходным пространственным разрешением, с (W*Sw,k, H* Sh,k), может быть кодировано и содержаться в кодированном битовом потоке, соответствующем слою k, где Sw,k, Sh,k указывают коэффициенты передискретизации по горизонтали и вертикали. Если значения Sw,k, Sh,k больше 1, передискретизация может быть повышающей дискретизацией. В то время как, если значения Sw,k, Sh,k меньше 1, передискретизация может быть понижающей дискретизацией.
[131] В вариантах осуществления кодированное субизображение в слое может иметь визуальное качество, отличное от качества кодированного субизображения в другом слое в том же субизображении или другом субизображении. Например, субизображение i в слое n может кодироваться параметром квантования Qi, n, тогда как субизображение j в слое m может кодироваться параметром квантования Qj, m.
[132] В вариантах осуществления кодированное субизображение в слое может быть декодировано независимо, без какой-либо зависимости от парсинга или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно независимо декодировать без ссылки на другой слой субизображения той же локальной области, может быть независимым слоем субизображения. Кодированное субизображение в независимом слое субизображения может иметь или не иметь зависимость декодирования или парсинга от ранее кодированного субизображения в том же слое субизображения, но кодированное субизображение может не иметь никакой зависимости от кодированного изображения в другом слое субизображения.
[133] В вариантах осуществления кодированное субизображение в слое может быть декодировано зависимо, с определенной зависимостью парсинга или декодирования от кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно зависимо декодировать со ссылкой на другой слой субизображения той же локальной области, может быть зависимым слоем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированное субизображение в том же слое субизображения или на оба опорных субизображения.
[134] В вариантах осуществления, кодированное субизображение может содержать один или несколько независимых слоев субизображений и один или несколько зависимых слоев субизображений. Однако по меньшей мере одно независимое субизображение может присутствовать для кодированного субизображения. Значение идентификатора слоя (layer_id), которое может присутствовать в заголовке единицы NAL или другой синтаксической структуре высокого уровня, независимого слоя субизображения может быть равно 0. Слой субизображения с layer_id, равным 0, может быть базовым слоем субизображения.
[135] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана и одно субизображение заднего плана. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением заднего плана. Субзображение заднего плана может быть базовым слоем субизображения, тогда как субизображение переднего плана может быть не-базовым (улучшающим) слоем субизображения. Один или несколько неосновных слоев субизображения могут ссылаться на один и тот же базовый слой для декодирования. Каждый не-базовый слой субизображения с layer_id, равным a, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где a больше b.
[136] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. Каждое субизображение может иметь свой собственный базовый слой субизображения и один или более не-базовых (улучшающих) слоев. На каждый базовый слой субизображения может ссылаться один или более не-базовых слоев субизображения. Каждый не-базовый слой субизображения с layer_id, равным a, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где a больше b.
[137] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. На каждое кодированное субизображение в (базовом или не-базовом) слое субизображения может ссылаться одно или более субизображений не-базового слоя, принадлежащих одному и тому же субизображению, и одно или более субизображений не-базового слоя, которые не принадлежат одному и тому же субизображению.
[138] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. Субизображение в слое a может быть дополнительно разделено на множество субизображений в одном и том же слое. Одно или более кодированных субизображений в слое b могут ссылаться на разделенные субизображения в слое a.
[139] В вариантах осуществления, кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может включать одну или более последовательность кодированных субизображений (CSPS), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь то же или другое временное разрешение, что и кодированная видеопоследовательность.
[140] В вариантах осуществления, CSPS может быть закодирована и содержаться на одном или нескольких слоях. CSPS может включать в себя один или несколько слоев CSPS. Декодирование одного или более слоев CSPS, соответствующих CSPS, может восстанавливать последовательность субизображений, соответствующих одной и той же локальной области.
[141] В вариантах осуществления количество слоев CSPS, соответствующих CSPS, может быть идентичным или отличаться от количества слоев CSPS, соответствующих другой CSPS.
[142] В вариантах осуществления слой CSPS может иметь временное разрешение (например, частоту кадров), отличное от другого слоя CSPS. Исходная (несжатая) последовательность субизображений может подвергаться временной передискретизации (например, повышающей или понижающей дискретизации), кодироваться с различными параметрами временного разрешения и содержаться в битовом потоке, соответствующем слою.
[143] В вариантах осуществления последовательность субизображений с частотой кадров F может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как последовательность субизображений с временной повышающей (или понижающей) дискретизацией из исходной последовательности субизображений с F* St,k может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою k, где St,k указывает коэффициент временной дискретизации для слоя k. Если значение St,k больше 1, процесс временной передискретизации может быть преобразованием с повышением частоты кадров. Тогда как, если значение St , k меньше 1, процесс временной передискретизации может быть преобразованием с понижением частоты кадров.
[144] В вариантах осуществления, когда на субизображения со слоем a CSPS a ссылается субизображение со слоем b CSPS для компенсации движения или любого межслойного предсказания, если пространственное разрешение слоя a CSPS отличается исходя из пространственного разрешения слоя b CSPS, декодированные пиксели на слое a CSPS передискретизируются и используются в качестве опорных. Для процесса передискретизации может использоваться фильтрация с повышающей или понижающей дискретизацией.
[145] На фиг.10 показан примерный поток видео, включающий в себя CSPS видео заднего плана с layer_id, равным 0, и множество слоев CSPS переднего плана. Хотя кодированное субизображение может включать один или более слоев CSPS, область заднего плана, которая не принадлежит какому-либо слою CSPS переднего плана, может включать базовый слой. Базовый слой может содержать область заднего плана и области переднего плана, в то время как слой CSPS улучшения может содержать область переднего плана. Слой CSPS улучшения может иметь лучшее визуальное качество, чем базовый слой, в той же области. Слой CSPS улучшения может ссылаться на восстановленные пиксели и векторы движения базового слоя, соответствующие одной и той же области.
[146] В вариантах осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS, соответствующие каждому субизображению, содержатся в отдельной дорожке в видеофайле.
[147] В вариантах осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS с тем же layer_id содержатся в отдельной дорожке. В этом примере дорожка, соответствующая слою k , включает в себя только слои CSPS, соответствующие слою k.
[148] В вариантах осуществления каждый слой CSPS каждого субизображения хранится в отдельной дорожке. Каждая дорожка может иметь или не иметь зависимости синтаксического анализа или декодирования от одной или нескольких других дорожек.
[149] В вариантах осуществления каждая дорожка может содержать битовые потоки, соответствующие от слоям от i до j слоев CSPS всех или субнабора субизображений, где 0<i=j=k, и k является слоем самого верхнего слоя CSPS.
[150] В вариантах осуществления изображение содержит один или более тип связанных мультимедийных данных, включая карту глубины, альфа-карту, данные трехмерной геометрии, карту занятости и т. д. Такие связанные синхронизированные мультимедийные данные могут быть разделены на один или множество субпотоков данных, каждый из которых соответствует одному субизображению.
[151] На фиг. 11 показан пример видеоконференции, основанной на способе создания многослойных субизображений. В потоке видео содержатся один битовый поток видео базового слоя, соответствующий изображению заднего плана, и один или более битовых потоков видео слоя улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видео слоя улучшения может соответствовать слою CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому слою. Он содержит изображение одного или более пользователей в изображении (PIP). Когда конкретный пользователь выбирается управлением клиента, слой CSPS улучшения, соответствующий выбранному пользователю, может декодироваться и отображаться с улучшенным качеством или пространственным разрешением.
[152] На фиг. 12 показана блок-схема, иллюстрирующая пример описанного выше процесса. Например, в операции S1210 может быть декодирован битовый поток видео с множеством слоев. В операции S1220 могут быть идентифицированы задний план и одно или несколько субизображений переднего плана. В операции S1230 может быть определено, выбрана ли конкретная область субизображения, например одно из субизображений переднего плана. Если выбрана конкретная область субизображения (ДА в операции S1240), улучшенное субизображение может быть декодировано и отображено. Если конкретная область субизображения не выбрана (НЕТ в операции S1240), область заднего плана может быть декодирована и отображена.
[153] В вариантах осуществления промежуточный блок сети (например, маршрутизатор) может выбирать подмножество слоев для отправки пользователю в зависимости от своей полосы пропускания. Организация изображения/субизображения может использоваться для адаптации полосы пропускания. Например, если у пользователя нет полосы пропускания, маршрутизатор разделяет слои или выбирает некоторые субизображения из-за их важности или на основе используемых настроек, и это может делаться динамически для адаптации к полосе пропускания.
[154] НА фиг. 13 показан вариант осуществления, относящийся к варианту использования 360-градусного видео. Когда сферическое 360-градусное изображение, например изображение 1310, проецируется на плоское изображение, изображение проекции 360 может быть разделено на множество субизображений в качестве базового слоя. Например, несколько субизображений могут включать в себя обратное стандартное изображение, верхнее стандартное изображение, правое стандартное изображение, левое стандартное изображение, прямое стандартное изображение и нижнее стандартное изображение. Слой улучшения конкретного субизображения, например прямого субизображения, может быть кодирован и передан клиенту. Декодер может декодировать как базовый слой, включающий в себя все субизображения, так и слой улучшения выбранного субизображения. Когда текущее окно просмотра идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество с декодированным субизображением со слоем улучшения. В противном случае декодированное изображение с базовым слоем может отображаться с более низким качеством.
[155] В вариантах осуществления любая информация компоновки для отображения может присутствовать в файле в качестве дополнительной информации (например, сообщения SEI или метаданные). Одно или более декодированных субизображений могут быть перемещены и отображены в зависимости от сигнализированной информации компоновки. Информация компоновки может быть сигнализирована сервером потоковой передачи или вещательной компанией, или может быть восстановлена сетевым объектом или облачным сервером, или может быть определена индивидуальной настройкой пользователя.
[156] В вариантах осуществления, когда входное изображение делится на одну или более (прямоугольных) субобластей, каждая субобласть может кодироваться как независимый слой. Каждый независимый слой, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого слоя может сигнализироваться информация о размере и местоположении субизображения. Например, размер изображения (ширина, высота), информация о смещении левого верхнего угла (x_offset, y_offset). На фиг.14 показан пример макета разделенных субизображений, информации о размере и положении его субизображений и его соответствующей структуры предсказания изображения. Информация компоновки, включая размер(ы) субизображения и положение(я) субизображения, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров, заголовок группы слайсов или тайлов или сообщение SEI.
[157] В вариантах осуществления каждое субизображение, соответствующее независимому слою, может иметь свое уникальное значение POC в пределах AU. Когда опорное изображение среди изображений, хранящихся в DPB, указывается с использованием элемента(ов) синтаксиса в структуре RPS или RPL, может использоваться значение(я) POC каждого субизображения, соответствующего слою.
[158] В вариантах осуществления, чтобы указать структуру (межслойного) предсказания, layer_id может не использоваться, и может использоваться значение POC (дельта).
[159] В вариантах осуществления субизображение со значением POC, равным N, соответствующее слою (или локальной области), может использоваться или не использоваться в качестве опорного изображения субизображения со значением POC, равным N+K, соответствующего тому же слою (или той же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение числа K может быть равно максимальному количеству (независимых) слоев, которое может быть идентично количеству субобластей.
[160] В вариантах осуществления, на фиг. 15 показан расширенный случай с фиг. 14. Когда входное изображение разделено на множество (например, четыре) субобластей, каждая локальная область может быть кодирована с одним или более слоями. В этом случае количество независимых слоев может быть равно количеству субобластей, и один или более слоев могут соответствовать субобласти. Таким образом, каждая субобласть может быть кодирована одним или более независимых слоев и нулем или более зависимых слоев.
[161] В вариантах осуществления с фиг.15, входное изображение может быть разделено на четыре субобласти. Например, правая верхняя субобласть может быть кодирована как два слоя, которые являются слоем 1 и слоем 4, в то время как правая нижняя субобласть может быть кодирована как два слоя, которые являются слоем 3 и слоем 5. В этом случае слой 4 может ссылаться на слой 1 для предсказания с компенсацией движения, тогда как слой 5 может ссылаться на слой 3 для компенсации движения.
[162] В вариантах осуществления внутрипетлевая фильтрация (например, деблокирующая фильтрация, адаптивная внутрипетлевая фильтрация, изменение формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу слоя может быть (опционально) отключена.
[163] В вариантах осуществления предсказание с компенсацией движения или внутриблочное копирование через границу слоя может быть (опционально) отключено.
[164] В вариантах осуществления граничное заполнение для предсказания с компенсацией движения или внутрипетлевая фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли граничное заполнение или нет, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров (VPS, SPS, PPS или APS), заголовок группы слайсов или тайлов или сообщение SEI.
[165] В вариантах осуществления информация компоновки суб-области (суб-областей) (или суб-изображения, суб-изображений) может сигнализироваться в VPS или SPS. Фиг. 16A показывает пример элементов синтаксиса в VPS, а фиг. 16B показывает пример элементов синтаксиса в SPS. В этом примере vps_sub_picture_dividing_flag сигнализируется в VPS. Флаг может указывать, разделено ли входное(ые) изображение(я) на множество субобластей или нет. Когда значение vps _sub_picture_dividing_flag равно 0, входное изображение(я) в кодированной видеопоследовательности(ях), соответствующей текущей VPS, не может быть разделено на несколько субобластей. В этом случае размер входного изображения может быть равен размеру кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), который сигнализируется в SPS. Когда значение vps _sub_picture_dividing_flag равно 1, входное изображение(я) может быть разделено на множество субобластей. В этом случае элементы синтаксиса vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples сигнализируются в VPS. Значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples могут быть равны ширине и высоте входного изображения(й) соответственно.
[166] В вариантах осуществления значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples не могут использоваться для декодирования, но могут использоваться для компоновки и отображения.
[167] В вариантах осуществления, когда значение vps_sub_picture_dividing_flag равно 1, элементы синтаксиса pic_offset_x и pic_offset_y могут сигнализироваться в SPS, что соответствует (а) конкретному слою (слоям). В этом случае размер кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), сигнализируемый в SPS, может быть равен ширине и высоте субобласти, соответствующей конкретному слою. Также, положение (pic_offset_x, pic_offset_y) левого верхнего угла субобласти может сигнализироваться в SPS.
[168] В вариантах осуществления информация о положении (pic_offset_x, pic_offset_y) левого верхнего угла субобласти не может использоваться для декодирования, но может использоваться для компоновки и отображения.
[169] В вариантах осуществления информация компоновки (размер и положение) всех или суб-набора суб-областей входного изображения(й), информация о зависимости между слоем (слоями) может сигнализироваться в наборе параметров или сообщении SEI. На фиг.17 показан пример элементов синтаксиса для указания информации о макете субобластей, зависимости между слоями и отношения между субобластью и одним или более слоев. В этом примере элемент синтаксиса num_sub_region указывает количество (прямоугольных) субобластей в текущей кодированной видеопоследовательности; элемент синтаксиса num_layers указывает количество слоев в текущей кодированной видеопоследовательности. Значение num_layers может быть равно или больше значения num_sub_region. Когда любая субобласть кодируется как один слой, значение num_layers может быть равно значению num_sub_region. Когда одна или более субобластей кодируются как множество слоев, значение num_layers может быть больше, чем значение num_sub_region. Элемент синтаксиса direct_dependency_flag [i] [j] указывает зависимость от j-го слоя к i-му слою; num_layers_for_region [i] указывает количество слоев, связанных с i-й субобластью; sub_region_layer_id [i] [j] указывает layer_id j-го слоя, связанного с i-й субобластью. Значения sub_region_offset_x [i] и sub_region_offset_y [i] указывают, соответственно, горизонтальное и вертикальное положение левого верхнего угла i-й субобласти. Значения sub_region_width [i] и sub_region_height [i] указывают, соответственно, ширину и высоту i-й субобласти.
[170] В вариантах осуществления один или более элементов синтаксиса, которые задают набор выходных слоев для указания одного или более слоев, которые должны выводиться с информацией уровня яруса профиля или без нее, могут сигнализироваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS APS или сообщение SEI. Обращаясь к фиг.18, элемент синтаксиса num_output_layer_sets, указывающий количество наборов выходных слоев (OLS) в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев output_layer_flag может сигнализироваться столько, сколько имеется выходных слоев.
[171] В вариантах осуществления output_layer_flag [i], равное 1, может указывать, что выводится i-й слой; vps_output_layer_flag [i], равное 0, может указывать, что i-й слой не выводится.
[172] В вариантах осуществления один или более элементов синтаксиса, которые задают информацию уровня яруса профиля для каждого набора выходных слоев, могут сигнализироваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS, APS или сообщении SEI. По-прежнему обращаясь к фиг.18, элемент синтаксиса num_profile_tile_level, указывающий количество информации уровня яруса профиля на OLS в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев набор элементов синтаксиса для информации уровня яруса профиля или индекс, указывающий конкретную информацию уровня яруса профиля среди записей в информации уровня яруса профиля, может сигнализироваться столько, сколько имеется выходных слоев.
[173] В вариантах осуществления profile_tier_level_idx [i] [j] может указывать индекс в списке синтаксических структур profile_tier_level () в VPS синтаксической структуры profile_tier_level (), которая применяется к j-му слою i-го OLS.
[174] В вариантах осуществления, как показано на фиг.20, элементы синтаксиса num_profile_tile_level и/или num_output_layer_sets могут сигнализироваться, когда количество максимальных слоев больше 1 (vps_max_layers_minus1> 0).
[175] В вариантах осуществления, как показано на фиг.20, элемент синтаксиса vps_output_layers_mode [i], указывающий режим сигнализации выходного слоя для i-го набора выходных слоев, может присутствовать в VPS.
[176] В вариантах осуществления vps_output_layers_mode [i], равное 0, может указывать, что только самый верхний слой выводится с i-м набором выходных слоев; vps_output_layer_mode [i], равное 1, может указывать, что все слои выводятся с i-м набором выходных слоев; vps_output_layer_mode [i], равное 2, может указывать, что выводимые слои - это слои с vps_output_layer_flag [i] [j], равным 1, с i-м набором выходных слоев. Могут быть зарезервированы другие значения.
[177] В вариантах осуществления output_layer_flag [i] [j] может сигнализироваться или не сигнализироваться в зависимости от значения vps_output_layers_mode [i] для i-го набора выходных слоев.
[178] В вариантах осуществления, со ссылкой на фиг. 19, флаг vps_ptl_signal_flag [i] может присутствовать для i-го набора выходных слоев. В зависимости от значения vps_ptl_signal_flag [i] информация уровня яруса профиля для i-го набора выходных слоев может сигнализироваться или не сигнализироваться.
[179] В вариантах осуществления, как показано на фиг.20, число субизображений, max_subpics_minus1, в текущем CVS может сигнализироваться в синтаксической структуре высокого уровня, например, в VPS, DPS, SPS, PPS, APS или сообщении SEI.
[180] В вариантах осуществления, как показано на фиг.21, идентификатор субизображения, sub_pic_id [i], для i-го субизображения может сигнализироваться, когда число субизображений больше 1 (max_subpics_minus1> 0).
[181] В вариантах осуществленияодин или несколько синтаксических элементов, указывающих идентификатор субизображения, принадлежащий каждому слою каждого набора выходных слоев, могут сигнализироваться в VPS. Обращаясь к фиг.20, sub_pic_id_layer [i] [j] [k], который указывает k-е субизображение, присутствующее в j-м слое i-го набора выходных слоев. С помощью этой информации декодер может определить, какое субизображение может быть декодировано и выведено для каждого слоя конкретного набора выходных слоев.
[182] В варианте осуществления заголовок изображения (PH) представляет собой синтаксическую структуру, содержащую элементы синтаксиса, которые применяются ко всем слайсам кодированного изображения. Единица изображения (PU) - это набор единиц NAL, которые связаны друг с другом согласно заданному правилу классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение. PU может содержать заголовок изображения (PH) и один или более единиц NAL VCL, составляющих кодированное изображение.
[183] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным 0, или предоставлен через внешние средства.
[184] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с TemporalId, равным 0, в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.
[185] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.
[186] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS или предоставлены через внешние средства.
[187] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0 и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.
[188] В том же или другом варианте осуществления pps_seq_parameter_set_id может указывать значение sps_seq_parameter_set_id для SPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в кодированной послойной видеопоследовательности (CLVS).
[189] В том же или другом варианте осуществления все единицы NAL SPS с конкретным значением sps_seq_parameter_set_id в CVS могут иметь одинаковое содержимое.
[190] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL SPS могут совместно использовать одно и то же пространство значений sps_seq_parameter_set_id.
[191] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL SPS может быть равно наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS.
[192] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более PPS с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.
[193] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.
[194] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.
[195] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[196] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), включенный по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[197] В том же или другом варианте осуществления ph_pic_parameter_set_id в PH может указывать значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[198] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.
[199] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.
[200] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.
[201] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.
[202] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.
[203] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.
[204] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[205] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), включенный по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[206] В том же или другом варианте осуществления ph_pic_parameter_set_id в PH может указывать значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[207] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.
[208] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.
[209] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.
[210] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.
[211] Когда изображения кодируются в битовый поток, который включает в себя один или несколько слоев с разными разрешениями, каждая кодированная видеопоследовательность слоя может использовать передискретизацию опорного изображения, когда опорное изображение может иметь разрешение, отличное от текущего изображения. Желательно указать элементы синтаксиса, которые указывают передискретизацию опорного изображения для пространственной масштабируемости или адаптивных изменений разрешения изображения (ARC).
[212] Как показано на фиг. 21, выходной слой может указывать слой набора выходных слоев, который является выходным. Набор выходных слоев (OLS) может указывать набор слоев, содержащий указанный набор слоев, где один или более слоев в наборе слоев указаны как выходные слои. Индекс слоя набора выходных слоев (OLS) - это индекс слоя в OLS к списку слоев в OLS.
[213] Субслой может указывать на временный масштабируемый слоей временного масштабируемого битового потока, включающего единицы NAL VCL с конкретным значением переменной TemporalId и связанных единиц NAL, не относящихся к VCL. Представление субслоя может указывать субмножество битового потока, который включает в себя единицы NAL конкретного субслоя и нижних субслоев.
[214] RBSP VPS может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с TemporalId, равным 0, или предоставлен через внешние средства. Все единицы NAL VPS с определенным значением vps_video_parameter_set_id в CVS могут иметь одинаковое содержимое.
[215] Как показано на фиг. 22, в вариантах осуществления vps_video_parameter_set_id предоставляет идентификатор VPS для ссылки другими элементами синтаксиса. Значение vps_video_parameter_set_id может быть больше 0.
[216] В вариантах осуществления значение vps_max_layers_ minus1 плюс 1 может указывает максимально допустимое количество слоев в каждом CVS, ссылающемся на VPS.
[217] Значение vps_max_sublayers_ minus1 plus 1 может указывать максимальное количество временных субслоев, которые могут присутствовать в слое в каждом CVS, ссылающемся на VPS. Значение vps_max_sublayers_minus1 может находиться в диапазоне от 0 до 6 включительно.
[218] В вариантах осуществления значение vps_all_layers_same_num_sublayers_flag , равное 1, может указывать, что количество временных субслоев одинаково для всех слоев в каждом CVS, ссылающемся на VPS. Значение vps_all_layers_same_num_sublayers_flag, равное 0, может указывать, что слои в каждом CVS, ссылающеся на VPS, могут иметь или не иметь одинаковое количество временных субслоев. При отсутствии, значение vps_all_layers_same_num_sublayers_flag может быть выведено равным 1.
[219] В вариантах осуществления vps_all_independent_layers_flag, равный 1, может указывать, что все слои в CVS независимо кодируются без использования межслойного предсказания.
[220] В вариантах осуществления vps_all_independent_layers_flag, равный 0, может указывать, что один или несколько слоев в CVS могут использовать межслойное предсказание. При отсутствии, значение vps_all_independent_layers_flag может быть выведено равным 1.
[221] В вариантах осуществления vps_layer_id [i] может указывать значение nuh_layer_id i-го слоя. Для любых двух неотрицательных целочисленных значений m и n, когда m меньше n, значение vps_layer_id [m] может быть меньше vps_layer_id [n].
[222] В вариантах осуществления значение vps_independent_layer_flag [i] , равное 1, может указывать, что слой с индексом i не использует межслойное предсказание. Значение vps_independent_layer_flag [i], равное 0, может указывать, что слой с индексом i может использовать межслойное предсказание, а элементы синтаксиса vps_direct_ref_layer_flag [i] [j] для j в диапазоне от 0 до i - 1 включительно присутствуют в VPS. При отсутствии, значение vps_independent_layer_flag [i] может выведено равным 1.
[223] В вариантах осуществления значение vps_direct_ref_layer_flag [i] [j], равное 0, может указывать, что слой с индексом j не является прямым опорным слоем для слоя с индексом i. Значение vps_direct_ref_layer_flag [i] [j], равное 1, может указывать, что слой с индексом j является прямым опорным слоем для слоя с индексом i. Когда vps_direct_ref_layer_flag [i] [j] отсутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, оно может быть выведено равным 0. Когда vps_independent_layer_flag [i] равно 0, может быть по меньшей мере одно значение j в диапазоне от 0 до i - 1 включительно, так что значение vps_direct_ref_layer_flag [i] [j] равно 1.
[224] Переменные NumDirectRefLayers [i], DirectRefLayerIdx [i] [d], NumRefLayers [i], RefLayerIdx [i] [r] и LayerUsedAsRefLayerFlag [j] могут быть выведены следующим образом:
[225] Переменная GeneralLayerIdx [i], определяющая индекс слоя для слоя с nuh_layer_id, равным vps_layer_id [i], может быть получена следующим образом:
[226] Для любых двух разных значений i и j, оба в диапазоне от 0 до vps_max_layers_minus1 включительно, когда dependencyFlag [i] [j] равно 1, может быть требование соответствия битового потока, чтобы значения chroma_format_idc и bit_depth_minus8, которые применяются к i-му слою, могли быть равными значениям chroma_format_idc и bit_depth_minus8, соответственно, которые применяются к j-му слою.
[227] Значение max_tid_ref_present_flag[i], равное 1, может указывать, что присутствует элемент синтаксиса max_tid_il_ref_pics_plus1 [i]. Значение max_tid_ref_present_flag[i], равное 0, может указывать, что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] отсутствует.
[228] Значение max_tid_il_ref_pics_plus1[i], равное 0, может указывать, что межслойное предсказание не используется изображениями не-IRAP i-го слоя. Значение max_tid_il_ref_pics_plus1 [i] больше 0 может указывать, что для декодирования изображений i-го слоя ни одно изображение с TemporalId, превышающим max_tid_il_ref_pics_plus1 [i] - 1, не используется в качестве ILRP. При отсутствии, значение max_tid_il_ref_pics_plus1 [i] может быть выведено равным 7.
[229] Значение each_layer_is_an_ols_flag, равное 1, может указывать, что каждый OLS содержит только один слой, а каждый слой сам по себе в CVS, относящийся к VPS, является OLS с единственным включенным слоем, который является единственным выходным слоем. Значение each_layer_is_an_ols_flag, равное 0, означает, что OLS может содержать более одного слоя. Если vps_max_layers_minus1 равно 0, значение each_layer_is_an_ols_flag может быть выведено равным 1. В противном случае, когда vps_all_independent_layers_flag равно 0, значение each_layer_is_an_ols_flag может быть выведено равным 0.
[230] Значение ols_mode_idc, равное 0, может указывать, что общее количество OLS, указанных VPS, равно vps_max_layers_minus1 + 1, причем i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводится только слой самого высокого уровня в OLS.
[231] Значение ols_mode_idc , равное 1, может указывать, что общее количество OLS, указанных VPS, равно vps_max_layers_minus1 + 1, причем i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводятся все слои в OLS.
[232] Значение ols_mode_idc, равное 2, может указывать, что общее количество OLS, указанных VPS, явно сигнализировано, и для каждого OLS выходные слои явно сигнализированы, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев OLS.
[233] Значение ols_mode_idc может находиться в диапазоне от 0 до 2 включительно. Значение 3 ols_mode_idc зарезервировано для будущего использования МСЭ-Т | ИСО/МЭК.
[234] Когда vps_all_independent_layers_flag равно 1 и each_layer_is_an_ols_flag равно 0, значение ols_mode_idc может быть выведено равным 2.
[235] num_output_layer_sets_minus1 плюс 1 может указывать общее количество OLS, указанных VPS, когда ols_mode_idc равно 2.
[236] Переменная TotalNumOlss, указывающая общее количество OLS, указанных VPS, может быть выведена следующим образом:
[237] ols_output_layer_flag [i] [j], равный 1, может указывать, что слой с nuh_layer_id, равным vps_layer_id [j], является выходным слоем i-го OLS, когда ols_mode_idc равен 2. ols_output_layer_flag [i] [j] равен 0 может указать, что слой с nuh_layer_id, равным vps_layer_id [j], не является выходным слоем i-го OLS, когда ols_mode_idc равно 2.
[238] Переменная NumOutputLayersInOls [i], указывающая количество выходных слоев в i-м OLS, переменная NumSubLayersInLayerInOLS [i] [j], указывающая количество субслоев в j-м слое в i-м OLS, переменная OutputLayerIdInOls [i] [j], определяющая значение nuh_layer_id j-го выходного слоя в i-м OLS, и переменную LayerUsedAsOutputLayerFlag [k], определяющую, используется ли k-й слой в качестве выходного слоя по меньшей мере в одном OLS, может быть получено следующим образом:
[239] Для каждого значения i в диапазоне от 0 до vps_max_layers_minus1 включительно значения LayerUsedAsRefLayerFlag [i] и LayerUsedAsOutputLayerFlag [i] не могут быть равными 0 одновременно. Другими словами, может не быть слоя, который не является ни выходным слоем по меньшей мере одного OLS, ни прямым опорным слоем любого другого слоя.
[240] Для каждой OLS может быть по меньшей мере один слой, который является выходным слоем. Другими словами, для любого значения i в диапазоне от 0 до TotalNumOlss - 1 включительно значение NumOutputLayersInOls [i] может быть больше или равно 1.
[241] Можно получить переменную NumLayersInOls [i], определяющую количество слоев в i-м OLS, и переменную LayerIdInOls [i] [j], определяющую значение nuh_layer_id j-го слоя в i-м OLS следующим образом:
[242] Переменная OlsLayerIdx [i] [j], определяющая индекс слоя OLS для слоя с nuh_layer_id, равным LayerIdInOls [i] [j], получается следующим образом:
[243] Самый нижний слой в каждой OLS может быть независимым слоем. Другими словами, для каждого i в диапазоне от 0 до TotalNumOlss - 1 включительно значение vps_independent_layer_flag [GeneralLayerIdx [LayerIdInOls [i] [0]]] может быть равно 1.
[244] Каждый слой может быть включен по крайней мере в один OLS, указанный VPS. Другими словами, для каждого слоя с конкретным значением nuh_layer_id nuhLayerId, равным одному из vps_layer_id [k] для k в диапазоне от 0 до vps_max_layers_minus1 включительно, может быть по крайней мере одна пара значений i и j, где i находится в диапазоне от 0 до TotalNumOlss - 1 включительно, а j находится в диапазоне NumLayersInOls [i] - 1 включительно, так что значение LayerIdInOls [i] [j] равно nuhLayerId.
[245] В вариантах осуществления, для текущего изображения CurrPic процесс декодирования может выполняться следующим образом:
- PictureOutputFlag может быть установлен следующим образом:
- Если выполняется одно из следующих условий, PictureOutputFlag может быть устанавлен равным 0:
- текущее изображение является RASL изображением, и значение NoOutputBeforeRecoveryFlag связанного изображения IRAP равно 1.
- gdr_enabled_flag равен 1, а текущее изображение - это изображение GDR с NoOutputBeforeRecoveryFlag, равным 1.
- элемент синтаксиса gdr_enabled_flag равен 1, текущее изображение связано с изображением GDR с NoOutputBeforeRecoveryFlag, равным 1, и PicOrderCntVal текущего изображения меньше RpPicOrderCntVal связанного изображения GDR;
- sps_video_parameter_set_id больше 0, ols_mode_idc равно 0, и текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям:
- PicA имеет PictureOutputFlag, равный 1.
- PicA nuh_layer_id имеет nuhLid больше, чем у текущего изображения.
- PicA принадлежит к выходному слою OLS (т.е. OutputLayerIdInOls [TargetOlsIdx] [0] равен nuhLid).
- sps_video_parameter_set_id больше 0, ols_mode_idc равно 2, а ols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx [nuh_layer_id]] равно 0.
- В противном случае PictureOutputFlag может быть установлено равным pic_output_flag.
[246] После того, как все срезы текущего изображения были декодированы, текущее декодированное изображение помечено как «используется для краткосрочной ссылки», и каждая запись ILRP в RefPicList [0] или RefPicList [1] помечена как «используется для краткосрочной справки».
[247] В вариантах осуществления, когда каждый слой является набором выходных слоев, PictureOutputFlag может быть установлен равным pic_output_flag, независимо от значения ols_mode_idc.
[248] В вариантах осуществелния, PictureOutputFlag устанавливается равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равен 0, ols_mode_idc равен 0, а текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям: PicA имеет PictureOutputFlag, равный 1, PicA имеет nuh_layer_id nuhLid больше, чем у текущего изображения, и PicA принадлежит к выходному слою OLS (то есть OutputLayerIdInOls [TargetOlsIdx] [0] равно nuhLid ).
[249] В вариантах осуществления PictureOutputFlag может быть установлен равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равен 0, ols_mode_idc равен 2, а ols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx] [GeneralLayerIdx] равен 0.
[250] Передискретизация опорного изображения может разрешить адаптивное изменение разрешения в кодированной (многослойной) видеопоследовательности и пространственную масштабируемость по слоям, которые имеют зависимость между слоями, принадлежащими одному и тому же набору выходных слоев.
[251] В вариантах осуществления, показанных на фиг. 23, sps_ref_pic_resampling_enabled_flag сигнализируется в наборе параметров (например, наборе параметров последовательности). Флаг sps_ref_pic_resampling_enabled_flag может указывать, используется ли передискретизация опорного изображения для адаптивного изменения разрешения в кодированной видеопоследовательности, ссылающейся на SPS, или пространственной масштабируемости по слоям. Флаг sps_ref_pic_resampling_enabled_flag, равный 1, может указывать, что передискретизация опорного изображения разрешена, и один или несколько слайсов изображений в CLVS относятся к опорному изображению с другим пространственным разрешением в активной записи списка опорных изображений. Флаг sps_ref_pic_resampling_enabled_flag, равный 0, может указывать, что передискретизация опорного изображения запрещена и ни один слайс изображений в CLVS не ссылается на опорное изображение с другим пространственным разрешением в активной записи списка опорных изображений.
[252] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1, для текущего изображения опорное изображение с другим пространственным разрешением либо принадлежит тому же самому слою, либо другому слою, чем слой, содержащий текущее изображение.
[253] В другом варианте осуществления sps_ref_pic_resampling_enabled_flag, равный 1, может указывать, что передискретизация опорного изображения разрешена, и один или несколько слайсов изображений в CLVS ссылаются на опорное изображение с другим пространственным разрешением или другим окном масштабирования в активной записи списка опорных изображений. При этом sps_ref_pic_resampling_enabled_flag, равный 0, может указывать, что передискретизация опорного изображения запрещена и ни один слайс изображений в CLVS не ссылается на к опорное изображение с другим пространственным разрешением или другим окном масштабирования в активной записи списка опорных изображений.
[254] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1, для текущего изображения опорное изображение с другим пространственным разрешением или другим окном масштабирования либо принадлежит тому же самому слою, либо другому слою, чем слой, содержащий текущее изображение.
[255] В вариантах осуществления sps_res_change_in_clvs_allowed_flag может указывать, изменяется ли разрешение изображения в пределах CLVS или CVS или нет. При этом sps_res_change_in_clvs_allowed_flag, равный 1, может указывать, что пространственное разрешение изображения может изменяться в пределах CLVS со ссылкой на SPS. При этом sps_res_change_in_clvs_allowed_flag, равный 0, может указывать, что пространственное разрешение изображения не изменяется в рамках любого CLVS, ссылающегося на SPS. Если отсутствует, значение sps_res_change_in_clvs_allowed_flag может быть выведено равным 0.
[256] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1 и sps_res_change_in_clvs_allowed_flag равно 0, передискретизация опорного изображения может использоваться только для пространственной масштабируемости, а не для адаптивного изменения разрешения в CLVS.
[257] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1 и sps_res_change_in_clvs_allowed_flag равно 1, передискретизация опорного изображения может использоваться как для пространственной масштабируемости, так и для адаптивного изменения разрешения в CLVS.
[258] Когда sps_ref_pic_resampling_enabled_flag равно 1, sps_res_change_in_clvs_allowed_flag равно 0 и sps_video_parameter_set_id равно 0, pps_scaling_window_explicit_signalling_flag может быть равно 1. Это подразумевает, что параметры окна масштабирования должны явно сигнализироваться, вместо того, чтобы выводить значения из параметров окна согласованности, когда разрешение изображения является постоянным в пределах CLVS или CVS и используется передискретизация опорного изображения.
[259] В вариантах осуществления sps_virtual_boundaries_present_flag сигнализируется в SPS, как показано на фиг. 23. Флаг sps_virtual_boundaries_present_flag может указывать, сигнализируется ли информация о виртуальной границе в SPS или нет.
[260] В вариантах осуществления, sps_virtual_boundaries_present_flag сигнализируется при определенных обстоятельствах только тогда, когда sps_res_change_in_clvs_allowed_flag равен 0, потому что, когда используется передискретизация опорного изображения, информация о виртуальной границе может не сигнализироваться в SPS.
[261] В вариантах осуществления sps_virtual_boundaries_present_flag, равный 1, может указывать, что информация о виртуальных границах сигнализируется в SPS. При этом sps_virtual_boundaries_present_flag, равный 0, может указывать, что информация о виртуальных границах не сигнализируется в SPS. Когда в SPS сигнализируется одна или несколько виртуальных границ, операции внутрипетлевой фильтрации через виртуальные границы отключаются на изображениях, ссылающихся на SPS. Операции внутрипетлевой фильтрации включают в себя фильтр удаления блочности, адаптивный фильтр смещения отсчета и операции адаптивного петлевого фильтра. Если отсутствует, значение sps_virtual_boundaries_present_flag выводится равным 0.
[262] В вариантах осуществления sps_subpic_info_present_flag сигнализируется в SPS, как показано на фиг. 23. Флаг sps_subpic_info_present_flag может указывать, сигнализируется ли информация о разделении субизображения в SPS или нет.
[263] В вариантах осуществления, sps_subpic_info_present_flag условно сигнализируется только тогда, когда sps_res_change_in_clvs_allowed_flag равен 0, потому что, когда используется передискретизация опорного изображения, информация о разделении субизображения может не сигнализироваться в SPS.
[264] В вариантах осуществления sps_subpic_info_present_flag, равный 1, может указывать, что информация субкадра присутствует для CLVS, и в каждом изображении CLVS может быть одно или несколько субкадров. sps_subpic_info_present_flag, равный 0, может указывать, что информация о субизображении отсутствует для CLVS и что в каждом изображении CLVS есть только одно субизображение. Если отсутствует, значение sps_subpic_info_present_flag может быть выведено равным 0.
[265] В вариантах осуществления, pps_res_change_in_clvs_allowed_flag может сигнализироваться в PPS, как показано на фиг. 24. Значение pps_res_change_in_clvs_allowed_flag в PPS может быть равно значению sps_res_change_in_clvs_allowed_flag в SPS, на который ссылается PPS.
[266] В том же варианте осуществления информация о ширине и высоте изображения может передаваться в PPS, только когда значение pps_res_change_in_clvs_allowed_flag равно 1. Когда pps_res_change_in_clvs_allowed_flag равно 0, выводится, что значения ширины и высоты изображения равны значениям максимальной ширины и высоты изображения, передаваемым в SPS.
[267] В вариантах осуществления pps_pic_width_in_luma_samples может указывать ширину каждого декодированного изображения со ссылкой на PPS в единицах отсчетов яркости. При этом pps_pic_width_in_luma_samples не должно быть равно 0, должно быть целым числом, кратным Max (8, MinCbSizeY), и должно быть меньше или равно sps_pic_width_max_in_luma_samples. Если отсутствует, значение pps_pic_width_in_luma_samples может быть выведено равным sps_pic_width_max_in_luma_samples. Когда sps_ref_wraparound_enabled_flag равно 1, значение (CtbSizeY / MinCbSizeY + 1) должно быть меньше или равно значению (pps_pic_width_in_luma_samples / MinCbSizeY - 1). При этом pps_pic_height_in_luma_samples может указывать высоту каждого декодированного изображения со ссылкой на PPS в единицах отсчетов яркости. При эжтом pps_pic_height_in_luma_samples не должно быть равно 0, должно быть целым числом, кратным Max (8, MinCbSizeY), и должно быть меньше или равно sps_pic_height_max_in_luma_samples. Если отсутствует, значение pps_pic_height_in_luma_samples может быть выведено равным sps_pic_height_max_in_luma_samples.
[268] На фиг. 25A-25C показаны блок-схемы, иллюстрирующие примерные процессы 2500A, 2500B и 2500C для декодирования кодированного битового потока видео. В некоторых реализациях один или более блоков процессов с фиг. 25A-25C могут выполняться декодером 210. В некоторых реализациях один или более блоков процессов с фиг. 25A-25C могут выполняться другим устройством или группой устройств, отдельной от декодера 210 или включающего в себя его, например кодером 203.
[269] Как показано на фиг. 25A, процесс 2500A может включать в себя получение из кодированного битового потока видео первого флага, указывающего, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS) (блок 2511). В вариантах осуществления первый флаг может соответствовать sps_ref_pic_resampling_enabled_flag.
[270] Как дополнительно показано на фиг. 25A, процесс 2500A может включать в себя определение значения второго флага, указывающего, изменяется ли разрешение изображения в CVS (блок 2512). В вариантах осуществления первый флаг может соответствовать sps_res_change_in_clvs_allowed_flag.
[271] Как дополнительно показано на фиг. 25А, процесс 2500А может включать определение, указывает ли значение второго флага, изменяется ли разрешение изображения в CVS (блок 2513).
[272] Как дополнительно показано на фиг. 25A, процесс 2500A может включать в себя, на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS (ДА в блоке 2515), декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC) (блок 2514).
[273] Как дополнительно показано на фиг. 25A, процесс 2500A может включать в себя, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS (НЕТ в блоке 2513), декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC (блок 2515).
[274] Как показано на фиг. 25В, процесс 2500В может включать определение, указывает ли значение второго флага, изменяется ли разрешение изображения в CVS (блок 2523). В вариантах осуществления блок 2523 процесса 2500В может соответствовать блоку 2513 процесса 2500A.
[275] Как дополнительно показано на фиг. 25B, процесс 2500B может включать, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS (НЕТ в блоке 2523), получение третьего флага, указывающего, сигнализируется ли информация о виртуальной границе (блок 2525). В вариантах осуществления третий флаг может соответствовать sps_virtual_boundaries_present_flag.
[276] Как дополнительно показано на фиг. 25B, процесс 2500B может включать: на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS (ДА в блоке 2523), третий флаг может не сигнализироваться (блок 2524).
[277] Как показано на фиг. 25C, процесс 2500C может включать определение, указывает ли значение второго флага, изменяется ли разрешение изображения в CVS (блок 2533). В вариантах осуществления блок 2533 процесса 2500C может соответствовать блоку 2513 процесса 2500A.
[278] Как дополнительно показано на фиг. 25C, процесс 2500C может включать, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS (НЕТ в блоке 2533), получение четвертого флага, указывающего, сигнализируется ли информация о разделении субизображения (блок 2535). В вариантах осуществления четвертый флаг может соответствовать sps_subpic_info_present_flag.
[279] Как дополнительно показано на фиг. 25C, процесс 2500C может включать: на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS (ДА в блоке 2533), четвертый флаг может не сигнализироваться (блок 2534).
[280] В вариантах осуществления один или несколько блоков процессов 2500A, 2500B и 2500C могут быть объединены в любом порядке. Кроме того, хотя на фиг. 25A-25C показаны примерные блоки процессов 2500A, 2500B и 2500C, в некоторых реализациях процессы 2500A, 2500B и 2500C могут включать в себя дополнительные блоки, меньшее количество блоков, различные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 25A-25C. Дополнительно или альтернативно, два или более блока процессов 2500A, 2500B и 2500C могут выполняться параллельно.
[281] Кроме того, предложенные способы могут быть реализованы схемами обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе, для осуществления одного или более из предложенных способов.
[282] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг.26 показана компьютерная система 2600, подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.
[283] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т. п., центральными процессорами компьютера (CPU), графическими процессорами (GPU) и т. п.
[284] Инструкции могут исполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т. п.
[285] Компоненты, показанные на фиг.26 для компьютерной системы 2600, являются примерными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы 2600.
[286] Компьютерная система 2600 может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[287] Устройства ввода с человеческо-машинным интерфейсом могут включать в себя одно или более из (только одно из каждого изображенного): клавиатура 2601, мышь 2602, трекпад 2603, сенсорный экран 2610 и связанный графический адаптер 2650, управляющая перчатка, джойстик 2605, микрофон 2606, сканер 2607, камера 2608.
[288] Компьютерная система 2600 также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 2610, управляющей перчатки или джойстика 2605, но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода, устройства вывода звука (например: динамики 2609, наушники (не изображены)), устройства вывода изображения (например, экраны 2610, включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).
[289] Компьютерная система (2600) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (2620) с CD/DVD или подобными носителями (2621), флэш-накопитель (2622), съемный жесткий диск или твердотельный накопитель (2623), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т. п.
[290] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.
[291] Компьютерная система (2600) также может включать в себя интерфейс к одной или более коммуникационным сетям (955). Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т. д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные вычислительные сети (LAN), сотовые сети, включая глобальные системы мобильной связи (GSM), третьего поколения (3G), четвертого поколения (4G), пятого поколения (5G), сети стандарта "Долгосрочное развитие" (LTE) и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное широковещательное телевидение, автомобильные и промышленные, включая CAN-шину, и так далее. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры (954), которые подключены к определенным портам данных общего назначения или периферийным шинам (949) (например, к портам универсальной последовательной шины (USB) компьютерной системы 2600); другие обычно интегрированы в ядро компьютерной системы 2600 путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Например, сеть 2655 может быть подключена к периферийной шине 2649 с использованием сетевого интерфейса 2654. Используя любую из этих сетей, компьютерная система 2600 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов (954) могут использоваться определенные протоколы и стеки протоколов, как описано выше.
[292] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру 2640 компьютерной системы 2600.
[293] Ядро (2640) может включать в себя один или несколько центральных процессоров (CPU) (2641), графических процессоров (GPU) (2642), специализированных программируемых процессоров в виде программируемых вентильных областей (FPGA) (2643), аппаратные ускорители (2644) для определенных задач, и т. д. Эти устройства, наряду с постоянным запоминающим устройством (ROM) 2645, оперативным запоминающим устройством (RAM) 2646, внутренним ЗУ большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD) и т. п. 2647, могут быть подключены через системную шину 2648. В некоторых компьютерных системах системная шина 2648 может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т. п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 2648 ядра, либо через периферийную шину 2649. Архитектура периферийной шины включает соединение периферийных компонентов (PCI), USB и т.п.
[294] CPU 2641, GPU 2642, FGPA 2643 и ускорители 2644 могут выполнять определенные инструкции, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM 2645 или RAM 2646. Переходные данные также могут храниться в RAM 2646, тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости 2647. Быстрое хранение и извлечение на любое из запоминающих устройств могут быть доступны посредством использования кэш-памяти, которая может быть тесно связана с одним или более CPU 2641, GPU 2642, ЗУ 2647 большой емкости, ROM 2645, RAM 2646 и т. п.
[295] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[296] В качестве примера, но не ограничения, компьютерная система, имеющая архитектуру (2600) и, в частности, ядро (2640), может обеспечивать функциональность за счет процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т. п.), исполняющего программное обеспечение, воплощенное на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 2640, которые имеют невременную природу, такими как внутреннее ЗУ 2647 большой емкости или ROM 2645. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 2640. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (2640) и, в частности, процессоры в нем (включая ЦП, ГП, ППВМ и т. п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (2646) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 2644), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (IC)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее изобретение включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.
[297] Хотя это описание раскрывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем изобретения. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в рамках его сущности и объема.
Изобретение относится к средствам для кодирования изображений. Технический результат заключается в повышении эффективности кодирования изображений. Получают из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS). Определяют значение второго флага, указывающего, изменяется ли разрешение изображения в CVS. На основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодируют CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC). На основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодируют CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC. На основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, пятый флаг, включенный в набор параметров изображения, ссылающийся на SPS, указывает, что разрешение изображения не изменяется в CVS. 3 н. и 12 з.п. ф-лы, 34 ил., 1 табл.
1. Способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, содержащий:
получение из кодированного битового потока видео первого флага, указывающего, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS);
определение значения второго флага, указывающего, изменяется ли разрешение изображения в CVS;
на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и
на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC,
причем первый флаг и второй флаг сигнализируют в наборе параметров последовательности (SPS); и
при этом на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения не изменяется в CVS,
причем на основе пятого флага, указывающего, что разрешение изображения не изменяется в CVS, явно не сигнализируется по меньшей мере одно из ширины и высоты изображения, соответствующего PPS, и
при этом по меньшей мере одно из ширины и высоты выводят равным по меньшей мере одному из максимальной ширины и максимальной высоты, сигнализируемых в SPS.
2. Способ по п. 1, в котором CVS является кодированной послойной видеопоследовательностью (CLVS).
3. Способ по п. 1, в котором второй флаг не сигнализируют в кодированном битовом потоке видео, и
при этом значение второго флага выводят для указания того, что разрешение изображения не изменяется в CVS.
4. Способ по п. 1, дополнительно содержащий:
на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получение третьего флага, указывающего, сигнализируется ли информация о виртуальной границе.
5. Способ по п. 1, дополнительно содержащий:
на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получение четвертого флага, указывающего, сигнализируется ли информация о разделении субизображения.
6. Способ по п. 1, в котором на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, не сигнализируются параметры окна масштабирования.
7. Способ по п. 1, в котором на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения изменяется в CVS, и
при этом на основе пятого флага, указывающего, что разрешение изображения изменяется в CVS, явно сигнализируют по меньшей мере одно из ширины и высоты изображения, соответствующего PPS.
8. Устройство для декодирования кодированного битового потока видео, содержащее:
по меньшей мере один элемент памяти, конфигурированный для хранения программного кода; и
по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя:
первый код получения, конфигурированный предписывать по меньшей мере одному процессору получать из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS);
код определения, конфигурированный предписывать по меньшей мере одному процессору определять значение второго флага, указывающего, изменяется ли разрешение изображения в CVS;
первый код декодирования, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и
второй код декодирования, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC;
причем первый флаг и второй флаг сигнализируются в наборе параметров последовательности (SPS),
причем на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения не изменяется в CVS,
причем на основе пятого флага, указывающего, что разрешение изображения не изменяется в CVS, явно не сигнализируется по меньшей мере одно из ширины и высоты изображения, соответствующего PPS, и
при этом по меньшей мере одно из ширины и высоты выводится равным по меньшей мере одному из максимальной ширины и максимальной высоты, сигнализируемых в SPS.
9. Устройство по п. 8, в котором CVS является кодированной послойной видеопоследовательностью (CLVS).
10. Устройство по п. 8, в котором второй флаг не сигнализируется в кодированном битовом потоке видео, и
при этом значение второго флага выводится для указания того, что разрешение изображения не изменяется в CVS.
11. Устройство по п. 8, в котором программный код дополнительно включает:
второй код получения, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получать третий флаг, указывающий, сигнализируется ли информация о виртуальной границе.
12. Устройство по п. 8, в котором программный код дополнительно включает:
третий код получения, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получать четвертый флаг, указывающий, сигнализируется ли информация о разделении субизображения.
13. Устройство по п. 8, в котором на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, не сигнализируются параметры окна масштабирования.
14. Устройство по п. 8, в котором на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения изменяется в CVS, и
при этом на основе пятого флага, указывающего, что разрешение изображения изменяется в CVS, явно сигнализируется по меньшей мере одно из ширины и высоты изображения, соответствующего PPS.
15. Невременный машиночитаемый носитель, хранящий инструкции, содержащие: одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования битового потока видео предписывают одному или более процессорам:
исполнять этапы способа по любому из пп. 1-7.
Byeongdoo Choi et al., "AHG8: Signaling and Filtering for Reference Picture Resampling", JVET-O0332, 15th Meeting, Gothenburg, July 2019 | |||
Stephan Wenger et al., "[AHG19] On Signaling of Adaptive Resolution Change", JVET-N0052, 14th Meeting, Geneva, March 2019 | |||
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Авторы
Даты
2024-01-09—Публикация
2021-04-12—Подача