Способ сигнализации набора выходных уровней с субизображением
METHOD FOR SIGNALING A SET OF OUTPUT LEVELS WITH A SUBIMAGE

ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
[0001] Настоящее изобретение испрашивает приоритет предварительной заявки США №62/904,338, поданной 23 сентября 2019 г. и обычной заявки США №17/024,288, поданной 17 сентября 2020 г., полный объем которых включен в данный документ.
УРОВЕНЬ ТЕХНИКИ
1. Область техники, к которой относится изобретение
[0002] Представленное в данной заявке изобретение относится к кодированию и декодированию видео, а точнее к сигнализации профиля/яруса/уровня информации для поддержки временной/пространственной масштабируемости посредством деления на субизображения.
2. Описание предшествующего уровня техники
[0003] Кодирование и декодирование видеосигнала посредством предсказания между изображениями с компенсацией движения применяют уже не один десяток лет.Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920 х 1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0004] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. При достижимой степени сжатия более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.
[0005] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование. Некоторые из этих методов будут представлены ниже.
[0006] Традиционно кодеры и декодеры видео работали с заданным размером изображения, который в большинстве случаев определялся и оставался постоянной величиной для кодированной видеопоследовательности (CVS), группы изображений (GOP) или схожей временной рамки с группой изображений. Например, в MPEG-2 системные решения меняют горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов как активность сцены, но только при изображениях I, то есть, как правило, для группы изображений. Применяют передискретизацию опорных изображений для разных разрешений в кодированной видеопоследовательности, например в ITU-T Rec. Н.263, приложение Р. При этом размер изображения не меняется, пересчитываются только опорные изображения, что потенциально сказывается только на элементах применяемого изображения (в случае снижения разрешения) или только на элементах обрабатываемой сцены (при повышении разрешения). Далее Н.263, приложение Q позволяет делать передискретизацию индивидуального макроблока с увеличением или сокращением вдвое (по каждому измерению). Опять же размер изображения остается неизменным. Размер макроблока фиксирован в Н.263, и, следовательно, его не нужно сигнализировать.
[0007] Изменения размера предсказанных изображений стали общей тенденцией в современном видеокодировании. Например, VP9 позволяет передискретизировать опорное изображение и менять разрешение всего изображения. Аналогичные предложения поступали для VVC (например, в работе Гендри и соавторов "Адаптивное изменение разрешения (ARC) в VVC", документ группы Joint Video Team JVET-M0135-v1, Jan 9-19, 2019, включенный в данный документ в полном объеме) позволяют делать передискретизацию опорных изображений целиком для получения различных (более высоких или более низких) разрешений. В том документе предлагалось кодировать различные разрешения набором параметров видеопоследовательности со ссылкой на покадровые элементы синтаксиса в наборе параметров изображений.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Изобретение включает способ и устройство с памятью для хранения кода компьютерной программы и процессором(ами) для доступа к коду компьютерной программы и для работы в соответствии с кодом компьютерной программы. Код компьютерной программы представлен кодом получения, настроенным на получение видеоданных по меньшей мере одним процессором, кодом синтаксического анализа строковых данных для синтаксического анализа синтаксиса набора видеопараметров (VPS) видеоданных по меньшей мере одним процессором, кодом определения, настроенным на определение по меньшей мере одним процессором, указывает ли значение синтаксического элемента синтаксиса VPS на значение порядкового номера изображения (РОС) блока доступа (AU) видеоданных, и кодом установки для назначения по меньшей мере одного из множества изображений, слайсов и тайлов видеоданных блоку доступа на основании значения элемента синтаксиса.
[0009] Согласно иллюстративным вариантам осуществления, значение элемента синтаксиса указывает на количество множества последовательных изображений, слайсов и тайлов видеоданных, подлежащих назначению блоку доступа.
[0010] Согласно иллюстративным вариантам осуществления, синтаксис VPS находится в VPS видеоданных и определяет количество по меньшей мере одного типа дополнительных уровней видеоданных.
[0011] Согласно иллюстративным вариантам осуществления, код определения конфигурирован так, чтобы заставлять по меньшей мере один процессор определять, включает ли VPS синтаксис флаг, указывающий, увеличивается ли значение РОС равномерно на AU.
[0012] Согласно иллюстративным вариантам осуществления, код вычисления конфигурирован так, чтобы заставлять по меньшей мере один процессор, в ответ на определение того, что VPS включает флаг, указывающий на неравномерное увеличение значения РОС на блок доступа, вычислять номер блока доступа (AUC), исходя из значения РОС и значения уровня изображения видеоданных.
[0013] Согласно иллюстративным вариантам осуществления, код вычисления конфигурирован так, чтобы заставлять по меньшей мере один процессор, в ответ на определение того, что VPS включает флаг, указывающий на равномерное увеличение значения РОС на блок доступа, вычислять номер блока доступа (AUC), исходя из значения РОС значения уровня последовательности видеоданных.
[0014] Согласно иллюстративным вариантам осуществления, код определения конфигурирован так, чтобы заставлять по меньшей мере один процессор определять, включает ли синтаксис VPS флаг, указывающий, разделено ли по меньшей мере одно из изображений на множество подобластей.
[0015] Согласно иллюстративным вариантам осуществления, код установки конфигурирован так, чтобы заставлять по меньшей мере один процессор, в ответ на определение того, что синтаксис VPS включает флаг, указывающий, что по меньшей мере одно из изображений не разделено на множество подобластей, устанавливать размер по меньшей мере одного входного изображения равным размеру кодированного изображения, сигнализируемому в наборе параметров последовательности (SPS) видеоданных.
[0016] Согласно иллюстративным вариантам осуществления, код определения конфигурирован так, чтобы заставлять по меньшей мере один процессор, в ответ на определение того, что синтаксис VPS включает флаг, указывающий на разделение по меньшей мере одного из изображений на множество подобластей, определять, содержит ли SPS синтаксические элементы, сигнализирующие о смещениях, соответствующих уровню видеоданных.
[0017] Согласно иллюстративным вариантам осуществления, смещения представлены смещением по ширине и высоте.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0018] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:
[0019] фиг. 1 - схематичное изображение упрощенной блок-схемы системы связи в соответствии с вариантами осуществления.
[0020] фиг. 2 - схематичное изображение упрощенной блок-схемы системы связи в соответствии с вариантами осуществления.
[0021] фиг. 3 - схематичное изображение упрощенной блок-схемы декодера в соответствии с вариантами осуществления.
[0022] фиг. 4 - схематичное изображение упрощенной блок-схемы кодера в соответствии с вариантами осуществления.
[0023] фиг. 5А - схематичное изображение опций для сигнализации параметров ARC в соответствии со связанной областью техники.
[0024] фиг. 5В - схематичное изображение опций для сигнализации параметров ARC в соответствии со связанной областью техники.
[0025] фиг. 5С - схематичное изображение опций для сигнализации параметров ARC в соответствии с вариантами осуществления.
[0026] фиг. 5D - схематичное изображение опций для сигнализации параметров ARC в соответствии с вариантами осуществления.
[0027] фиг. 5Е - схематичное изображение опций для сигнализации параметров ARC в соответствии с вариантами осуществления.
[0028] фиг. 6 - пример таблицы синтаксиса в соответствии с вариантами осуществления.
[0029] фиг. 7 - схематичное изображение компьютерной системы в соответствии с вариантами осуществления.
[0030] фиг. 8 - пример структуры предсказания для масштабируемости при адаптивном изменении разрешения.
[0031] фиг. 9 - пример таблицы синтаксиса в соответствии с вариантами осуществления.
[0032] фиг. 10 - схематичное изображение упрощенной блок-схемы анализа и декодирования цикла РОС на блок доступа и значения номера блока доступа в соответствии с вариантами осуществления.
[0033] фиг. 11 - схематичное изображение структуры битового потока видео с многоуровневыми субизображениями в соответствии с вариантами осуществления.
[0034] фиг. 12 - схематичное изображение выбранного субизображения с улучшенным разрешением в соответствии с вариантами осуществления.
[0035] фиг. 13 - блок-схема процесса декодирования и отображения для битового потока видео с многоуровневыми субизображениями в соответствии с вариантами осуществления.
[0036] фиг. 14 - схематичное изображение устройства отображения видео 360 с дополнительным уровнем субизображения в соответствии с вариантами осуществления.
[0037] фиг. 15 - пример данных компоновки субизображений, их соответствующий уровень и структура предсказания изображения в соответствии с вариантами осуществления.
[0038] фиг. 16 - пример данных компоновки субизображений, их соответствующего уровня и структуры предсказания изображения с модальностью пространственной масштабируемости локальной области в соответствии с вариантами осуществления.
[0039] фиг. 17 - пример таблицы синтаксиса для данных компоновки субизображений в соответствии с вариантами осуществления.
[0040] фиг. 18 - пример таблицы синтаксиса сообщения SEI для данных компоновки субизображений в соответствии с вариантами осуществления.
[0041] фиг. 19 - пример таблицы синтаксиса для указания выходных уровней и информации по профилю/ярусу/уровню для каждого набора выходных уровней в соответствии с вариантами осуществления.
[0042] фиг. 20 - пример таблицы синтаксиса для указания режима выходных уровней по каждому набору выходных уровней в соответствии с вариантами осуществления.
[0043] фиг. 21 - пример таблицы синтаксиса для указания текущего субизображения каждого уровня по каждому набору выходных уровней в соответствии с вариантами осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0044] Представленные ниже способы можно применять отдельно или комбинировать их в любом порядке. Варианты осуществления можно выполнять обрабатывающей схемой (например, одним или несколькими процессорами, а также одной или несколькими интегральными схемами). В одном примере один или более процессоров выполняют программу, хранящуюся на машиночитаемом носителе информации.
[0045] В последнее время стал привлекать внимание метод агрегации сжатой области или извлечения многочисленных семантически независимых элементов изображений в одном видеоизображении. В частности, например, в контексте кодирования 360° или определенных приложений видеонаблюдения многочисленные семантически независимые исходные изображения (например, шестикубовая поверхность кубической сцены в 360° или входящие изображения с камер при настройке наблюдения с нескольких камер) могут потребовать отдельных настроек адаптивного разрешения для обработки различных сцен в определенный момент времени. Другими словами, кодеры в определенный момент времени могут выбрать различные коэффициенты передискретизации для разных семантически независимых изображений, составляющих всю сцену видеонаблюдения или сцену 360°. При сборке в единое изображение, которое, в свою очередь, требует пере дискретизации опорного изображения, доступна сигнализация кодирования адаптивного разрешения для частей кодированного изображения.
[0046] На фиг. 1 показана упрощенная блок-схема системы связи (100) согласно варианту осуществления настоящего изобретения. Система (100) может включать по меньшей мере два оконечных устройства (110, 120), объединенных сетью (150). При однонаправленной передаче данных первое оконечное устройство (110) может кодировать видеоданные на месте для передачи другому оконечному устройству (120) через сеть (150). Второе оконечное устройство (120) может принимать кодированные видеоданные другого оконечного устройства через сеть (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0047] На фиг. 1 показана вторая пара оконечных устройств (130, 140) для двунаправленной передачи кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных каждое оконечное устройство (130, 140) может кодировать видеоданные, полученные на месте для передачи другому оконечному устройству через сеть (150). Каждое оконечное устройство (130, 140) может также получать кодированные видеоданные, переданные другим оконечным устройством, декодировать кодированные данные и отображать восстановленные видеоданные на локальном устройстве отображения.
[0048] На фиг. 1 оконечные устройства (110, 120, 130, 140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110, 120, 130, 140), включая, например, проводные и/или беспроводные сети связи. Сеть связи (150) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0049] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.
[0050] Система потоковой передачи может включать в себя подсистему захвата (213), которая может включать в себя источник видеосигнала (201), например, цифровую камеру, создающую, например, поток видеоизображений, не подвергнутых сжатию (202). Поток отсчетов (202), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными, может обрабатываться кодером (203), подключенным к камере (201). Кодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (204), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, могут храниться на потоковом сервере (405) для использования в будущем. Один или более клиентов потоковой передачи (206, 208) могут осуществлять доступ к потоковому серверу (205) для извлечения копий (207, 209) кодированных видеоданных (204). Клиент (206) может включать в себя видеодекодер (210), декодирующий входящую копию кодированных видеоданных (207) и создает исходящий поток видеоизображений (211), который может визуализироваться на дисплее (212) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (204, 207, 209) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-T Recommendation Н.265. Разрабатывается стандарт видеокодирования под неофициальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.
[0051] На фиг. 3 может быть изображена функциональная блок-схема видеодекодера (210), согласно варианту осуществления данного изобретения.
[0052] Приемник (310) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (210); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (315) может быть подключена между приемником (310) и энтропийным декодером / анализатором (320) (далее "анализатором"). Когда приемник (310) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (315) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер.
[0053] Видеодекодер (210) может включать в себя анализатор (320) для реконструкции символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (210), и возможно информацию для управления устройством визуализации, например, отображающим экраном (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг. 2. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным хорошо известным для профессионалов принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0054] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (315), для создания символов (321).
[0055] Для реконструкции символов (521) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты в дальнейшем не показан.
[0056] Помимо ранее упомянутых функциональных блоков, видеодекодер 210 может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.
[0057] Первым модулем является модуль масштабирования / обратного преобразования (351). Модуль масштабирования / обратного преобразования (351) принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Такой модуль может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).
[0058] В ряде случаев, выходные отсчеты блока масштабирования / обратного преобразования (351) могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем предсказания (352) внутри изображения. В ряде случаев модуль предсказания внутри изображения (352) генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера текущего (частично реконструированного) изображения (356). Агрегатор (355) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сгенерированную модулем внутреннего предсказания (352), в информацию выходных отсчетов, обеспеченную модулем масштабирования / обратного преобразования (351).
[0059] В других случаях выходные отсчеты модуля масштабирования / обратного преобразования (351) могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль предсказания с компенсацией движения (353) может осуществлять доступ к памяти опорных изображений (357) для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования / обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.
[0060] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле контурного фильтра (356). Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в битовый поток кодированного видео, и становиться доступными модулю контурного фильтра (356) в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0061] Модуль контурного фильтра (356) может выдавать поток отсчетов, который может поступать на устройство визуализации (212), а также сохраняться в памяти опорных изображений (356) для использования в будущем предсказании между изображениями.
[0062] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), текущее опорное изображение (356) может становиться частью памяти опорных изображений (357), и свежая память текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.
[0063] Видеодекодер 320 может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, согласно документу или стандарту технологии сжатия видео, в частности согласно данному профильному документу. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.
[0064] Согласно варианту осуществления, приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, уровни улучшения во времени, пространстве или отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.
[0065] На фиг. 4 может быть изображена функциональная блок-схема видеокодера (203) согласно варианту осуществления настоящего изобретения.
[0066] Видеокодер (203) может принимать отсчеты видео от источника видеосигнала (201) (который не входит в состав видеокодера), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (203).
[0067] Источник видеосигнала (201) может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (203) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником видеосигнала (201) может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником видеосигнала (203) может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.
[0068] Согласно варианту осуществления, видеокодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установка надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер (450) управляет другими функциональными модулями, как описано ниже, и функционально подключен к этим модулям. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Специалистам в данной области техники хорошо известны другие функции контроллера (450), которые могут относиться к видеокодеру (203), оптимизированному под определенную системную разработку.
[0069] Ряд видеокодеров выполнен с возможностью работать с петлей кодирования, хорошо известной специалистам в данной области техники. В качестве очень упрощенного описания, петля кодирования может включать в себя кодирующий элемент кодера (430) ("кодер источника") (отвечающий за создание символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в видеокодер (203), реконструирующий символы для создания данных отсчетов, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов поступают в память опорных изображений (434). Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) хорошо знаком специалисту в данной области техники.
[0070] "Локальный" декодер (433) может действовать таким же образом, как "удаленный" декодер (210), подробно вышеописанный со ссылкой на фиг. 3. Однако, опять же, согласно фиг. 3, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования видеодекодера (210), включающие канал (312), приемник (310), буферную память (315) и анализатор (320), не могут быть полностью реализованы в локальном декодере (433).
[0071] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.
[0072] В ходе работы исходный кодер (430) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина кодирования (432) кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного(ых) изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.
[0073] Локальный видеодекодер (433) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (430). Операции машины кодирования (432) могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти опорных изображений (434). Таким образом, видеокодер (403) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).
[0074] Предсказатель (435) может осуществлять поиски предсказания для машины кодирования (432). Таким образом, для нового изображения, подлежащего кодированию, предсказатель (435) может искать в памяти опорных изображений (634) данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов - пиксельные блоки" в целях нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученных предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти опорных изображений (434).
[0075] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0076] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь, согласно технологиям, известным специалистам в данной области техники, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.
[0077] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (445), для подготовки к передаче через канал связи (460), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, с кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0078] Контроллер (450) может управлять работой видеокодера (203). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:
[0079] Интра-изображение (1-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности как источник предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности 1-изображений и их соответствующие варианты применения и особенности.
[0080] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0081] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.
[0082] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и кодирование на поблочной основе. Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0083] Видеокодер (203) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (203) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.
[0084] Согласно варианту осуществления, передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR уровни улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.
[0085] Перед подробным описанием ряда аспектов раскрытого изобретения необходимо представить несколько терминов, которые будут упоминаться в оставшейся части данного документа.
[0086] В ряде случаев субизображение представляет собой прямоугольную компоновку отсчетов, блоков, макроблоков, единиц кодирования или схожих семантически объединенных образований, которые могут быть кодированы самостоятельно в другом разрешении. Одно или несколько субизображений могут составлять изображение. Одно или несколько кодированных субизображений могут составлять кодированное изображение. Одно или несколько кодированных субизображений могут быть собраны в изображение, и одно или несколько субизображений могут быть извлечены из изображения. В некоторых средах одно или несколько кодированных субизображений можно собрать в сжатую область без перекодирования на уровне отсчетов в кодированном изображении, и в аналогичных или других случаях одно или несколько кодированных субизображений можно извлечь из кодированного изображения в сжатой области.
[0087] Далее под адаптивным изменением разрешения (ARC, Adaptive Resolution Change) имеются ввиду механизмы изменения разрешения изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. Далее параметры ARC обозначают контрольную информацию, которая необходима для адаптивного изменения разрешения и которая может включать, например, параметры фильтров, коэффициенты масштабирования, разрешения выведенных и/или опорных изображений, различные контрольные флаги и т.д.
[0088] Представленное выше описание сосредоточено на кодировании и декодировании единого семантически независимого кодированного видеоизображения. Перед описанием сути кодирования/декодирования многочисленных субизображений с независимыми параметрами ARC и скрытой дополнительной сложностью будут представлены опции сигнализации параметров ARC.
[0089] На фиг. 5А-Е изображено несколько новых опций для сигнализации параметров ARC. У каждой опции отмечаются определенные преимущества и недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Для сигнализации параметров ARC стандарт или технология видеокодирования может выбрать одну или несколько таких опций либо опций из предыдущей области техники. Опции должны быть совместимы, и в принципе они могут быть взаимозаменяемы исходя из потребностей приложения, стандартов применяемой технологии или выбора кодера.
[0090] Классы параметров ARC могут включать:
- коэффициенты увеличения/снижения разрешения в координатах X и Y по отдельности или в совокупности,
- коэффициенты увеличения/снижения разрешения с добавлением временного измерения, указывающим на увеличение/уменьшение ряда изображений с постоянной скоростью,
[0091] - любая из перечисленных выше групп коэффициентов может включать кодирование одного предположительно короткого синтаксического элемента или несколько таких элементов, которые могут указывать на таблицу, содержащую коэффициент(ы)
- разрешения в координатах X и Y, единицах отсчетов, блоках, макроблоках, единицах кодирования или любом другом подходящем элементе входного/выходного изображения, опорного изображения, кодированного изображения (при наличии нескольких разрешений (например, одно разрешение для входного изображения, другое - для опорного изображения) в ряде случаев один набор значений может быть получен из другого набора значений. Это можно регулировать, например, с помощью флагов. Далее представлен более подробный пример),
- координаты "деформации" (warping), наподобие координат, применяемых в Н.263 Приложении Р, опять же в подходящей детализации как было представлено выше (Н.263 Приложение Р определяют один эффективный способ кодирования таких координат, но при этом также разрабатываются другие потенциально более эффективные способы. Например, согласно вариантам осуществления, обратимая переменная длина, кодирование кодом Хаффмана координат деформации Приложения Р заменяется двоичным кодированием подходящей длины, где длину двоичного кодового слова можно получить, например, из максимального размера изображения с возможным умножением на определенный множитель и смещением на определенное значение, чтобы деформация происходила за пределами максимального размера изображения) и/или
- параметры фильтров повышения/снижения разрешения. В самом простом случае применяется один фильтр для повышения/снижения разрешения. Однако в ряде случаев эффективнее будет придать гибкости фильтру, что может потребовать сигнализации параметров фильтра. Такие параметры можно выбирать через указатель перечня возможных конструкций фильтров. Фильтр может быть полностью задан (например, посредством перечня фильтровых коэффициентов и подходящих методов энтропийного кодирования), фильтр может быть неявно выбран через коэффициенты повышения/снижения разрешения, в соответствии с которыми осуществляется сигнализация по какому-либо вышеперечисленному механизму, и т.д.
[0092] Далее описание предполагает кодирование фиксированного количества коэффициентов повышения/снижения разрешения (один и тот же коэффициент может применяться в координатах X и Y), обозначенного кодовым словом. Это кодовое слово может быть преимущественно кодированной переменной длины, например, посредством кода Ext-Golomb характерного для определенных элементов синтаксиса в характеристиках видеокодирования, например, для Н.264 и Н.265. Подходящее масштабирование значений коэффициентов повышения/снижения разрешения можно подобрать, например, согласно следующей таблице
[0093]
[0094] Множество подобных отображений можно моделировать согласно потребностям приложения и возможностям механизмов увеличения/снижения разрешения в технологии или стандарте сжатия видео. В таблице могут быть представлены и другие значения. Значения могут быть также представлены механизмами энтропийного кодирования, не включающими коды Ext-Golomb, например, двоичным кодированием. У таких механизмов могут быть определенные преимущества при рассмотрении коэффициентов передискретизации за пределами машин обработки видео (в основном кодера и декодера), например, посредством MANE. Необходимо отметить, что для (предположительно) наиболее типичного случая, когда не требуется смена разрешения, можно выбрать короткий код Ext-Golomb. В приведенной выше таблице этот код представлен одним битом. Для наиболее типичного случая такой код более эффективен по сравнению с двоичными кодами.
[0095] Количество записей в таблице, а также их семантику можно настраивать полностью или частично. Например, базу таблицы можно задать набором параметров на высоком уровне, например, набор параметров последовательности или декодера. Альтернативно или дополнительно можно задать одну или несколько таких таблиц в технологии или стандарте кодирования видео. Таблицы можно выбирать посредством набора параметров декодера или последовательности.
[0096] Далее мы описываем способ включения коэффициента увеличения/снижения разрешения (данные ARC), кодированного по указанной выше методике, в технологию видеокодирования или синтаксис стандарта. Подобные способы можно применять к одному или нескольким кодовым словам, которые управляют фильтрами увеличения/снижения разрешения. Далее представлен описание для ситуации, когда относительно большие объемы данных необходимы для фильтра или других структур данных.
[0097] Согласно примеру фиг. 5А, изображение (500А) демонстрирует включение ARC данных 502 стандартом Н.263 Приложение Р в виде четырех координат деформации заголовка изображения 501, а точнее в расширении заголовка Н.263 PLUSPTYPE (503). Выбор такой конструкции оправдан при а) наличии заголовка изображения и b) ожидании частого изменения ARC данных. Однако непроизводительная передача может оказаться довольно большой при сигнализации посредством Н.263, а коэффициенты масштабирования могут выходить за границы изображения, поскольку заголовок изображения может быть временным. Далее, согласно примеру изображения 5В, изображение (500В) демонстрирует включение данных PPS (504), ссылочных данных ARC (505), данных SPS (507), а также данных таблицы конечного разрешения (506) стандартом JVET-M0135.
[0098] Согласно иллюстративным вариантам осуществления, фиг. 5С демонстрирует пример (500С) с данными заголовка группы тайлов (508) и ARC данными (509); фиг. 5D демонстрирует пример (500D) с данными заголовка группы тайлов (514), ссылочными данными ARC (513), данными SPS (516) и данными ARC (515) и фиг. 5Е демонстрирует пример (500Е) с данными набора(ов) адаптационных параметров (APS) (511) и ARC данными (512).
[0099] JVCET-M135-v1 включает ссылочные данные ARC (505) (указатель), расположенные в наборе параметров изображения (504), индексирование таблицы (506) с конечными разрешениями, расположенными в наборе параметров последовательности (507). Размещение возможного разрешения в таблице (506), в наборе параметров последовательности (507) может быть оправдано, согласно устным заявлениям авторов, при использовании SPS как совместимого элемента при обмене возможностями. Разрешение может меняться в пределах, заданных значениями таблицы (506) от изображения к изображению при обращении к надлежащему набору параметров изображения (504).
[0100] Согласно опять же фиг. 5, возможны следующие дополнительные опции для передачи данных ARC в битовом потоке видео. Каждая из этих опций обладает определенными преимуществами над вышеописанной технологией. Опции могут одновременно присутствовать в одном и том же стандарте или технологии кодирования видео.
[0101] В варианте осуществления данные ARC (509), например, коэффициент передискретизации (изменения масштаба) может присутствовать в заголовке слайса, заголовке GOB, заголовке тайла или в заголовке группы тайлов (далее заголовок группы тайлов) (508). Это уместно при небольшом объеме данных ARC, например, при фиксированной длине переменной ue(v) или фиксированной длине кодового слова из нескольких бит как показано в представленном выше примере. Наличие данных ARC в заголовке группы тайлов дает дополнительное преимущество применения данных ARC для субизображения, представленного, например, вышеуказанной группой тайлов, а не целым изображением. См. также далее. Кроме того, если технология или стандарт сжатия видео предусматривает изменения адаптивного разрешения только у целого изображения (в отличие от, например, изменений адаптивного разрешения группы тайлов), внесение данных ARC в заголовок группы тайлов в отличие от внесения вышеуказанных данных в заголовок изображения стандарта Н.263 обладает определенными преимуществами с точки зрения устойчивости к ошибкам.
[0102] В том же или другом варианте осуществления данные (512) ARC могут присутствовать в надлежащем наборе параметров (511), например, в наборе параметров изображения, заголовка, тайла, в наборе параметров адаптации и т.д. (Представлен набор параметров адаптации). Масштаб такого набора параметров преимущественно не должен превышать изображение, например, группу тайлов. Применение данных ARC осуществляется опосредованно, через активацию нужного набора параметров. Например, если технология или стандарт кодирования видео рассматривает ARC только в рамках изображения, то уместен набор параметров изображения или эквивалентный набор.
[0103] В том же или другом варианте осуществления ссылочные данные ARC (513) могут присутствовать в заголовке группы тайлов (514) или в схожей структуре данных. Такая ссылочная информация (513) может быть представлена подмножеством данных (515) ARC, доступных в наборе параметров (516) в масштабе, превышающем единичное изображение, например, в наборе параметров последовательности или в наборе параметров декодера.
[0104] Дополнительный уровень непрямой и неявной активации PPS из заголовка группы тайлов, PPS, SPS, применяемых в стандарте JVET-M0135-v1, кажется необязательным, согласно иллюстративным вариантам осуществления, поскольку наборы параметров изображения, как и наборы параметров последовательности, могут применяться (и применяются в некоторых стандартах, например в RFC3984) для согласования возможностей или объявлений. Но если данные ARC следует применять на субизображении, представленном, например, посредством групп тайлов, набором параметров с активацией, ограниченной группой тайлов, то оптимальным выбором может стать набор параметров адаптации или набор параметров заголовка. Также, если размер данных ARC стремится к нулю (например, содержит данные фильтра - ряд коэффициентов фильтра), то параметр может быть более оптимальным выбором по сравнению с заголовком (508) с точки зрения эффективности кодирования, поскольку эти настройки могут быть применены повторно другими изображениями или субизображениями посредством обращения к тому же набору параметров, согласно иллюстративным вариантам осуществления.
[0105] При использовании набора параметров последовательности или другого более высокого набора параметров с множественными изображениями определенного масштаба можно применять определенные способы:
1. Набор параметров для хранения таблицы данных (516) ARC в ряде случаев может быть представлен набором параметров последовательности, а в других случаях преимущественно набором параметров декодера. Набор параметров декодера может активировать множество потоков кодированного видео (CVS), то есть все кодированные биты видео с запуска сессии до ее завершения. Подобная активация может быть более уместной, поскольку возможные коэффициенты ARC могут быть функцией декодера, возможно реализованной в аппаратном устройстве, а аппаратные функции, как правило, не меняются при любых CVS (которые по меньшей мере в ряде мультимедийных систем представляют собой группы изображений длительностью до одной секунды). При этом встраивание таблицы в набор параметров последовательности в явном виде включено в описываемые здесь опции размещения, особенно в связи с представленным ниже пунктом 2.
2. Ссылочные данные (513) ARC могут преимущественно помещаться непосредственно в заголовок группы изображений/слайсов тайлов/GOB/тайлов (далее заголовок группы тайлов) (514), а не в набор параметров изображения как в JVCET-M0135-v1. Причина следующая: когда кодер хочет сменить одно значение в наборе параметров изображения, например, в ссылочных ARC данных, ему приходится создавать новый PPS и ссылки к нему. Предположим, что меняются только ссылочные данные ARC, чтобы, например, оставались данные матрицы квантования в PPS. Такие данные могут быть довольно объемными и требовать перенаправления для завершения формирования нового PPS. Поскольку ссылочные данные ARC (например, табличный указатель (513)) могут быть представлены одним кодовым словом, которое будет единственным изменяемым значением, то может быть обременительно и бесполезно осуществлять повторную передачу, например, всех данных по матрице квантования. В такой ситуации, с точки зрения эффективности кодирования, будет значительно лучше избегать косвенной адресации через PPS, как в JVET-M0135-v1. Аналогичным образом, у внедрения ссылочных данных ARC в PPS есть дополнительный недостаток: ссылочные данные ARC (513) обязательны к применению на всем изображении, а не на субизображении, поскольку изображение определяет границы для активации набора параметров изображения.
[0106] В том же или других вариантах осуществления сигнализация параметров ARC может проходить по примеру, подробно представленному на фиг. 6. Фиг. 6 изображает синтаксические схемы (600), применяемые в стандартах кодирования видео. Обозначение таких синтаксических схем осуществляется примерно в рамках С программирования. Строки, выделенные жирным шрифтом, обозначают синтаксические элементы в битовом потоке, обычные строки часто обозначают поток управления или настройку переменных.
[0107] Заголовок группы тайлов (601) в виде иллюстративной синтаксической структуры заголовка, применяемого к (возможно прямоугольному) субизображению может условно включать длину переменной, элемент синтаксиса dec_pic_size_idx в кодировке Exp-Golomb (602) (изображен жирным шрифтом). Наличие такого элемента синтаксиса в заголовке группы тайлов можно регулировать с применением адаптивного разрешения (603) - здесь значение флага не изображается жирным шрифтом. Это означает, что флаг находится в точке битового потока согласно схеме синтаксиса. Можно сигнализировать в любой высокоуровневой структуре синтаксиса, внутри или за пределами битового потока, применяется ли адаптивное разрешение для этого изображения или его частей. В представленном примере сигнализация осуществляется в наборе параметров последовательности как показано ниже.
[0108] На фиг. 6 показан фрагмент набора параметров последовательности (610). Первый представленный элемент синтаксиса является флагом изменения адаптивного разрешения изображения (611). При изменении этот флаг может указывать применение адаптивного разрешения, которое, в свою очередь, может потребовать определенных данных управления. В примере подобные данные управления условно присутствуют на основании значения флага и утверждения if() в наборе параметров (612) и заголовке группы тайлов (601).
[0109] При использовании адаптивного разрешения, согласно иллюстративным вариантам осуществления, выходное разрешение кодируется в единицах отсчетов (613). Число 613 относится к параметрам output_pic_width и output_pic_height в отсчетах яркости, которые совместно могут определить разрешение изображения на выходе. В других ситуациях на любое значение можно устанавливать определенные ограничения в технологии или стандарте кодирования видео. Например, определение уровня может ограничивать количество выходных отсчетов, которое может быть результатом значения тех двух элементов синтаксиса. Также определенные технологии или стандарты кодирования видео, или внешние технологии или стандарты, например, стандарты системы могут ограничивать количественный диапазон (например, одно или несколько измерений должно делиться на степень двойки) или соотношение сторон (например, ширина и высота должны быть в соотношении 4:3 или 16:9). Подобные ограничения могут вводиться для снижения нагрузки на аппаратные устройства или по другим причинам.
[0110] В ряде приложений можно рекомендовать применение декодером определенного размера опорных изображений по команде кодера, а не принимать размер выходного изображения по умолчанию. В этом примере флаг элемента синтаксиса reference_pic_size (614) контролирует условные размеры опорных изображений (615) (опять же число относится к ширине и высоте). [0111] Наконец показана таблица возможных значений ширины и высоты декодируемого изображения. Такая таблица может быть представлена, например, табличным указателем (num_dec_pic_size_in_luma_samples_minusl) (616). Значение "minus 1" может обозначать интерпретацию значения того элемента синтаксиса. Например, если кодированное значение равно нулю, то в наличии будет одна табличная запись. Если значение равно пяти, то в таблице будет шесть записей. Далее для каждой "строки" таблицы ширина и высота декодированного изображения вводится в синтаксис (617).
[0112] Представленные табличные записи (617) могут индексироваться посредством элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, задавая тем самым различные размеры декодирования (по сути, коэффициенты масштабирования) для каждой группы тайлов.
[0113] Определенные технологии или стандарты кодирования видео, например, VP9 поддерживают пространственное масштабирование посредством определенных форм передискретизации опорного изображения (сигнализируемых раскрытым изобретением совершенно иначе) в связке со временным масштабированием для включения пространственного масштабирования. В частности, у определенных опорных изображений можно повышать разрешение с помощью ARC технологий для формирования базы пространственного уровня улучшения. Для детализации эти изображения с повышенным разрешением можно улучшить посредством стандартных механизмов предсказания при высоком разрешении.
[0114] Раскрытое изобретение можно применять в подобной среде. В ряде случаев в том же и других вариантах осуществления значение заголовка блока NAL, например, поле временного ID, можно использовать для указания не только временного, но и пространственного уровня. Такой подход имеет определенные преимущества для определенных конструкций системы: например, при существующих единицах выборочной адресации (SFU), созданные и оптимизированные для выборочной адресации временного уровня на основе заголовка блока NAL заголовок временного ID может использоваться без изменений для масштабируемых сред. Для этого необходимо масштабирование между размером кодированного изображения и временным уровнем, указанным полем временного ID в заголовке блока NAL.
[0115] В некоторых технологиях видеокодирования блок доступа (AU, Access Unit) может означать кодированное(ые) изображение(я), слайс(ы), тайл(ы), блок(и) NAL и т.д., полученные и составленные в соответствующий битовый поток изображения/слайса/тайла/блока NAL определенного момента времени. Этот момент может быть временем композиции.
[0116] В HEVC и определенных технологиях кодирования видео значение порядкового номера изображения (picture order count, РОС) можно использовать для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB). Если блок доступа (AU) включает одно или несколько изображений, слайсов или тайлов, то каждое изображение, слайс или тайл, принадлежащий одному и тому же блоку доступа, может иметь одинаковое значение РОС, из которого можно понять, что они создавались из контента одного и того же времени композиции. Другими словами, при сценарии идентичного заданного значения РОС для двух изображений/слайсов/тайлов, это может означать, что два изображения/слайса/тайла принадлежат к одному и тому же блоку доступа и имеют одно и то же время композиции. И наоборот, два изображения/слайса/тайла с разными значениями РОС могут указывать на принадлежность этих изображений/слайсов/тайлов разным блокам доступа и разным значениям времени композиции.
[0117] Согласно иллюстративным вариантам осуществления раскрытого изобретения, такая прочная связь может быть ослаблена в том смысле, что блок доступа может включать изображения, слайсы или тайлы с разными значениями РОС. Разрешая разные значения РОС в рамках блока доступа, становится возможным применение значения РОС для идентификации потенциально независимых декодируемых изображений/слайсов/тайлов с одинаковым временем презентации. Это, в свою очередь, позволяет поддерживать многочисленные масштабируемые уровни без изменений в сигнализации выбора опорного изображения (например, сигнализации набора или перечня опорных изображений), согласно приведенному далее более подробному описанию.
[0118] Тем не менее, все еще желательно иметь возможность идентифицировать AU, к которой принадлежит изображение/слайс/тайл, относительно других изображений/слайсов/тайлов с разными значениями РОС исключительно по значению РОС. Этого можно достичь следующим образом.
[0119] В том же и других вариантах осуществления, номер блока доступа (AUC) может быть сигнализирован в синтаксической структуре высокого уровня, например, в заголовке блока NAL, заголовке слайса, заголовке группы, сообщении SEI, наборе параметров или в ограничителе AU. Значение AUC может быть применено для идентификации блоков NAL, изображений, слайсов или тайлов, принадлежащих заданному блоку доступа. Значение AUC может соответствовать определенному моменту времени композиции. Значение AUC может быть кратно значению РОС. Значение AUC можно рассчитать, деля значение РОС на целое число. В ряде случаев операции деления могут нагружать декодер. В таких случаях можно позволить небольшие ограничения по диапазону нумерации значений AUC для замены операции деления операциями сдвига. Например, значение AUC может быть равно значению наиболее значимого бита (MSB) диапазона значений РОС.
[0120] В том же и других вариантах осуществления, значение цикла порядковых номеров изображения (РОС) на блок доступа (рос_cycle_au) может быть сигнализировано синтаксической структурой высокого уровня, например, заголовком блока NAL, заголовком слайса, заголовком группы тайлов, сообщением SEI, набором параметров или ограничителем AU. Параметр poc_cycle_au может показывать, сколько различных и последовательных значений РОС может быть связано с одним и тем же AU. Например, если значение рос_cycle_au равно четырем, то изображения, слайсы или тайлы со значениями РОС от 0 до 3 включительно связаны с AU при значении AUC равном нулю, а изображения, слайсы или тайлы со значениями РОС от 4 до 7 включительно связаны с AU при значении AUC равном единице. Таким образом, значение AUC можно получить делением значения РОС на значение рос_cycle_au.
[0121] В том же и других вариантах осуществления значение рос_cycle_au можно получить из данных, расположенных, например, в наборе видео параметров (VPS), определяющий количество пространственных и SNR уровней в кодированной видеопоследовательности. Подобная возможная связь вкратце представлена ниже. Поскольку получение вышеописанным способом может сохранить несколько бит в VPS и тем самым улучшить эффективность кодирования, то этот же способ может быть преимущественным для явного кодирования переменной poc cycle au в надлежащей синтаксической структуре высокого уровня, который иерархически ниже набора видеопараметров, в целях минимизации переменной рос_cycle_au для заданной небольшой части битового потока, например, изображения. Такая оптимизация может сохранить больше битов по сравнению с представленным выше процессом получения, поскольку значения РОС (и/или значения элементов синтаксиса, не напрямую связанных с РОС) можно декодировать в синтаксических структурах нижнего уровня.
[0122] В том же и другом варианте осуществления фиг. 9 демонстрирует пример (900) таблиц синтаксиса для сигнализации элемента синтаксиса переменной vps_poc_cycle_au в VPS (или SPS), которое указывает на применение poc cycle au для всех изображений/слайсов в кодированной видеопоследовательности, а также элемента синтаксиса переменной slice_рос_cycle_au, который указывает на переменную poc cycle au текущего слайса в заголовке слайса. При равномерном увеличении значения РОС на блок доступа, значение переменной vps_contant_poc_cycle_per_au в VPS задается как единица, а переменная vps_poc_cycle_au сигнализируется в VPS. В этом случае slice_poc_cycle_au не сигнализируется явно, а значение AUC для каждого AU рассчитывается делением значения РОС на vps_poc_cycle_au. Если значение РОС не увеличивается равномерно на блок доступа, значение переменной vps_contant_poc_cycle_per_au в VPS задается равным нулю. В этом случае vps_access_unit_cnt не сигнализируется, a slice_poc_acess_unit_cnt сигнализируется в заголовке слайса для каждого слайса или изображения. У каждого слайса или изображения могут быть различные значения slice access unit cnt. Значение AUC для каждого AU рассчитывается делением значения РОС на by slice_poc_cycle_au. Фиг. 10 демонстрирует блок-схему, иллюстрирующую значимый поток обрабатываемых данных (1000), в котором S100 - анализ VPS/SPS и определение, является ли цикл РОС на блок доступа постоянной величиной, на шаге S101 определяется постоянная цикла РОС на блок доступа в кодированной видеопоследовательности. Если нет, то на этапе S103 происходит вычисление значения номера блока доступа, исходя из значения рос_cycle_au уровня изображения и значения РОС. При положительном результате на этапе S102 рассчитывается значение номера блока доступа из значения poc cycle au уровня последовательности и значения РОС. На этапе S104 снова идет анализ VPS/SPS, и определение постоянства цикла РОС на блок доступа, что может продолжаться циклично или другим способом для одной или более порций потока обрабатываемых данных (1000).
[0123] В том же и других вариантах осуществления, даже если значение РОС изображения, слайса или тайла может быть разным, изображение, слайс или тайл, соответствующий AU с одинаковым значением AUC, может ассоциироваться с одним и тем же временем декодировании или вывода. Таким образом, без зависимости анализа/декодирования между изображениями, слайсами или тайлами в том же блоке доступа, все или подмножество изображений, слайсов или тайлов, связанных с одним и тем же блоком доступа, можно декодировать параллельно и выводить в один и тот же момент времени.
[0124] В том же и других вариантах осуществления, даже если значение РОС изображения, слайса или тайла может быть разным, изображение, слайс или тайл, соответствующий AU с одинаковым значением AUC, может быть ассоциировано с одинаковым моментом композиции/отображения. Когда время композиции содержится в формате контейнера, даже если изображения соответствуют разным AU, если у изображений одинаковое время композиции, то изображения можно отображать в один и тот же момент времени.
[0125] В том же и других вариантах осуществления каждое изображение, слайс или тайл могут иметь одинаковый временной идентификатор (temporal_id) в одном и том же блоке доступа. Все или подмножество изображений, слайсов или тайлов, соответствующих моменту времени, может быть связано с одинаковым временным подуровнем. В том же и других вариантах осуществления каждое изображение, слайс или тайл могут иметь одинаковый или разный идентификатор пространственного уровня (layer_id) в одном и том же блоке доступа. Все или подмножество изображений, слайсов или тайлов, соответствующих моменту времени, может быть связано с одним и тем же или другим пространственным уровнем.
[0126] Фиг. 8 демонстрирует пример (800) структуры видеопоследовательности со значениями temporal_id, layer_id, РОС и AUC при адаптивной смене разрешения. В этом примере у изображения, слайса или тайла в первом блоке доступа с AUC=0 переменная temporal_id=0 и layer_id=0 или 1, а у изображения, слайса или тайла во втором блоке доступа с AUC=1 переменная temporal_id=1 и layer_id=0 или 1, соответственно. Значение РОС увеличивается на 1 на изображение, несмотря на значения temporal_id и layer_id. В этом примере значение рос_cycle_au может быть равно двум. Предпочтительно установить значение рос_cycle_au равным количеству уровней (пространственной масштабируемости). Таким образом, в этом примере значение РОС увеличивается на 2, в то время как значение AUC увеличивается на 1.
[0127] В иллюстративных вариантах осуществления все или подмножество структур предсказания между изображениями или между уровнями и указание опорного изображения могут поддерживаться набором существующих опорных изображений (RPS? reference picture set), сигнализируемых в HEVC или в списке опорных изображений (RPL, reference picture list). В RPS или RPL выбранное опорное изображение указывается сигнализацией значения РОС или дельты значения РОС между текущим изображением и выбранным опорным изображением. Для раскрытого изобретения RPS и RPL можно использовать для указания структуры предсказания между изображениями или между уровнями без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id текущего изображения больше значения layer_id текущего изображения, то текущее изображение не может применять опорное изображение для компенсации движения или других предсказаний.
[0128] В том же и других вариантах осуществления масштабирование вектора движения, основанное на различиях РОС для предсказания временного вектора движения, можно отключить для множества изображений в блоке доступа. Таким образом несмотря на то, что каждое изображение может иметь разное значение РОС в пределах блока доступа, вектор движения не масштабируется и применяется для предсказания временного вектора движения в рамках блока доступа. Это связано с тем, что опорное изображение с разными РОС в одном и том же блоке доступа рассматривается как опорное изображение с одним и тем же моментом времени. Таким образом, в иллюстративных вариантах осуществления функция масштабирования вектора движения может вновь принять значение 1, если опорное изображение принадлежит блоку доступа, связанному с текущим изображением.
[0129] В том же и других вариантах осуществления масштабирование вектора движения, основанное на разнице в РОС для предсказания временного вектора движения, может быть опциально отключено в множестве изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. При включении масштабирования вектора движения вышеуказанный вектор масштабируется на основании ка разницы в РОС, так и отношения пространственного разрешения между текущим и опорным изображением.
[0130] В том же или другом варианте осуществления вектор движения может масштабироваться на основании разницы в AUC вместо разницы в РОС для предсказания временного вектора движения, особенно при отсутствии фиксированного значения у рос_cycle_au (когда vps_contant_poc_cycle_per_au=0). В других случаях (когда vps_contant_poc_cycle_per_au=1) масштабирование вектора движения, основанное на разнице в AUC, может соответствовать масштабированию вектора движения, основанному на разнице в РОС.
[0131] В том же или другом варианте осуществления, когда вектор движения масштабируется на основании разницы в AUC, опорный вектор движения в том же блоке доступа (с тем же значением AUC) с текущим изображением не масштабируется на основании разницы в AUC и применяется для предсказания вектора движения без масштабирования или с масштабированием на основании отношения пространственного разрешения между текущим и опорным изображениями.
[0132] В том же и других вариантах осуществления величина AUC применяется для идентификации границы блока доступа и для работы гипотетического эталонного декодера (HRD), требующего синхронизации ввода и вывода с гранулярностью AU. В большинстве случаев декодированное изображение с самым высоким уровнем в AU может выводиться на экран. Значение AUC и layer_id можно применять для идентификации выходного изображения.
[0133] В иллюстративных вариантах осуществления изображение может состоять из одного или нескольких субизображений. Каждое субизображение может представлять часть области или всю область изображения. Область субизображения может перекрываться или не перекрываться с областью другого субизображения. Область из одного или нескольких субизображений может покрывать или не покрывать всю область изображения. Если изображение состоит из субизображения, то область субизображения идентична области изображения.
[0134] В том же и других вариантах осуществления субизображение можно кодировать методом кодирования, схожим с методом кодирования кодированного изображения. Субизображение можно кодировать отдельно или исходя из другого субизображения или кодированного изображения. Субизображение может зависеть, а может и не зависеть от результатов анализа другого субизображения или кодированного изображения.
[0135] В том же и других вариантах осуществления кодированное субизображение может содержаться в одном или нескольких уровнях. Кодированное субизображение может иметь разное пространственном разрешении. Исходное субизображение может быть передискретизировано в пространстве (с повышением или снижением разрешения), кодировано с разными параметрами пространственного разрешения и может находиться в битовом потоке, который соответствует уровню.
w,k
h,k
w
k
h,k
w,k
h,k
w,k
h,k
[0136] В том же и других вариантах осуществления субизображение с (W, Н), где W - ширина субизображения, Н - высота субизображения, соответственно, можно кодировать и включать в кодированный битовый поток, соответствующий уровню 0, а субизображение с повышенным (пониженным) разрешением относительно субизображения исходного пространственного разрешения с W*S, Н*S) можно кодировать и включать в кодированный битовый поток, соответствующий уровню k, где S,, S обозначают коэффициент передискретизации по горизонтали и вертикали. Если значения S, S больше 1, то передискретизация означает повышение разрешения. Если значения S, S меньше 1, то передискретизация означает снижение разрешения.
i,n
j,m
[0137] В том же и других вариантах осуществления кодированное субизображение уровня может иметь другое качество изображения по сравнению с кодированным субизображением в другом уровне того же субизображения или другого субизображения. Например, субизображение i в уровне n кодируется с параметром квантования Q, а субизображение j в уровне m кодируется с параметром квантования Q.
[0138] В том же и других вариантах осуществления кодированное субизображение в уровне может декодироваться автономно, без анализа или декодирования кодированного субизображения в другом уровне той же области. Уровень субизображения, который может декодироваться автономно, без отсылки к другому уровню субизображения той же области, является автономным уровнем субизображения. Кодированное субизображение в автономном уровне субизображения может зависеть или не зависеть от декодирования или анализа предыдущего кодированного субизображения в том же уровне субизображения, но кодированное субизображение не зависит от кодированного изображения в другом уровне субизображения.
[0139] В том же и других вариантах осуществления кодированное субизображение в уровне может декодироваться на базе анализа или декодирования кодированного субизображения в другом уровне той же локальной области. Уровень субизображения, который может декодироваться со ссылкой на другой уровень субизображения той же локальной области, является зависимым уровнем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее к тому же субизображению, предыдущему кодированному субизображению в том же уровне субизображения или к обоим опорным субизображениям.
[0140] В том же и других вариантах осуществления кодированное субизображение состоит из одного или более независимых уровней субизображения и из одного или более зависимых уровней субизображения. Тем не менее, у кодированного субизображения может присутствовать по меньшей мере один независимый уровень субизображения. Независимый уровень субизображения может иметь значение идентификатора уровня (layer_id), который может присутствовать в заголовке блока NAL или другой синтаксической структуре высокого уровня, равное нулю. Уровень субизображения с layer_id равным нулю является базовым уровнем субизображения.
а
[0141] В том же и других вариантах осуществления изображение может состоять из одного или более субизображений переднего плана и из одного субизображения заднего плана. Область, поддерживаемая субизображением переднего плана, может перекрываться областью, поддерживаемой субизображением заднего плана. Субизображение заднего плана может быть базовым уровнем субизображения, а субизображение переднего плана может быть небазовым уровнем (уровнем улучшения) субизображения. Один или более небазовых уровней субизображения может ссылаться на один и тот же базовый уровню для декодирования. Каждый небазовый уровень субизображения с layer_id равным а может ссылаться на небазовый уровень субизображения с layer_id равным b, где  больше b.
а
а
[0142] В том же и других вариантах осуществления изображение может состоять из субизображений переднего плана с субизображением заднего плана или без него. У каждого субизображения может быть свой собственный базовый уровень субизображения и один или более небазовых уровней (уровней улучшения). Каждый базовый уровень субизображения может быть опорным для одного или более небазовых уровней субизображения. Каждый небазовый уровень субизображения с layer_id, равном , может ссылаться на небазовый уровень субизображения с layer_id, равным b, где  больше b.
[0143] В том же и других вариантах осуществления изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. Каждое кодированное субизображение в (базовом или небазовом) уровне субизображения может быть опорным для одного или более субизображений небазовых уровней, принадлежащих к одному и тому же субизображению и одному или более субизображений небазовых уровней, которые не принадлежат к одному и тому же субизображению.
а
а
[0144] В том же и других вариантах осуществления изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. Субизображение в уровне  может быть разделено на множество субизображений в том же уровне. Одно или более кодированных субизображений в уровне b может относиться к разделенному субизображению в уровне .
[0145] В том же и других вариантах осуществления кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может состоять из одной или более последовательностей кодированных субизображений (CSPS), где CSPS может быть группой кодированных субизображений, покрывающих ту же локальную область изображения. У CSPS может быть одно и то же или разные временные разрешения по сравнению с кодированной видеопоследовательностью.
[0146] В том же и других вариантах осуществления CSPS может быть кодированной и находиться в одном или нескольких уровнях. CSPS может состоять из одного или более уровней CSPS. Декодирование одного или более уровней CSPS, соответствующих CSPS, может реконструировать последовательность субизображений, соответствующих одной и той же локальной области.
[0147] В том же и других вариантах осуществления количество уровней CSPS, соответствующих CSPS, может быть идентично или отличаться от количества уровней CSPS, соответствующих другой CSPS.
[0148] В том же или другом варианте осуществления уровень CSPS может иметь временное разрешение (например, частоту кадров), которое отличается от временного разрешения другого уровня CSPS. Исходная (несжатая) последовательность субизображений может быть передискретизирована во времени (с повышением или снижением разрешения), кодирована с другими параметрами временного разрешения и находиться в битовом потоке, который соответствует уровню.
t,k
t,k
t,k
t,k
[0149] В том же или другом варианте осуществления последовательность субизображений с частотой кадров F может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню 0, а временная последовательность субизображений с повышенным (или пониженным) разрешением исходной последовательности субизображений с F*S может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню k, где S означает временное отношение отсчетов для уровня k. Если значение S больше 1, то процесс временной передискретизации соответствует повышающему преобразованию частоты кадров. Если значение S меньше 1, то процесс временной пере дискретизации соответствует понижающему преобразованию частоты кадров.
а
а
а
[0150] В том же или других вариантах осуществления, когда субизображение с CSPS уровнем  является опорным для субизображения с CSPS уровнем b в целях компенсации движения или любого предсказания между уровнями, если пространственное разрешение CSPS уровня  отличается от пространственного разрешения CSPS уровня b, декодированные пиксели в CSPS уровне  подвергаются передискретизации и применяются как опорные. Процесс передискретизации может требовать фильтрации для повышения или снижения разрешения.
[0151] Фиг. 11 демонстрирует пример потока видео (1100), включая CSPS видео заднего плана со значением layer_id, равным нулю, и многочисленные CSPS уровни переднего плана. Поскольку кодированное субизображение может состоять из одного или более уровней CSPS, то фоновая область, не принадлежащая к какому-либо CSPS уровню переднего плана, может состоять из базового уровня. Базовый уровень может включать область переднего и заднего планов, a CSPS уровень улучшения содержит область переднего плана. CSPS уровень улучшения может ссылаться на реконструированные пиксели и векторы движения базового уровня, соответствующего той же области.
[0152] В том же или других вариантах осуществления битовый поток видео, соответствующий базовому уровню, находится в треке, а уровни CSPS, соответствующие каждому субизображению, находятся в отдельном треке, в видеофайле.
[0153] В том же и других вариантах осуществления битовый поток видео, соответствующий базовому уровню, находится в треке, а уровни CSPS с одинаковой переменной layer_id находятся в отдельном треке. В этом примере трек, соответствующий уровню к, включает уровни CSPS, соответствующие исключительно уровню k.
[0154] В том же или других вариантах осуществления каждый уровень CSPS каждого субизображения хранится в отдельном треке. Каждый трек может зависеть или не зависеть от анализа или декодирования одного или нескольких других треков.
[0155] В том же или других вариантах осуществления каждый трек может содержать битовые потоки, соответствующие уровню j уровней CSPS всех или подмножества субизображений, где 0<i=<j=<k, при этом k - высший уровень CSPS.
[0156] В том же и других вариантах осуществления изображение состоит из одного или нескольких наборов связанных медиаданных, включая карту глубины, альфа карту, данные трехмерной конфигурации, карту занятости и т.д. Такие связанные во времени медиаданные можно разделить на один или множество субпотоков данных, каждый из которых соответствует одному субизображению.
[0157] В том же и других вариантах осуществления фиг. 12 демонстрирует пример видеоконференц-связи (1200), основанной на способе многоуровневых субизображений. В видеопотоке содержится один базовый уровень битового потока видео, соответствующий изображению заднего плана, и один или более битовых потоков видео с уровнями улучшения, соответствующими субизображениям переднего плана. Каждый битовый поток видео уровня улучшения соответствует уровню CSPS. На экране изображение, соответствующее базовому уровню, отображается по умолчанию. Он содержит одно или более пользовательских изображений в изображении (PIP). При выборе клиентским протоколом конкретного пользователя, CSPS уровень улучшения, соответствующий выбранному пользователю, декодируется и отображается в улучшенном качестве или пространственном разрешении. Фиг. 13 демонстрирует схему работы (1300), в которой на этапе S130 происходит декодирование битового потока видео с множеством уровней, а на этапе S131 осуществляется идентификация области заднего плана и одного или нескольких субизображений переднего плана. На этапе S132 устанавливается, была ли выбрана конкретная область субизображения. Если нет, то на этапе S134 осуществляется декодирование и отображение области заднего плана. Если конкретная область была выбрана, то на этапе S133 происходит декодирование и отображение улучшенного субизображения, и схема (1300) может продолжаться циклично или осуществляться последовательно или параллельно с другими операциями.
[0158] В том же и других вариантах осуществления центральное сетевое устройство (например, роутер) может выбирать подмножество уровней для отправки пользователю в зависимости от полосы пропускания устройства. Конфигурацию изображения/субизображения можно использовать для адаптации полосы пропускания. Например, если пользователю не хватает полосы пропускания, то роутер удаляет уровни или выбирает ряд субизображений, исходя из их значимости или на основании применяемых настроек. Сделать это можно в динамическом режиме для адаптации к полосе пропускания.
[0159] Фиг. 14 демонстрирует пример видео 360° (1400). Когда сферическое изображение 360° проецируется на плоскостное изображение, проекционное изображение 360° можно поделить на множество субизображений, как базовый уровень. Уровень улучшения отдельного субизображения можно кодировать и передавать клиенту. Декодер может декодировать базовый уровень, включая все субизображения, и уровень улучшения выбранного субизображения. Когда текущее окно просмотра идентично выбранному субизображению, у представленного изображения может быть повышено качество при декодированном субизображении с уровнем улучшения. Иначе отображается декодированное изображение низкого качества с базовым уровнем.
[0160] В том же и других вариантах осуществления любые компоновочные данные для отображения можно представить в файле как дополнительную информацию (как сообщение SEI или метаданные). Одно или несколько декодированных субизображений можно переместить и отобразить, исходя из сигнализированных компоновочных данных. Компоновочные данные могут быть сигнализированы стриминговым сервером, вещательным устройством или восстановлены сетевым объектом, облачным сервером или определены пользовательскими настройками.
[0161] В иллюстративных вариантах осуществления, когда входное изображение делится на одну или несколько (прямоугольных) подобластей, каждую подобласть можно кодировать как независимый уровень. Каждый независимый уровень, соответствующий локальной области, может иметь уникальное значение переменной layer_id. Размер субизображения и данные расположения могут сигнализироваться для каждого независимого уровня. Например, размер изображения (ширина, высота), данные о смещении левого верхнего угла (x_offset, y_offset). Фиг. 15 демонстрирует пример компоновки разделенных субизображений (1500), размер субизображений, позиционные данные и соответствующую структуру предсказания изображения. Компоновочные данные, включая размер(ы) субизображений и расположение(я) субизображения, могут сигнализироваться в структуре синтаксиса высокого уровня, например, в наборе(ах) параметров, заголовке группы слайсов или тайлов или в сообщении SEI.
[0162] В том же и других вариантах осуществления каждое субизображение, соответствующее независимому уровню, может обладать уникальным значением РОС в блоке доступа. Когда опорное изображение среди изображений, хранящихся в буфере декодированных изображений (DPB), указывается синтаксическим(и) элементом(ами) в структуре RPS или RPL, можно применять значение(я) РОС каждого субизображения, которое соответствует уровню.
[0163] В том же и других вариантах осуществления для указания структуры предсказания (между уровнями), переменную layer_id использовать нельзя, а значение РОС (дельта) можно.
[0164] В том же и других вариантах осуществления субизображение со значением РОС равным N, соответствующим уровню (или локальной области), можно или нельзя применять как опорное изображение субизображения со значением РОС равным N+K, соответствующим одному и тому же уровню (или одной и той же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение К может соответствовать максимальному количеству (независимых) уровней, которое может равняться количеству подобластей.
[0165] В том же и других вариантах осуществления фиг. 16 демонстрирует расширенный случай (1600) для примера фиг. 15. При делении входного изображения на множество (например, на четыре) подобластей, каждая локальная область может кодироваться одним или несколькими уровнями. В этом случае количество независимых уровней может быть равно количеству подобластей, а один или несколько уровней могут соответствовать подобласти. Таким образом, каждую подобласть можно кодировать одним или несколькими независимыми уровнями и нулем или несколькими зависимыми уровнями.
[0166] В том же и других вариантах осуществления (фиг. 16) входное изображение можно поделить на четыре подобласти. Верхнюю подобласть справа можно кодировать как два уровня, уровень 1 и 4, а правую нижнюю подобласть можно кодировать как следующие два уровня: уровень 3 и 5. В этом случае уровень 4 может ссылаться на уровень 1 для предсказания компенсации движения, а уровень 5 может ссылаться на уровень 3 для компенсации движения.
[0167] В том же и других вариантах осуществления контурную фильтрацию (например, деблокирующая фильтрация, адаптивная контурная фильтрация, формовочная, двусторонняя фильтрация или любая фильтрация, основанная на глубоком обучении) по границе уровня можно отключить (опционально).
[0168] В том же и других вариантах осуществления предсказание компенсации движения или внутреннее блочное копирование по границе уровня можно отключить (опционально).
[0169] В том же и других вариантах осуществления заполнение границ (boundary padding) можно осуществлять опционально для предсказания компенсации движения или контурной фильтрации на границе субизображения. Флаг, указывающий на заполнение границ (отсутствие заполнения), может сигнализироваться в синтаксической структуре высокого уровня, например, в наборе(ах) параметров (VPS, SPS, PPS или APS), заголовке группы слайсов или тайлов или в сообщении SEI.
[0170] В том же и других вариантах осуществления данные о компоновке подобласти(ей) (или субизображения(ий)) можно сигнализировать в VPS или SPS. Фиг. 17 демонстрирует пример (1700) элементов синтаксиса в VPS и 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 могут быть равны ширине и высоте входного(их) изображения(ий), соответственно.
[0171] В том же и других вариантах осуществления значения переменных vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples нельзя использовать для декодирования, но можно использовать для композиции и отображения.
[0172] В том же и других вариантах осуществления, когда значение переменной 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_х, pic_offset_у) верхнего левого угла подобласти может быть сигнализировано в SPS.
[0173] В том же и других вариантах осуществления данные расположения (pic_offset_x, pic_offset_у) левого верхнего угла подобласти нельзя использовать для декодирования, но можно использовать для композиции и отображения.
[0174] В том же и других вариантах осуществления данные расположения (размер и положение) всех или подмножества области(ей) входного(ых) изображения(ий), данные о зависимости между уровнем(ями) могут сигнализироваться в наборе параметров или сообщении SEI. Фиг. 18 демонстрирует пример (1800) для указания данных размещения подобластей, зависимости между уровнями и отношения между подобластью и одним или несколькими уровнями. В примере (1800) элемент синтаксиса 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_х[i] и sub_region_offset_у[i] указывают на горизонтальное и вертикальное положение левого верхнего угла подобласти i, соответственно. Ширина подобласти [i] и высота подобласти [i] указывают на ширину и высоту подобласти i, соответственно.
[0175] В одном варианте осуществления один или более элементов синтаксиса, обозначающих набор выходного уровня для указания одного или нескольких уровней, подлежащих выводу с данными уровня профильного яруса или без них, могут сигнализироваться в структуре синтаксиса высокого уровня, например, в VPS, DPS, SPS, PPS, APS или в сообщении SEI. Согласно примеру (1900) фиг. 19, элемент синтаксиса num_output_layer_sets, указывающий номер набора выходных уровней (OLS) в кодированной видеопоследовательности со ссылкой на VPS, может быть сигнализирован в VPS. Для каждого набора выходных уровней переменная output_layer_flag может сигнализироваться несколько раз в соответствии с количеством выходных уровней.
[0176] В том же и других вариантах осуществления переменная output_layer_flag[i] равная 1 означает, что уровень i является выходным, Переменная vps_output_layer_flag[i] равная нулю означает, что уровень i не является выходным.
[0177] В том же и других вариантах осуществления один или несколько элементов синтаксиса, указывающих на данные уровня профильного яруса для каждого набора выходных уровней, могут сигнализироваться в структуре синтаксиса высокого уровня, например, в VPS, DPS, SPS, PPS, APS или в сообщении SEI. Опять же, согласно фиг. 19, элемент синтаксиса num_profile_tile_level, указывающий номер данных уровня профильного яруса в каждом OLS кодированной видеопоследовательности со ссылкой на VPS, может сигнализироваться в VPS. Для каждого набора выходных уровней набор элементов синтаксиса для данных уровня профильного яруса или указатель данных конкретного уровня профильного яруса среди записей данных уровня профильного яруса может сигнализироваться несколько раз в соответствии с количеством выходных уровней.
[0178] В том же и других вариантах осуществления переменная profile_tier_level_idx[i][j] обозначает указатель в списке profile_tier_level() синтаксических структур VPS, указатель структуры синтаксиса profile_tier_level(), применяемый к уровню j набора выходных уровней i.
[0179] В том же и других вариантах осуществления, согласно примеру (2000) фиг. 20, элементы синтаксиса num_profile_tile_level и/или num output layer sets могут сигнализироваться, когда количество максимальных уровней больше единицы (vps_max_layers_minus 1>0).
[0180] В том же и других вариантах осуществления, согласно фиг. 20, элемент синтаксиса vps_output_layers_mode[i], указывающий режим сигнализации выходного уровня для набора выходных уровней i, может присутствовать в VPS.
[0181] В том же и других вариантах осуществления переменная vps_output_layers_mode [i] равная нулю обозначает, что выходным является исключительно высший уровень в наборе выходных уровней i. Переменная vps_output_layer_mode[i] равная единице означает, что все уровни являются выходными в наборе выходных уровней i. Переменная vps_output_layer_mode[i] равная 2 обозначает, что выходными являются уровни с флагом vps_output_layer_flag[i][j] равным 1 в наборе выходных уровней i. Возможны и другие значения, согласно вариантам осуществления.
[0182] В том же и других вариантах осуществления переменная the output_layer_flag[i][j] может сигнализироваться или нет в зависимости от значения переменной vps_output_layers_mode [i] для набора выходных уровней i.
[0183] В том же и других вариантах осуществления, согласно фиг. 20, флаг vps_ptl_signal_flag[i] может присутствовать для набора выходных уровней i. В зависимости от значения vps_ptl_signal_flag[i] данные уровня ярусного профиля для набора выходных уровней i могут сигнализироваться или могут не сигнализироваться.
[0184] В том же и других вариантах осуществления, согласно фиг. 21, количество субизображений, max_sub_pics_minusl, в текущем CVS может сигнализироваться в синтаксической структуре высокого уровня, например, в VPS, DPS, SPS, PPS, APS или сообщении SEI.
[0185] В том же и других вариантах осуществления, согласно фиг. 21, идентификатор субизображений, sub_pic_id[i] для субизображения может сигнализироваться, когда количество субизображений больше единицы (max_sub_picsminus 1>0).
[0186] В том же и других вариантах осуществления один или несколько синтаксических элементов, указывающих на идентификатор субизображения, принадлежащего к каждому уровню каждого набора выходных уровней, могут сигнализироваться в VPS. Согласно фиг. 21, переменная sub_pic_id_layer[i][j][k], указывающая на субизображение к, присутствует в уровне j набора выходных уровней i. С этими данными декодер может распознавать субизображения, которые можно декодировать и выводить для каждого уровня конкретного набора выходных уровней.
[0187] В том же и других вариантах осуществления следующие элементы синтаксиса могут применяться для определения компоновки субизображений в уровнях или в одном уровне. Наборы выходных уровней с разделением субизображений можно сигнализировать с данными профиля/яруса/уровня в VPS или SPS. В PPS могут присутствовать обновленные данные компоновки субизображения, когда размер изображения обновляется передискретизацией опорного изображения. Для VPS можно рассмотреть таблицу 2:
[0188] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_picture_info_present_flag равная 1 обозначает, что элементы синтаксиса, указывающие на раскладку субизображения, и идентификаторы присутствуют в VPS. Переменная vps_sub_picture_info_present_flag равная нулю означает, что элементы синтаксиса, указывающие на раскладку субизображения, и идентификаторы не присутствуют в VPS.
[0189] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps sub_pic id_present_flag равная 1 обозначает, что vp_ sub_pic_id [i][j] присутствует в VPS. Переменная vps sub_pic_id_present_flag равная нулю обозначает, что vps_sub_pic_id[i][j] не присутствует в VPS.
[0190] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_pic_id_length_minus 1 плюс единица обозначает количество битов, применяемых для отображения синтаксического элемента vps_sub_pic_id[i][j]. Значение vps_sub_pic_id_length_minus 1 должно быть в диапазоне от 0 до 15 включительно. При несоблюдении этого условия значение vps_sub_pic_id_length_minusl предполагается равным Ceil(Log2(Мах(2, vps_num_sub_pic in_pic_minus 1[i]+1))) 1 для уровня i.
[0191] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_pic_id[i][j] обозначает идентификатор субизображения] уровня i. Длина синтаксического элемента vps_sub_pic_id[i][j] составляет vps_sub_pic_id_length_minus 1+1 битов. При несоблюдении этого условия значение vps_sub_pic_id[i][j] предполагается равным j для каждого j в диапазоне от 0 до vps_num_sub_pic in_pic minus 1[i] включительно.
[0192] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_pic_width_max_in_luma_samples[i] обозначает максимальную ширину в единицах отсчетов яркости каждого декодированного изображения уровня i. Переменная pic_width_max_in_luma_samples не должна быть равной нулю и должна быть целым числом кратным MinCbSizeY.
[0193] Согласно иллюстративным вариантам осуществления (таблица 2), переменная pic_height_max_in_luma_samples обозначает максимальную высоту в единицах отсчетов яркости каждого декодированного изображения, ссылающегося на SPS. Переменная pic_height_max_in_luma_samples не должна быть равной нулю и должна быть целым числом кратным MinCbSizeY.
[0194] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps sub_pic_offset_x_in_luma_samples[i][j] обозначает горизонтальное смещение (в единицах отсчетов яркости) отсчета яркости верхнего левого угла субизображения] уровня i относительно отсчета яркости верхнего левого угла составного изображения. При несоблюдении этого условия значение vps_sub_pic_offset_х_in_luma_samples[i][j] предполагается равным нулю. Значение vps_sub_pic_offset_х_in_luma_samples[i][j] должно быть целым числом кратным размеру блока дерева кодирования.
[0195] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_pic_offset_y_in_luma_samples[i][j] обозначает вертикальное смещение (в единицах отсчетов яркости) отсчета яркости верхнего левого угла субизображения] уровня i относительно отсчета яркости верхнего левого угла составного изображения. При несоблюдении этого условия значение vps_subjtic_offset_у_in_luma_samples[i][j] предполагается равным нулю. Значение vps_sub_pic_offset_y_in_luma_samples[i][j] должно быть целым числом, кратным размеру блока дерева кодирования.
[0196] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_pic_width_in_luma_samples[i][j] обозначает ширину субизображения] уровня i в единицах отсчетов яркости. Переменная vps_sub_pic_width_in_luma_samples[i][j] должна быть целым числом кратным размеру блока дерева кодирования.
[0197] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_pic_height_in_luma_samples[i][j] обозначает высоту субизображения] уровня i в единицах отсчетов яркости. Переменная vps_sub_pic_height_in_luma_samples[i][j] должна быть целым числом, кратным размеру блока дерева кодирования.
[0198] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_num_output_layer_sets_minusl плюс один обозначает количество наборов выходных уровней в кодированной видеопоследовательности, ссылающейся на VPS. При несоблюдении этого условия значение vps_num_output_layer_sets_minus 1 предполагается равным нулю.
[0199] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_num_profile_tile_levels_minusl плюс один обозначает количество данных профиля/ярус а/уровня в кодированной видеопоследовательности со ссылкой на VPS. При несоблюдении этого условия значение vps_num_profile_tile_levels_minusl предполагается равным нулю.
[0200] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_output_layers_mode [i] равная нулю означает, что выходным является только высший уровень в наборе выходных уровней i. Переменная vps_output_layer_mode[i] равная единице означает, что все уровни являются выходными в наборе выходных уровней i. Переменная vps_output_layer_mode[i] равная двум означает, что выходные уровни являются уровнями с vps_output_layer_flag[i][j] равной единице в наборе выходных уровней i. Значение vps_output_layers_mode[i] должно быть в диапазоне от 0 до 2 включительно. Значение 3 переменной vps_output_layer_mode[i] сохраняется для применения в будущем стандартами ITU-T | ISO/IEC.
[0201] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_num_output_subpic_layer_minusl[i][j] означает количество субизображений уровня] в наборе выходных уровней i.
[0202] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_sub_pic_id_layer[i][j] [k] означает идентификатор субизображения выходного субизображения к субизображения] уровня i. Длина синтаксического элемента составляет vps_sub_pic_id_length_minus 1+1 битов. При несоблюдении этого условия значение vps_sub_pic_id_layer[i][j] [k] предполагается равным k для каждого j в диапазоне от 0 до num_output_subpic_layer_minusl[i][j] включительно.
[0203] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_output_layer_flag[i][j] равная единице означает, что уровень] набора выходных уровней i является выходным. Переменная vps_output_layer_flag[i] [j] равная нулю означает, что уровень j набора выходных уровней i не является выходным.
[0204] Согласно иллюстративным вариантам осуществления (таблица 2), переменная vps_profile_tier_level_idx[i][j] обозначает индекс (в списке синтаксических структур profile_tier_level() в VPS) синтаксической структуры profile_tier_level(), которая применяется к уровню j набора выходных уровней i.
[0205] Для SPS можно рассмотреть таблицу 3:
[0206] Согласно иллюстративным вариантам осуществления (таблица 3), переменная pic_width_max_in_luma_samples обозначает максимальную ширину в единицах отсчетов яркости каждого декодированного изображения со ссылкой на SPS. Переменная pic_width_max_in_luma_samples не должна быть равна нулю и должна быть целым числом кратным MinCbSizeY.
[0207] Согласно иллюстративным вариантам осуществления (таблица 3), переменная pic_height_max_in_luma_samples обозначает максимальную высоту в единицах отсчетов яркости каждого декодированного изображения со ссылкой на SPS. Переменная pic_height_max_in_luma_samples не должна быть равна нулю и должна быть целым числом кратным MinCbSizeY.
[0208] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sub_pics_present_flag равная единице указывает на присутствие параметров субизображения в синтаксисе SPS RBSP. Переменная sub_pics_resent_flag равная нулю указывает, что параметры субизображения не присутствуют в синтаксисе SPS RBSP.
[0209] Согласно иллюстративным вариантам осуществления, когда битовый поток является результатом процесса извлечения битового субпотока и содержит только подмножество субизображений входного битового потока для процесса извлечения битового субпотока, может понадобиться установка значения subpics_present_flag, равного 1, в RBSP SPS.
[0210] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_id_resent_flag равная 1 означает, что sps_sub_pic_id [i] присутствует в SPS. Переменная sps_sub_pic_id_resent_flag равная нулю означает, что переменная sps_sub_pic_id[i] отсутствует в SPS.
[0211] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub _pic_id_length_minus 1 обозначает количество битов, применяемых для отображения элемента синтаксиса sps_sub_pic_id[i][j]. Значение sps_sub_pic_id_length_minus 1 должно быть в районе от 0 до 15 включительно. При невыполнении данного условия значение sps_sub_pic_id+_ength_minus 1 предполагается равным Ceil(Log2(Max(2, sps_num_sub_pic_in_pic_minusl+1))) - 1.
[0212] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_id[i] обозначает идентификатор субизображения i. Длина элемента синтаксиса sps_sub_pic_id[i] составляет sps_sub_pic_id_length_minus 1+1 битов. При невыполнении данного условия значение sps_sub_pic_id[i] предполагается равным i в районе от 0 до sps_num_sub_pic_in_pic_minus 1 включительно для каждой i.
[0213] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_offset_х_in_luma_samples[i] обозначает горизонтальное смещение (в единицах отсчетов яркости) верхнего левого углового отсчета яркости субизображения i относительно верхнего левого углового отсчета яркости составного изображения. При невыполнении данного условия значение sps_sub_pic_offset_х_in_luma_samples[i] предполагается равным 0. Переменная sps_sub_pic_offset_x_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0214] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_offset_у_in_luma_samples[i] обозначает вертикальное смещение (в единицах отсчетов яркости) верхнего левого углового отсчета яркости субизображения i относительно верхнего левого углового отсчета яркости составного изображения. При невыполнении данного условия значение sps_sub_pic_offset_у_in_luma_samples[i] предполагается равным 0. Переменная sps_sub_pic_offset_y_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0215] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_width_in_luma_samples[i] обозначает ширину субизображения i в единицах отсчетов яркости. Переменная sps_sub_pic_width_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0216] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_height_in_luma_samples[i] обозначает высоту субизображения i в единицах отсчетов яркости. Переменная sps_sub_pic_height_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0217] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps num output subpic sets minus 1 обозначает количество наборов выходных субизображений в кодированной видеопоследовательности со ссылкой на SPS. При невыполнении данного условия значение sps num output layer sets minus 1 предполагается равным 0.
[0218] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_num_output_subpic_minus 1 [i] обозначает количество субизображений в наборе выходных субизображений i.
[0219] Согласно иллюстративным вариантам осуществления (таблица 3), переменная sps_sub_pic_id_oss [i][j] обозначает идентификатор субизображения выходного субизображения j субизображения i. Длина элемента синтаксиса sps_sub_pic_id_oss [i][j] составляет sps_sub_pic_id_length_minus 1+1 битов. При невыполнении данного условия значение sps_sub_pic_id_oss [i][j] предполагается равным] для кажого i в районе от 0 до sps_num_output_sub_pic_minus 1 [i] включительно.
[0220] Для PPS можно рассмотреть таблицу 4:
[0221] Согласно иллюстративным вариантам осуществления (таблица 4), переменная sub_pics_updated_flag равная единице обозначает обновление данных компоновки субизображений элементами синтаксиса, указывающими на данные компоновки обновленных субизображений в PPS. Переменная sub_pic_supdated_flag равная 0 обозначает, что данные компоновки субизображений не обновляются.
[0222] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic id_present_flag, равная единице означает, что переменная pps_sub_pic_id [i] присутствует в PPS. Переменная sps_sub_pic_id_present_flag равная нулю означает, что pps_sub_pic_id[i] отсутствует в PPS.
[0223] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_id_length_minus 1 плюс 1 обозначает количество битов, применяемых для отображения элемента синтаксиса pps_sub_pic_id[i][j]. Значение of pps_sub_pic_id_length_minu  1 должно быть в районе от 0 до 15 включительно. При невыполнении данного условия значение pps_sub_pic_id_length_minusl предполагается равным Ceil(Log2(Мах(2, pps_num_sub_pic_in_pic_minusl+1))) - 1.
[0224] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_id[i] обозначает идентификатор субизображения i. Длина элемента синтаксиса pps_sub_pic_id[i] составляет sps_sub_pic_id_length_minusl+1 битов. При невыполнении данного условия значение pps_sub_pic_id[i] предполагается равным i в районе от 0 до pps_num_sub_pic_in_pic_minusl включительно.
[0225] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_offset_х_in_luma_samples[i] обозначает горизонтальное смещение (в единицах отсчетов яркости) верхнего левого углового отсчета яркости субизображения i относительно верхнего левого углового отсчета яркости составного изображения. При невыполнении данного условия значение pps_sub_pic_offset_х_in_luma_samples[i] предполагается равным 0. Переменная pps_sub_pic_offset_х_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0226] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_offset_y_in_luma_samples[i] обозначает вертикальное смещение (в единицах отсчетов яркости) верхнего левого углового отсчета яркости субизображения i относительно верхнего левого углового отсчета яркости составного изображения. При невыполнении данного условия значение sps sub_pic_offset_у in_luma_samples[i] предполагается равным 0. Переменная sps_sub_pic_offset_y_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0227] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_width_in_luma_samples[i] обозначает ширину субизображения i в единицах отсчетов яркости. Переменная pps_sub_pic_width_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0228] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_height_in_luma_samples[i] обозначает высоту субизображения i в единицах отсчетов яркости. Переменная pps_sub_pic_height_in_luma_samples[i] должна быть целым числом, кратным размеру блока дерева кодирования.
[0229] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_num_output_subpic_minus [i] обозначает количество наборов выходных субизображений в изображениях со ссылкой на PPS. При невыполнении данного условия значение pps_num_output_layer_sets_minus 1 предполагается равным 0.
[0230] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_num_outpu_ subpic_minus 1 [i] обозначает количество субизображений набора выходных субизображений i.
[0231] Согласно иллюстративным вариантам осуществления (таблица 4), переменная pps_sub_pic_id_oss [i][j] обозначает идентификатор субизображения выходного субизображения j субизображения i. Длина элемента синтаксиса pps_sub_pic_id_oss [i][j] составляет pps_sub_pic_id_length_minusl+1 битов. При невыполнении данного условия значение pps_sub_pic_id_oss [i]fj] предполагается равным j для каждого i в районе от 0 до pps_num_output_subpic_minus l[i] включительно.
[0232] Вышеописанные способы сигнализации параметров адаптивного разрешения могут быть реализованы в виде компьютерного программного обеспечения, использующего машиночитаемые инструкции и физически хранящегося на одном или более машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система (700), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0233] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.
[0234] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0235] Компоненты компьютерной системы (700), показанные на фиг. 7, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (700).
[0236] Компьютерная система (700) может включать в себя некоторые устройства ввода интерфейса человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0237] Устройства входного человеческого интерфейса могут включать в себя одно или более устройств (по одному из изображенных): клавиатуру (701), мышь (702), сенсорную панель (703), сенсорный экран (710), джойстик (705), микрофон (706), сканер (707), камеру (708).
[0238] Компьютерная система (700) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (710) или джойстика (705), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (709), наушники (не показаны)), устройства визуального вывода (например, экраны (710), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).
[0239] Компьютерная система (700) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (720) с носителями CD/DVD (721) и т.п., карты флэш-памяти (720), сменный жесткий диск или твердотельный диск (723), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0240] Специалисты в данной области техники также должны понимать, что термин "машиночитаемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0241] Компьютерная система (700) также может включать в себя интерфейс к одной или более сетям связи. Сети связи могут быть, например, беспроводными, проводными, оптическими. Сети связи могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей связи включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (749) (например, USB-порты компьютерной системы (700)); другие обычно встраиваются в ядро компьютерной системы (700) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (700) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсах.
[0242] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (740) компьютерной системы (700).
[0243] Ядро (740) может включать в себя один или более центральных процессоров (CPU) (741), графические процессоры (GPU) (742), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Areas) (743), аппаратные ускорители (744) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (745), оперативной памятью (746), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п. (747), могут соединяться посредством системной шины (748). В некоторых компьютерных системах системная шина (748) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине ядра (748), либо через периферийную шину (749). Архитектуры периферийной шины включают в себя PCI, USB и т.п.
[0244] CPU (741), GPU (742), FPGA (743) и ускорители (744) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (745) или RAM (746). Переходные данные также могут храниться в RAM (746), тогда как постоянные данные могут храниться, например, во внутреннем хранилище данных большой емкости (747). Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (741), GPU (742), хранилищем данных большой емкости (747), ROM (745), RAM (746) и т.п.
[0245] На машиночитаемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0246] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (700), и, в частности, ядро (740) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (740), носящим долговременный характер, например, внутренним хранилищем данных большой емкости (747) или ROM (745). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (740). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (740) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (746), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (744)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на машиночитаемые носители может охватывать схему (например, интегральную схему (1С, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
[0247] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.