Способ сигнализации смешанного типа блока NAL и разбиения на субизображения в кодированном видеопотоке
METHOD FOR SIGNALING A MIXED TYPE OF NAL BLOCK AND SPLITTING INTO SUBIMAGES IN AN ENCODED VIDEO STREAM

[0001] По данной заявке испрашивается приоритет согласно предварительной патентной заявке США №63/003,137, поданной 31 марта 2020 г., и патентной заявке США №17/095,289, поданной 11 ноября 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, известны конструкции системы для изменения горизонтального разрешения (и, таким образом, размера изображения) в зависимости от таких факторов как активность сцены, но только в I-изображениях, следовательно, обычно для GOP. Передискретизация опорных изображений для использования разных разрешений в CVS известна, например, из ITU-T Rec. Н.263, приложение Р. Однако здесь размер изображения не изменяется, передискретизируются только опорные изображения, в результате чего потенциально используются только части холста изображения (в случае понижающей дискретизации), или захватываются только части сцены (в случае повышающей дискретизации). Дополнительно, Н.263, приложение Q, допускает передискретизацию индивидуального макроблока с коэффициентом два (в каждом измерении), вверх или вниз. Опять же, размер изображения остается неизменным. Размер макроблока является фиксированным в Н.263 и поэтому не нуждается в сигнализации.
[0007] Изменения размера изображения в предсказанных изображениях стали более популярными в современном видеокодировании. Например, VP9 допускает передискретизацию опорного изображения и изменение разрешения для полного изображения. Аналогично, некоторые предложения относительно VVC (включая, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-v1 Joint Video Team, 9-19 января 2019 г., включенный сюда в полном объеме) предусматривают передискретизацию полных опорных изображений с повышением или понижением разрешения. В этом документе предлагается кодировать разные возможные разрешения в наборе параметров последовательности и связывать с синтаксическими элементами для каждого изображения в наборе параметров изображения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Варианты осуществления относятся к способу, системе и компьютерно-считываемому носителю для кодирования видеоданных. Согласно одному аспекту, предложен способ кодирования видеоданных. Способ может включать в себя прием видеоданных, включающих в себя одно или более субизображений. Тип блока уровня сетевой абстракции (NAL), связанный с каждым из одного или более субизображений, идентифицируется на основании проверки флага, соответствующего смешанным блокам NAL в одном или более из субизображений. Видеоданные декодируют на основании идентифицированных типов блока NAL.
[0009] Согласно другому аспекту, предусмотрена компьютерная система для кодирования видеоданных. Компьютерная система может включать в себя один или более процессоров, один или более компьютерно-считываемых блоков памяти, одно или более компьютерно-считываемых материальных запоминающих устройств, и программные инструкции, хранящиеся на по меньшей мере одном из одного или более запоминающих устройств для выполнения по меньшей мере одним из одного или более процессоров посредством по меньшей мере одного из одного или более блоков памяти, что позволяет компьютерной системе осуществлять способ. Способ может включать в себя прием видеоданных, включающих в себя одно или более субизображений. Тип блока уровня сетевой абстракции (NAL), связанный с каждым из одного или более субизображений, идентифицируется на основании проверки флага, соответствующего смешанным блокам NAL в одном или более из субизображений. Видеоданные декодируются на основании идентифицированных типов блока NAL.
[0010] Согласно еще одному аспекту, предусмотрен компьютерно-считываемый носитель для кодирования видеоданных. Компьютерно-считываемый носитель может включать в себя одно или более компьютерно-считываемых запоминающих устройств и программные инструкции, хранящиеся на по меньшей мере одном из одного или более материальных запоминающих устройств, причем программные инструкции исполняются процессором. Программные инструкции исполняются процессором для осуществления способа, который может, соответственно, включать в себя прием видеоданных, включающих в себя одно или более субизображений. Тип блока уровня сетевой абстракции (NAL), связанный с каждым из одного или более субизображений, идентифицируется на основании проверки флага, соответствующего смешанным блокам NAL в одном или более из субизображений. Видеоданные декодируются на основании идентифицированных типов блока NAL.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[ООП] Эти и другие задачи, признаки и преимущества станут понятны из следующего подробного описания иллюстративных вариантов осуществления, совместно с прилагаемыми чертежами. Различные признаки на чертежах представлены не в масштабе для обеспечения ясности их понимания специалистами в данной области техники в связи с подробным описанием. На чертежах:
[0012] фиг.1 - упрощенная блок-схема системы связи в соответствии с вариантом осуществления;
[0013] фиг.2 - упрощенная блок-схема системы связи в соответствии с вариантом осуществления;
[0014] фиг.3 - упрощенная блок-схема декодера в соответствии с вариантом осуществления;
[0015] фиг.4 - упрощенная блок-схема кодера в соответствии с вариантом осуществления;
[0016] фиг.5 - схема вариантов сигнализации параметров ARC в соответствии с уровнем техники или вариантом осуществления, как указано;
[0017] фиг.6 - пример синтаксической таблицы в соответствии с вариантом осуществления;
[0018] фиг.7 - схема компьютерной системы в соответствии с вариантом осуществления;
[0019] фиг.8 - пример структуры предсказания для масштабируемости с адаптивным изменением разрешения;
[0020] фиг.9 - пример синтаксической таблицы в соответствии с вариантом осуществления;
[0021] фиг.10 - упрощенная блок-схема цикла РОС анализа и декодирования для каждого блока доступа и значения счетчика блоков доступа;
[0022] фиг.11 - схема структуры битового потока видео, содержащего многоуровневые субизображения;
[0023] фиг.12 - схема отображения выбранного субизображения с повышенным разрешением;
[0024] фиг.13 - блок-схема процесса декодирования и отображения для битового потока видео, содержащего многоуровневые субизображения;
[0025] фиг.14 - схема отображения видео 360° с уровнем улучшения субизображения;
[0026] фиг.15 - пример информации компоновки субизображений и ее соответствующего уровня и структуры предсказания изображения;
[0027] фиг.16 - пример информации компоновки субизображений и ее соответствующего уровня и структуры предсказания изображения, с возможностью пространственной масштабируемости локальной области;
[0028] фиг.17 - пример синтаксической таблицы для информации компоновки субизображений;
[0029] фиг.18 - пример синтаксической таблицы сообщения SEI для информации компоновки субизображений;
[0030] фиг.19 - пример синтаксической таблицы для указания выходных уровней и информации профиля/яруса/уровня для каждого набора выходных уровней;
[0031] фиг.20 - пример синтаксической таблицы для указания режима выходного уровня для каждого набора выходных уровней;
[0032] фиг.21 - пример синтаксической таблицы для указания текущего субизображения каждого уровня для каждого набора выходных уровней;
[0033] фиг.22 - пример синтаксической таблицы для указания идентификатора субизображения;
[0034] фиг.23 - пример синтаксической таблицы для указания информации разбиения на субизображения;
[0035] фиг.24 - пример синтаксической таблицы для указания смешанного типа блока NAL и соответствующей информации разбиения на субизображения.
ПОДРОБНОЕ ОПИСАНИЕ
[0036] Здесь подробно раскрыты варианты осуществления заявленных структур и способов; однако следует понимать, что раскрытые варианты осуществления призваны лишь иллюстрировать заявленные структуры и способы, которые могут быть реализованы в различных формах. Однако эти структуры и способы могут быть реализованы во многих разных формах и не ограничены представленными здесь иллюстративными вариантами осуществления. Эти иллюстративные варианты осуществления представлены, чтобы это раскрытие было исчерпывающим и полным и полностью доносило объем изобретения до специалистов в данной области техники. В описании детали общеизвестных признаков и методов могут быть опущены для более ясного изложения представленных вариантов осуществления.
[0037] Как описано ранее, видеокодеры и декодеры обычно были предназначены для работы с изображениями данного размера, который, в большинстве случаев, задан и остается постоянным на протяжении кодированной видеопоследовательности. Однако изображение может разбиваться на одно или более субизображений. Каждое субизображение может дополнительно разбиваться на один или более слайсов. Два или более независимо кодированных субизображений могут объединяться в кодированное изображение, декодируемое декодером и отображаемое как единое выходное изображение. Таким образом, может быть предпочтительно указывать некоторые ограничения кодирования или декодирования, когда два или более независимо кодированных изображения объединяются в кодированное изображение.
[0038] Аспекты описаны здесь со ссылкой на иллюстративные логические схемы и/или блок-схемы способов, оборудования (систем) и компьютерно-считываемых носителей согласно различным вариантам осуществления. Следует понимать, что каждый блок иллюстративных логических схем и/или блок-схем, и комбинации блоков в иллюстративных логических схемах и/или блок-схемах, можно реализовать посредством компьютерно-считываемых программных инструкций.
[0039] На фиг.1 показана упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего изобретения. Система (100) может включать в себя по меньшей мере два терминала (110, 120) соединенные между собой через сеть (150). Для однонаправленной передачи данных, первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи на другой терминал (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может широко применяться в приложениях медиа служб и т.п.
[0040] На фиг.1 показана вторая пара терминалов (130, 140), предназначенная для поддержки двунаправленной передачи кодированного видео, которая может происходить, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении для передачи на другой терминал через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, передаваемые другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.
[0041] На фиг.1 терминалы (110-140) проиллюстрированы как серверы, персональные компьютеры и смартфоны, но принципы настоящего изобретения не подлежат подобному ограничению. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специальном оборудовании для видеоконференцсвязи. Сеть (150) представляет любые сети, которые переносят кодированные видеоданные между терминалами (110-140), включая, например, сети проводной и/или беспроводной связи. Сеть (150) связи допускает обмен данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет.В целях настоящего рассмотрения, архитектура и топология сети (150) может не иметь отношения к принципу настоящего изобретения, если не указано обратное.
[0042] На фиг.2 показано, в порядке примера применения раскрытого изобретения, расположение видеокодера и декодера в окружении потоковой передачи. Раскрытое изобретение одинаково применимо к другим приложениям отображения видео, включая, например, видеоконференцсвязь, цифровое телевидение, сохранение сжатого видео на цифровых носителях, включающих в себя CD, DVD, карту памяти и т.п.
[0043] Система потоковой передачи может включать в себя подсистему (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. В процессе разработки находится стандарт видеокодирования, неофициально именуемый универсальным видеокодированием (VVC). Раскрытое изобретение может использоваться в контексте VVC.
[0044] На фиг.3 показана функциональная блок-схема видеодекодера (210) согласно варианту осуществления.
[0045] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, подлежащих декодированию декодером (210); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от другой кодированной видеопоследовательности. Кодированная
видеопоследовательность может приниматься из канала (312), который может представлять собой аппаратную/программную линию связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джитгером сети, буферная память (315) может быть подключена приемником (310) и энтропийным декодером/анализатором (320) (далее "анализатором"). Когда приемник (310) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буфер (315) может не требоваться или может быть малым. Для использования в пакетных сетях наилучших усилий, например, Интернете, буфер (315) может требоваться, может быть сравнительно большим и может иметь адаптивный размер.
[0046] Видеодекодер (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) и т.д. Энтропийный декодер/анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0047] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буфера (315), для создания символов (321).
[0048] В реконструкции символов (321) могут участвовать несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются и как, может определяться информацией управления подгруппы, которая выделена из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппы между анализатором (320) и множественными модулями далее для ясности не показан.
[0049] Помимо уже упомянутых функциональных блоков, декодер 210 может принципиально делиться на несколько функциональных модулей, как описано ниже. В практической реализации, действующей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, объединяться друг с другом. Однако в целях описания раскрытого изобретения подходит принципиальное разделение на нижеследующие функциональные модули.
[0050] Первый модуль является модулем (351) масштабирования / обратного преобразования. Модуль (351) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д., как символ(ы) (321) от анализатора (320). Он может выводить блоки, содержащие значения отсчетов, которые могут поступать на агрегатор (355).
[0051] В ряде случаев, выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к интра-кодированному блоку, то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (352) внутреннего предсказания изображения. В ряде случаев, модуль (352) внутреннего предсказания изображения генерирует блок того же размера и той же формы, что и реконструируемый блок, использующий ранее реконструированную информацию окружения, извлеченную из текущего (частично реконструированного) изображения (356). Агрегатор (355) в ряде случаев добавляет, для каждого отсчета в отдельности, информацию предсказания, генерированную модулем (352) внутреннего предсказания, в информацию выходных отсчетов, выдаваемую модулем (351) масштабирования / обратного преобразования.
[0052] В других случаях, выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к интер-кодированному блоку, потенциально с компенсацией движения. В таком случае, модуль (353) предсказания с компенсацией движения может осуществлять доступ к памяти (357) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, агрегатор (355) может добавлять эти отсчеты к выходу модуля масштабирования / обратного преобразования (в этом случае именуемые остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений, откуда модуль компенсации движения извлекает отсчеты предсказания, могут определяться векторами движения, доступными модулю компенсации движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений при использовании векторов движения с точностью до подотсчета, механизмы предсказания вектора движения и т.д.
[0053] Выходные отсчеты агрегатора (355) могут подвергаться различным методам контурной фильтрации в модуле (356) контурного фильтра. Технологии сжатия видео могут включать в себя технологии внутриконтурной фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и делаются доступными модулю (356) контурного фильтра как символы (321) от анализатора (320), но также могут определяться мета-информацией, полученной в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также определяться ранее реконструированными и контурно-отфильтрованными значениями отсчетов.
[0054] Выходным сигналом модуля (356) контурного фильтра может быть поток отсчетов, который может выводиться на устройство (212) визуализации а также сохраняться в памяти опорных изображений (356) для использования в будущем предсказании между изображениями.
[0055] Некоторые кодированные изображения, будучи полностью реконструированными, могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), текущее опорное изображение (356) может стать частью памяти (357) опорных изображений, и память свежего текущего изображения может быть выделена перед осуществлением реконструкции следующего кодированного изображения.
[0056] Видеодекодер 320 может осуществлять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть документирована в стандарте, например, ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным технологией или используемым стандартом сжатия видео, в том смысле, что оно придерживается синтаксиса технологии или стандарта сжатия видео, заданного в документе или стандарте технологии сжатия видео и, в частности, в документе ее профилей. Также для согласования необходимо, чтобы сложность кодированной видеопоследовательности была в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев, могут дополнительно ограничиваться спецификациями и метаданными гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) для управления буфером HRD, сигнализируемым в кодированной видеопоследовательности.
[0057] Согласно варианту осуществления, приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или для более точной реконструкции исходных видеоданных. Дополнительные данные могут иметь форму, например, уровней улучшения во времени, пространстве или SNR, избыточных слайсов, избыточных изображений, кодов прямой коррекции ошибок и т.д.
[0058] На фиг.4 показана функциональная блок-схема видеокодера (203) согласно варианту осуществления настоящего изобретения.
[0059] Кодер (203) может принимать отсчеты видео из источника (201) видеосигнала (который не является частью кодера), который может захватывать видеоизображение(я), подлежащие кодированию кодером (203).
[0060] Источник (201) видеосигнала может обеспечивать исходную видеопоследовательность, подлежащую кодированию кодером (203), в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 битов, 10 битов, 12 битов, ...), любое цветовое (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру дискретизации (например, YCrCb 4:2:0, YCrCb 4:4:4). В системе медиа службы источником (201) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником (203) видеосигнала может быть камера, которая захватывает локальную информацию изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при последовательном просмотре. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники понятно соотношение между пикселями и отсчетами. Нижеследующее описание сосредоточено на отсчетах.
[0061] Согласно варианту осуществления, кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или согласно любым другим ограничениям по времени, требуемым приложением. Обеспечение подходящей скорости кодирования является одной функцией контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально подключен к этим модулям. Соединение для ясности не показано. Параметры, установленные контроллером, могут включать в себя параметры, связанные с управлением частотой (пропуск изображения, квантователь, значение лямбда метода оптимизации скорости-искажения, …), размер изображения, компоновку группы изображений (GOP), максимальный зону поиска вектора движения и т.д. Специалист в данной области техники легко может идентифицировать другие функции контроллера (450), которые могут относиться к видеокодеру (203), оптимизированному для некоторой конструкции системы.
[0062] Некоторые видеокодеры действуют в так называемом "контуре кодирования", известном специалисту в данной области техники. В порядке упрощенного описания, контур кодирования может состоять из кодирующей части кодера (430) (далее "кодера источника") (отвечающей за создание символов на основании входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локального) декодера (433), встроенного в кодер (203), который реконструирует символы для создания данных отсчетов, которые (удаленный) декодер также создавал бы (если любое сжатие между символами и битовым потоком кодированного видео осуществляется без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Этот реконструированный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов дает результаты с точностью до бита независимо от местоположения декодера (локального или удаленного), содержимое памяти опорных изображений также имеет битовую точность между локальным кодером и удаленным кодером. Другими словами, предсказывающая часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел бы" декодер в случае использования предсказания в ходе декодирования. Этот фундаментальный принцип синхронизации с опорным изображением (и дрейфа, если поддержка синхронизации невозможна, например, вследствие канальных ошибок) хорошо известен специалисту в данной области техники.
[0063] Работа "локального" декодера (433) может быть такой же, как "удаленного" декодера (210), которая была подробно описана выше в связи с фиг.3. Однако, как показано на фиг.3, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, энтропийно-декодирующие части декодера (210), включающие в себя канал (312), приемник (310), буфер (315) и анализатор (320), могут быть не полностью реализованы в локальном декодере (433).
[0064] При этом следует отметить, что любая технология декодера, кроме анализа/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать, по существу в идентичной функциональной форме, в соответствующем кодере. По этой причине, раскрытое изобретение сосредоточено на работе декодера. Описание технологий кодера может быть сокращено, поскольку они могут быть обратны полностью описанным технологиям декодера. Только в некоторых случаях требуется более подробное описание, приведенное ниже.
[0065] В ходе работы кодер (430) источника может осуществлять кодирование с предсказанием и компенсацией движения, то есть кодировать входной кадр с предсказанием на основании одного или более ранее кодированных кадров из видеопоследовательности, которые получили название "опорные кадры". Таким образом, машина (432) кодирования кодирует различия между блоки пикселей входного кадра и блоками пикселей опорного(ых) кадра(ов), который(е) можно выбирать как ссылку(и) предсказания для входного кадра.
[0066] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть указаны как опорные кадры, на основании символов, созданных исходными кодером (430). Операции машины (432) кодирования преимущественно могут быть процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показанном на фиг.4), реконструированная видеопоследовательность обычно бывает копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных кадрах и могут предписывать сохранение реконструированных опорных кадров в памяти (434) опорных изображений. Таким образом, кодер (203) может локально сохранять копии реконструированных опорных кадров, которые имеют такое же содержимое, как реконструированные опорные кадры, которые будут получены видеодекодером дальнего конца (ошибки передачи отсутствуют).
[0067] Предсказатель (435) может осуществлять поиски предсказаний для машины (432) кодирования. Таким образом, для нового кадра, подлежащего кодированию, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве возможных опорных блоков пикселей) или некоторые метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут выступать в роли подходящей ссылки предсказания для новых изображений. Предсказатель (435) может действовать на основе блок отсчетов х блок пикселей для нахождения подходящих ссылок предсказания. В ряде случаев, в соответствии с результатами поиска, полученными предсказателем (435), входное изображение может иметь ссылки предсказания, извлеченные из множественных опорных изображений, хранящихся в памяти (434) опорных изображений.
[0068] Контроллер (450) может управлять операциями кодирования видеокодера (430), включающими в себя, например, задание параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0069] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер транслирует символы, генерированные различными функциональными модулями, в кодированную видеопоследовательность, сжимая без потерь символы согласно технологиям, известным специалисту в данной области техники, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.
[0070] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445). для ее подготовки к передаче по каналу (460) связи, который может быть аппаратной / программной линией связи с запоминающим устройством, где должны храниться кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0071] Контроллер (450) может управлять работой кодера (203). В ходе кодирования, контроллер (450) может назначать каждому кодированному изображению некоторый тип кодированного изображения, который может определять методы кодирования, которые могут применяться к соответствующему изображению. Например, изображения часто могут назначаться как один из следующих типов кадра:
[0072] Интра-изображение (I-изображение) может представлять собой изображение, которое можно кодировать и декодировать без использования любого другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения независимого обновления декодера. Специалисту в данной области техники известны эти разновидности I-изображений и соответствующие им применения и признаки.
[0073] Предсказываемое изображение (Р-изображение) может представлять собой изображение, которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и ссылочного индекса для предсказания значений отсчетов каждого блока.
[0074] Двунаправленно-предсказываемое изображение (В-изображение) может представлять собой изображение, которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и ссылочных индексов для предсказания значений отсчетов каждого блока. Аналогично, множественно-предсказываемые изображения могут использовать более двух опорных изображений и соответствующие метаданные для реконструкции одиночного блока.
[0075] Исходные изображения обычно делятся в пространстве на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодируются на поблочной основе. Блоки могут кодироваться с предсказанием с опорой на другие (уже кодированные) блоки, определяемые назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием с опорой на уже кодированные блоки того же изображения (пространственное предсказание или внутреннее предсказание). Блоки пикселей Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания с опорой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания с опорой на одно или два ранее кодированных опорных изображения.
[0076] Видеокодер (203) может осуществлять операции кодирования согласно заранее определенной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В ходе работы, видеокодер (203) может осуществлять различные операции сжатия, включающие в себя операции кодирования с предсказанием, которые используют временную и пространственную избыточности во входной видеопоследовательности. Таким образом, кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой(ым) технологией или стандартом видеокодирования.
[0077] Согласно варианту осуществления, передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временной/пространственный/SNR уровни улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения информации вспомогательного улучшения (SEI), фрагменты набора параметров информации визуальной пригодности (VUI) и т.д.
[0078] Прежде чем перейти к более подробному описанию некоторых аспектов раскрытого изобретения, необходимо определить некоторые термины, которые будут использоваться в оставшейся части настоящего описания.
[0079] Под субизображением далее, в ряде случаев, следует понимать прямоугольную конфигурацию отсчетов, блоков, макроблоков, блоков кодирования или аналогичных объектов, которые семантически сгруппированы и могут независимо кодироваться с измененным разрешением. Одно или более субизображений могут формировать изображение. Одно или более кодированных субизображений могут формировать кодированное изображение. Одно или более субизображений могут собираться в изображение, и одно или более субизображений могут извлекаться из изображения. В некоторых окружениях, одно или более кодированных субизображений могут собираться в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в том же или некоторых других случаях, одно или более кодированных субизображений могут извлекаться из кодированного изображения в сжатой области.
[0080] Под адаптивным изменением разрешения (ARC, Adaptive Resolution Change) далее подразумеваются механизмы, которые позволяют изменять разрешение изображений или субизображений в кодированной видеопоследовательности посредством, например, передискретизации опорного изображения. Под параметром ARC далее следует понимать информацию управления, необходимую для осуществления адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтрации, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д.
[0081] Вышеприведенное описание сосредоточено на кодировании и декодировании одиночного, семантически независимого кодированного видеоизображения. Прежде, чем перейти к описанию кодирования/декодирования множественных субизображений с независимыми параметрами ARC и, следовательно, дополнительной сложностью, опишем варианты осуществления сигнализации параметров ARC.
[0082] На фиг.5 показано несколько новых вариантов для сигнализации параметров ARC. Как указано в каждом из вариантов, они имеют ряд преимуществ и ряд недостатков с точки зрения эффективности кодирования, сложности и архитектуры. Для сигнализации параметров ARC стандарт или технология видеокодирования может выбирать один или более из этих вариантов, или вариантов, известных из уровня техники. Варианты могут не являться взаимоисключающими и могут заменять друг друга в зависимости от применения, используемых стандартов и технологий или от выбора кодера.
[0083] Классы параметров ARC могут включать в себя:
[0084] - коэффициенты повышающей/понижающей дискретизации, разделенные или объединенные в измерениях X и Y
[0085] - коэффициенты повышающей/понижающей дискретизации, с добавлением временного измерения, указывающего увеличение/уменьшение с постоянной скоростью для данного количества изображений
[0086] - любой из двух вышеприведенных классов может предусматривать кодирование одного или более предположительно коротких синтаксических элементов, которые могут указывать на таблицу, содержащую коэффициент(ы).
[0087] - разрешение, в измерении X или Y, в единицах отсчетов, блоков, макроблоков, CU или любой другой подходящей гранулярности входного изображения, выходного изображения, опорного изображения, кодированного изображения, объединенных или разделенных. При наличии более одного разрешения (например, одного для входного изображения, одного для опорного изображения), в некоторых случаях, один набор значений можно вывести из другого набора значений. Разрешение можно указывать, например, с использованием флагов. Более детализированный пример, приведен ниже.
[0088] координаты "деформации", наподобие используемых в Н.263 приложение Р, опять же подходящей гранулярности, как описано выше. Н.263, приложение Р, задает один эффективный способ кодирования таких координат деформации, но также можно предложить другие, потенциально более эффективные способы. Например, обратимое с переменной длиной серии, в стиле Хаффмана, кодирование координат деформации приложения Р можно заменить двоичным кодированием подходящей длины, где длину слова двоичного кода можно выводить, например, из максимального размера изображения, возможно, умноженного на некоторый коэффициент и смещенного на некоторое значение, чтобы "деформация" могла выходить за пределы границ максимального размера изображения.
[0089] - параметры фильтра повышающей или понижающей дискретизации. В простейшем случае, для повышающей и/или понижающей дискретизации может существовать единственный фильтр. Однако, в некоторых случаях, может быть предпочтительным допускать больше гибкости в конструкции фильтра, и для этого может потребоваться сигнализация параметров фильтрации. Такие параметры можно выбирать посредством индекса в списке возможных конструкций фильтра, фильтр может полностью задаваться (например, посредством списка коэффициентов фильтрации, с использованием подходящих методов энтропийного кодирования), фильтр можно неявно выбирать посредством коэффициентов повышающей/понижающей дискретизации, которые, в свою очередь сигнализируются согласно любому из вышеупомянутых механизмов, и т.д.
[0090] Далее описание предполагает кодирование конечного набора коэффициентов повышающей/понижающей дискретизации (один и тот же коэффициент подлежит использованию в обоих измерениях X и Y), указанного посредством кодового слова. Это кодовое слово преимущественно может кодироваться с переменной длиной серии, например с использованием экспоненциального кода Голомба, общего для некоторых синтаксических элементов в спецификациях видеокодирования, например, Н.264 и Н.265. Одно подходящее отображение значений в коэффициенты повышающей/понижающей дискретизации может, например, выражаться согласно следующей таблице.
[0091] Многие аналогичные отображения можно предложить согласно требованиям приложения и возможностям механизмов увеличения и уменьшения, доступных в технологии или стандарте сжатия видео. Таблицу можно расширить за счет дополнительных значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от экспоненциальных кодов Голомба, например с использованием двоичного кодирования. Это может иметь некоторые преимущества, когда коэффициенты передискретизации представляют интерес за пределами самих машин обработки видео (прежде всего кодера и декодера), например, для MANE. Следует отметить, что, в (предположительно) наиболее общем случае, когда изменения разрешения не требуется, можно выбирать короткий экспоненциальный код Голомба; в вышеприведенной таблице - единственный бит.В наиболее общем случае это может иметь преимущество эффективности кодирования перед использованием двоичных кодов.
[0092] Количество элементов в таблице, а также их семантика могут быть полностью или частично конфигурируемыми. Например, основной рисунок таблицы может переноситься в "высоком" наборе параметров, например, последовательности или наборе параметров декодера. Альтернативно или дополнительно, одну или более таких таблиц можно задавать в технологии или стандарте видеокодирования и можно выбирать посредством например декодера или набора параметров последовательности.
[0093] Далее будет описано, как коэффициент повышающей/понижающей дискретизации (информацию ARC), кодированный как описано выше, можно включать в синтаксис технологии или стандарта видеокодирования. Аналогичный соображения можно применять к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. Ниже рассмотрен случай, когда сравнительно большие объемы данных требуются для фильтра или других структур данных.
[0094] Н.263, приложение Р, включает информацию 502 ARC в форме четырех координат деформации в заголовок 501 изображения, в частности, в расширение (503) заголовка Н.263 PLUSPTYPE. Такой выбор конструкции имеет смысл, когда а) существует доступный заголовок изображения, и b) изменения информации ARC предполагаются частыми. Однако служебная нагрузка при использовании сигнализации Н.263 может быть весьма высокой, и коэффициенты масштабирования могут не укладываться в границы изображения, поскольку заголовок изображения может иметь переходный характер.
[0095] Вышеупомянутый JVCET-M135-v1 включает в себя ссылочную информацию (505) ARC (индекс), находящуюся в наборе (504) параметров изображения и индексирующую таблицу (506), включающую в себя целевые разрешения, которая в свою очередь находится внутри набора (507) параметров последовательности. Помещение возможного разрешения в таблицу (506) в наборе (507) параметров последовательности может, согласно устным утверждениям авторов, обосновываться использованием SPS как точки согласования возможности взаимодействий в ходе обмена информацией о возможностях. Разрешение может изменяться в пределах, установленных значениями в таблице (506), от изображения к изображению путем обращения к подходящему набору (504) параметров изображения.
[0096] Согласно фиг.5, могут существовать следующие дополнительные варианты переноса информация ARC в битовом потоке видео. Каждый из этих вариантов имеет некоторые преимущества по сравнению с вышеописанным уровнем техники. Варианты могут одновременно присутствовать в одной и той же технологии или стандарте видеокодирования.
[0097] Согласно варианту осуществления, информация (509) ARC, например, коэффициент передискретизации (масштабирования) может присутствовать в заголовке слайса, заголовок GOB, заголовке тайла или заголовке (508) группы тайлов. Это может быть адекватно, если информация ARC мала, например, составляет одно кодовое слово переменной длины ue(v) или фиксированной длины в несколько битов, например, как показано выше. Наличие информации ARC непосредственно в заголовке группы тайлов имеет дополнительное преимущество в том, что информация ARC может быть применима к субизображению, представленному, например, этой группой тайлов, вместо полного изображения. См. также ниже. Кроме того, даже если технология или стандарт сжатия видео предусматривает только адаптивные изменения разрешения полного изображения (в отличие, например, от адаптивных изменений разрешения на основе группы тайлов), помещение информации ARC в заголовок группы тайлов, по сравнению с ее помещением в заголовок изображения в формате Н.263, имеет некоторые преимущества с точки зрения устойчивости к ошибкам.
[0098] В том же или другом варианте осуществления, сама информация ARC (512) может присутствовать в подходящем наборе (511) параметров, например, наборе параметров изображения, наборе параметров заголовка, наборе параметров тайла, адаптационном наборе параметров и т.д. (изображенный набор параметров адаптации). Область действия этого набора параметров преимущественно не превышает размер изображения, например, группы тайлов. Информация ARC используется неявно посредством активации соответствующего набора параметров. Например, когда технология или стандарт видеокодирования предусматривает только ARC на основе изображения, то может подойти набор параметров изображения или эквивалент.
[0099] В том же или другом варианте осуществления, ссылочная информация (513) ARC может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Эта ссылочная информация (513) может относиться к поднабору информации (515) ARC, доступному в наборе (516) параметров в объеме за пределами одиночного изображения, например, набору параметров последовательности или набору параметров декодера.
[0100] Дополнительный уровень косвенности, обусловленный активацией PPS из заголовка группы тайлов, PPS, SPS, используемых в JVET-M0135-v1, оказывается ненужным, поскольку наборы параметров изображения, как и наборы параметров последовательности, могут (и в некоторых стандартах, например, RFC3984, должны) использоваться для согласования или объявления возможностей. Если же информацию ARC нужно применять к субизображению, представленному, например, также группами тайлов, набор параметров, где область действия ограничена группой тайлов, предпочтительно выбирать, например, адаптационный набор параметров или набор параметров заголовка. Также, если информация ARC имеет более чем пренебрежимо малый размер например, содержит информацию управления фильтром, например, многочисленные коэффициенты фильтрации - то выбирать параметр может быть лучше, чем использовать непосредственно заголовок (508) с точки зрения эффективности кодирования, поскольку эти настройки можно повторно использовать в будущих изображениях или субизображениях, обращаясь к одному и тому же набору параметров.
[0101] При использовании набора параметров последовательности или другого, более высокого, набора параметров с объемом, охватывающим множественные изображения, может применить некоторые следующие соображения:
[0102] 1. Набор параметров для хранения таблицы (516) информации ARC может, в ряде случаев, представлять собой набор параметров последовательности, но в других случаях преимущественно набор параметров декодера. Набор параметров декодера может иметь область действия в виде множества CVS, а именно кодированного видеопотока, т.е. все биты кодированного видео от начала сеанса до окончания сеанса. Такая область может быть более подходящей, поскольку возможные коэффициенты ARC могут быть признаком декодера, возможно реализованного аппаратными средствами, а аппаратным признакам не свойственно изменяться с любой CVS (которая по меньшей мере в некоторых развлекательных системах представляет собой группу изображений, которая имеет длительность одну секунду или менее). Таким образом, помещение таблицы в набор параметров последовательности в явном виде включается в описанные здесь варианты ее расположения, в частности, в связи с нижеследующим пунктом 2.
[0103] 2. Ссылочная информация (513) ARC может преимущественно располагаться непосредственно в заголовке изображения/слайса/тайла/ООВ/группы тайлов (далее - заголовок группы тайлов) (514), а не в наборе параметров изображения, как в JVCET-M0135-v1. Причина такова: когда кодер хочет изменить единственное значение в наборе параметров изображения, например, ссылочную информацию ARC, ему нужно создать новый PPS и сослаться на этот новый PPS. Предположим, что изменяется только ссылочная информация ARC, но другая информация, например, информация матрицы квантования в PPS остается. Такая информация может иметь существенный размер и ее потребуется повторно передавать для завершения нового PPS. Поскольку ссылочной информацией ARC может быть единственное кодовое слово, например, индекс таблицы (513), и оно будет единственным значением, которое изменяется, было бы затратно и расточительно повторно передавать полностью, например, информацию матрицы квантования. С точки зрения эффективности кодирования может быть значительно лучше избежать косвенности посредством PPS, как предложено в JVET-M0135-v1. Аналогично, помещение ссылочной информации ARC в PPS имеет дополнительный недостаток в том, что информация ARC, на которой базируется ссылочная информация (513) ARC, обязательно должна применяться к полному изображению, а не к субизображению, поскольку областью действия набора параметров изображения является изображением.
[0104] В том же или другом варианте осуществления, сигнализация параметров ARC может следовать подробному примеру, приведенному на фиг.6. На фиг.6 изображены синтаксические схемы в представлении, которое используется в стандартах видеокодирования по меньшей мере с 1993 г. Система обозначений таких синтаксических схем примерно следует программированию на языке С.Строки жирным шрифтом указывают синтаксические элементы, присутствующие в битовом потоке, строки без жирного шрифта часто указывают последовательность управления или задание переменных.
[0105] Заголовок (601) группы тайлов в качестве иллюстративной синтаксической структуры заголовка, применимой к (возможно прямоугольной) части изображения, может условно содержать синтаксический элемент dec_pic_size_idx (602), кодированный экспоненциальным кодом Голомба переменной длины (изображенный жирным шрифтом). Наличие этого синтаксического элемента в заголовке группы тайлов может задаваться с использованием адаптивного разрешения (603) - здесь значение флага не показано жирным шрифтом, и это означает, что флаг присутствует в битовом потоке в точке, где он возникает в синтаксической схеме. Используется ли адаптивное разрешение для этого изображения или его части, может сигнализироваться в любой высокоуровневой синтаксической структуре внутри или за пределами битового потока. В показанном примере это сигнализируется в наборе параметров последовательности, как изложено ниже.
[0106] На фиг.6 также показан фрагмент набора (610) параметров последовательности. Первым показанным синтаксическим элементом является adaptive_pic_resolution_change_flag (611). Будучи равным true, этот флаг может указывать использование адаптивного разрешения, которое, в свою очередь может требовать некоторой информации управления. В примере, такая информация управления условно присутствует на основании значения флага на основании оператора if() в наборе (612) параметров и заголовка (601) группы тайлов.
[0107] При использовании адаптивного разрешения, в этом примере, кодируется выходное разрешение в единицах отсчетов (613). Позиция 613 означает оба output_pic_width_in_luma_samples и output_pic_height_in_luma_samples, которые совместно могут задавать разрешение выходного изображения. В другой технологии или стандарте видеокодирования можно задавать некоторые ограничения любого значения. Например, задание уровня может ограничивать полное количество выходных отсчетов, которое может равняться произведению значений этих двух синтаксических элементов. Также некоторые технологии или стандарты видеокодирования, или сторонние технологии или стандарты, например, системные стандарты, могут ограничивать числовой диапазон (например, один или оба размера должны быть кратны степени числа 2), или форматное соотношение (например, отношение ширины и высоты должны составлять, например, 4:3 или 16:9). Такие ограничения могут устанавливаться для облегчения реализаций аппаратного обеспечения или с другими целями, и общеизвестны в уровне техники.
[0108] В некоторых вариантах применения целесообразно, чтобы кодер предписывал декодеру использовать некоторый размер опорного изображения вместо того, чтобы неявно предполагать размер равным размеру выходного изображения. В этом примере синтаксический элемент reference_pic_size_present_flag (614) указывает условное наличие размеров (615) опорного изображения (опять же, позиция означает как ширину, так и высоту).
[0109] Наконец, показана таблица возможного декодирования ширины и высоты изображения. Такая таблица может выражаться, например, указанием (num_dec_pic_size_in_luma_samples_minus 1) (616). "minusl" может относиться к интерпретации значения этого синтаксического элемента. Например, если кодированное значение равно нулю, присутствует один элемент таблицы. Если значение равно пяти, присутствует шесть элементов таблицы. Для каждой "строки" в таблице, ширина и высота декодированного изображения затем включаются в синтаксис (617).
[0110] Представленные элементы (617) таблицы можно индексировать с использованием синтаксического элемента dec_pic size_idx (602) в заголовке группы тайлов, таким образом допуская разные декодированные размеры - фактически, масштабные коэффициенты - для каждой группы тайлов.
[0111] Некоторые технологии или стандарты видеокодирования, например VP9, поддерживают пространственную масштабируемость путем осуществления некоторых форм передискретизации опорного изображения (сигнализируемого совершенно иначе, чем в раскрытом изобретении) в связи с временной масштабируемостью, для обеспечения пространственной масштабируемости. В частности, некоторые опорные изображения можно дискретизировать с повышением с использованием технологий ARC до более высокого разрешения для формирования основы пространственного уровня улучшения. Эти изображения, дискретизированные с повышением, можно уточнять с использованием обычных механизмов предсказания с высоким разрешением, для добавления деталей.
[0112] Раскрытое изобретение может использоваться в таком окружении. В некоторых случаях, в том же или другом варианте осуществления, значение в заголовке блока NAL, например, поле временного ID, может использоваться для указания не только временного, но и пространственного уровня. Это обеспечивает некоторые преимущества для некоторых конструкций системы; например, существующие выбранные пересылаемые блоки (SFU, Selected Forwarding Unit), созданные и оптимизированные для выбранной пересылки временного уровня на основании значения временного ID заголовка блока NAL, могут использоваться без модификации для масштабируемого окружения. Для обеспечения этого может потребоваться отображение между размером кодированного изображения и временным уровнем, указанное полем временного ID в заголовке блока NAL.
[0113] В некоторых технологиях видеокодирования, блок доступа (Access Unit, AU) может относиться к кодированному(ым) изображению(ям), слайсу(ам), тайлу(ам), блоку(ам) NAL и т.д., которые были захвачены и вставлены в битовый поток соответствующего изображения/слайса/тайла/блока NAL в данный момент времени. Этот момент времени может быть временем композиции.
[0114] В HEVC и некоторых других технологиях видеокодирования, значение порядкового номера изображения (РОС, picture order count) может использоваться для указания выбранного опорного изображения из множественных опорных изображений, хранящихся в буфере декодированных изображений (DPB, decoded picture buffer). Когда блок доступа (AU) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащий одному и тому же AU, может нести одно и то же значение РОС, из которого можно заключить, что они были созданы из содержимого того же времени композиции. Другими словами, в сценарии, где два изображения/слайса/тайла несут одно и то же данное значение РОС, это может указывать, что два изображения/слайса/тайла принадлежащие одному и тому же AU и имеют одно и то же время композиции. Напротив, два изображения/тайла/слайса, имеющие разные значения РОС, могут указывать изображения/слайсы/тайлы, принадлежащие разным AU и имеющие разные значения времени композиции.
[0115] Согласно варианту осуществления раскрытого изобретения, вышеупомянутое жесткое соотношение может ослабляться в том смысле, что блок доступа может содержать изображения, слайсы или тайлы с разными значениями РОС. Возможность наличия разных значений РОС в AU позволяет использовать значение РОС для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с одинаковым временем представления. Это, в свою очередь, позволяет поддерживать множественные масштабируемое уровни без изменения сигнализации выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.
[0116] Однако по-прежнему желательно иметь возможность идентифицировать AU, которому принадлежит изображение/слайс/тайл, относительно других изображений/слайсов/тайлов, имеющих другие значения РОС, только из значения РОС. Этого можно добиться так, как описано ниже.
[0117] В том же или других вариантах осуществления, счетчик блоков доступа (AUC, access unit count) может сигнализироваться в высокоуровневой синтаксической структуре, например, заголовке блока NAL, заголовке слайса, заголовке группы тайлов, сообщении SEI, наборе параметров или разделителе AU. Значение AUC может использоваться для идентификации того, какие блоки NAL, изображения, слайсы или тайлы принадлежат данному AU. Значение AUC может соответствовать отдельному моменту время композиции. Значение AUC может быть равно множественным значениям РОС. Делением значения РОС на целое число можно вычислить значение AUC. В некоторых случаях операции деления могут создавать некоторую нагрузку на реализации декодера. В подобных случаях, малые ограничения в пространстве нумерации значений AUC могут позволять заменять операцию деления операциями сдвига. Например, значение AUC может быть равно значению старшего бита (MSB, Most Significant Bit) диапазона значения РОС.
[0118] В том же варианте осуществления, значение цикла РОС для каждого AU (poc_cycle_au) может сигнализироваться в высокоуровневой синтаксической структуре, например, заголовке блока NAL, заголовке слайса, заголовке группы тайлов, сообщении SEI, наборе параметров или разделителе AU. рос_cycle_au может указывать, сколько разных и последовательных значений РОС может быть связано с одним и тем же AU. Например, если значение poc_cycle_au равно 4, изображения, слайсы или тайлы со значением РОС, равным 0-3, включительно, связаны с AU со значением AUC, равным 0, и изображения, слайсы или тайлы со значением РОС, равным 4-7, включительно, связаны с AU со значением AUC, равным 1. Следовательно, значение AUC можно получать делением значения РОС на значение рос_cycle_au.
[0119] В том же или другом варианте осуществления, значение рос_cyle_au может выводиться из информации, находящейся, например, в наборе параметров видео (VPS, video parameter set), который идентифицирует количество пространственных уровней или уровней SNR в кодированной видеопоследовательности. Такое возможное соотношение кратко описано ниже. Хотя вышеописанный вывод позволяет сэкономить несколько битов в VPS и, таким образом, повышает эффективность кодирования, может быть предпочтительно явно кодировать рос_cycle_au в подходящей высокоуровневой синтаксической структуре иерархически ниже набора параметров видео, чтобы иметь возможность минимизировать рос_cycle_au для заданной малой части битового потока, например изображения. Эта оптимизация позволяет сэкономить больше битов, чем вышеописанный процесс вывода, поскольку значения РОС (и/или значения синтаксических элементов, косвенно опирающихся на РОС) могут кодироваться в низкоуровневых синтаксических структурах.
[0120] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг.7 показана компьютерная система 700, пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0121] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Unit) и т.п.
[0122] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0123] Компоненты компьютерной системы 700, показанные на фиг.7, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы 700.
[0124] Компьютерная система 700 может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0125] Устройства ввода интерфейса с человеком могут включать в себя один или более из (показаны по одному из них): клавиатуры 701, мыши 702, сенсорной панели 703, сенсорного экрана 710, информационной перчаткам 704, джойстика 705, микрофона 706, сканера 707, камеры 708.
[0126] Компьютерная система 700 также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана 710, информационной перчатки 704 или джойстика 705, но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители 709, наушники (не показаны)), устройства визуального вывода (например, экраны 710, в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны) и принтеров (не показаны).
[0127] Компьютерная система 700 также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW 720 с CD/DVD или подобными носителями 721, привод бегунка 722, сменный жесткий диск или твердотельный привод 723, традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0128] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0129] Компьютерная система 700 также может включать в себя интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (749) (например, USB-порты компьютерной системы 700; другие обычно встраиваются в ядро компьютерной системы 700 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система 700 может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.
[0130] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру 740 компьютерной системы 700.
[0131] Ядро 740 может включать в себя один или более центральных процессоров (CPU) 741, графических процессоров (GPU) 742, специализированных программируемых модулей обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Array) 743, аппаратных ускорителей для некоторых задач 744 и т.д. Эти устройства, совместно с постоянной памятью (ROM) 745, оперативной памятью 746, внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками 747, недоступными пользователю, SSD и т.п., могут соединяться посредством системной шины 748. В некоторых компьютерных системах, системная шина 748 может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине 748 ядра, либо через периферийную шину 749. Архитектуры периферийной шины включают в себя PCI, USB и т.п.
[0132] CPU 741, GPU 742, FPGA 743 и ускорители 744 могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM 745 или RAM 746. Переходные данные также могут храниться в RAM 746, тогда как постоянные данные могут храниться, например, во внутреннем хранилище 747 данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU 741, GPU 742, хранилищем 747 данных большой емкости, ROM 745, RAM 746 и т.п.
[0133] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0134] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру 700, и, в частности, ядро 740 может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра 740, носящим долговременный характер, например, внутренним хранилищем 747 данных большой емкости или ROM 745. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 740. Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру 740 и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM 746, и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель 744), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (1С, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
[0135] На фиг.8 показан пример структуры видеопоследовательности с комбинацией temporal_id, layer_id, и значений РОС и AUC с адаптивным изменением разрешения. В этом примере, изображение, слайс или тайл в первом AU с AUC=0 может иметь temporal_id=0 и layer_id=0 или 1, тогда как изображение, слайс или тайл во втором AU с AUC=1 может иметь temporal_id=1 и layer_id=0 или 1, соответственно. Значение РОС увеличивается на 1 для каждого изображения независимо от значений temporal_id и layer_id. В этом примере, значение рос_cycle_au может быть равно 2. Предпочтительно, значение рос_cycle_au может быть установлено равным количеству уровней (пространственной масштабируемости). В этом примере, следовательно, значение РОС увеличивается на 2, тогда как значение AUC увеличивается на 1.
[0136] Согласно вышеописанным вариантам осуществления, все или поднабор из структуры предсказания между изображениями или между уровнями и указание опорного изображения может поддерживаться с использованием существующей сигнализации набора опорных изображений (RPS, reference picture set) в HEVC или сигнализации списка опорных изображений (RPL, reference picture list). В RPS или RPL выбранное опорное изображение указывается сигнализацией значения РОС или разности значений РОС между текущим изображением и выбранным опорным изображением. Для раскрытого изобретения, RPS и RPL могут использоваться для указания структуры предсказания между изображениями или между уровнями без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id опорного изображения больше значения temporal_id текущего изображения, текущее изображение не может использовать опорное изображение для компенсации движения или других предсказаний. Если значение layerid опорного изображения больше значения layerid текущего изображения, текущее изображение не может использовать опорное изображение для компенсации движения или других предсказаний.
[0137] В том же и других вариантах осуществления, масштабирование вектора движения на основании разности РОС для временного предсказания вектора движения может быть запрещено для множества изображений в блоке доступа. Следовательно, хотя разные изображения могут иметь разные значения РОС в блоке доступа, вектор движения не масштабируется и используется для временного предсказания вектора движения в блоке доступа. Это связано с тем, что опорное изображение с другим РОС в одном и том же AU рассматривается как опорное изображение, имеющее один и тот же момент времени. Таким образом, согласно варианту осуществления, функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, связанному с текущим изображением.
[0138] В том же и других вариантах осуществления, масштабирование вектора движения на основании разности РОС для временного предсказания вектора движения может быть опционально запрещено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основании отношения как разности РОС, так и пространственного разрешения между текущим изображением и опорным изображением.
[0139] В том же или другом варианте осуществления, вектор движения может масштабироваться на основании разности AUC вместо разности РОС для временного предсказания вектора движения, в особенности, когда рос_cycle_au имеет неоднородное значение (когда vps contantj_poc_cycle_per_au == 0). В противном случае (когда vps_contant_poc_cycle_per_au == 1), масштабирование вектора движения на основании разности AUC может быть идентично масштабированию вектора движения на основании разности РОС.
[0140] В том же или другом варианте осуществления, когда вектор движения масштабируется на основании разности AUC, опорный вектор движения в одном и том же AU (с одним и тем же значением AUC) с текущим изображением не масштабируется на основании разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основании отношения пространственного разрешения между текущим изображением и опорным изображением.
[0141] В том же и других вариантах осуществления, значение AUC используется для идентификации границы AU и используется для операции гипотетического эталонного декодера (HRD), для которой требуется время ввода и вывода с гранулярностью AU. В большинстве случаев декодированное изображение с наивысшим уровнем в AU может выводиться для отображения. Значение AUC и значение layer_id может использоваться для идентификации выходного изображения.
[0142] Согласно варианту осуществления, изображение может состоять из одного или более субизображений. Каждое субизображение может покрывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, образонная одним или более субизображениями, может покрывать или не покрывать всю область изображения. Если изображение состоит из субизображения, область, поддерживаемая субизображением, идентична области, поддерживаемой изображением.
[0143] В том же варианте осуществления, субизображение может кодироваться способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может независимо кодироваться или может кодироваться в зависимости от другого субизображения или кодированного изображения. Субизображение может иметь или не иметь какую-либо зависимость анализа от другого субизображения или кодированного изображения.
[0144] В том же варианте осуществления, кодированное субизображение может содержаться в одном или более уровней. Кодированные субизображения в уровне могут иметь разное пространственное разрешение. Исходное субизображение может пространственно передискретизироваться (дискретизироваться с повышением или дискретизироваться с понижением), кодироваться с разными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем уровню.
w,k
h,k
w,k
h,k
w,k
h,k
w,k
h,k
[0145] В том же или другом варианте осуществления, субизображение с (W, Н), где W обозначает ширину субизображения и Н обозначает высоту субизображения, соответственно, может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню 0, тогда как дискретизированное с повышением (или дискретизированное с понижением) субизображение из субизображения с исходным пространственным разрешением, с (W*S, H*S), может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню k, где S, S указывают коэффициенты передискретизации, по горизонтали и вертикали. Если значения S, S больше 1, передискретизация является повышающей дискретизацией. Если же значения S, S меньше 1, то передискретизация является понижающей дискретизацией.
i,n
i,m
[0146] В том же или другом варианте осуществления, кодированное субизображение в уровне может отличаться визуальным качеством от кодированного субизображения в другом уровне в том же субизображении или другом субизображении. Например, субизображение i в уровне, n, кодируется параметром квантования, Q, тогда как субизображение j в уровне, m, кодируется параметром квантования, Q.
[0147] В том же или другом варианте осуществления, кодированное субизображение в уровне может независимо декодироваться, без какой-либо зависимости анализа или декодирования от кодированного субизображения в другом уровне той же локальной области. Уровень субизображения, который может независимо декодироваться без опоры на другой уровень субизображения той же локальной области, является независимым уровнем субизображения. Кодированное субизображение в уровне независимого субизображения может иметь или не иметь зависимость декодирования или анализа от ранее кодированного субизображения в том же уровне субизображения, но кодированное субизображение не может иметь никакой зависимости от кодированного изображения в другом уровне субизображения.
[0148] В том же или другом варианте осуществления, кодированное субизображение в уровне может зависимо декодироваться, при любой зависимости анализа или декодирования от кодированного субизображения в другом уровне той же локальной области. Уровень субизображения, который может зависимо декодироваться со ссылкой на другой уровень субизображения той же локальной области, является зависимым уровнем субизображения. Кодированное субизображение в зависимом субизображении может опираться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированное субизображение в том же уровне субизображения или оба опорных субизображения.
[0149] В том же или другом варианте осуществления, кодированное субизображение содержит один или более независимых уровней субизображений и один или более зависимых уровней субизображений. Однако по меньшей мере один уровень независимого субизображения могут присутствовать для кодированного субизображения. Уровень независимого субизображения может иметь значение идентификатора уровня (layer_id), которое может присутствовать в заголовке блока NAL или другой высокоуровневой синтаксической структуре, равное 0. Уровень субизображения с layer_id равным 0 является базовым уровнем субизображения.
[0150] В том же или другом варианте осуществления, изображение может состоять из одного или более субизображений переднего плана и одного субизображения заднего плана. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением заднего плана. Субизображение заднего плана может быть базовым уровнем субизображения, тогда как субизображение переднего плана может быть небазовым (улучшенным) уровнем субизображения. Один или более небазовый уровень субизображения может опираться на один и тот же базовый уровень для декодирования. Каждый небазовый уровень субизображения с layer_id равным a может опираться на небазовый уровень субизображения с layer_id равным b, где а больше b.
[0151] В том же или другом варианте осуществления, изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. Каждое субизображение может иметь свой собственный базовый уровень субизображения и один или более небазовых уровней (уровней улучшения). Каждый базовый уровень субизображения может служить опорой одному или более небазовым уровням субизображений. Каждый небазовый уровень субизображения с layer_id равным а может опираться на небазовый уровень субизображения с layer_id равным b, где а больше b.
[0152] В том же или другом варианте осуществления, изображение может состоять из одного или более субизображений переднего плана, с субизображением заднего плана или без него. Каждое кодированное субизображение в уровне (базовом или небазовом) субизображения может служить опорой одному или более небазовым уровням субизображений, принадлежащим одному и тому же субизображению и одному или более небазовым уровням субизображений, которое не принадлежат одному и тому же субизображению.
[0153] В том же или другом варианте осуществления, изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. Субизображение в уровне а могут дополнительно разбиваться на множественные субизображения в одном и том же уровне. Одно или более кодированных субизображений в уровне b может опираться на разбиваемое субизображение в уровне а.
[0154] В том же или другом варианте осуществления, кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может содержать одну или более последовательностей кодированных субизображений (CSPS, coded sub-picture sequences), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь такое же или другое временное разрешение, чем у кодированной видеопоследовательности.
[0155] В том же или другом варианте осуществления, CSPS может кодироваться и содержаться в одном или более уровней. CSPS может состоять из одного или более уровней CSPS. Декодирование одного или более уровней CSPS, соответствующих CSPS, позволяет реконструировать последовательность субизображений, соответствующих одной и той же локальной области.
[0156] В том же или другом варианте осуществления, количество уровней CSPS, соответствующих CSPS, может быть равно или отличаться от количество уровней CSPS, соответствующих другой CSPS.
[0157] В том же или другом варианте осуществления, уровень CSPS может иметь временное разрешение (например, частоту кадров), отличное от временного разрешения уровня CSPS. Исходная (без сжатия) последовательность субизображений может передискретизироваться по времени (дискретизироваться с повышением или дискретизироваться с понижением), кодироваться с разными параметрами временного разрешения и содержаться в битовом потоке, соответствующем уровню.
t,k
t,k
t,k
t,k
[0158] В том же или другом варианте осуществления, последовательность субизображений с частотой кадров, F, может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню 0, тогда как дискретизированная с повышением (или с понижением) по времени последовательность субизображений из исходной последовательности субизображений, F*S, может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню k, где S указывает коэффициент временной дискретизации для уровня k. Если значение S больше 1, процесс временной передискретизации является преобразованием с повышением частоты кадров. Если значение S меньше 1, процесс временной передискретизации является преобразованием с понижением частоты кадров.
[0159] В том же или другом варианте осуществления, когда субизображение с уровнем CSPS а служит опорой субизображению с уровнем CSPS b для компенсации движения или любого межуровневого предсказания, если пространственное разрешение уровня CSPS а отличается от пространственного разрешения уровня CSPS b, декодированные пиксели в уровне CSPS а передискретизируются и используются для ссылки. Процесс передискретизации может требовать фильтрации повышающей дискретизации или фильтрации понижающей дискретизации.
[0160] В том же или другом варианте осуществления, на фиг.9 показан пример синтаксических таблиц для сигнализации синтаксического элемента vps_poc_cycle_au в VPS (или SPS), который указывает poccycleau, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и синтаксического элемента slice_poc_cycle_au, который указывает poc_cycle_au текущего слайса, в заголовке слайса. Если значение РОС увеличивается равномерно для каждого AU, vps_contant_poc_cycle_per_au в VPS устанавливается равным 1, и vps_poc_cycle_au сигнализируется в VPS. В этом случае, slice_poc_cycle_au явно не сигнализируется, и значение AUC для каждого AU вычисляется делением значения РОС на vps_poc_cycle_au. Если значение РОС не увеличивается равномерно для каждого AU, vps_contant_poc_cycle_per_au в VPS устанавливается равным 0. В этом случае, vpsaccessunitcnt не сигнализируется, тогда как sliceaccessunitcnt сигнализируется в заголовке слайса для каждого слайса или изображения. Каждый слайс или изображение может иметь разное значение slice_access_unit_cnt. Значение AUC для каждого AU вычисляется делением значения РОС на slice_poc_cycle_au. На фиг.10 показана блок-схема, демонстрирующая соответствующий поток операций.
[0161] В том же или других вариантах осуществления, хотя значения РОС изображения, слайса или тайла могут различаться, изображение, слайс или тайл, соответствующий AU с одним и тем же значением AUC, может быть связан с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо зависимости анализа/декодирования между изображениями, слайсами или тайлами в одном и том же AU, все или поднабор изображений, слайсов или тайлов, связанных с одним и тем же AU могут декодироваться параллельно и могут выводиться в один и тот же момент времени.
[0162] В том же или других вариантах осуществления, хотя значения РОС изображения, слайса или тайла могут различаться, изображение, слайс или тайл, соответствующий AU с одним и тем же значением AUC, могут быть связаны с одним и тем же моментом времени композиции/отображения. Когда время композиции содержится в формате контейнера, хотя изображения соответствуют разным AU, если изображения имеют одно и то же время композиции, изображения могут отображаться в один и тот же момент времени.
[0163] В том же или других вариантах осуществления, каждое изображение, слайс или тайл может иметь один и тот же временной идентификатор (temporal_id) в одном и том же AU. Все или поднабор изображений, слайсов или тайлов, соответствующих моменту времени, может быть связан с одним и тем же временным подуровнем. В том же или других вариантах осуществления, каждое изображение, слайс или тайл может иметь один и тот же или разные id пространственного уровня (layer_id) в одном и том же AU. Все или поднабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с одним и тем же или разными пространственными уровнями.
[0164] На фиг.11 показан пример видеопотока, включающего в себя CSPS видео заднего плана с layer_id равным 0 и множественными уровнями CSPS переднего плана. В то время как кодированное субизображение может состоять из одного или более уровней CSPS, область заднего плана, которая не принадлежит ни одному уровню CSPS переднего плана, может состоять из базового уровня. Базовый уровень может содержать область заднего плана и области переднего плана, тогда как уровень улучшения CSPS содержит область переднего плана. Уровень улучшения CSPS может иметь лучшее визуальное качество, чем базовый уровень, в одной и той же области. Уровень улучшения CSPS может опираться на реконструированные пиксели и векторы движения базового уровня, соответствующие той же области.
[0165] В том же или другом варианте осуществления, битовый поток видео, соответствующий базовому уровню, содержится в треке, тогда как уровни CSPS, соответствующие каждому субизображению, содержатся в отдельном треке, в файле видео.
[0166] В том же или другом варианте осуществления, битовый поток видео, соответствующий базовому уровню, содержится в треке, тогда как уровни CSPS с одним и тем же layer_id содержатся в отдельном треке. В этом примере, трек, соответствующий уровню к, включает в себя уровни CSPS, соответствующие только уровню к.
[0167] В том же или другом варианте осуществления, каждый уровень CSPS каждого субизображения хранится в отдельном треке. Каждый трек может иметь или не иметь какую-либо зависимость анализа или декодирования от одного или более других треков.
[0168] В том же или другом варианте осуществления, каждый трек может содержать битовые потоки, соответствующие уровням от i до j из уровней CSPS всех или поднабора субизображений, где 0<i=<j=<k, где k - наивысший уровень CSPS.
[0169] В том же или другом варианте осуществления, изображение состоит из одних или более соответствующих медиаданных, включающих в себя карту глубины, альфа-карту, данные 3D геометрии, карту занятости и т.д. Такие соответствующим образом синхронизированные медиаданные могут делиться на один или несколько подпотоков данных, каждый из которых соответствует одному субизображению.
[0170] В том же или другом варианте осуществления, на фиг.12 показан пример видеоконференции на основании способа многоуровневых субизображений. В видеопотоке содержатся один битовый поток видео базового уровня, соответствующий изображению заднего плана, и один или более битовых потоков видео уровня улучшения, соответствующие субизображениям переднего плана. Каждый битовый поток видео уровня улучшения соответствует уровню CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому уровню. Оно содержит одно или более изображений в изображении (PIP, picture in picture) пользователя. Когда конкретный пользователь выбирается клиентским управлением, уровень улучшения CSPS, соответствующий выбранному пользователю, декодируется и отображается с повышенным качеством или пространственным разрешением. На фиг.13 показана схема работы.
[0171] В том же или другом варианте осуществления, промежуточный узел сети (например, маршрутизатор) может выбирать поднабор уровней для отправки пользователю в зависимости от его полосы частот. Организация изображения/субизображения может использоваться для адаптации полосы. Например, если пользователь не имеет полосы, маршрутизатор удаляет уровни или выбирает некоторые субизображения вследствие их важности или на основании используемой настройки и это может осуществляться динамически для согласования с полосой.
[0172] На фиг.14 показан вариант использования видео 360°. Когда сферическое изображение 360° проецируется на плоское изображение, проекцию изображения 360° можно разбивать на множественные субизображения в качестве базового уровня. Уровень улучшения конкретного субизображения может кодироваться и передаваться клиенту. Декодер имеет возможность декодировать как базовый уровень, включающий в себя все субизображения, так и уровень улучшения выбранного субизображения. Когда текущее окно обзора идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество с декодированным субизображением уровня улучшения. В противном случае, декодированное изображение с базовым уровнем может отображаться с низким качеством.
[0173] В том же или другом варианте осуществления, любая информация компоновки для отображения может присутствовать в файле как вспомогательная информация (например, сообщение SEI или метаданные). Одно или более декодированных субизображений можно перемещать и отображать в зависимости от сигнализируемой информации компоновки. Информация компоновки может сигнализироваться сервером потоковой передачи или вещательной станцией, или может регенерироваться сетевым узлом или облачным сервером или может определяться индивидуальной настройкой пользователя.
[0174] Согласно варианту осуществления, когда входное изображение делится на одну или более прямоугольных подобластей, каждая подобласть может кодироваться как независимый уровень. Каждый независимый уровень, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого уровня может сигнализироваться информация размера субизображения и местоположения. Например, размер изображения (ширина, высота), информация смещения левого верхнего угла (х_offset, у_offset). На фиг.15 показан пример компоновки разделения на субизображения, размер субизображения и информация о положении и соответствующей структуре предсказания изображения. Информация компоновки, включающая в себя размер субизображения(й) и положение(я) субизображений, может сигнализироваться в высокоуровневой синтаксической структуре, например, наборе(ах) параметров, заголовке слайса или группы тайлов или сообщении SEI.
[0175] В том же варианте осуществления, каждое субизображение, соответствующее независимому уровню, может иметь свое уникальное значение РОС в AU. Когда опорное изображение из изображений, хранящихся в DPB. указано с использованием синтаксического(их) элемента(ов) в структуре RPS или RPL, может использоваться значение(я) РОС каждого субизображения, соответствующего уровню.
[0176] В том же или другом варианте осуществления, для указания структуры (межуровневого) предсказания, layer_id может не использоваться, и значение (дельта) РОС может использоваться.
[0177] В том же варианте осуществления, субизображение со значением РОС, равным N, соответствующим уровню (или локальной области) может использоваться или не использоваться как опорное изображение для субизображения со значением РОС, равным K+N, соответствующим одному и тому же уровню (или одной и той же локальной области) для предсказания с компенсацией движения. В большинстве случаев, значение числа K может быть равно максимальному количеству (независимых) уровней, которое может быть равно количеству подобластей.
[0178] В том же или другом варианте осуществления, на фиг.16 показан расширенный случай фиг.15. Когда входное изображение делится на множественные (например, четыре) подобласти, каждая локальная область может кодироваться с одним или более уровнем. В этом случае количество независимых уровней может быть равно количеству подобластей, и один или более уровней могут соответствовать подобласти. Таким образом, каждая подобласть может кодироваться с одним или более независимыми уровнями и нулем или более зависимыми уровнями.
[0179] В том же варианте осуществления, на фиг.16, входное изображение может делиться на четыре подобласти. Верхняя правая подобласть может кодироваться как два уровня, которые являются уровнем 1 и уровнем 4, тогда как нижняя правая подобласть может кодироваться как два уровня, которые являются уровнем 3 и уровнем 5. В этом случае, уровень 4 может опираться на уровень 1 для предсказания с компенсацией движения, тогда как уровень 5 может опираться на уровень 3 для компенсации движения.
[0180] В том же или другом варианте осуществления, внутриконтурная фильтрация (например, деблокирующая фильтрация, адаптивная внутриконтурная фильтрация, формирователь, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу уровня может быть (опционально) запрещена.
[0181] В том же или другом варианте осуществления, предсказание с компенсацией движения или внутреннее копирование блоков через границу уровня может быть (опционально) запрещено.
[0182] В том же или другом варианте осуществления, заполнение границы для предсказания с компенсацией движения или внутриконтурная фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли заполнение границы, может сигнализироваться в высокоуровневой синтаксической структуре, например, набор(ах) параметров (VPS, SPS, PPS или APS), заголовке слайса или группы тайлов, или в сообщении SEI.
[0183] В том же или другом варианте осуществления, информация компоновки подобласти(ей) (или субизображения(й)) может сигнализироваться в VPS или SPS. На фиг.17 показан пример синтаксических элементов в VPS и SPS. В этом примере, vps_sub_picture_dividing_flag сигнализируется в VPS. Флаг может указывать, делится ли входное изображение(я) на множественные подобласти. Когда значение vps_sub_picture_dividing_flag равно 0, входное(ые) изображение(я) в кодированной(ых) видеопоследовательности(ях), соответствующих текущему VPS, может не делиться на множественные подобласти. В этом случае размер входного изображения может быть равен размеру кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), который сигнализируется в SPS. Когда значение vps_sub_picture_dividing_flag равно 1, входное изображение(я) может делиться на множественные подобласти. В этом случае синтаксические элементы vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples сигнализируются в VPS. Значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples могут быть равны ширине и высоте входного(ых) изображения(й), соответственно.
[0184] В том же варианте осуществления значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples могут не использоваться для декодирования, но могут использоваться для композиции и отображения.
[0185] В том же варианте осуществления, когда значение vps_sub_picture_dividing_flag равно 1, синтаксические элементы pic_offset_х и pic_offset_у могут сигнализироваться в SPS, который соответствует конкретному уровню(ям). В этом случае размер кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), сигнализируемого в SPS может быть равен ширине и высоте подобласти, соответствующей конкретному уровню. Также положение (pic_offset_x, pic_offset_y) левого верхнего угла подобласти может сигнализироваться в SPS.
[0186] В том же варианте осуществления информация положения (pic_offset_х, pic_offset_y) левого верхнего угла подобласти может не использоваться для декодирования, но может использоваться для композиции и отображения.
[0187] В том же или другом варианте осуществления информация компоновки (размер и положение) всех или поднабора подобластей входного(ых) изображения(й) и зависимость информация между уровнями может сигнализироваться в наборе параметров или сообщении SEI. На фиг.18 показан пример синтаксических элементов для указания информации компоновки подобластей, зависимости между уровнями и отношения между подобластью и одним или более уровнями. В этом примере синтаксический элемент num sub region указывает количество (прямоугольных) подобластей в текущей кодированной видеопоследовательности. Синтаксический элемент num_layers указывает количество уровней в текущей кодированной видеопоследовательности. Значение num_layers может быть больше или равно значению num_sub_region. Когда любая подобласть кодируется как единственный уровень, значение num_layers может быть равно значению num_sub_region. Когда одна или более подобластей кодируются как множественные уровни, значение num_layers может быть больше значения num_sub_region. Синтаксический элемент direct_dependency_flag[i][j] указывает зависимость от j-го уровня до i-го уровня, num_layers for region[i] указывает количество уровней, связанное с i-ой подобластью, sub_region_layer_id[i][j] указывает layer_id j-го уровня, связанного с i-ой подобластью, sub_region_offset_x[i] и sub_region_offset_y[i] указывают горизонтальное и вертикальное местоположение левого верхнего угла i-ой подобласти, соответственно, и sub_region_width [i] и sub_region_height[i] указывают ширину и высоту i-ой подобласти, соответственно.
[0188] В одном варианте осуществления, один или более синтаксических элементов, которые указывают набор выходных уровней для указания одного или более уровней, подлежащих выводу с информацией уровня/ яруса/ профиля или без нее, могут сигнализироваться в высокоуровневой синтаксической структуре, например, VPS, DPS, SPS, PPS, APS или сообщении SEI. Согласно фиг.19, синтаксический элемент num_output_layer_sets, указывающий номер набора выходных уровней (OLS, output layer set) в кодированной видеопоследовательности со ссылкой на VPS, может сигнализироваться в VPS. Для каждого набора выходных уровней, output_layer_flag может сигнализироваться столько раз, сколько существует выходных уровней.
[0189] В том же варианте осуществления, output_layer_flag[i] равный 1, указывает, что i-й уровень выводится. Флаг vps output_layer_flag[i] равный 0, указывает, что i-й уровень не выводится.
[0190] В том же или другом варианте осуществления, один или более синтаксических элементов, которые указывают информацию уровня/ яруса/ профиля для каждого набора выходных уровней, могут сигнализироваться в высокоуровневой синтаксической структуре, например, VPS, DPS, SPS, PPS, APS или сообщении SEI.
Возвращаясь к фиг.19, синтаксический элемент num_profile_tile_level, указывающий количество информации уровня/ яруса/ профиля для каждого OLS в кодированной видеопоследовательности со ссылкой на VPS, может сигнализироваться в VPS. Для каждого набора выходных уровней, набор синтаксических элементов для информации уровня/ яруса/ профиля или индекса, указывающего конкретную информацию уровня/ яруса/ профиля среди элементов в информации уровня/ яруса/ профиля, может сигнализироваться столько раз, сколько существует выходных уровней.
[0191] В том же варианте осуществления, profile_tier_level_idx[i][j] указывает индекс в списке синтаксических структур profile_tier_level() в VPS для синтаксической структуры profile_tier_level(), которая применяется к j-му уровню i-го OLS.
[0192] В том же или другом варианте осуществления, согласно фиг.20, синтаксические элементы num_profile_tile_level и/или num output_layer_sets могут сигнализироваться, когда количество максимальных уровней больше 1 (vps_max_layers_minus 1>0).
[0193] В том же или другом варианте осуществления, согласно фиг.20, синтаксический элемент vps output_layers mode[i], указывающий режим сигнализации выходного уровня для i-го набора выходных уровней, может присутствовать в VPS.
[0194] В том же варианте осуществления, vps_output_layers_mode [i] равный 0, указывает, что с i-ым набором выходных уровней выводится только наивысший уровень, vps_output_layer_mode[i] равный 1, указывает, что с i-ым набором выходных уровней выводятся все уровни. vps_output_layer_mode[i] равный 2, указывает, что выводимые уровни являются уровнями с vps_output_layer_flag[i] [j] равным 1 с i-ым набором выходных уровней. Дополнительные значения могут быть зарезервированы.
[0195] В том же варианте осуществления, output_layer_flagx[i][j] может сигнализироваться или не сигнализироваться в зависимости от значения vps output_layers_mode[i] для i-го набора выходных уровней.
[0196] В том же или другом варианте осуществления, согласно фиг.20, флаг vps_ptl_signal_flag[i] может присутствовать для i-го набора выходных уровней. В зависимости от значения vps_ptl_signal_flag[i], информация уровня/ яруса/ профиля для i-го набора выходных уровней может сигнализироваться или не сигнализироваться.
[0197] В том же или другом варианте осуществления, согласно фиг.21, количество субизображений, max_subpics_minus1, в текущем CVS может сигнализироваться в высокоуровневой синтаксической структуре, например, VPS, DPS, SPS, PPS, APS или сообщении SEI.
[0198] В том же варианте осуществления, согласно фиг.21, идентификатор субизображения, sub_pic_id[i], для i-го субизображения может сигнализироваться, когда количество субизображений больше 1 (max_subpics_minus 1>0).
[0199] В том же или другом варианте осуществления, один или более синтаксических элементов, указывающих идентификатор субизображения, принадлежащего каждому уровню каждого набора выходных уровней, может сигнализироваться в VPS. Согласно фиг.22, sub_pic_id_layer[i][j][k], которое указывает k-oe субизображение, присутствует в j-ом уровне i-го набора выходных уровней. Эта информация позволяет декодеру распознавать, какое субизображение может декодироваться и выводиться для каждого уровня конкретного набора выходных уровней.
[0200] Согласно варианту осуществления, заголовок изображения (РН, picture header) является синтаксической структурой, содержащей синтаксические элементы, применимые ко всем слайсам кодированного изображения. Блок изображения (PU, picture unit) является набором блоков NAL, которые связаны друг с другом согласно заданному правилу классификации, следуют друг за другом в порядке декодирования и содержат в точности одно кодированное изображение. PU может содержать заголовок изображения (РН) и один или более блоков NAL уровня видеокодирования (VCL, video coding layer), образующих кодированное изображение.
[0201] Согласно варианту осуществления, SPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка, включен по меньшей мере водин AU с TemporalId равным 0 или обеспечен внешним средством.
[0202] Согласно варианту осуществления, SPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка, будет включен по меньшей мере в один AU с TemporalId равным 0 в CVS, который содержит один или более PPS со ссылкой на SPS, или обеспечен внешним средством.
[0203] Согласно варианту осуществления, SPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка одним или более PPS, включен по меньшей мере в один PU с nuh_layer_id равным низшему значению nuhlayerid блоков NAL PPS, которые ссылаются на блок NAL SPS в CVS, который содержит один или более PPS со ссылкой на SPS, или обеспечен внешним средством.
[0204] Согласно варианту осуществления, SPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка одним или более PPS, включен по меньшей мере в один PU с TemporalId равным 0 и nub_layer_id равным низшему значению nuh_layer_id блоков NAL PPS, которые ссылаются на блок NAL SPS, или обеспечен внешним средством.
[0205] Согласно варианту осуществления, SPS (RBSP) может быть доступен процессу декодирования прежде, чем станет опорой для одного или более PPS, включен по меньшей мере в один PU с TemporalId равным 0 и nuh_layer_id равным низшему значению nuh_layer_id блоков NAL PPS, которые ссылаются на блок NAL SPS в CVS, который содержит один или более PPS со ссылкой на SPS, или обеспечен внешним средством.
[0206] В том же или другом варианте осуществления, pps seq parameter set id указывает значение sps_seq_parameter_set_id для опорного SPS. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которое ссылаются кодированные изображения в CLVS.
[0207] В том же или другом варианте осуществления, все блоки NAL SPS с конкретным значением sps seq parameter set id в CVS могут иметь одинаковое содержимое.
[0208] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, блоки NAL SPS могут совместно использовать одно и то же пространство значений sps seq parameter set id.
[0209] В том же или другом варианте осуществления, значение nuh_layer_id блока NAL SPS может быть равно низшему значению nuh_layer_id блоков NAL PPS, которые ссылаются на блок NAL SPS.
[0210] Согласно варианту осуществления, когда на SPS с nuh_layer_id равным т ссылается один или более PPS с nuh_layer_id равным п, уровень с nuh_layer_id равным m может быть идентичным уровню с nuh_layer_id равным п или (прямому или косвенному) опорному уровню уровня с nuh_layer_id равным m.
[0211] Согласно варианту осуществления, PPS (RBSP) должен быть доступен процессу декодирования прежде, чем на него будет сделана ссылка, включен по меньшей мере в один AU с TemporalId равным TemporalId блока NAL PPS или обеспечен внешним средством.
[0212] Согласно варианту осуществления, PPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка, включен по меньшей мере в один AU с TemporalId равным TemporalId блока NAL PPS в CVS, который содержит один или более РН (или блоков NAL кодированного слайса) со ссылкой на PPS, или обеспечен внешним средством.
[0213] Согласно варианту осуществления, PPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка одним или более РН (или блоком NAL кодированного слайса), включен по меньшей мере в один PU с nuh_layer_id равным низшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, который содержит один или более РН (или блоков NAL кодированного слайса) со ссылкой на PPS, или обеспечен внешним средством.
[0214] Согласно варианту осуществления, PPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка одним или более РН (или блоком NAL кодированного слайса), включен по меньшей мере в один PU с TemporalId равным TemporalId блока NAL PPS и nuh_layer_id равным низшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, который содержит один или более РН (или блоков NAL кодированного слайса) со ссылкой на PPS, или обеспечен внешним средством.
[0215] В том же или другом варианте осуществления, ph_pic_parameter_set_id в РН указывает значение pps_pic_parameter_set_id для используемых опорных PPS. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которое ссылаются кодированные изображения в CLVS.
[0216] В том же или другом варианте осуществления, все блоки NAL PPS с конкретным значением pps_pic_parameter_set_id в PU должны иметь одинаковое содержимое.
[0217] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, блоки NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.
[0218] В том же или другом варианте осуществления, значение nuh_layer_id блока NAL PPS может быть равно низшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS.
[0219] Согласно варианту осуществления, когда на PPS с nuh_layer_id равным m ссылаются один или более блоков NAL кодированного слайса с nuh_layer_id равным n, уровень с nuh_layer_id равным m может быть идентичным уровню с nuh_layer_id равным n или (прямо или косвенно) опорному уровню уровня с nuh_layer_id равным m.
[0220] Согласно варианту осуществления, PPS (RBSP) должен быть доступен процессу декодирования прежде, чем на него будет сделана ссылка, включен по меньшей мере в один AU с TemporalId равным TemporalId блока NAL PPS или обеспечен внешним средством.
[0221] Согласно варианту осуществления, PPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка, включен по меньшей мере в один AU с TemporalId равным TemporalId блока NAL PPS в CVS, который содержит один или более РН (или блоков NAL кодированного слайса) со ссылкой на PPS, или обеспечен внешним средством.
[0222] Согласно варианту осуществления, PPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка одним или более РН (или блоков NAL кодированного слайса), включен по меньшей мере в один PU с nuh_layer_id равным низшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, который содержит один или более РН (или блоков NAL кодированного слайса) со ссылкой на PPS, или обеспечен внешним средством.
[0223] Согласно варианту осуществления, PPS (RBSP) может быть доступен процессу декодирования прежде, чем на него будет сделана ссылка одним или более РН (или блоков NAL кодированного слайса), включен в по меньшей мере один PU с TemporalId равным TemporalId блока NAL PPS и nuh_layer_id равным низшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, который содержит один или более РН (или блоков NAL кодированного слайса) со ссылкой на PPS, или обеспечен внешним средством.
[0224] В том же или другом варианте осуществления, ph_pic_parameter_set_id в РН указывает значение pps_pic_parameter_set_id для используемых опорных PPS.
Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которое ссылаются кодированные изображения в CLVS.
[0225] В том же или другом варианте осуществления, все блоки NAL PPS с конкретным значением pps_pic_parameter_set_id в PU должны иметь одинаковое содержимое.
[0226] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, блоки NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.
[0227] В том же или другом варианте осуществления, значение nuh_layer_id блока NAL PPS может быть равно низшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS.
[0228] Согласно варианту осуществления, когда на PPS с nuh_layer_id равным т имеется ссылка в одном или более блоке NAL кодированного слайса с nuh_layer_id равным n, уровень с nuh_layer_id равным m может быть идентичным уровню с nuh_layer_id равным п или (прямо или косвенно) опорному уровню уровня с nuh_layer_id равным m.
[0229] Согласно варианту осуществления, как показано на фиг.22, pps_subpic_id[i] в наборе параметров изображения указывает ID субизображения для i-ro субизображения. Длина синтаксического элемента pps_subpic_id[i] равна pps_subpic_id_len_minus 1+1 битов.
[0230] Переменная SubpicIdVal[i], для каждого значения i в диапазоне от 0 до sps_num_subpics_minus1, включительно, выводится следующим образом:
[0231] В том же или другом варианте осуществления, для любых двух разных значений i и j в диапазоне от 0 до sps_num_subpics_minus 1, включительно, SubpicIdVal[i] не может быть равен SubpicIdVal[j].
[0232] В том же или другом варианте осуществления, когда текущее изображение не является первым изображением CLVS, для каждого значения i в диапазоне от 0 до sps_num_subpics_minus1, включительно, если значение SubpicIdVal[i] не равно значению SubpicIdVal[i] предыдущего изображения в порядке декодирования в одном и том же уровне, nal_unit_type для всех блоки NAL кодированного слайса субизображения в текущем изображении с индексом субизображения i может быть равно конкретному значению в диапазоне от IDR_W_RADL до CRA_NUT, включительно.
[0233] В том же или другом варианте осуществления, когда текущее изображение не является первым изображением CLVS, для каждого значения i в диапазоне от 0 до sps_num_subpics_minus1, включительно, если значение SubpicIdVal[i] не равно значению SubpicIdVal[i] предыдущего изображения в порядке декодирования в одном и том же уровне, sps_independent_subpics_flag может быть равен 1.
[0234] В том же или другом варианте осуществления, когда текущее изображение не является первым изображением CLVS, для каждого значения i в диапазоне от 0 до sps_num_subpics_minus1, включительно, если значение SubpicIdVal[i] не равно значению SubpicIdVal[i] предыдущего изображения в порядке декодирования в одном и том же уровне, sub_pic_treated_as_piczflag[i] и loop_filter_across_subpic_enabled_flag[i] могут быть равны 1.
[0235] В том же или другом варианте осуществления, когда текущее изображение не является первым изображением CLVS, для каждого значения i в диапазоне от 0 до sps_num_subpics_minus1, включительно, если значение SubpicIdVal[i] не равно значению SubpicIdVal[i] предыдущего изображения в порядке декодирования в одном и том же уровне, sps_independent_subpics_flag должен быть равен 1 или subpic_treated_as_pic_flag[i] и loop_filter_across_subpic_enabled_flag[i] должны быть равны 1.
[0236] В том же или другом варианте осуществления, когда субизображение независимо кодируется без какой-либо опоры на другое субизображение, значение идентификатора субизображения области может изменяться в кодированной видеопоследовательности.
[0237] Отсчеты обрабатываются в единицах СТВ. Размер массива для каждого СТВ яркости по ширине и высоте равен CtbSizeY в единицах отсчетов. Ширина и высота массива для каждого СТВ цветности равны CtbWidthC и CtbHeightC, соответственно, в единицах отсчетов. Каждому СТВ назначается сигнализация разбиения для идентификации размеров блока для внутреннего или внешнего предсказания и для кодирования преобразования. Разбиение является рекурсивным разбиением квадрадерева. Корень квадрадерева связан с СТВ. Квадрадерево делится, пока не будет достигнут лист, который именуется листом квадрадерева. Когда ширина компоненты не является целым кратным размера СТВ, СТВ на правой границе компоненты неполны. Когда высота компоненты не является целым кратным размера СТВ, СТВ на нижней границе компоненты неполны.
[0238] Информация ширины и высоты каждого субизображения может сигнализироваться в SPS в единицах CtbSizeY. На фиг.23, например, subpic_width_minusl[i] плюс 1 указывает ширину i-го субизображения в единицах CtbSizeY. Длина синтаксического элемента равна Ceil(Log2((pic_width_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)) битов. Когда отсутствует, значение subpic_width_minusl[i] становится равным ((pic_width_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY) - subpic_ctu_top_left_x[i] - 1. subpic_height_minus1[i] плюс 1 указывает высоту i-го субизображения в единицах CtbSizeY. Длина синтаксического элемента равна Ceil(Log2((pic_height_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)) битов. Когда отсутствует, значение subpic_height_minusl[i] становится равным ((pic_height_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY) - subpic_ctu_top_left_y[i] 1.
[0239] Ширина каждого субизображения может быть больше или равна CtbSizeY, когда ширина изображения больше или равна CtbSizeY. Высота каждого субизображения может быть больше или равна CtbSizeY, когда высота изображения больше или равна CtbSizeY.
[0240] Если ширина изображения не больше CtbSizeY, и высота изображения не больше CtbSizeY, изображение может не разбиваться на более чем одно субизображение. В этом случае количество субизображений может быть равно 1.
[0241] Когда pic_width_max_in_luma_samples не больше CtbSizeY, и pic_height_max_in_luma_samples не больше CtbSizeY, значение subpic_info_present_flag должно быть равно 0. Когда subpic_info_resent_flag равен 0, не существует никакой явной сигнализации информации разбиения на субизображения, и количество субизображений в изображении равно 1.
[0242] В том же или другом варианте осуществления, sps_subpic_id_len_minus1 плюс 1 указывает количество битов, используемых для представления синтаксического элемента sps_subpic_id[i], синтаксических элементов pps_subpic_id[i], когда присутствуют, и синтаксического элемента slice_subpic_id, когда присутствует. Значение sps_subpic_id_len_minus1 может находиться в диапазоне от 0 до 15, включительно. Значение 1 << (sps_subpic_id_len_minus 1) может быть больше или равно sps_num_subpics_minus 1+1.
[0243] В том же или другом варианте осуществления, когда количество субизображений равно 1, subpic_info_present_flag может быть равен 0, и информация разбиения на субизображения может явно не сигнализироваться, поскольку информация ширины и высоты субизображение равна ширине и высоте изображения информация и в этом случае левое верхнее положение субизображения равно левому верхнему положению изображения.
[0244] Например, subpic_ctu_top_left_x[i] указывает горизонтальный положение верхнего левого CTU i-го субизображения в единицах CtbSizeY. Длина синтаксического элемента равна Ceil(Log2((pic_width_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)) битов. Когда отсутствует, значение subpic_ctu_top_left_x[i] становится равным 0. subpic_ctu_top_left_y[i] указывает вертикальное положение верхнего левого CTU i-го субизображения в единицах CtbSizeY. Длина синтаксического элемента равна Ceil(Log2((pic_height_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)) битов. Когда отсутствует, значение subpic_ctu_top_left_у[i] становится равным 0. subpic_width_minus1[i] плюс 1 указывает ширину i-го субизображения в единицах CtbSizeY. Длина синтаксического элемента равна Ceil(Log2((pic_width_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)) битов. Когда отсутствует, значение subpic_width_minusl[i] становится равным ((pic_width_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY) - subpic_ctu_top_left_x[i] - 1. subpic_height_minus1[i] плюс 1 указывает высоту i-го субизображения в единицах CtbSizeY. Длина синтаксического элемента равна Ceil(Log2((pic_height_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)) битов. Когда отсутствует, значение subpic_height_minus1[i] становится равным ((pic_height_max_in_luma_samples + CtbSizeY 1) >> CtbLog2SizeY) subpic_ctu_top_left_y[i] - 1.
[0245] В том же или другом варианте осуществления, когда количество субизображений больше 1, subpic_info_present_flag может быть равен 1, и информация разбиения на субизображения может явно сигнализироваться в наборе параметров, как показано на фиг.23.
[0246] Например, на фиг.23, sps_num_subpics_minus2 плюс 2 указывает количество субизображений в каждом изображении в CLVS. Значение sps_num_subpics_minus2 может находиться в диапазоне от 0 до Ceil (pic_width_max_in_luma_samples ÷ CtbSizeY) * Ceil(pic_height_max_in_luma_samples ÷ CtbSizeY) 2, включительно. Когда отсутствует, значение sps_num_subpics_minus2 становится равным 0.
[0247] В том же варианте осуществления, списки SubpicWidthInTiles[i] и SubpicHeightlnTiles[i], для i в пределах от 0 до sps num subpics minusl, включительно, указывающие ширину и высоту i-го субизображения в столбцах и строках тайлов, соответственно, и список subpicHeightLessThanOneTileFlag[i], для i в пределах от 0 до sps_num_subpics_minus1, включительно, указывающий, меньше ли высота i-го субизображения одной строки тайлов, выводятся следующим образом:
[0248] Когда rect slice flag равен 1, список NumCtusInSlice[i] для i в пределах от 0 до num_slices in_pic_minus1, включительно, указывающий количество CTU в i-ом слайсе, список SliceTopLeftTileIdx[i] для i в пределах от 0 до num_slices_in_pic_minus1, включительно, указывающий индекс тайла для тайла, содержащего первый CTU в слайсе, и матрица CtbAddrInSlice[i][j] для i в пределах от 0 до num_slices_in_pic_minus1, включительно, и j в пределах от 0 до NumCtusInSlice[i] 1, включительно, указывающая адрес растрового сканирования изображения j-го СТВ в i-ом слайсе, и переменная NumSlicesInTile[i], указывающая количество слайсов в тайле, содержащем i-й слайс, выводятся следующим образом:
[0249] Два или более независимо кодированных субизображений могут объединяться в кодированное изображение, поэтому кодированное изображение может декодироваться и выводиться как единое изображение.
[0250] Когда два или более независимо кодированных субизображений объединяются в кодированное изображение, кодированное изображение может состоять из блоков NAL VCL с двумя или более разными типами блока NAL.
[0251] На фиг.23, флаг mixed_nalu_types_in_pic_flag может сигнализироваться в наборе параметров (например, PPS, SPS). mixed_nalu_types_in_pic_flag равный 1, указывает, что каждое изображение со ссылкой на PPS имеет более одного блока NAL VCL, и блоки NAL VCL не имеют одинакового значения nal_unit_type. Флаг mixed_nalu_types_injtic_flag равный 0, указывает, что каждое изображение со ссылкой на PPS имеет один или более блоков NAL VCL, и блоки NAL VCL каждого изображения со ссылкой на PPS имеют одинаковое значение nal unit type.
[0252] Когда mixed_nalu_types_in_pic_flag в PPS равен 1, каждое изображение с mixed_nalu_types_injtic_flag равным 1 обрабатывается как последующее (trailing) изображение. Следовательно, кодированное изображение с двумя или более разными типами блока NAL могут декодироваться как последующее изображение. Когда изображение служит опорой последующим изображениям в порядке декодирования, изображение может обрабатываться как последующее изображение.
[0253] На фиг.23, sps_independent_subpics_flag равный 1, указывает, что все границы субизображения в CLVS обрабатываются как границы изображения, и контурной фильтрации через границы субизображения не существует. Флаг sps_independent_subpics_flag равный 0 не налагает такого ограничения. Когда отсутствует, значение sps_independent_subpics_flag становится равным 0.
[0254] На фиг.23, subpic_treated_as_pic_flag[i] равный 1, указывает, что i-oe субизображение каждого кодированного изображения в CLVS обрабатывается как изображение в процессе декодирования за исключением операций внутриконтурной фильтрации. Флаг subpic_treated_as_pic_flag[i] равный 0, указывает, что i-oe субизображение каждого кодированного изображения в CLVS не обрабатывается как изображение в процессе декодирования за исключением операций внутриконтурной фильтрации. Когда отсутствует, значение subpic_treated_as_pic_flag[i] становится равным sps_independent_subpics_flag. Когда subpic_treated_as_pic_flag[i] равен 1, для согласованности битового потока требуется, чтобы все следующие условия выполнялись для каждого выходного уровня и его опорных уровней в OLS, который включает в себя уровень, содержащий i-oe субизображение в качестве выходного уровня:
[0255] - Все изображения в выходном уровне и его опорных уровнях должны иметь одинаковое значение pic_width_in_luma_samples и одинаковое значение pic_height_in_luma_samples.
[0256] - Все SPS, на которые ссылается выходной уровень и его опорные уровни, должны иметь одинаковое значение sps_num_subpics_minus1 и должны иметь одинаковые значения subpic_ctu_top_left_x[j], subpic_ctu_top_left_y[j], subpic_width_minus1[j], subpic_height_minus1[j] и loop_filter_across_subpic_enabled_flag[j], соответственно, для каждого значения j в диапазоне от 0 до sps_num_subpics_minus1, включительно.
[0257] - Все изображения в каждом блоке доступа в выходном уровне и его опорных уровнях должны иметь одинаковое значение SubpicIdVal[j] для каждого значения j в диапазоне от 0 до sps_num_subpics_minus1, включительно.
[0258] На фиг.23, loop_filter_across_subpic_enabled_flag[i] равный 1, указывает, что операции внутриконтурной фильтрации могут осуществляться через границы i-го субизображения в каждом кодированном изображении в CLVS. Флаг loop_filter_across_subpic_enabled_flag[i] равный 0, указывает, что операции внутриконтурной фильтрации не осуществляются через границы i-го субизображения в каждом кодированном изображении в CLVS. Когда отсутствует, значение loop_filter_across_subpic_enabled_pic_flag[i] становится равным 1-sps_independent_subpics_flag.
[0259] Когда два или более кодированных субизображений объединяются в кодированное изображение, эти кодированные субизображения могут не иметь никакой взаимной зависимости анализа или декодирования.
[0260] Согласно варианту осуществления, когда mixed_nalu_types_in_pic_flag в PPS равен 1, значения subpic_treated_asjtic_flag[] субизображений со ссылкой на PPS может быть равно 1.
[0261] Согласно варианту осуществления, когда sps_in_dependent_subpicsf_lag равен 0, и одно или более значений sub_pic_treated_as_pic_flag[] не равны 1, mixed_nalu_types_injtic_flag может быть равно 0.
[0262] Согласно варианту осуществления, когда mixed_nalu_types_in_pic_flag равен 1, значение sps_independent_subpics_flag может быть равно 1.
[0263] Согласно варианту осуществления, когда mixed_nalu_types_injtic_flag в PPS равен 1, значения subpic_treated_as_pic_flag[] субизображений со ссылкой на PPS становятся равными 1.
[0264] Согласно варианту осуществления, когда два или более соседних субизображений с разными типами блока NAL в изображении должны иметь значение subpic_treated_as_pic_flag[], равное 1.
[0265] Согласно варианту осуществления, фиг.24, информация разбиения на субизображения может сигнализироваться в PPS. Например, pps_in_dependent_subpics_flag равный 1, указывает, что все границы субизображения со ссылкой на PPS обрабатываются как границы изображения, и контурной фильтрации через границы субизображения не существует.Флаг pps_independent_subpics_flag равный 0 не налагает такого ограничения. Когда отсутствует, значение pps_independent_subpics_flag становится равным 0. Флаг pps_subpic_treated_as_pic_flag[i] равный 1, указывает, что i-oe субизображение каждого кодированного изображения со ссылкой на PPS обрабатывается как изображение в процессе декодирования за исключением операций внутриконтурной фильтрации. Флаг pps_subpic_treated_as_pic_flag[i] равный 0, указывает, что i-oe субизображение каждого кодированного изображения со ссылкой на PPS не обрабатывается как изображение в процессе декодирования, за исключением операций внутриконтурной фильтрации. Когда отсутствует, значение pps_subpic_treated_as_pic_flag[i] становится равным pps_independent_subpics_flag, pps_loop_filter_across_subpic_enabled_flag[i] равный 1, указывает, что операции внутриконтурной фильтрации могут осуществляться через границы i-го субизображения в каждом кодированном изображении со ссылкой на PPS. Флаг pps_loop_filter_across_subpic_enabled_flag[i] равный 0, указывает, что операции внутриконтурной фильтрации не осуществляются через границы i-го субизображения в каждом кодированном изображении со ссылкой на PPS. Когда отсутствует, значение pps_loop_filter_across_subpic_enabled_pic_llag[i] становится равным 1 pps_independent_subpics_flag.
[0266] В том же варианте осуществления, когда mixed_nalu_types_in_pic_flag в PPS равен: 1, значения pps_subpic_treated_as_pic_flag[] должны быть равны 1.
[0267] В том же или другом варианте осуществления, когда mixed_nalu_types_in_pic_flag равен 1, pps_independent_subpics_flag должен быть равен 1.
[0268] В том же или другом варианте осуществления, когда mixed_nalu_types_in_pic_flag равен 1, pps_subpic_treated_as_pic_flag[] должен быть равен 1.
[0269] Согласно варианту осуществления, когда mixed_nalu_types_in_pic_flag равен 1, и по меньшей мере блок NAL VCL изображения имеет nal_unit_type равный CRA NUT, субизображение или изображение CRA (Clean Random Access, чистый произвольный доступ) может не обрабатываться как начальное изображение CVS.
[0270] Согласно варианту осуществления, когда mixed_nalu_types_in_pic_flag равен 1, и по меньшей мере блок NAL VCL изображения имеет nal_unit_type равный CRA NUT, может выводиться опережающее (leading) изображение, связанное с субизображением или изображением CRA.
[0271] В том же варианте осуществления, когда mixed_nalu_types_in_pic_flag равен 1, и по меньшей мере блок NAL VCL изображения имеет nal_unit_type равный CRA NUT, HandleCraAsCvsStartFlag и NoOutputBeforeRecoveryFlag для изображения оба устанавливаются равными 0.
[0272] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения.