СПОСОБ ИНДИКАЦИИ ЧИСЛА ПОДУРОВНЕЙ В МНОГОУРОВНЕВОМ ВИДЕОПОТОКЕ
METHOD FOR INDICATING THE NUMBER OF SUBLEVELS IN A MULTILEVEL VIDEO STREAM

Перекрестные ссылки на родственные заявки
[0001] Настоящее изобретение испрашивает приоритет патентной заявки США №16/994,004, поданной 14 августа 2020 г., которая, согласно § 119 раздела 35 Свода законов США, испрашивает приоритет предварительной заявки США №63/000,936, поданной 27 марта 2020 г., в Бюро по регистрации патентов и товарных знаков США. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.
Область техники
[0002] Раскрытое изобретение относится к кодированию и декодированию видео, а более конкретно - к извлечению выходного уровня в кодированном видеопотоке с несколькими уровнями.
Уровень техники
[0003] Кодирование и декодирование видео с использованием предсказания между изображениями с компенсацией движения известно уже несколько десятилетий. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920 × 1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую «частотой кадров»), например, 60 изображений в секунду, или 60 Гц. К несжатым видеоданным предъявляются серьезные требования в отношении битовой скорости передачи. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с.Час такого видео требует объема памяти более 600 ГБ.
[0004] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Для этого может применяться сжатие как без потерь, так и с потерями. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. Достижимая степень сжатия может отражать, что более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.
[0005] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из них представлены ниже.
[0006] Исторически видеокодеры и видеодекодеры были предназначены для работы с заданным размером изображения, который в большинстве случаев для кодированной видеопоследовательности (CVS, Coded Video Sequence), группы изображений (GOP, Group of Pictures) или аналогичного временного кадра с несколькими изображениями был определен и оставался постоянным. Например, что касается MPEG-2, известно, что конструкции системы изменяют горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов как активность сцены, но только для 1-изображений, что обычно является обычным для GOP. Передискретизация опорных изображений для использования различных разрешений в рамках CVS известна, например, из стандарта ITU-T Н.263, приложение Р. Однако в этом случае размер изображения не изменяется, передискретизация выполняется только для опорных изображений, в результате этого потенциально используются только части изображения (в случае понижающей дискретизации) или только части захватываемой сцены (в случае повышающей дискретизации). Кроме того, стандарт Н.263, приложение Q допускает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повышения или понижения. Опять же, размер изображения не изменяется. Размер макроблока фиксирован в Н.263, и поэтому его не требуется передавать.
[0007] Изменение размера изображения в предсказанных изображениях стало господствующей тенденцией в современных способах кодирования видео. Например, VP9 предоставляет возможность передискретизации опорных изображений и изменения разрешения для всего изображения. Аналогично, некоторые решения для VVC (включая, например, решение под авторством Hendry и др., «Об адаптивном изменении разрешения (ARC) для VVC», документ организации Joint Video Team JVET-M0135-vl, от 9-19 января 2019 г., целиком включенный в настоящий документ) предоставляют возможность передискретизации целых опорных изображений с другим, более высоким или более низким, разрешением. В этом документе предлагается кодировать различные варианты разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.
Сущность изобретения
[0008] Раскрыты методы сигнализации адаптивного размера изображения в битовом потоке видео.
[0009] Способ может включать в себя определение максимального числа временных подуровней, разрешенного в кодированной видеопоследовательности, ссылающейся на набор параметров; и декодирование кодированной видеопоследовательности на основе идентифицированного максимального числа временных подуровней, разрешенного в кодированной видеопоследовательности, ссылающейся на набор параметров.
[0010] Устройство может включать в себя по меньшей мере один модуль памяти, сконфигурированный для хранения компьютерного программного кода; и, по меньшей мере, один процессор, сконфигурированный для считывания программного кода и работающий под управлением компьютерного программного кода, при этом программный код может включать в себя идентификационный код, сконфигурированный таким образом, чтобы процессор идентифицировал максимальное число временных подуровней, разрешенное в кодированной видеопоследовательности, ссылающейся на набор параметров; и код декодирования, сконфигурированный таким образом, чтобы процессор декодировал кодированную видеопоследовательность на основе идентифицированного максимального числа временных подуровней, разрешенного в кодированной видеопоследовательности, ссылающейся на набор параметров.
[0011] Компьютерно-считываемый носитель может содержать инструкции, которые при выполнении одним или более процессорами устройства приводят к тому, что один или более процессоров идентифицируют максимальное число временных подуровней, разрешенное в кодированной видеопоследовательности, ссылающейся на набор параметров; и декодируют кодированную видеопоследовательность на основе идентифицированного максимального числа временных подуровней, разрешенного в кодированной видеопоследовательности, ссылающейся на набор параметров.
Краткое описание чертежей
[0012] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:
[0013] фиг. 1 - схематическое представление упрощенной блок-схемы системы связи согласно варианту осуществления;
[0014] фиг. 2 - схематическое представление упрощенной блок-схемы системы связи согласно варианту осуществления;
[0015] фиг. 3 - схематическое представление упрощенной блок-схемы декодера согласно варианту осуществления;
[0016] фиг. 4 - схематическое представление упрощенной блок-схемы кодера согласно варианту осуществления;
[0017] фиг. 5 - схематическое представление опций сигнализации параметров ARC согласно уровню техники или варианту осуществления, как показано;
[0018] фиг. 6 - пример таблицы синтаксиса согласно варианту осуществления;
[0019] фиг. 7 - схематическое представление компьютерной системы согласно варианту осуществления;
[0020] фиг. 8 - пример структуры предсказания для масштабируемости с адаптивным изменением разрешения;
[0021] фиг. 9 - пример таблицы синтаксиса согласно варианту осуществления;
[0022] фиг. 10 - схематическое представление упрощенной блок-схемы анализа и декодирования цикла РОС согласно блоку доступа и порядковому номеру блока доступа;
[0023] фиг. 11 - схематическое представление структуры битового потока видео, содержащего многоуровневые субизображения;
[0024] фиг. 12 - схематическое представление отображения субизображения с повышенным разрешением;
[0025] фиг. 13 - схематическое представление процесса декодирования и отображения битового потока видео, содержащего многоуровневые субизображения;
[0026] фиг. 14 - схематическое представление отображения видео 360 градусов с уровнем улучшения субизображения;
[0027] фиг. 15 - пример информации о структуре субизображений и соответствующей структуре уровней и предсказания изображений;
[0028] фиг. 16 - пример информации о структуре субизображений и соответствующей структуре уровней и предсказания изображений с пространственной масштабируемостью локальной области;
[0029] фиг. 17 - пример таблицы синтаксиса для структуры субизображений;
[0030] фиг. 18 - пример таблицы синтаксиса сообщения SEI для информации о структуре субизображений;
[0031] фиг. 19 - пример таблицы синтаксиса для указания выходных уровней и информации профилей/ярусов/уровней для каждого набора выходных уровней;
[0032] фиг. 20 - пример таблицы синтаксиса для указания режима выходного уровня для каждого набора выходных уровней;
[0033] фиг. 21 - пример таблицы синтаксиса для указания текущего субизображения каждого уровня для каждого набора выходных уровней;
[0034] фиг. 22 - пример RBSP набора параметров видео;
[0035] фиг. 23 - пример RBSP набора параметров последовательности.
Подробное описание
[0036] Когда изображения кодируются в битовый поток, который включает в себя несколько уровней с разным качеством, битовый поток может иметь элементы синтаксиса, которые определяют, какие уровни могут быть выведены на стороне декодера. Набор подлежащих выводу уровней определяется как набор выходных уровней. В самом последнем видеокодеке, поддерживающем несколько уровней и масштабируемость, один или более наборов выходных уровней передаются в наборе параметров видео. Эти элементы синтаксиса, определяющие наборы выходных уровней и их зависимости, параметры профилей/ярусов/уровней и гипотетической эталонной модели декодера, должны эффективно передаваться в наборе параметров.
[0037] На фиг. 1 показана упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего изобретения. Система (100) может включать в себя по меньшей мере два оконечных устройства (110 и 120), соединенных друг с другом через сеть (150). В случае однонаправленной передачи данных первое оконечное устройство (110) может кодировать видеоданные в локальном местоположении для передачи на другое оконечное устройство (120) через сеть (150). Второе оконечное устройство (120) может принимать кодированные видеоданные другого оконечного устройства из сети (150), декодировать кодированные данные и отображать реконструированные видеоданные. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0038] На фиг. 1 показана вторая пара оконечных устройств (130, 140), предназначенных для поддержки двунаправленной передачи кодированных видеоданных, которая может осуществляться, например, в процессе видеоконференцсвязи. В случае двунаправленной передачи данных каждое оконечное устройство (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи на другое оконечное устройство через сеть (150). Каждое оконечное устройство (130, 140) также может принимать кодированные видеоданные, переданные другим оконечным устройством, может декодировать кодированные данные и может отображать реконструированные видеоданные на локальном устройстве отображения.
[0039] На фиг. 1, оконечные устройства (110-140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0040] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе на CD-диске, DVD-диске, карте памяти и т.п.
[0041] Система потоковой передачи может включать в себя подсистему (213) захвата, которая может включать в себя источник (201) видеосигнала, например, цифровую камеру, создающую, например, поток (202) отсчетов видео, не подвергнутых сжатию. Этот поток (202) отсчетов, показанный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с битовыми потоками кодированного видео, может быть обработан кодером (203), подключенным к камере (201). Кодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Битовый поток (204) кодированного видео, показанный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на потоковом сервере (205) для использования в будущем. Один или более клиентов (206, 208) потоковой передачи могут осуществлять доступ к потоковому серверу (205) для извлечения копий (207, 209) битового потока (204) кодированного видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию битового потока (207) кодированного видео и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или на другом устройстве визуализации (не показано). В некоторых системах потоковой передачи битовые потоки видео (204, 207, 209) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-T Recommendation Н.265. Разрабатывается стандарт кодирования видео под официальным названием «Универсальное кодирование видео» (Versatile Video Coding) или VVC. Раскрытое изобретение может использоваться в контексте VVC.
[0042] Фиг. 3 может быть функциональной блок-схемой видеодекодера (210) согласно варианту осуществления настоящего изобретения.
[0043] Приемник (310) может принимать одну или более видеопоследовательностей кодека для декодирования декодером (210); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие им используемые объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети буферная память (315) может быть подключена между приемником (310) и энтропийным декодером / анализатором (320) (далее «анализатором»). Если приемник (310) принимает данные из запоминающего устройства/устройства пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буфер (315) может не использоваться или иметь небольшой размер. Для использования в пакетных сетях наилучшей попытки, например, в Интернете, может потребоваться буферная память (315), которая может быть сравнительно большой и может иметь преимущественно адаптивный размер.
[0044] Видеодекодер (210) может включать в себя анализатор (320) для реконструкции символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (210), и возможно информацию для управления устройством визуализации, например, дисплеем (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг.2. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplementary Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может выполняться согласно методу или стандарту видеокодирования и может следовать принципам, хорошо известным специалисту в этой области техники, включая кодирование с переменной длиной, кодирование по методу Хаффмана, арифметическое кодирование с учетом или без учета контекстной зависимости и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, блоки кодирования (CU, Coding Units), блоки (blocks), блоки преобразования (TU, Transform Units), блоки предсказания (PU, Prediction Units) и т.д. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0045] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буфера (315), для создания символов (321).
[0046] Для реконструкции символов (321) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например, интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты в дальнейшем не показан.
[0047] Помимо ранее упомянутых функциональных блоков, декодер (210) может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.
[0048] Первым модулем является модуль (351) масштабирования / обратного преобразования. Модуль (351) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Этот модуль может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).
[0049] В ряде случаев, выходные отсчеты блока (351) масштабирования / обратного преобразования могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (352) предсказания внутри изображения. В ряде случаев модуль (352) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из текущего (частично реконструированного) изображения (356). Агрегатор (355) в ряде случаев добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (351) масштабирования / обратного преобразования.
[0050] В других случаях выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к блоку, кодированному с внешним предсказанием, возможно, с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может осуществлять доступ к памяти (357) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования / обратного преобразования (в этом случае именуемому «остаточными отсчетами» или «остаточным сигналом») для генерации информации выходных отсчетов. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения, в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчетов, механизмы предсказания векторов движения и т.д.
[0051] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле (356) контурного фильтра. Технологии сжатия видео могут включать в себя методы деблокирующего фильтра под управлением параметров, включенных в битовый поток кодированного видео, и становиться доступными модулю (356) контурного фильтра в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0052] Модуль (356) контурного фильтра может выдавать поток отсчетов, который может поступать на устройство (212) визуализации, а также сохраняться в памяти (356) опорных изображений для использования в будущем предсказании между изображениями.
[0053] Некоторые кодированные изображения, будучи полностью реконструированными, могут использоваться в качестве опорных изображений для будущего предсказания. Когда кодированное изображение полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), буфер (356) текущего изображения может становиться частью буфера (357) опорных изображений, и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.
[0054] Видеодекодер 320 может выполнять операции декодирования в соответствии с предварительно определенным методом сжатия видеоданных, которая может документироваться в стандарте, таком как рекомендация ITU-T Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемым методом или стандартом сжатия видеоданных, в том смысле, что она придерживается синтаксиса метода или стандарта сжатия видеоданных, заданным в документе или стандарте по технологии сжатия видеоданных и, в особенности, в профильных документах этих стандартов. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.
[0055] Согласно вариантам осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут предоставляться в виде, например, временных, пространственных уровней или уровней улучшения SNR, избыточных слайсов, избыточных изображений, кодов с прямым исправлением ошибок и т.д.
[0056] Фиг. 4 может быть функциональной блок-схемой видеокодера (203) согласно варианту осуществления настоящего изобретения.
[0057] Кодер (203) может принимать отсчеты видео из источника (201) видео (который не входит в состав кодера), который может захватывать видеоизображение(я), подлежащее(ие) кодированию кодером (203).
[0058] Источник (201) видео может обеспечивать исходную видеопоследовательность, подлежащую кодированию кодером (203), в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например, 8 битов, 10 битов, 12 битов и т.д.), любого цветового пространства (например, ВТ.601 Y CrCB, RGB и т.д.), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (201) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником (203) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Непосредственно изображения могут быть организованы как пространственный массив пикселей, каждый из которых может содержать одну или более выборок, в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. В последующем описании делается акцент на выборки.
[0059] Согласно варианту осуществления, кодер (203) может кодировать и сжимать изображения видеопоследовательности исхточника в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально подключен к этим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать в себя параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения т.д.), размер изображения, схему групп изображений (GOP, Group Of Pictures), максимальную зону поиска вектора движения и т.д. Специалист в этой области техники может легко идентифицировать другие функции контроллера (450) в той мере, в какой они могут относиться к видеокодеру (203), оптимизированному для конструкции определенной системы.
[0060] Некоторые видеокодеры работают в режиме, который специалисту в этой области техники известен как «петля кодирования». В качестве очень упрощенного описания петля кодирования может включать в себя компонент кодирования кодера (430) (далее «кодера источника») (отвечающего за создание символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)), и (локального) декодера (433), встроенного в кодер (203), который реконструирует символы для создания данных отсчетов, которые (удаленный) декодер также должен создавать (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Этот реконструированный поток отсчетов поступает в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое буфера опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, как «видел» бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) хорошо известен специалисту в этой области техники.
[0061] «Локальный» декодер (433) может действовать таким же образом, как «удаленный» декодер (210), подробно описанный выше со ссылкой на фиг. 3. Однако, опять же, согласно фиг. 3, поскольку символы доступны, и кодирование/декодирование символов в кодированной видеопоследовательности энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включающие в себя канал (312), приемник (310), буфер (315) и анализатор (320), могут быть не полностью реализованы в локальном декодере (433).
[0062] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодирования. Только в некоторых областях требуется более детальное описание, которое приведено ниже.
[0063] В ходе работы кодер (430) источника может осуществлять кодирование с предсказанием и компенсацией движения, при котором входной кадр кодируется с предсказанием на основании одного или более ранее кодированных кадров из видеопоследовательности, указанных как «опорные кадры». Таким образом, машина (432) кодирования кодирует различия между пиксельными блоками входного кадра и пиксельными блоками опорного кадра(ов), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входной кадр.
[0064] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть указаны как опорные кадры основе символов, созданных исходным кодером (430). Операции машины (432) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг.4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных кадрах, и может предписывать сохранение реконструированных опорных кадров в кэш-памяти (434) опорных изображений. Таким образом, кодер (203) может локально сохранять копии реконструированных опорных кадров, имеющих такое же содержимое, как реконструированные опорные кадры, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).
[0065] Предсказатель (435) может осуществлять поиски предсказания для машины (432) кодирования. Таким образом, для нового кадра, подлежащего кодированию, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе «блоки отсчетов  пиксельные блоки» для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (434) опорных изображений.
[0066] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0067] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, известным специалисту в этой области техники, например кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.
[0068] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (445), для подготовки к передаче через канал (460) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0069] Контроллер (450) может управлять работой кодера (203). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы кадров:
[0070] Внутренне кодированное (интра-) изображение (I-изображение) может представлять собой изображение, которое может кодироваться и декодироваться без использования любого другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера (IDR, Independent Decoder Refresh). Специалисту в данной области техники известны разновидности 1-изображений и их соответствующие варианты применения и особенности.
[0071] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0072] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.
[0073] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Блоки пикселей Р-изображений могут кодироваться без предсказания, с использованием пространственного предсказания или временного предсказания со ссылкой на одно предварительно кодированное ссылочное изображение. Блоки В-изображений могут кодироваться без предсказания посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0074] Видеокодер (203) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту кодирования видео, например, ITU-T Rec. Н.265. В своей работе видеокодер (203) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом кодирования видео.
[0075] Согласно варианту осуществления, передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут включать в свой состав временные уровни/пространственные уровни/уровни улучшения SNR, другие виды избыточных данных, такие как избыточные изображения и слайсы, сообщения информации дополнительного улучшения (SEI, Supplementary Enhancement Information), фрагменты набора параметров применимости визуальной информации (VUI, Visual Usability Information) и т.д.
[0076] Перед более подробным описанием определенных аспектов раскрытого изобретения необходимо ввести несколько терминов, на которые будут выполняться ссылки в оставшейся части этого описания.
[0077] Далее субизображение относится, в некоторых случаях, к прямоугольной компоновке отсчетов, блоков, макроблоков, блоков кодирования или подобных объектов, которые семантически сгруппированы и которые могут независимо кодироваться с измененным разрешением. Одно или более субизображений могут формировать изображение. Одно или более кодированных субизображений могут формировать кодированное изображение. Одно или более субизображений может быть объединено в изображение, и одно или более субизображений может быть извлечено из изображения. В определенных средах одно или более кодированных субизображений может быть объединено в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или в других определенных случаях одно или более кодированных субизображений может быть извлечено из кодированного изображения в сжатой области.
[0078] Далее, адаптивное изменение разрешения (ARC, Adaptive Resolution Change) относится к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. Далее параметры ARC относятся к управляющей информации, требующейся для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтров, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д.
[0079] Описание, приведенное выше, ориентировано на кодировании и декодировании одиночного семантически независимого кодированного видеоизображения. Перед описанием реализации кодирования/декодирования множества субизображений с независимыми параметрами ARC и подразумеваемого дополнительного усложнения рабочего процесса должны быть описаны варианты сигнализации параметров ARC.
[0080] На фиг. 5 показано несколько новых опций сигнализации параметров ARC. Необходимо отметить, что каждая из опций имеет определенные преимущества и недостатки с точки зрения эффективности кодирования, сложности и архитектуры. В стандарте или в технологии кодирования видео для сигнализации параметров ARC может быть выбрана одна или более этих опций или опций, известных из предшествующего уровня техники. Параметры могут не быть взаимоисключающими и предположительно могут меняться местами в зависимости от требований применения, используемых стандартов или выбора кодера.
[0081] Классы параметров ARC могут включать:
[0082] - коэффициенты повышающей и/или понижающей дискретизации, отдельные или объединенные в измерениях X и Y;
[0083] - коэффициенты повышающей и/или понижающей дискретизации с добавлением временного измерения, указывающего увеличение/уменьшение масштаба с постоянной скоростью для заданного количества изображений;
[0084] - любой из указанных выше двух пунктов может инициировать кодирование одного или более предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициенты);
[0085] - разрешение, по измерению X или Y, в единицах отсчетов, блоков, макроблоков, CU или в любой другой подходящей степени детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, объединенного или отдельного. Если имеется более одного разрешения (например, одно для входного изображения, и одно для опорного изображения), в некоторых случаях один набор значений может быть выведен из другого набора значений. Управление этим может выполняться, например, с помощью флагов. Более подробный пример см. ниже.
[0086] - Координаты «деформирования», подобные используемым в приложении Р стандарта Н.263, опять же с подходящей степенью детализации, как описано выше. В приложении Р стандарта Н.263 определяется один эффективный способ кодирования таких координат деформирования, но, возможно, также разрабатываются другие, потенциально более эффективные способы. Например, реверсивное кодирование с переменной длиной, в стиле Хаффмана, координат деформирования согласно приложению Р может быть заменено двоичным кодированием с подходящей длиной, где длина двоичного кодового слова может быть, например, определена на основе максимального размера изображения, возможно умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть «деформирование» за пределами границ максимального размера изображения.
[0087] - Параметры фильтров повышающей или понижающей дискретизации. В самом простом случае может использоваться только один фильтр для повышающей и/или понижающей дискретизации. Однако в некоторых случаях предпочтительнее может быть обеспечение большей гибкости в конструкции фильтра, для этого может потребоваться сигнализация параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть неявно выбран с помощью соотношений повышающей и/или понижающей дискретизации в соответствии с которыми, в свою очередь, выполняется сигнализация в соответствии с любым из упомянутых выше механизмов и т.д.
[0088] В дальнейшем описании предполагается кодирование конечного набора коэффициентов повышающей и/или понижающей дискретизации (тот же коэффициент, который должен использоваться как в измерении X, так и в измерении Y), указанных с помощью кодового слова. Для этого кодового слова преимущественно используется кодирование с переменной длиной, например, с использованием экспоненциального кода Голомба, общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как Н.264 и Н.265. Одно подходящее сопоставление значений коэффициентам повышающей и/или понижающей дискретизации может, например, соответствовать следующей таблице:
[0089] Многие аналогичные отображения могут быть разработаны в соответствии с требованиями применения и возможностями механизмов увеличения и уменьшения дискретизации, доступных в технологии или стандарте сжатия видео. Эта таблица может содержать большее количество значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляют интерес за пределами самих механизмов обработки видео (прежде всего кодера и декодера), например, с помощью MANE. Необходимо отметить, что для (предположительно) наиболее распространенного случая, когда изменение разрешения не требуется, можно выбрать короткий экспоненциальный код Голомба; в таблице выше это только один бит.Это может иметь преимущество по эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.
[0090] Количество записей в таблице, а также их семантика могут быть полностью или частично конфигурируемыми. Например, основная структура таблицы может быть передана в наборе параметров «высокого» уровня, таком как последовательность или набор параметров декодера. В альтернативном варианте или дополнительно одна или более таких таблиц могут быть определены в методе или стандарте видеокодирования и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.
[0091] Ниже описывается, как коэффициент повышающей и/или понижающей дискретизации (информация ARC), кодированный согласно описанию выше, может быть включен в синтаксис метода или стандарта кодирования видео. Подобные соображения могут применяться к одному или более кодовым словам, управляющим фильтрами повышающей и/или понижающей дискретизации. См. ниже обсуждение случая, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.
[0092] Приложение Р стандарта Н.263 включает в себя информацию (502) ARC в форме четырех координат деформирования в заголовке (501) изображения, в частности, в расширении заголовка Н.263 PLUSPTYPE (503). Это может быть разумным выбором конструкции, когда а) имеется доступный заголовок изображения и б) ожидаются частые изменения информации ARC. Однако объем данных при использовании сигнализации в стиле Н.263 может быть довольно большим, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.
[0093] JVCET-M135-vl, процитированный выше, включает в себя ссылочную информацию (505) ARC (индекс), находящуюся в наборе (504) параметров изображения, индексацию таблицы (506), включая целевые разрешения, которая, в свою очередь, находится внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности может, по устным заявлениям авторов, быть оправдано использованием SPS в качестве точки согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506), от изображения к изображению путем обращения к соответствующему набору (504) параметров изображения.
[0094] Согласно фиг. 5 могут существовать следующие дополнительные опции для передачи информации ARC в битовом потоке видео. Каждая из этих опций имеет определенные преимущества по сравнению с существующим уровнем техники, как описано выше. Эти опции могут быть одновременно представлены в одном и том же методе или стандарте кодирования видео.
[0095] Согласно варианту осуществления, информация (509) ARC, такая как коэффициент передискретизации (масштабирования), может быть представлен в заголовке слайса, в заголовке GOB, в заголовке тайла или в заголовке группы тайлов (далее «заголовок группы тайлов) (508). Этого может быть достаточно для информации ARC небольшого размера, такой как одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из нескольких битов, например, как показано выше. Наличие информации ARC в заголовке группы тайлов само по себе является дополнительным преимуществом, поскольку информация ARC может применяться к тому или иному субизображению, представленному, например, этой группой тайлов, а не ко всему изображению. См. также ниже. Кроме того, даже если метод или стандарт сжатия видео предусматривает адаптивное изменение разрешения только всего изображения (в отличие, например, от адаптивных изменений разрешения на основе группы тайлов), размещение информации ARC в заголовке группы тайлов вместо помещения ее в заголовок изображения в стиле Н.263 имеет определенные преимущества с точки зрения устойчивости к ошибкам.
[0096] Согласно этому же или другому варианту осуществления, сама информация (512) ARC может быть представлена в соответствующем наборе (511) параметров, например в наборе параметров изображения, наборе параметров заголовков, наборе параметров тайлов, наборе параметров адаптации и т.д. (показан набор параметров адаптации). Объем этого набора параметров не может быть больше, чем изображение, например группа тайлов. Использование информации ARC в неявном виде осуществляется путем активации соответствующего набора параметров. Например, когда в методе или стандарте кодирования видео рассматривается только ARC на основе изображения, может использоваться набор параметров изображения, либо эквивалент.
[0097] Согласно этому же или другому варианту осуществления, ссылочная информация (513) ARC может быть представлена в заголовке (514) группы тайлов или в аналогичной структуре данных. Эта ссылочная информация (513) может относиться к подмножеству информации (515) ARC, доступной в наборе (516) параметров с объемом, выходящим за рамки одного изображения, например, набор параметров последовательности или набор параметров декодера.
[0098] Дополнительный уровень непрямого обращения, подразумевающего активацию PPS из заголовка группы тайлов, PPS, SPS, как это используется в JVET-M0135-vl, является ненужным, поскольку наборы параметров изображения, как и наборы параметров последовательности, могут (и имеются в некоторых стандарты, таких как RFC3984) использоваться для согласования возможностей или уведомлений. Однако, если информация ARC должна быть применена к субизображению, представленному, например, также группами тайлов, то набор параметров с областью активации, ограниченной группой тайлов, такой как набор параметров адаптации или набор параметров заголовков, может быть наилучшим выбором. Кроме того, если информация ARC имеет очень маленький размер - например, содержит информацию управления фильтрами, такую как различные коэффициенты фильтров - тогда параметр может быть лучшим выбором, чем использование заголовка (508) непосредственно с точки зрения эффективности кодирования, поскольку эти установки могут быть повторно использованы в будущих изображениях или субизображениях с помощью ссылки на этот же набор параметров.
[0099] При использовании набора параметров последовательности или другого набора параметров более высокого уровня с областью действия, охватывающей несколько изображений, могут применяться определенные соображения:
[0100] 1. Набор параметров для сохранения таблицы (516) с информацией ARC в некоторых случаях может быть набором параметров последовательности, но в других случаях - предпочтительно набором параметров декодера. Набор параметров декодера может иметь область активации нескольких CVS, а именно кодированного видеопотока - то есть, всех битов кодированного видео от начала до прерывания сеанса. Такой объем может быть более подходящим, потому что возможные коэффициенты ARC могут быть функцией декодера, возможно реализованной аппаратными средствами, а аппаратные функции, как правило, не изменяются при кодировании видеопоследовательности (которая, по меньшей мере в некоторых развлекательных системах, представляет собой группу изображений длительностью в одну секунду или менее). Тем не менее, включение таблицы в набор параметров последовательности в явном виде включено в описанные здесь варианты размещения, в частности вместе с пунктом 2 ниже.
[0101] 2. Ссылочная информация (513) ARC может быть предпочтительно помещена непосредственно в заголовок (514) изображения/тайла слайса/GOB/rpynnbi тайлов (далее «заголовок группы тайлов»), а не в набор параметров изображения, как в JVCET-M0135-vl. Причина заключается в следующем: когда кодировщику требуется изменить одно значение в наборе параметров изображения, например ссылочную информацию ARC, он должен создать новый PPS и ссылаться на этот новый PPS. Предположим, что изменяется только ссылочная информация ARC, а другая информация, например информация матрицы квантования в PPS, сохраняется. Такая информация может иметь значительный размер, и ее необходимо будет повторно передать для формирования нового PPS. Поскольку в качестве ссылочной информации ARC может использоваться одно кодовое слово, например индекс в таблице (513), и оно может быть единственным изменяемым значением, было бы излишне и неэкономно повторно передавать всю, например, информацию матрицы квантования. В учетом этого, с точки зрения эффективности кодирования может быть значительно лучше избежать непрямого обращения через PPS, как предлагается в JVET-M0135-vl. Таким же образом, ввод ссылочной информации ARC в PPS имеет дополнительный недостаток, заключающийся в том, что информация ARC, на которую указывает ссылочная информация ARC (513), обязательно должна применяться ко всему изображению, а не к тому или иному субизображению, поскольку набор параметров изображения активируется для всего изображения.
[0102] Согласно этому же или другому варианту осуществления, сигнализация параметров ARC может выполняться согласно подробному примеру, как показано на фиг. 6. На фиг. 6 показаны синтаксические диаграммы в представлении, используемом в стандартах кодирования видео по меньшей мере с 1993 г. Обозначения таких синтаксических диаграмм примерно соответствуют программированию в С-стиле. «Жирные» линии указывают элементы синтаксиса в битовом потоке, а «нежирные» линии, как правило, указывают поток управления или установку переменных.
[0103] Заголовок (601) группы тайлов в качестве примера синтаксической структуры заголовка, применяемой к (возможно, прямоугольной) части изображения, может при определенных условиях содержать кодированный с помощью экспоненциального кода Голомба элемент синтаксиса переменной длины dec_pic_size_idx (602) (показан жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть ограничено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что этот флаг представлен в битовом потоке в той точке, где он встречается на синтаксической диаграмме. Информация о том, используется ли адаптивное разрешение для этого изображения или его частей, может быть передана в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это передается в наборе параметров последовательности, как показано ниже.
[0104] На фиг. 6 также показана выборка из набора (610) параметров последовательности. Первый показанный элемент синтаксиса - adaptive_pic_resolution_change_flag (611). Этот флаг может указывать на использование адаптивного разрешения, для чего, в свою очередь, может требоваться определенная управляющая информация. В примере указание такой управляющей информации определяется значением этого флага на основе оператора if() [если ()] в наборе (612) параметров и в заголовке (601) группы тайлов.
[0105] Когда используется адаптивное разрешение, в этом примере выходное разрешение кодируется в единицах отсчетов (613). Числовое значение (613) относится к элементу синтаксиса output_pic_width_in_luma_samples, и к элементу синтаксиса output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте в методе или стандарте кодирования видео могут быть определены определенные ограничения для любого значения. Например, определение уровня может ограничивать количество общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Кроме того, определенные методы или стандарты кодирования видео, или внешние методы или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон нумерации (например, одно или оба измерения должны делиться на степень числа 2) или формат изображения (например, ширина и высота должны иметь отношение 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций, либо по другим причинам, которые будут понятны специалисту в этой области техники.
[0106] В некоторых вариантах применения может быть целесообразно, чтобы кодер выдавал декодеру указание на использование определенного размера опорного изображения, а не предполагать, что этот размер является размером выходного изображения. В этом примере элемент синтаксиса reference_pic_size_presentflag (614) блокирует условное присутствие размеров (615) опорного изображения (опять же, числовое значение относится и к ширине, и к высоте).
[0107] В заключение показана таблица возможной ширины и высоты изображения для декодирования. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minus1) (616). Оператор «minus1» может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, то в таблице имеется одна запись. Если значение равно пяти, то в таблице имеется шесть записей. Для каждой «строки» в таблице ширина и высота декодированного изображения включаются в синтаксис (617).
[0108] Представленные записи (617) в таблице могут быть индексированы с использованием элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, что разрешает различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.
[0109] Определенные методы или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорных изображений (реализуется совершенно иначе, чем раскрытое изобретение) в сочетании с временной масштабируемостью для обеспечения пространственной масштабируемости. В частности, для некоторых опорных изображений может выполняться повышающая дискретизация с использованием методов ARC-стиля с более высоким разрешением для формирования основы уровня пространственного улучшения. Эти изображения, для которых выполнена повышающая дискретизация, можно улучшить, используя обычные механизмы прогнозирования с высоким разрешением для добавления деталей.
[ОНО] Раскрытое изобретение может использоваться в такой среде. В некоторых случаях, в том же или в другом варианте осуществления, значение в заголовке блока NAL, например поле временного идентификатора, может использоваться для указания не только временного, но и пространственного уровня. Это дает определенные преимущества для определенных систем; например, существующие выбранные блоки для пересылки (SFU, Selected Forwarding Unit), созданные и оптимизированные для пересылки, выбранной на временном уровне на основе значения временного идентификатора заголовка блока NAL, могут использоваться без модификации для масштабируемых сред. Чтобы сделать это возможным, может существовать требование для соответствия между размером кодированного изображения и временным уровнем, указываемым полем временного идентификатора в заголовке блока NAL.
[0111] В некоторых методах кодирования видео, блок доступа (AU, Access Unit) может относиться к кодированному изображению(ям), слайсу(ам), тайлу(ам), блоку(ам) NAL и т.д., которые были захвачены и введены в соответствующий битовый поток изображений/слайсов/тайлов/блоков NAL в указанный момент времени. Таким моментом времени может быть время композиции.
[0112] Согласно HEVC и некоторым другим методам кодирования видео значение порядкового номера изображения (РОС, Picture Order Count) может использоваться для указания выбранного опорного изображения из множества опорных изображений, хранящихся в буфере декодированных изображений (DPB, Decoded Picture Buffer). Когда блок доступа (AU, Access Unit) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, относящиеся к одному и тому же AU, могут переносить одно и то же значение РОС, по которому можно сделать вывод, что они были созданы из контента с одним и тем же временем композиции. Другими словами, в сценарии, где два изображения/слайса/тайла переносят одно и то же указанное значение РОС, это может указывать на то, что эти два изображения/слайса/тайла относятся к одному и тому же AU и имеют одно и то же время композиции. И наоборот, два изображения/слайса/тайла с разными значениями РОС могут указывать изображения/слайсы/тайлы, относящиеся к разным AU и имеющие разное время композиции.
[0113] Согласно варианту осуществления раскрытого изобретения вышеупомянутая жесткая взаимосвязь может быть смягчена, поскольку блок доступа может содержать изображения, слайсы и тайлы с разными значениями РОС.Допуская различные значения РОС в рамках одной AU, становится возможным использование значения РОС для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с идентичным временем представления. Это, в свою очередь, может обеспечить поддержку множества масштабируемых уровней без изменения сигнализации выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.
[0114] Однако все еще желательно иметь возможность идентификации AU, к которой относится изображение/слайс/тайл, относительно других изображений/слайсов/тайлов с другим значением РОС только на основе значения РОС.Этого можно добиться в соответствии с описанием.
[0115] Согласно этому же или другим вариантам осуществления номер блока доступа (AUC, Access Unit Count) может передаваться в синтаксической структуре высокого уровня, такой как заголовок блока NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение AUC может использоваться для идентификации того, какие блоки NAL, изображения, слайсы или тайлы относятся к данной AU. Значение AUC может соответствовать конкретному моменту времени композиции. Значение AUC может быть кратно значению РОС.Значение AUC можно вычислить делением значения РОС на целое число. В некоторых случаях операции деления могут создать определенную нагрузку при реализациях декодера. В таких случаях небольшие ограничения в пространстве нумерации значений AUC могут позволить замену операции деления операциями сдвига. Например, значение AUC может быть равно значению старшего бита (MSB, Most Significant Bit) из диапазона значений РОС.
[0116] Согласно этому же варианту осуществления, значение РОС для AU (рос_cycle_au) может передаваться в синтаксической структуре высокого уровня, такой как заголовок блока NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение poc_cycle_au может указывать, сколько различных и последовательных значений РОС может быть ассоциировано с одним и тем же AU. Например, если значение рос_cycle_au равно 4, то изображения, слайсы или тайлы со значением РОС, равным 0-3 включительно, ассоциируются с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением РОС от 4 до 7 включительно ассоциируются с AU со значением AUC, равным 1. Таким образом, значение AUC может быть получено путем деления значения РОС на значение рос_cycle_au.
[0117] Согласно этому же или другому варианту осуществления, значение рос_cyle_au может быть получено из информации, находящейся, например, в наборе параметров видео (VPS, Video Parameter Set), которая определяет число пространственных уровней или уровней SNR в кодированной видеопоследовательности. Такая возможная взаимосвязь кратко описывается ниже. Хотя вывод, как описано выше, может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, может быть выгодно в явном виде кодировать рос_cycle_au в соответствующей синтаксической структуре высокого уровня иерархически ниже набора параметров видео, чтобы иметь возможность минимизации рос_cycle_au для указанной небольшой части битового потока, например изображения. Эта оптимизация может сэкономить больше битов, чем может быть сохранено с помощью описанного выше процесса, потому что значения РОС (и/или значения элементов синтаксиса, неявно относящиеся к РОС) могут быть кодированы в синтаксических структурах низкого уровня.
[0118] Согласно этому же или другому варианту осуществления, на фиг. 9 показан пример таблиц синтаксиса для передачи элемента синтаксиса  в VPS (или в SPS), который указывает рос_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и элемент синтаксиса  который указывает  текущего слайса в заголовке слайса. Если значение РОС увеличивается одинаковым образом для каждой AU, то для  в VPS устанавливается значение 1, и в VPS передается  В этом случае  в явном виде не указывается, и значение AUC для каждого AU вычисляется путем деления значения РОС на  Если значение РОС не увеличивается одинаковым образом для каждой AU, то для  в VPS устанавливается значение 0. В этом случае  не передается, а  передается в заголовке слайса для каждого слайса или изображения. У каждого слайса или изображения может быть свое значение  Значение AUC для каждого AU вычисляется путем деления значения РОС на  На фиг. 10 показана блок-схема, иллюстрирующая соответствующий рабочий процесс.
[0119] Согласно этому же или другим вариантам осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующий AU с таким же значением AUC, может быть ассоциирован с таким же временем декодирования или вывода. Таким образом, при отсутствии какой-либо зависимости между анализом/декодированием между изображениями, слайсами или тайлами в одном и том же AU, все или подмножество изображений, слайсов или тайлов, ассоциированных с одним и тем же AU, могут декодироваться одновременно и могут быть выведены в один и тот же момент времени.
[0120] Согласно этому же или другим вариантам осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующий AU с таким же значением AUC, может быть ассоциирован с таким же временем композиции/отображения. Когда время композиции содержится в формате контейнера, даже если изображения соответствуют разным AU, если у изображений одно и то же время композиции, изображения могут отображаться в один и тот же момент времени.
[0121] Согласно этому же или другим вариантам осуществления, у каждого изображения, слайса или тайла может быть один и тот же временной идентификатор (temporal_id) в одном и том же AU. Все или подмножество изображений, слайсов или тайлов, соответствующих конкретному моменту времени, могут быть ассоциированы с одним и тем же временным подуровнем. Согласно этому же или другим вариантам осуществления у каждого изображения, слайса или тайла может быть один и тот же или разные идентификаторы пространственного уровня (layer_id) в одном и том же AU. Все или подмножество изображений, слайсов или тайлов, соответствующих конкретному моменту времени, могут быть ассоциированы с одним и тем же или разными пространственными уровнями.
[0122] На фиг. 8 показан пример структуры видеопоследовательности с комбинацией значений temporal_id, layer_id, РОС и AUC с адаптивным изменением разрешения. В этом примере изображение, слайс или тайл в первом AU с AUC=0 может иметь  и  или 1, а изображение, слайс или тайл во втором AU с  и  или 1 соответственно. Значение РОС увеличивается на единицу для каждого изображения независимо от значений  В этом примере значение  может быть равно 2. Предпочтительнее, чтобы в качестве значения  было установлено число уровней (пространственной масштабируемости). Таким образом, в этом примере значение РОС увеличивается на 2, а значение AUC увеличивается на 1.
[0123] Согласно приведенным выше вариантам осуществления, все или подмножество из структуры предсказания между изображениями или предсказания между уровнями и индикация опорного изображения могут поддерживаться за счет использования сигнализации существующего набора опорных изображений (RPS, Reference Picture Set) в HEVC или сигнализации списка опорных изображений (RPL, Reference Picture List). В RPS или RPL выбранное опорное изображение указывается за счет сигнализации значения РОС или изменения значения РОС между текущим изображением и выбранным опорным изображением. В раскрытом изобретении RPS и RPL могут использоваться для указания структуры предсказания между изображениями или предсказания между уровнями без изменения сигнализации, но со следующими ограничениями. Если значение temporal id опорного изображения больше, чем значение temporal_id текущего изображения, то текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, то текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний.
[0124] Согласно этому же или другим вариантам осуществления, масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть отключено для множества изображений в блоке доступа. Таким образом, хотя у каждого изображения может быть свое значение РОС в блоке доступа, вектор движения не масштабируется и используется для временного предсказания вектора движения в блоке доступа. Это обусловлено тем, что опорное изображение с другим РОС в том же AU считается опорным изображением с таким же моментом времени. Таким образом, согласно варианту осуществления, функция масштабирования вектора движения может вернуть значение 1, когда опорное изображение относится к AU, ассоциированному с текущим изображением.
[0125] Согласно этому же или другим вариантам осуществления масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть опционально отключено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основе как разности РОС, так и отношения пространственного разрешения между текущим изображением и опорным изображением.
[0126] Согласно этому же или другому варианту осуществления, вектор движения может масштабироваться на основе разности AUC вместо разности РОС для временного предсказания вектора движения, особенно когда  имеет неоднородное значение (когда  В противном случае (когда  масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности РОС.
[0127] Согласно этому же или другому варианту осуществления, когда вектор движения масштабируется на основе разности AUC, опорный вектор движения в этом же AU (с этим значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственного разрешения между текущим изображением и опорным изображением.
[0128] Согласно этому же или другим вариантам осуществления значение AUC используется для идентификации границы AU и используется для работы гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder), для которой требуется синхронизация ввода и вывода с детализацией AU. В большинстве случаев может выводиться для отображения декодированное изображение с самым высоким уровнем в AU. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.
[0129] Согласно варианту осуществления, изображение может состоять из одного или нескольких субизображений. Каждое субизображение может охватывать локальную область или всю область изображения. Область, поддерживаемая одним субизображением, может перекрываться или не перекрываться областью, поддерживаемой другим субизображением. Область, составленная из одного или нескольких субизображений, может охватывать или не охватывать всю область изображения. Если изображение состоит из одного субизображения, то область, поддерживаемая этим субизображением, идентична области, поддерживаемой всем изображением.
[0130] Согласно этому же варианту осуществления, субизображение может быть кодировано способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может кодироваться независимо или в зависимости от другого субизображения или кодированного изображения. Субизображение может анализироваться независимо или в зависимости от другого субизображения или кодированного изображения.
[0131] Согласно этому же варианту осуществления, кодированное субизображение может содержаться в одном или нескольких уровнях. У кодированных субизображений в разных уровнях могут быть разные пространственные разрешения. Для исходного субизображения может выполняться пространственная передискретизация (повышающая или понижающая), кодирование с различными параметрами пространственного разрешения, также оно может содержаться в битовом потоке, соответствующем тому или иному уровню.
w,k
h,k
w,k
h,k
w,k
h,k
w,k
h,k
[0132] Согласно этому же или другому варианту осуществления, субизображение с (W, Н, где W указывает ширину субизображения, а H указывает высоту субизображения, соответственно), может быть кодировано и содержаться в кодированном битовом потоке, соответствующем уровню 0, а субизображение с повышающей (или понижающей) дискретизацией из субизображения с исходным пространственным разрешением, с (W*S, Н* S), может быть кодировано и содержаться в кодированном битовом потоке, соответствующем уровню k, где S, S указывают коэффициенты пере дискретизации по горизонтали и вертикали. Если значения S, S больше единицы, то выполняется повышающая передискретизация. Если же значения S, S меньше единицы, то выполняется понижающая передискретизация.
i,n
j,m
[0133] Согласно этому же или другому варианту осуществления, кодированное субизображение на одном уровне может иметь визуальное качество, отличное от качества кодированного субизображения на другом уровне в этом же субизображении или в другом субизображении. Например, субизображение i на уровне n кодируется с использованием параметра квантования Q, а субизображение j на уровне m кодируется с использованием параметра квантования O.
[0134] Согласно этому же или другому варианту осуществления, кодированное субизображение в том или ином уровне может быть декодировано независимым образом, без какой-либо зависимости от синтаксического анализа или декодирования кодированного субизображения на другом уровне в этой же локальной области. Уровень субизображения, который может быть декодирован независимым образом без ссылки на другой уровень субизображения в этой же локальной области, является независимым уровнем субизображения. Кодированное субизображение в независимом уровне субизображения может иметь или не иметь зависимости декодирования или анализа от ранее кодированного субизображения на этом же уровне субизображения, но кодированное субизображение может не иметь никакой зависимости от кодированного изображения в другом уровне субизображения.
[0135] Согласно этому же или другому варианту осуществления, кодированное субизображение в том или ином уровне может быть декодировано зависимым образом, в зависимости от синтаксического анализа или декодирования кодированного субизображения в другом уровне в этой же локальной области. Уровень субизображения, который может быть декодирован зависимым образом со ссылкой на другой уровень субизображения в этой же локальной области, является зависимым уровнем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, относящееся к этому же субизображению, ранее кодированному субизображения в этом же уровне субизображения, либо на оба опорных субизображения.
[0136] Согласно этому же или другому варианту осуществления, кодированное субизображение состоит из одного или нескольких независимых уровней субизображений и одного или нескольких зависимых уровней субизображений. Однако, по меньшей мере один независимый уровень субизображения может быть представлен для кодированного субизображения. Независимый уровень субизображения может иметь значение идентификатора уровня (layer_id), которое может быть представлено в заголовке блока NAL или в другой синтаксической структуре высокого уровня, равное 0. Уровень субизображения с layer_id, равным 0, является базовым уровнем субизображения.
[0137] Согласно этому же или другому варианту осуществления, изображение может состоять из одного или нескольких субизображений переднего плана и одного субизображения заднего плана. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться областью, поддерживаемой субизображением заднего плана. Субизображение заднего плана может быть базовым уровнем субизображения, а субизображение переднего плана может быть небазовым (улучшенным) уровнем субизображения. Один или более небазовых уровней субизображений могут ссылаться на один и тот же базовый уровень для декодирования. Каждый небазовый уровень субизображения с layer_id, равным а, может ссылаться на небазовый уровень субизображения с layer_id, равным b, где а больше b.
[0138] Согласно этому же или другому варианту осуществления, изображение может состоять из одного или нескольких субизображений переднего плана с или без субизображения заднего плана. У каждого субизображения может быть свой базовый уровень субизображения и один или более небазовых (усовершенствованных) уровней. На каждый базовый уровень субизображения может ссылаться один или более небазовых уровней субизображений. Каждый небазовый уровень субизображения с layer_id, равным а, может ссылаться на небазовый уровень субизображения с layer_id, равным b, где а больше b.
[0139] Согласно этому же или другому варианту осуществления, изображение может состоять из одного или нескольких субизображений переднего плана с или без субизображения заднего плана. На каждое кодированное субизображение на (базовом или небазовом) уровне субизображения может ссылаться одно или более субизображений небазового уровня, относящихся к одному и тому же субизображению, и одно или более субизображений небазового уровня, которые не относятся к одному субизображению.
[0140] Согласно этому же или другому варианту осуществления, изображение может состоять из одного или нескольких субизображений переднего плана с или без субизображения заднего плана. Субизображение на уровне а может быть дополнительно разделено на несколько субизображений в одном уровне. Одно или более кодированных субизображений на уровне Ь могут ссылаться на разделенное субизображение в уровне а.
[0141] Согласно этому же или другому варианту осуществления, кодированная видеопоследовательность (CVS, Coded Video Sequence) может быть группой кодированных изображений. CVS может состоять из одной или нескольких последовательностей кодированных субизображений (CSPS, Coded Sub-Picture Sequences), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь такое же или другое временное разрешение, как у кодированной видеопоследовательности.
[0142] Согласно этому же или другому варианту осуществления, CSPS может быть кодирована и содержаться в одном или нескольких уровнях. CSPS может состоять из одного или нескольких уровней CSPS. Декодирование одного или нескольких уровней CSPS, соответствующих CSPS, может восстанавливать последовательность субизображений, соответствующих одной и той же локальной области.
[0143] Согласно этому же или другому варианту осуществления, число уровней CSPS, соответствующих одной CSPS, может быть идентично или отличаться от числа уровней CSPS, соответствующих другой CSPS.
[0144] Согласно этому же или другому варианту осуществления, у уровня CSPS может быть временное разрешение (например, частота кадров), отличающееся от разрешения для другого уровня CSPS. Для исходной (несжатой) последовательности субизображений может выполняться временная передискретизация (повышающая или понижающая), кодирование с различными параметрами временного разрешения, также она может содержаться в битовом потоке, соответствующем тому или иному уровню.
t,k
t,k
t,k
t,k
[0145] Согласно этому же или другому варианту осуществления, последовательность субизображений с частотой кадров F может быть кодирована и содержаться в кодированном битовом потоке битов, соответствующем уровню 0, а последовательность субизображений с повышающей (или понижающей) временной дискретизацией из исходной последовательности субизображений с F* S может быть кодирована и содержаться в кодированном битовом потоке, соответствующем уровню к, где S указывает коэффициент временной дискретизации для уровня к. Если значение S больше единицы, то процесс временной передискретизации идентичен преобразованию с повышением частоты кадров. Если же значение S меньше единицы, то процесс временной передискретизации идентичен преобразованию с понижением частоты кадров.
[0146] Согласно этому же или другому варианту осуществления, когда субизображение с CSPS-уровнем а является ссылкой на субизображение с CSPS-уровнем b для компенсации движения или любого межуровневого предсказания, если пространственное разрешение CSPS-уровня а отличается от пространственного разрешения CSPS-уровня b, декодированные пиксели на CSPS-уровне а передискретизируются и используются для ссылки. Для процесса передискретизации может потребоваться фильтрация с повышающей или понижающей дискретизацией.
[0147] На фиг.11 показан пример видеопотока, содержащего CSPS видео заднего плана с layer_id, равным 0, и несколько уровней CSPS переднего плана. Несмотря на то, что кодированное субизображение может состоять из одного или нескольких уровней CSPS, область заднего плана, которая не относится ни к одному из CSPS переднего плана, может состоять из базового уровня. Базовый уровень может содержать область заднего плана и области переднего плана, а уровень улучшения CSPS содержит область переднего плана. Уровень улучшения CSPS может иметь лучшее визуальное качество, чем базовый уровень, в той же области. Уровень улучшения CSPS может ссылаться на реконструированные пиксели и векторы движения базового уровня, соответствующие одной и той же области.
[0148] Согласно этому же или другому варианту осуществления, битовый поток видео, соответствующий базовому уровню, содержится в каком-либо треке, а уровни CSPS, соответствующие каждому субизображению, содержатся в отдельном треке в видеофайле.
[0149] Согласно этому же или другому варианту осуществления, битовый поток видео, соответствующий базовому уровню, содержится в каком-либо треке, а уровни CSPS с одинаковым layer_id содержатся в отдельном треке в видеофайле. В этом примере трек, соответствующий уровню к, содержит только уровни CSPS, соответствующие уровню к.
[0150] Согласно этому же или другому варианту осуществления, каждый уровень CSPS каждого субизображения сохраняется в отдельном треке. Каждый трек может иметь или не иметь зависимость анализа или декодирования от одного или нескольких других треков.
[0151] Согласно этому же или другому варианту осуществления, каждый трек может содержать битовые потоки, соответствующие уровню CSPS (от уровня i до уровня j) всех или подмножества субизображений, где 0<i=<j=<k и k - это самый высокий уровень CSPS.
[0152] Согласно этому же или другому варианту осуществления, изображение состоит из одного или нескольких связанных блоков медиа-данных, включая карту глубины, альфа-карту, данные трехмерной геометрии, карту занятости и т.д. Такие связанные синхронизированные медиа-данных могут быть разделены на один или более субпотоков данных, каждый из которых соответствует одному субизображению.
[0153] Согласно этому же или другому варианту осуществления, на фиг. 12 показан пример видеоконференции на основе способа создания многоуровневых субизображений. В видеопотоке содержится один битовый поток видео базового уровня, соответствующий изображению заднего плана, и один или более битовых потоков видео уровня улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видео уровня улучшения соответствует уровню CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому уровню. Оно содержит одно или более изображений пользователя типа «картинка в картинке» (PIP, Picture ш Picture). Когда конкретный пользователь выбирается по команде клиента, уровень улучшения CSPS, соответствующий выбранному пользователю, декодируется и отображается с улучшенным качеством или пространственным разрешением. На фиг. 13 показана схема рабочего процесса.
[0154] Согласно этому же или другому варианту осуществления, промежуточный сетевой блок (например, маршрутизатор) может выбирать подмножество уровней для передачи данных пользователю в зависимости от его полосы пропускания. Для адаптации полосы пропускания может использоваться организация информации в пределах изображений/субизображений. Например, если у пользователя нет полосы пропускания, то маршрутизатор разделяет уровни или выбирает часть субизображений из-за их важности или на основе используемой настройки; это может быть сделано динамически для адаптации к полосе пропускания.
[0155] На фиг. 14 показывает пример использования видео 360 градусов. Когда сферическое изображение 360 градусов проецируется на плоское изображение, изображение проекции 360 градусов может быть разделено на несколько субизображений в качестве базового уровня. Уровень улучшения конкретного субизображения может быть кодирован и передан клиенту. Декодер может декодировать как базовый уровень, содержащий все субизображения, так и уровень улучшения выбранного субизображения. Когда текущее поле просмотра идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество при использовании декодированного субизображения за счет применения уровня улучшения. В противном случае может отображаться декодированное изображение с базовым уровнем с низким качеством.
[0156] Согласно этому же или другому варианту осуществления, любая информация о структуре для отображения может быть представлена в файле в качестве дополнительной информации (например, в виде сообщений SEI или метаданных). Одно или более декодированных субизображений может быть перемещено и отображено в зависимости от переданной информации о структуре. Информация о структуре может передаваться потоковым сервером или транслятором, либо может быть восстановлена соответствующим сетевым объектом или облачным сервером, либо может определяться индивидуальной настройкой пользователя.
[0157] Согласно варианту осуществления, когда входное изображение делится на одну или более (прямоугольных) субобластей, каждая субобласть может кодироваться как независимый уровень. Каждый независимый уровень, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого уровня может передаваться информация о размере и местоположении субизображения. Например, размер изображения (ширина, высота), информация о смещении левого-верхнего угла (x_offset, y_offset). На фиг. 15 показан пример структуры разделенных субизображений, информации о размере и местоположении и соответствующей структуры предсказания изображений. Информация о структуре, включая размер(ы) субизображения(й) и позицию(и) субизображения(й), может быть передана в виде синтаксической структуры высокого уровня, такой как набор(ы) параметров, заголовок слайса или группы тайлов, либо сообщение SEI.
[0158] Согласно этому же варианту осуществления, каждое субизображение, соответствующее независимому уровню, может иметь свое уникальное значение РОС в рамках AU. Когда какое-либо опорное изображение из изображений, хранящихся в DPB, указывается с использованием элемента(ов) синтаксиса в структуре RPS или RPL, может использоваться значение(я) РОС каждого субизображения, соответствующего определенному уровню.
[0159] Согласно этому же или другому варианту осуществления, для указания структуры (межуровневого) предсказания layer_id может не использоваться, а может использоваться значение РОС (дельта).
[0160] Согласно этому же варианту осуществления, субизображение со значением РОС, равным N, соответствующее определенному уровню (или локальной области), может использоваться или не использоваться в качестве опорного изображения субизображения со значением РОС, равным N+K, соответствующего этому же уровню (или этой же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение К может быть равно максимальному числу (независимых) уровней, которое может быть идентично числу субобластей.
[0161] Согласно этому же или другому варианту осуществления, на фиг. 16 показан расширенный вариант примера на фиг. 15. Когда входное изображение разделено на несколько (например, четыре) субобластей, каждая локальная область может быть кодирована с одним или более уровнями. В этом случае число независимых уровней может быть равно числу субобластей, и одной субобласти может соответствовать один или более уровней. Таким образом, каждая субобласть может быть кодирована с одним или более независимыми уровнями и без или с несколькими зависимыми уровнями.
[0162] Согласно этому же варианту осуществления, на фиг. 16 входное изображение может быть разделено на четыре субобласти. Правая-верхняя субобласть может быть кодирована как два уровня, уровня 1 и уровня 4, а правая-нижняя субобласть может быть кодирована как два других уровней, уровня 3 и уровня 5. В этом случае уровень 4 может ссылаться на уровень 1 для предсказания с компенсацией движения, а уровень 5 может ссылаться на уровень 3 для компенсации движения.
[0163] Согласно этому же или другому варианту осуществления, внутриконтурная фильтрация (например, деблокирующая фильтрация, адаптивная внутриконтурная фильтрация, восстановление формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу уровня может быть (опционально) отключена.
[0164] Согласно этому же или другому варианту осуществления, предсказание с компенсацией движения или внутриблочное копирование через границу уровня может быть (опционально) отключено.
[0165] Согласно этому же или другому варианту осуществления, заполнение на границах для предсказания с компенсацией движения или внутриконтурная фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли заполнение на границах или нет, может передаваться в синтаксической структуре высокого уровня, такой как набор(ы) (VPS, SPS, PPS или APS) параметров, заголовок группы слайсов или тайлов, или сообщение SEI.
[0166] Согласно этому же или другому варианту осуществления, информация о структуре субобласти(ей) (или субизображения(ий)) может передаваться в VPS или SPS. На фиг.17 показан пример элементов синтаксиса в VPS и SPS. В этом примере  передается в VPS. Этот флаг может указывать, разделено ли входное(ые) изображение(я) на несколько субобластей или нет.Когда значение  равно 0, входное изображение(я) в кодированной(ых) видеопоследовательности(ях), соответствующее текущему VPS, не может быть разделено на несколько субобластей. В этом случае размер входного изображения может быть равен размеру кодированного изображения  который передается в SPS. Когда значение  равно 1, входное изображение(я) в кодированной(ых) видеопоследовательности(ях), соответствующее текущему VPS, не может быть разделено на несколько субобластей. В этом случае элементы синтаксиса  и  передаются в VPS. Значения  и  могут быть равны ширине и высоте входного изображения(й) соответственно.
[0167] Согласно этому же варианту осуществления значения  и  могут не использоваться для декодирования, но могут использоваться для композиции и отображения.
[0168] Согласно этому же варианту осуществления, когда значение  равно 1, элементы синтаксиса  могут передаваться в SPS, который соответствует конкретному(ым) уровню(ям). В этом случае размер кодированного изображения  переданный в SPS, может быть равен ширине и высоте субобласти, соответствующей конкретному уровню. Кроме того, позиция  левого-верхнего угла субобласти может передаваться в SPS.
[0169] Согласно этому же варианту осуществления, информация о позиции  левого-верхнего угла субобласти может не использоваться для декодирования, но может использоваться для композиции и отображения.
[0170] Согласно этому же или другому варианту осуществления, информация о структуре (размер и положение) всех или подмножества субобластей входного(ых) изображения(й), информация о зависимости между уровнями может передаваться в наборе параметров или в сообщении SEI. На фиг. 18 показан пример элементов синтаксиса для указания информации о структуре субобластей, зависимости между уровнями и отношения между субобластью и одним или более уровнями. В этом примере элемент синтаксиса  указывает число (прямоугольных) субобластей в текущей кодированной видеопоследовательности, а элемент синтаксиса  указывает число уровней в текущей кодированной видеопоследовательности. Значение numlayers может быть равно или больше значения  Когда какая-либо субобласть кодируется как один уровень, значение num_layers может быть равно значению  Когда одна или более субобластей кодируются как несколько уровней, значение num_layers может быть больше значения  Элемент синтаксиса  указывает зависимость от j-го уровня до i-го уровня,  указывает число уровней, ассоциированных с i-ой субобластью. указывает layer_id j-го уровня, ассоциированного с i-ой субобластью.  и  указывают горизонтальное и вертикальное положение левого-верхнего угла i-ой субобласти соответственно.  и  указывают ширину и высоту i-ой субобласти, соответственно.
[0171] Согласно одному варианту осуществления, один или более элементов синтаксиса, которые задают набор выходных уровней для указания одного или нескольких уровней, которые должны выводиться с информацией о профилях/ярусах/уровнях или без нее, могут передаваться в синтаксической структуре высокого уровня, например в VPS, DPS, SPS, PPS, APS или в сообщении SEI. На фиг. 19 элемент синтаксиса  указывающий число наборов выходных уровней (OLS) в кодированной видеопоследовательности, ссылающейся на VPS, может передаваться в VPS. Для каждого набора выходных уровней элемент синтаксиса  может передаваться столько раз, сколько имеется выходных уровней.
[0172] Согласно этому же варианту осуществления  равный 1, указывает, что выводится i-ый уровень. равный 0, указывает, что i-ый уровень не выводится.
[0173] Согласно этому же или другому варианту осуществления, один или более элементов синтаксиса, которые определяют информацию о профилях/ярусах/уровнях для каждого набора выходных уровней, могут передаваться в синтаксической структуре высокого уровня, например в VPS, DPS, SPS, PPS, APS или в сообщении SEI. На фиг. 19 элемент синтаксиса  указывающий объем информации о профилях/ярусах/уровнях для OLS в кодированной видеопоследовательности, ссылающейся на VPS, может передаваться в VPS. Для каждого набора выходных уровней набор элементов синтаксиса для информации о профилях/ярусах/уровнях или индекс, указывающий конкретную информации о профилях/ярусах/уровнях среди записей в информации о профилях/ярусах/уровнях, может передаваться столько раз, сколько имеется выходных уровней.
[0174] Согласно этому же варианту осуществления  указывает индекс в списке синтаксических структур  в VPS, синтаксической структуры  которая применяется к j-му уровню i-го OLS.
[0175] Согласно этому же или другому варианту осуществления, на фиг. 20 элементы синтаксиса  и/или  могут передаваться, когда число максимальных уровней больше 1
[0176] Согласно этому же или другому варианту осуществления, на фиг. 20 элемент синтаксиса  указывающий режим передачи выходного уровня для i-ro набора выходных уровней, может быть представлен в VPS.
[0177] Согласно этому же варианту осуществления,  равный 0, указывает, что выводится только самый высокий уровень с i-ым набором выходных уровней  равный 1, указывает, что выводятся все уровни с i-ым набором выходных уровней. vps_output_layer_mode[i], равный 2, указывает, что выводятся уровни с  равным 1, с i-ым набором выходных уровней. Могут быть зарезервированы другие значения.
[0178] Согласно этому же варианту осуществления  может или не может передаваться в зависимости от значения  для i-го набора выходных уровней.
[0179] Согласно этому же или другому варианту осуществления, на фиг. 20 флаг  может быть представлен i-го набора выходных уровней. В зависимости от значения  информация о профилях/ярусах/уровнях для i-го набора выходных уровней может передаваться или не передаваться.
[0180] Согласно этому же или другому варианту осуществления, на фиг. 21 число субизображений,  в текущем CVS может передаваться в синтаксической структуре высокого уровня, например в VPS, DPS, SPS, PPS, APS или в сообщении SEI.
[0181] Согласно этому же варианту осуществления, на фиг. 21 идентификатор субизображения,  для i-го субизображения может передаваться, когда число субизображений больше 1
[0182] Согласно этому же или другому варианту осуществления, один или более элементов синтаксиса, указывающих идентификатор субизображения, относящийся к каждому уровню каждого набора выходных уровней, могут передаваться в VPS. На фиг. 22  который указывает k-е субизображение, представлен в j-ом уровне i-го набора выходных уровней. С помощью этой информации декодер может распознать, какое субизображение может быть декодировано и выведено для каждого уровня конкретного набора выходных уровней.
[0183] Согласно варианту осуществления, заголовок изображения (РН, Picture Header) представляет собой синтаксическую структуру, содержащую элементы синтаксиса, которые применяются ко всем слайсам кодированного изображения. Блок изображения (PU, Picture Unit) - это набор блоков NAL, которые связаны друг с другом в соответствии с заданным правилом классификации, последовательно расположены в соответствии с порядком декодирования и содержат точно кодированное изображение. PU может содержать заголовок изображения (РН, Picture Header) и один или более блоков NAL с VCL, составляющих кодированное изображение.
[0184] Согласно варианту осуществления, SPS (RBSP), содержащийся по меньшей мере в одном AU с Temporalid, равным 0, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка.
[0185] Согласно варианту осуществления, SPS (RBSP), содержащийся по меньшей мере в одном AU с Temporalid, равным 0, в CVS, который содержит один или более PPS, относящихся к SPS, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка.
[0186] Согласно варианту осуществления, SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более PPS, содержащимися по меньшей мере в одном PU с  равным наименьшему значению  блоков NAL с PPS, которые относятся к блоку NAL с SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставленных с помощью внешних средств.
[0187] Согласно варианту осуществления, SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более PPS, содержащимися по меньшей мере в одном PU с Temporalid, равным 0, и  равным наименьшему значению  блоков NAL с PPS, относящихся к блоку NAL с SPS или предоставленных с помощью внешних средств.
[0188] Согласно варианту осуществления, SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более PPS, содержащимися по меньшей мере в одном PU с Temporalid, равным 0, и  равным наименьшему значению  блоков NAL с PPS, которые относятся к блоку NAL с SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставленных с помощью внешних средств.
[0189] Согласно этому же или другому варианту осуществления,  указывает значение  для указанного SPS. Значение  может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[0190] Согласно этому же или другому варианту осуществления, все блоки NAL с SPS с определенным значением  в CVS могут иметь одинаковое содержимое.
[0191] Согласно этому же или другому варианту осуществления, независимо от значений  блоки NAL с SPS могут совместно использовать одно и то же пространство значений
[0192] Согласно этому же или другому варианту осуществления, значение  блока NAL с SPS может быть равно наименьшему значению  блоков NAL с PPS, которые относятся к блоку NAL с SPS.
[0193] Согласно варианту осуществления, когда к SPS с  равным m, обращается один или более PPS с  равным n, уровень с  равным m, может быть идентичен уровню с  равным n, или (прямым или косвенным) опорным уровнем уровня с  равным m.
[0194] Согласно варианту осуществления, PPS (RBSP), содержащийся по меньшей мере в одном AU с TemporalId, равным TemporalId блока NAL с PPS, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка.
[0195] Согласно варианту осуществления, PPS (RBSP), содержащийся по меньшей мере в одном AU с TemporalId, равным TemporalId блока NAL с PPS в CVS, который содержит один или более РН (или блоков NAL с кодированными слайсами), относящихся к PPS, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка.
[0196] Согласно варианту осуществления, PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более РН (или блоками NAL с кодированными слайсами), содержащимися по меньшей мере в одном PU с  равным наименьшему значению  блоков NAL с кодированными слайсами, которые относятся к блоку NAL с PPS в CVS, который содержит один или более РН (или блоков NAL с кодированными слайсами), относящихся к SPS, или предоставленных с помощью внешних средств.
[0197] Согласно варианту осуществления, PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более РН (или блоками NAL с кодированными слайсами), содержащимися по меньшей мере в одном PU с TemporalId, равным TemporalId блока NAL с PPS, и с  равным наименьшему значению  блоков NAL с кодированными слайсами, которые относятся к блоку NAL с PPS в CVS, который содержит один или более РН (или блоков NAL с кодированными слайсами), относящихся к SPS, или предоставленных с помощью внешних средств.
[0198] Согласно этому же или другому варианту осуществления,  в РН определяет значение  для используемого PPS, на который выполняется ссылка. Значение  может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[0199] Согласно этому же или другому варианту осуществления, все блоки NAL с PPS с определенным значением  в PU могут иметь одинаковое содержимое.
[0200] Согласно этому же или другому варианту осуществления, независимо от значений  блоки NAL с SPS могут совместно использовать одно и то же пространство значений
[0201] Согласно этому же или другому варианту осуществления, значение  блока NAL с PPS может быть равно наименьшему значению  блоков NAL с кодированными слайсами, которые относятся к блоку NAL, который относится к блоку NAL с PPS.
[0202] Согласно варианту осуществления, когда к PPS с  равным m, обращается один или более блоков NAL с кодированными слайсами с  равным m, уровень с  равным m, может быть идентичен уровню с  равным n, или (прямым или косвенным) опорным уровнем уровня с  равным m.
[0203] Согласно варианту осуществления, PPS (RBSP), содержащийся по меньшей мере в одном AU с TemporalId, равным TemporalId блока NAL с PPS, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка.
[0204] Согласно варианту осуществления, PPS (RBSP), содержащийся по меньшей мере в одном AU с Temporalid, равным Temporalid блока NAL с PPS в CVS, который содержит один или более РН (или блоков NAL с кодированными слайсами), относящихся к PPS, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка.
[0205] Согласно варианту осуществления, PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более РН (или блоками NAL с кодированными слайсами), содержащимися по меньшей мере в одном PU с  равным наименьшему значению  блоков NAL с кодированными слайсами, которые относятся к блоку NAL с PPS в CVS, который содержит один или более РН (или блоков NAL с кодированными слайсами), относящихся к SPS, или предоставленных с помощью внешних средств.
[0206] Согласно варианту осуществления, PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка одним или более РН (или блоками NAL с кодированными слайсами), содержащимися по меньшей мере в одном PU с Temporalid, равным Temporalid блока NAL с PPS, и с  равным наименьшему значению  блоков NAL с кодированными слайсами, которые относятся к блоку NAL с PPS в CVS, который содержит один или более РН (или блоков NAL с кодированными слайсами), относящихся к SPS, или предоставленных с помощью внешних средств.
[0207] Согласно этому же или другому варианту осуществления,  в РН определяет значение  для используемого PPS, на который выполняется ссылка. Значение  может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[0208] Согласно этому же или другому варианту осуществления, все блоки NAL с PPS с определенным значением  в PU могут иметь одинаковое содержимое.
[0209] Согласно этому же или другому варианту осуществления, независимо от значений  блоки NAL с SPS могут совместно использовать одно и то же пространство значений
[0210] Согласно этому же или другому варианту осуществления, значение  блока NAL с PPS может быть равно наименьшему значению  блоков NAL с кодированными слайсами, которые относятся к блоку NAL, который относится к блоку NAL с PPS.
[0211] Согласно варианту осуществления, когда к PPS с  равным m, обращается один или более блоков NAL с кодированными слайсами с  равным n, уровень с  равным m, может быть идентичен уровню с  равным n, или (прямым или косвенным) опорным уровнем уровня с  равным m.
[0212] Выходной уровень указывает уровень из набора выходных уровней, который подается на выход. Набор выходных уровней (OLS, Output Layer Set) указывает набор уровней, состоящий из заданного набора уровней, в котором один или более уровней в наборе уровней определены как выходные уровни. Индекс уровня из набора выходных уровней (OLS) - это индекс уровня в OLS в списке уровней в OLS.
[0213] Подуровень указывает уровень временного масштабирования битового потока с временным масштабированием, содержащего блоки NAL VCL с определенным значением переменной TemporalId и ассоциированные блоки, не являющиеся NAL VCL. Представление подуровня указывает подмножество битового потока, содержащего блоки NAL конкретного подуровня и нижних подуровней.
[0214] RBSP VPS, содержащийся по меньшей мере в одном AU с TemporalId, равным 0, или предоставленный с помощью внешних средств, может быть доступен для процесса декодирования до того, как на него будет сделана ссылка. Все блоки NAL SPS с определенным значением  в CVS могут иметь одинаковое содержимое. На фиг. 22 показан пример RBSP VPS.
[0215]  предоставляет идентификатор VPS для ссылки на него других элементов синтаксиса. Значение  может быть больше 0.
[0216]  плюс 1 указывает максимально допустимое число уровней в каждой CVS, ссылающейся на VPS.
[0217]  плюс 1 указывает максимальное число временных подуровней, которые могут быть представлены на одном уровне в каждой CVS, ссылающейся на VPS. Значение  должно находиться в диапазоне от 0 до 6 включительно.
[0218]  равный 1, указывает, что число временных подуровней является одинаковым для всех уровней в каждой CVS, ссылающейся на VPS.  равный 0, указывает, что уровни в каждой CVS, ссылающейся на VPS, могут иметь или не иметь одинаковое число временных подуровней. Когда этот элемент синтаксиса не представлен, предполагается, что значение  равно 1.
[0219]  равный 1, указывает, что все уровни в CVS кодируются независимо без использования межуровневого предсказания.  равный 0, указывает, что на одном или более уровней в CVS может использоваться межуровневое предсказание. Когда этот элемент синтаксиса не представлен, предполагается, что значение
[0220]  i-го уровня. В случае любых двух неотрицательных целых значений тип, когда m меньше n, значение  может быть меньше
[0221]  равный 1, указывает, что на уровне с индексом i межуровневое предсказание не используется,  равный 0, указывает, что на уровне с индексом i может использоваться межуровневое предсказание, а элементы синтаксиса  для] в диапазоне от 0 до «i - 1» включительно представлены в VPS. Когда этот элемент синтаксиса не представлен, предполагается, что значение  равно 1.
[0222]  равный 0, указывает, что уровень с индексом j не является прямым опорным уровнем для уровня с индексом i.  равный 1, указывает, что уровень с индексом] является прямым опорным уровнем для уровня с индексом i. Когда  отсутствует для i и j в диапазоне от 0 до  включительно, предполагается, что он равен 0. Когда  может быть по меньшей мере одно значение j в диапазоне от 0 до «i - 1» включительно, так что значение
[0223] Переменные  пределяются следующим образом:
[0224] Переменная GeneralLayerIdx[i], указывающая индекс уровня с  равным  определяется следующим образом:
[0225] Для любых двух разных значений i и j, которые оба находятся в диапазоне от 0 до vps_max_layers_minus 1 включительно, когда dependencyFlag [i] [j] равен 1, требуется согласование битовых потоков, чтобы значения  и  которые применяются к i-му уровню, могли быть равны значениям  соответственно, которые применяются к j-му уровню.
[0226]  равный 1, указывает, что представлен элемент синтаксиса  равный 0, указывает, что элемент синтаксиса  не представлен.
[0227]  равный 0, указывает, что межуровневое предсказание для изображений i-ro уровня, не являющимися IRAP, не используется.  больше 0 указывает, что для декодирования изображений i-го уровня ни одно изображение с Temporalid больше  не используется в качестве ILRP. Когда этот элемент синтаксиса не представлен, предполагается, что значение
[0228]  равный 1, указывает, что в каждом OLS содержится только один уровень, а сам каждый уровень в CVS, ссылающейся на VPS, является OLS с единственным включенным уровнем, который является единственным выходным уровнем.  равный 0, указывает, что в OLS может содержаться более одного уровня. Когда значение элемента синтаксиса  равно 0, предполагается, что значение элемента синтаксиса  В противном случае, когда значение элемента синтаксиса  предполагается, что значение элемента синтаксиса
[0229]  указывает, что общее число OLS, указанное VPS, равно  OLS содержит уровни с индексами уровней от 0 до i включительно, и для каждого OLS выводится только самый высокий уровень в OLS.
[0230]  равный 1, указывает, что общее число OLS, указанное VPS, равно  i-ый OLS содержит уровни с индексами уровней от 0 до i включительно, и для каждого OLS выводятся все уровни в OLS.
[0231]  равный 2, указывает, что общее число OLS, указанных VPS, передается в явном виде, и для каждого OLS в явном виде передаются выходные уровни, и другие уровни являются прямыми или косвенными опорными уровнями выходных уровней OLS.
[0232] Значение  может находиться в диапазоне от 0 до 2 включительно. Значение 3 элемента  зарезервировано для использования в будущем в стандартах
[0233] Когда  а  равен 0, предполагается, что значение  равно 2.
[0234]  плюс 1 указывает общее число OLS, указанных VPS,  равен 2.
[0235] Переменная TotalNumOlss, указывающая общее число OLS, указанных VPS, определяется следующим образом:
[0236]  равный 1, указывает, что уровень с  является выходным уровнем i-го OLS, когда  равный 0, указывает, что уровень с  не является выходным слоем i-го OLS, когда
[0237] Переменная NumOutputLayersmOls[i], указывающая число выходных уровней в i-ом OLS, переменная NumSubLayersInLayerlnOLS[i][j], указывающая число подуровней j-ом слое в i-ом OLS, переменная OutputLayerldmOls[i][j], указывающая значение  выходного уровня в i-ом OLS, и переменная  указывающая, используется ли k-ый уровень в качестве выходного уровня по меньшей мере в одном OLS, определяются следующим образом:
[0238] Для каждого значения i в диапазоне от 0 до  включительно значения LayerUsedAsRefLayerFlag[i] и LayerUsedAsOutputLayerFlag[i] не могут быть равны 0 одновременно. Другими словами, не может существовать уровень, который не является ни выходным уровнем хотя бы одного OLS, ни прямым опорным уровнем любого другого уровня.
[0239] Для каждого OLS может существовать по меньшей мере один уровень, который является выходным уровнем. Другими словами, для любого значения i в диапазоне от 0 до TotalNumOlss 1 включительно значение NumOutputLayersInOls[i] может быть больше или равно 1.
[0240] Переменная NumLayersInOls[i], указывающая число уровней i-ом OLS, и переменная LayerIdInOls[i][j], указывающая значение  j-го уровня в i-ом OLS, определяются следующим образом:
[0241] Переменная OlsLayerIdx[i][j], указывающая индекс уровня OLS с  равным LayerIdInOls[i][j], определяется следующим образом:
[0242] Самый низкий уровень в каждом OLS может быть независимым уровнем. Другими словами, для каждого i в диапазоне от 0 до TotalNumOlss - 1 включительно значение  может быть равно 1.
[0243] Каждый уровень может быть включен по крайней мере в один OLS, указанный VPS. Другими словами, для каждого уровня с определенным значением  равным одному из  для к в диапазоне от 0 до vps_max_layers_minus1 включительно, может существовать по меньшей мере одна пара значений из i и j, где i находится в диапазоне от 0 до TotalNumOlss 1 включительно, а j находится в диапазоне значений до NumLayersInOls[i] 1 включительно, так что значение LayerIdInOls [i] [j] равно nuhLayerId.
[0244] Согласно варианту осуществления, значение temporalId любого блока NAL с VCL в кодированной видеопоследовательности не может быть больше  в VPS, на который ссылается блок NAL с VCL.
[0245] Согласно этому же или другому варианту осуществления,  имеет следующую семантику:
[0246]  равный 0, указывает, что межуровневое предсказание для изображений i-ro уровня, не являющимися IRAP, не используется.  больше 0 указывает, что для декодирования изображений i-го уровня ни одно изображение с TemporalId больше -1 не используется в качестве ILRP. Когда этот элемент синтаксиса не представлен, предполагается, что значение  равно
[0247] Согласно этому же или другому варианту осуществления,  не может быть больше
[0248] Согласно варианту осуществления, набор выходных уровней по подуровням не может быть получен для независимых уровней. Таким образом,  и layerIncludedInOlsFlag не могут быть определены для независимых уровней.
[0249] Согласно этому же или другому варианту осуществления, переменная NumOutputLayersInOls[i], указывающая число выходных уровней в i-ом OLS, переменная NumSubLayersInLayerInOLS[i][j], указывающая число подуровней j-ом слое в i-ом OLS, переменная OutputLayerIdInOls[i][j], указывающая значение  выходного уровня в i-ом OLS, и переменная LayerUsedAsOutputLayerFlag[k], указывающая, используется ли k-ый уровень в качестве выходного уровня по меньшей мере в одном OLS, определяются следующим образом:
[0250] На фиг. 23 показан пример таблицы синтаксиса RBSP SPS. В синтаксической структуре  плюс 1 указывает максимальное число временных подуровней, которые могут быть представлены в каждой CLVS, ссылающейся на SPS. Значение  должно находиться в диапазоне от 0 до  включительно.
[0251] Согласно варианту осуществления, когда все уровни в кодированной видеопоследовательности имеют одинаковое число подуровней, число подуровней каждого уровня может быть равно максимальному числу подуровней, передаваемых в наборе параметров видео.
[0252] Согласно варианту осуществления, когда значение  значение  в SPS, относящемся к VPS, должно быть равно значению
[0253] Согласно варианту осуществления, когда  больше 0 и  должен быть равен
[0254] Описанные выше методы передачи параметров адаптивного разрешения могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 7 показана компьютерная система (700), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0255] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка программирования, который может ассемблироваться, компилироваться, компоноваться или с помощью подобных механизмов формировать код, содержащий команды, которые могут выполняться непосредственно или интерпретироваться, выполняться в виде микрокоманд и т.п.центральными процессорами компьютера (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) и т.п.
[0256] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0257] Компоненты компьютерной системы (700), показанные на фиг. 7, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (700).
[0258] Компьютерная система 700 может включать в свой состав устройства ввода пользовательского интерфейса. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса с человеком также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0259] Входной человеческий интерфейс устройства может включать в себя один или более следующих компонентов (показано только по одному из них): клавиатура (701), мышь (702), сенсорная панель (703), сенсорный экран (710), информационная перчатка (740), джойстик (705), микрофон (706), сканер (707), камера (708).
[0260] Компьютерная система (700) может также включать в свой состав устройства вывода пользовательского интерфейса. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (710), информационной перчатки (704) или джойстика (705), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например, громкоговорители (709), наушники (не показаны)), устройства визуального вывода (например, экраны (710), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).
[0261] Компьютерная система 700 также может содержать доступные пользователю запоминающие устройства и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW 720 с CD/DVD или похожие носители 721, флэш-накопитель 722, съемный или несъемный жесткий диск 723, традиционные магнитные носители, такие как дискета (не показана на чертеже), специализированные устройства, основанные на ROM/ASIC/PLD, такие как аппаратные ключи (не показаны на чертеже) и т.п.
[0262] Специалисты в данной области техники также должны понимать, что термин «компьютерно-считываемые носители», используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0263] Компьютерная система 700 также может содержать интерфейс с одной или более сетями связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (749) (например, USB-порты компьютерной системы (700)); другие обычно встраиваются в ядро компьютерной системы (700) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). При использовании любой из этих сетей компьютерная система 700 может взаимодействовать с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANBus к некоторым устройствам CANBus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.
[0264] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (740) компьютерной системы (700).
[0265] Ядро 740 может содержать один или более центральных процессоров (CPU, Central Processing Unit) 741, графических процессоров (GPU, Graphics Processing Unit) 742, специализированных программируемых процессорных блоков в виде программируемых пользователем вентильных матриц (FPGA, Field Programmable Gate Area) 743, аппаратных ускорителей 744 для определенных задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (745), оперативной памятью (746), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п.(747), могут соединяться посредством системной шины (748). В некоторых компьютерных системах системная шина (748) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п.Периферийные устройства могут подключаться либо напрямую к системной шине (748) ядра, либо через периферийную шину (749). Архитектуры периферийной шины включают в себя PCI, USBht.h.
[0266] CPU (741), GPU (742), FPGA (743) и ускорители (744) могут исполнять определенные инструкции, которые в совокупности могут компенсировать недостатки упомянутого выше компьютерного кода. Этот компьютерный код может храниться в ROM (745) или RAM (746). Переходные данные также могут храниться в RAM (746), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (747) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с одним или более CPU (741), GPU (742), хранилищем (747) данных большой емкости, ROM (745), RAM (746) и т.п.
[0267] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0268] Например, без ограничения приведенным примером, компьютерная система (700) определенной архитектуры и, в частности, ядро (740) может обеспечивать функциональность в результате выполнения процессором(-ами) (включая CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, реализованного на один или более машиночитаемых носителях. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (740), носящим долговременный характер, например, внутренним хранилищем (747) данных большой емкости или ROM (745). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (740). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными требованиями. Программное обеспечение может инициализировать ядро 740 и, в частности, процессоры, расположенные в нем (включая CPU, GPU, FPGA ит.п.), для выполнения конкретных процессов или частей конкретных процессов, приведенных в этом описании, включая определение структур данных в RAM 746 и модификацию таких структур данных в соответствии с процессами, определенными программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (744)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
[0269] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.