Техника извлечения битового потока субизображения из потока кодированных видеоданных
TECHNIQUE FOR EXTRACTING A SUBIMAGE BIT STREAM FROM A STREAM OF ENCODED VIDEO DATA

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
[0001] По настоящей заявке испрашивается приоритет согласно предварительной заявке на выдачу патента США №63/037,202 (поданной 10 июня 2020 года) и заявке на выдачу патента США №17/335,600 (поданной 1 июня 2021 года), которые полностью включены в настоящее описание посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Изобретение в целом относится к области обработки данных и, в частности, к кодированию видеоданных.
УРОВЕНЬ ТЕХНИКИ
[0003] Кодирование и декодирование видеоданных с использованием внешнего предсказания изображения с компенсацией движения известно уже несколько десятилетий. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует пропускной способности около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0004] Одной из целей кодирования и декодирования видеоданных может являться снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к пропускной способности или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так что реконструированный сигнал можно использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с большими искажениями по сравнению с пользователями телевещательных приложений. Более высокое разрешенное/допустимое искажение позволяет достичь более высокой степени сжатия.
[0005] Кодер и декодер видеоданных могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из них будут представлены ниже.
[0006] Исторически сложилось так, что видеокодеры и декодеры, как правило, работали с данным размером изображения, который в большинстве случаев был задан и оставался постоянным для кодированной видеопоследовательности (CVS, coded video sequence), группы изображений (GOP, Group of Pictures) или аналогичного временного интервала с несколькими изображениями. Например, в MPEG-2 известны системы, которые изменяют разрешение по горизонтали (и, следовательно, размер изображения) в зависимости от таких факторов, как активность в кадре, но только на I-изображениях, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендации МСЭ-Т Н.263, Приложение Р. Однако здесь размер изображения не меняется, передискретизируются только опорные изображения, в результате чего потенциально могут использоваться только части изображения (в случае понижающей дискретизации) или только части снимаемого кадра (в случае повышающей дискретизации). Кроме того, приложение Q стандарта Н.263 позволяет производить передискретизацию отдельного макроблока с коэффициентом 2 (в каждом измерении) в направлении вверх или вниз. Опять же размер изображения остается прежним. Размер макроблока в Н.263 фиксирован, и поэтому его не нужно сигнализировать.
[0007] Изменение размера изображения для предсказываемых изображений получило широко распространение в современном кодировании видеоданных. Например, VP9 позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении VVC (в том числе, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-vl, 9-19 января 2019 года, полностью включенный в настоящий документ), позволяют выполнять передискретизацию целых опорных изображений с различными - более высокими или более низкими - разрешениями. В настоящем документе предлагается кодировать различные возможные разрешения в наборе параметров последовательности и ссылаться на синтаксические элементы для каждого изображения в наборе параметров изображения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Варианты осуществления изобретения относятся к способу, системе и машиночитаемому носителю для кодирования видеоданных. Согласно одному аспекту изобретения предлагается способ кодирования видеоданных. Способ может включать прием видеоданных, содержащих одно или более субизображений. Извлекают параметры передискретизации и параметры пространственной масштабируемости, соответствующие субизображениям. Параметры передискретизации и пространственной масштабируемости соответствуют одному или более флагам, сигнализируемым в наборе параметров, связанном с видеоданными. Видеоданные декодируют на основе извлеченных параметров передискретизации и пространственной масштабируемости.
[0009] Согласно другому аспекту изобретения, предлагается компьютерная система для кодирования видеоданных. Компьютерная система может включать один или более процессоров, один или более машиночитаемых носителей, одно или более машиночитаемых запоминающих устройств и программные инструкции, хранящиеся по меньшей мере на одном из упомянутых одного или более запоминающих устройств для исполнения по меньшей мере одним из упомянутых одного или более процессоров с помощью по меньшей мере одного из упомянутых одного или более носителей, так что компьютерная система способна выполнять способ. Способ может включать прием видеоданных, содержащих одно или более субизображений. Извлекают параметры передискретизации и параметры пространственной масштабируемости, соответствующие субизображениям. Параметры передискретизации и пространственной масштабируемости соответствуют одному или более флагам, сигнализируемым в наборе параметров, связанном с видеоданными. Видеоданные декодируют на основе извлеченных параметров передискретизации и пространственной масштабируемости.
[0010] Согласно еще одному аспекту изобретения, предлагается машиночитаемый носитель для кодирования видеоданных. Машиночитаемый носитель может включать одно или более машиночитаемых запоминающих устройств и программные инструкции, хранящиеся по меньшей мере на одном из упомянутых одного или более запоминающих устройств, причем программные инструкции исполняются процессором. Программные инструкции исполняются процессором для выполнения способа, который, соответственно, может включать прием видеоданных, содержащих одно или более субизображений. Извлекают параметры передискретизации и параметры пространственной масштабируемости, соответствующие субизображениям. Параметры передискретизации и пространственной масштабируемости соответствуют одному или более флагам, сигнализируемым в наборе параметров, связанном с видеоданными. Видеоданные декодируют на основе извлеченных параметров передискретизации и пространственной масштабируемости.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0011] Эти и другие цели, признаки и преимущества изобретения станут очевидными из последующего подробного описания примеров осуществления изобретения и сопроводительных чертежей. Различные элементы на чертежах приведены не в масштабе, поскольку чертежи в сочетании с подробным описанием изобретения приведены лишь для пояснения и облегчения понимания изобретения специалистом в данной области техники. На чертежах:
[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 показывает пример таблицы синтаксиса набора параметров видео RBSP.
[0034] Фиг. 23 показывает пример таблицы синтаксиса для указания набора выходных уровней с режимом набора выходных уровней.
[0035] Фиг. 24 показывает пример таблицы синтаксиса для указания передискретизации опорного изображения и изменений разрешения в кодированной видеопоследовательности в SPS.
[0036] Фиг. 25 показывает пример таблицы синтаксиса для указания размера изображения в PPS.
[0037] Фиг. 26 показывает пример внешнего предсказания на одном и том же уровне и межуровневого предсказания с передискретизацией опорного изображения с использованием окна масштабирования.
[0038] Фиг. 27 показывает пример извлечения битового субпотока субизображения с изменением размера окна масштабирования.
[0039] Фиг. 28 показывает пример извлечения битового субпотока субизображения без изменения размера окна масштабирования, а только со сдвигом смещения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0040] Здесь подробно описываются варианты осуществления заявленных устройств и способов; однако следует понимать, что раскрытые варианты осуществления изобретения являются просто примерами заявленных устройств и способов, которые могут быть выполнены в различных формах. Эти устройства и способы могут быть выполнены во многих различных формах и не ограничиваются примерами осуществления изобретения, изложенными в данном описании. Эти примеры осуществления изобретения представлены для того, чтобы сделать описание изобретения подробным и полным и раскрыть объем изобретения для специалистов в данной области техники. В описании подробности хорошо известных функций и способов могут быть опущены, чтобы избежать затруднения понимания предлагаемых вариантов осуществления изобретения.
[0041] Варианты осуществления изобретения в целом относятся к области обработки данных и, в частности, к кодированию видеоданных. Описанные ниже примеры осуществления изобретения предоставляют систему, способ и компьютерную программу, в частности, для извлечения битового потока субизображения из потока кодированных видеоданных с множеством уровней. Поэтому некоторые варианты осуществления изобретения могут обеспечить преимущества в области вычислений благодаря улучшенному кодированию и декодированию видеоданных на основе сигнализации параметров передискретизации опорного изображения и пространственной масштабируемости в битовом потоке видеоданных.
[0042] Аспекты изобретения описаны здесь со ссылкой на блок-схемы способов и/или структурные схемы устройств (систем) и машиночитаемых носителей согласно различным вариантам осуществления изобретения. Следует понимать, что каждый блок в блок-схемах и/или структурных схемах, а также комбинации блоков в блок-схемах и/или структурных схемах могут быть реализованы с помощью машиночитаемых программных инструкций.
[0043] На фиг. 1 показана упрощенная структурная схема системы связи (100) согласно варианту осуществления настоящего изобретения. Система (100) может включать по меньшей мере два терминала (110-120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи на другой терминал (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0044] Фиг. 1 иллюстрирует вторую пару терминалов (130, 140), поддерживающих двунаправленную передачу кодированных видеоданных, которая может происходить, например, во время видеоконференций. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, снятые в локальном местоположении, для передачи другому терминалу по сети (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, передаваемые другим терминалом, декодировать кодированные данные и отображать восстановленные видеоданные на локальном устройстве отображения.
[0045] В примере, приведенном на фиг. 1, терминалы (110-140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или оборудования, используемого для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между терминалами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Примеры сетей включают телекоммуникационные сети, локальные сети, глобальные сети и/или интернет.В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0046] На фиг. 2 показано, в порядке примера применения настоящего изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Настоящее изобретение может быть в равной степени применимо к другим применениям обработки видеоданных, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п.
[0047] Система потоковой передачи может включать подсистему (213) захвата, которая может включать источник (201) видеоданных, например цифровую камеру, создающую, например, несжатый поток (202) отсчетов видеоданных. Этот поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с битовыми потоками кодированных видеоданных, может быть обработан кодером (203), соединенным с камерой (201). Кодер (303) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов настоящего изобретения, как более подробно описано ниже. Битовый поток (204) кодированных видеоданных, изображенный в виде тонкой линии, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может быть сохранен на сервере (205) потоковой передачи для дальнейшего использования. Один или более клиентов (206, 208) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) битового потока (204) кодированных видеоданных. Клиент (206) может включать в себя видеодекодер (210), декодирующий входящую копию битового потока (207) кодированных видеоданных и создающий исходящий поток (211) отсчетов видеоданных, который может быть отображен на дисплее (212) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи битовые потоки (204, 207, 209) видеоданных могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видеоданных. Примеры этих стандартов включают Рекомендацию МСЭ-Т Н.265. В стадии разработки находится стандарт кодирования видеоданных, неофициально известный как Универсальное кодирование видеоданных или VVC (Versatile Video Coding). Настоящее изобретение может использоваться в контексте VVC.
[0048] На фиг. 3 показана функциональная схема видеодекодера (210) согласно варианту осуществления настоящего изобретения.
[0049] Приемник (310) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (210), в том же или другом варианте осуществления изобретения, по одной кодированной видеопоследовательности за раз, при этом декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут перенаправляться на соответствующие использующие их объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети между приемником (310) и энтропийным декодером / анализатором (320) (далее "анализатором") может быть подключена буферная память (315). Когда приемник (310) принимает данные от устройства хранения/перенаправления с достаточной пропускной способностью и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, таких как интернет, может потребоваться буфер (315), который может быть сравнительно большим и может предпочтительно иметь адаптивный размер.
[0050] Видеодекодер (210) может включать анализатор (320) для реконструкции символов (321) из энтропийно-кодированной видеопоследовательности. Категории этих символов включают информацию, используемую для управления работой декодера (210), и, возможно, информацию для управления устройством визуализации, например дисплеем (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг.2. Информация управления для устройств(а) визуализации может представлять собой дополнительную информацию улучшения (сообщения SEI (Supplemental Enhancement Information)) или фрагменты набора параметров информации о возможности использования видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать принципам, известным специалисту в данной области техники, включая кодирование с переменной длиной серии, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать группы изображений (GOP, Group of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Unit), блоки, единицы преобразования (TU, Transform Unit), единицы предсказания (PU, Prediction Unit) и т.д. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0051] Анализатор (320) может выполнять операцию энтропийного декодирования / анализа видеопоследовательности, полученной из буфера (315), для создания символов (321).
[0052] Для реконструкции символов (321) могут использоваться несколько различных модулей в зависимости от типа кодированного видеоизображения или его частей (например: изображения с внутренним и внешним кодированием, блоки с внутренним и внешним кодированием) и других факторов. Какие модули и как используются, может определяться информацией управления подгруппами, полученной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и модулями для простоты в дальнейшем не показан.
[0053] Помимо ранее упомянутых функциональных блоков, видеодекодер 210 может принципиально разделяться на несколько функциональных модулей, как описано ниже. В практической реализации в условиях коммерческих ограничений многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания настоящего изобретения уместно принципиальное разделение на перечисленные ниже функциональные модули.
[0054] Первым модулем является модуль (351) масштабирования / обратного преобразования. Модуль (351) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Он может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).
[0055] В ряде случаев выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к блоку с внутренним кодированием, то есть к блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (352) внутреннего предсказания изображения. В ряде случаев модуль (352) внутреннего предсказания изображения формирует блок такого же размера и формы, как у блока, подлежащего реконструкции, с использованием информации уже реконструированного окружения, извлеченной из текущего (частично реконструированного) изображения (356). Агрегатор (355) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сформированную модулем (352) внутреннего предсказания, в информацию выходных отсчетов, предоставленную модулем (351) масштабирования / обратного преобразования.
[0056] В других случаях выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к блоку с внутренним кодированием, возможно, с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может осуществлять доступ к памяти (357) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования / обратного преобразования (в этом случае называемому отсчетами остатка или сигналом остатка) для формирования информации выходных отсчетов. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения извлекает отсчеты для предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения, в форме символов (321), которые могут иметь, например, компоненты X, Y и компоненты опорного изображения. Компенсация движения также может включать интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчетов, механизмы предсказания векторов движения и т.д.
[0057] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле (356) контурного фильтра. Технологии сжатия видеоданных могут включать технологии контурного фильтра под управлением с помощью параметров, включенных в битовый поток кодированных видеоданных и доступных модулю (356) контурного фильтра в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0058] Модуль (356) контурного фильтра может выдавать поток отсчетов, который может поступать на устройство (212) визуализации, а также сохраняться в памяти (356) опорных изображений для использования в будущем внешнем предсказании изображения.
[0059] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение полностью реконструировано и идентифицировано как опорное изображение (например, анализатором (320)), текущее опорное изображение (356) может становиться частью буферной памяти (357) опорных изображений, и может повторно выделяться свежая память для текущего изображения до начала реконструкции следующего кодированного изображения.
[0060] Видеодекодер 320 может осуществлять операции декодирования согласно заранее заданной технологии сжатия видеоданных, задокументированной в стандарте, таком как Рекомендация МСЭ-Т Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или используемым стандартом сжатия видеоданных, в том смысле, что кодированная видеопоследовательность может придерживаться синтаксиса технологии или стандарта сжатия видеоданных, указанного в документе технологии сжатия видеоданных или в стандарте и, в частности, в документе, касающемся профилей. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видеоданных. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемыми в кодированной видеопоследовательности.
[0061] Согласно варианту осуществления изобретения, приемник (310) может принимать дополнительные (избыточные) данные с кодированными видеоданными. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, временные уровни улучшения, пространственные уровни улучшения или уровни улучшения отношения "сигнал/шум" (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.
[0062] На фиг. 4 показана функциональная схема видеокодера (203) согласно варианту осуществления настоящего изобретения.
[0063] Кодер (203) может принимать отсчеты видеоданных от источника (201) видеоданных (который не входит в состав кодера), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (203).
[0064] Источник (201) видеоданных может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (203), в форме потока отсчетов цифровых видеоданных любой подходящей битовой глубины (например: 8 битов, 10 битов, 12 битов,...), любого цветового пространства (например, ВТ.601 Y CrCB, RGB,...) и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (201) видеоданных может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником (203) видеоданных может быть камера, которая захватывает информацию локального изображения в виде видеопоследовательности. Видеоданные могут предоставляться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Последующее описание посвящено отсчетам.
[0065] Согласно варианту осуществления изобретения, кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально подключен к ним. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое в методах оптимизации "скорость-искажения", и т.д.), размер изображения, организацию групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Специалисту в данной области техники понятно, что контроллер (450) может иметь другие подходящие функции, относящиеся к видеокодеру (203), оптимизированному для конкретной конструкции системы.
[0066] Некоторые видеокодеры могут работать в "контуре кодирования", как понятно специалисту в данной области техники. В качестве очень упрощенного описания, например, контур кодирования может включать кодирующую часть кодера (430) (называемую здесь "кодером источника") (отвечающую за создание символов, например, потока символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в кодер (203), который реконструирует символы для создания данных отсчетов, как это делал бы (удаленный) декодер (поскольку любое сжатие символов в битовый поток кодированных видеоданных происходит без потерь в технологиях сжатия видеоданных, рассматриваемых в данном описании). Реконструированный поток отсчетов поступает в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, которые не зависят от положения (локального или удаленного) декодера, содержимое буфера опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, часть предсказания кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) хорошо известен специалисту в данной области техники.
[0067] "Локальный" декодер (433) может действовать таким же образом, как "удаленный" декодер (210), подробно описанный выше со ссылкой на фиг. 3. Однако, опять же, согласно фиг. 3, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включающие канал (312), приемник (310), буфер (315) и анализатор (320), могут быть не полностью реализованы в локальном декодере (433).
[0068] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа / энтропийного декодирования, также обязательно должна присутствовать по существу в идентичной функциональной форме в соответствующем кодере. По этой причине настоящее изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодирования. Лишь в некоторых областях требуется более подробное описание, которое приведено ниже.
[0069] В ходе работы кодер (430) источника может осуществлять кодирование с предсказанием и компенсацией движения, при котором входной кадр кодируется с предсказанием на основе одного или более ранее кодированных кадров из видеопоследовательности, указанных как "опорные кадры". Таким образом, механизм (432) кодирования кодирует разности между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), который(ые) может(ут) выбираться в качестве ссылки(ок) предсказания на входной кадр.
[0070] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть указаны как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть преимущественно способами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных кадрах, и может обеспечивать сохранение реконструированных опорных кадров в кэш-памяти (434) опорных изображений. Таким образом, кодер (203) может локально сохранять копии реконструированных опорных кадров, имеющие такое же содержимое, как реконструированные опорные кадры, которые будут получены удаленным видеодекодером (в отсутствие ошибок передачи).
[0071] Предсказатель (435) может осуществлять поиски предсказания для механизма (432) кодирования. Таким образом, для нового кадра, подлежащего кодированию, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных блоков пикселей) или конкретные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов х блоки пикселей" для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (434) опорных изображений.
[0072] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установление параметров, а также параметров подгруппы, используемых для кодирования видеоданных.
[0073] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сформированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно, например, технологиям, известным специалисту в данной области техники, например, согласно кодированию Хаффмана, кодированию с переменной длиной серии, арифметическому кодированию и т.д.
[0074] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную(ые) энтропийным кодером (445), для подготовки к передаче через канал (460) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, с кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0075] Контроллер (450) может управлять работой кодера (203). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы кадров.
[0076] Изображение с внутренним кодированием (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника для предсказания. Некоторые видеокодеки допускают разные типы изображений с внутренним кодированием, включая, например, изображения в формате независимого обновления декодера (IDR, Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.
[0077] Изображение с предсказанием (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0078] Изображение с двунаправленным предсказанием (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множеством предсказаний могут использовать более двух опорных изображений и соответствующие метаданные для реконструкции одного блока.
[0079] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться с предсказанием со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (с пространственным предсказанием или внутренним предсказанием). Блоки пикселей Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0080] Видеокодер (203) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту кодирования видеоданных, например, Рекомендации МСЭ-Т Н.265. В своей работе видеокодер (203) может осуществлять различные операции сжатия, в том числе операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Поэтому кодированные видеоданные могут соответствовать синтаксису, заданному используемой технологией или используемым стандартом кодирования видеоданных.
[0081] Согласно варианту осуществления изобретения, передатчик (440) может передавать дополнительные данные с кодированными видеоданными. Видеокодер (430) источника может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR уровни улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения дополнительной информации улучшения (SEI), фрагменты набора параметров информации о возможности использования видео (VUI) и т.д.
[0082] Перед более подробным описанием определенных аспектов настоящего изобретения, необходимо ввести несколько терминов, которые будут использоваться далее в этом описании.
[0083] Субизображение далее в некоторых случаях может относиться к прямоугольной организации отсчетов, блоков, макроблоков, единиц кодирования или аналогичных объектов, которые семантически сгруппированы и могут независимо кодироваться с измененным разрешением. Одно или более субизображений могут образовывать изображение. Одно или более кодированных субизображений могут образовывать кодированное изображение. Одно или более субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В определенных средах одно или более кодированных субизображений могут быть собраны в кодированное изображение в области сжатия без перекодирования в уровень отсчетов, и в том же или других определенных случаях одно или более кодированных субизображений могут быть извлечены из кодированного изображения в области сжатия.
[0084] Адаптивное изменение разрешения (ARC, Adaptive Resolution Change) может далее относиться к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. Параметры ARC в дальнейшем относятся к управляющей информации, которая необходима для выполнения адаптивного изменения разрешения и может включать, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д.
[0085] Приведенное выше описание было сфокусировано на кодировании и декодировании одного семантически независимого кодированного видеоизображения. Перед описанием последствий и предполагаемой дополнительной сложности кодирования/декодирования нескольких субизображений с независимыми параметрами ARC могут быть описаны опции для сигнализации параметров ARC.
[0086] На фиг. 5 показано несколько новых опций для сигнализации параметров ARC. Как было отмечено, каждая опция имеет определенные преимущества и недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видеоданных может выбрать одну или более из этих опций или опций, известных из уровня техники, для сигнализации параметров ARC. Опции не могут быть взаимоисключающими и, возможно, могут быть взаимозаменяемыми в зависимости от требований в области применения, используемой технологии стандартов или выбора кодера.
[0087] Классы параметров ARC могут включать:
[0088] - коэффициенты повышающей/понижающей дискретизации, по отдельности или в комбинации в измерениях X и Y
[0089] - коэффициенты повышающей/понижающей дискретизации с добавлением временного измерения, указывающие на увеличение/уменьшение масштаба с постоянной скоростью для данного количества изображений
[0090] - любой из вышеперечисленных двух классов может включать кодирование одного или более предположительно коротких синтаксических элементов, которые могут указывать на таблицу, содержащую коэффициенты).
[0091] - разрешение, по оси X или Y, в единицах отсчетов, блоков, макроблоков, единиц кодирования (CU) или любой другой подходящей степени разбиения входного изображения, выходного изображения, опорного изображения, кодированного изображения, рассматриваемых в комбинации или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть получен из другого набора значений. Это может управляться, например, с помощью флагов. Более подробный пример описан ниже.
[0092] - координаты "деформации" аналогичны координатам, используемым в Приложении Р стандарта Н.263, опять же с подходящей степенью разбиения, как упомянуто выше. В Приложении Р стандарта Н.263 определен эффективный способ кодирования таких координат деформации, но, возможно, могут быть разработаны и другие, потенциально более эффективные, способы. Например, обратимое кодирование переменной длины в стиле Хаффмана координат деформации из Приложения Р может быть заменено двоичным кодированием подходящей длины, где длина слова двоичного кода может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы сделать возможной "деформацию" за пределами границ максимального размера изображения.
[0093] - параметры фильтра повышающей/понижающей дискретизации. В наиболее простом случае может присутствовать только один фильтр для повышающей/понижающей дискретизации. Однако в определенных случаях можно предпочтительно обеспечить большую гибкость в конструкции фильтра, и для этого может потребоваться сигнализация параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью задан (например, с помощью списка коэффициентов фильтра, с использованием подходящих методов энтропийного кодирования), фильтр может быть неявно выбран с помощью коэффициентов повышающей/понижающей дискретизации, которые, в свою очередь, сигнализируются в соответствии с любым из механизмов, упомянутых выше, и т.д.
[0094] Последующее описание предполагает кодирование конечного набора коэффициентов повышающей/понижающей дискретизации (один и тот же коэффициент используется как в измерении X, так и в измерении Y), которые указаны посредством кодового слова. Это кодовое слово может предпочтительно кодироваться кодами переменной длины, например, с использованием экспоненциального кода Голомба, принятого для определенных синтаксических элементов в спецификациях кодирования видеоданных, таких как Н.264 и Н.265. Подходящее преобразование значений в коэффициенты повышающей/понижающей дискретизации может, например, соответствовать следующей таблице:
[0095] Многие подобные преобразования могут быть получены в соответствии с требованиями приложения и возможностями механизмов увеличения и уменьшения масштаба, доступных в технологии или стандарте сжатия видеоданных. Таблицу можно было бы расширить до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляют интерес за пределами самих механизмов обработки видеоданных (в первую очередь, кодера и декодера), например, MANE. Следует отметить, что в (предположительно) наиболее общем случае, когда изменение разрешения не требуется, может быть выбран короткий экспоненциальный код Голомба; в приведенной выше таблице это только один бит. Это может обеспечить преимущество эффективности кодирования по сравнению с использованием двоичных кодов в наиболее распространенном случае.
[0096] Количество записей в таблице, а также их семантика могут быть полностью или частично настраиваемыми. Например, основные данные таблицы могут быть переданы в "высоком" наборе параметров, таком как набор параметров последовательности или декодера. Альтернативно или дополнительно, одна или более таких таблиц могут быть определены в технологии или стандарте кодирования видеоданных и могут быть выбраны, например, с помощью набора параметров декодера или последовательности.
[0097] Ниже описано, как коэффициент повышающей/понижающей дискретизации (информация ARC), кодированный, как описано выше, может быть включен в синтаксис технологии или стандарта кодирования видеоданных. Аналогичное рассмотрение может быть применимо к одному или более кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. Ниже приведено обсуждение случая, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.
[0098] Приложение Р стандарта Н.263 включает информацию ARC 502 в виде четырех координат деформации в заголовок 501 изображения, а именно в расширение заголовка PLUSPTYPE Н.263 (503). Это может быть разумным выбором при проектировании, если а) имеется заголовок изображения и b) ожидается частая смена информации ARC. Однако накладные расходы при использовании сигнализации в соответствии с Н.263 могут быть довольно высокими, а коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь переходный характер.
[0099] Упомянутый выше документ JVCET-M135-vl включает опорную информацию ARC (505) (индекс), расположенную в наборе (504) параметров изображения и указывающую на таблицу (506), включающую целевые разрешения, которая, в свою очередь, находится внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности, в соответствии с заявлениями, сделанными авторами, может быть оправдано использованием SPS для обеспечения совместимости при обмене возможностями. Разрешение может изменяться от изображения к изображению в пределах, установленных значениями в таблице (506), путем обращения к соответствующему набору (504) параметров изображения.
[0100] Как показано на фиг. 5, могут иметься следующие дополнительные опции для передачи информации ARC в битовом потоке видеоданных. Каждая из этих опций имеет определенные преимущества по сравнению с известным уровнем техники, описанным выше. Опции могут одновременно использоваться в одной и той же технологии или одном и том же стандарте кодирования видеоданных.
[0101] В варианте осуществления изобретения информация ARC (509), такая как коэффициент передискретизации (масштабирования), может присутствовать в заголовке слайса, заголовке GOB, заголовке тайла или заголовке (508) группы тайлов (далее - заголовке группы тайлов). Этого может быть достаточно, если информация ARC небольшая, например, представляет собой одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из небольшого числа битов, например, как показано выше. Наличие информации ARC непосредственно в заголовке группы тайлов имеет дополнительное преимущество, поскольку информация ARC может быть применима к субизображению, представленному, например, этой группой тайлов, а не ко всему изображению. См. также описание ниже. Кроме того, даже если технология или стандарт сжатия видеоданных предусматривает только адаптивное изменение разрешения всего изображения (в отличие, например, от адаптивного изменения разрешения на основе группы тайлов), размещение информации ARC в заголовке группы тайлов по сравнению с помещением ее в заголовок изображения в стиле Н.263 имеет определенные преимущества с точки зрения устойчивости к ошибкам.
[0102] В том же или другом варианте осуществления изобретения сама информация (512) ARC может присутствовать в соответствующем наборе (511) параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров тайла, набор параметров адаптации и т.д. (показан набор параметров адаптации). Область действия этого набора параметров предпочтительно может быть не больше, чем изображение, например, может распространяться на группу тайлов. Информация ARC используется неявно путем активации соответствующего набора параметров. Например, когда технология или стандарт кодирования видеоданных рассматривают ARC только на основе изображения, тогда может быть подходящим набор параметров изображения или эквивалентный набор.
[0103] В том же или другом варианте осуществления изобретения опорная информация (513) ARC может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Эта опорная информация (513) может ссылаться на подмножество информации ARC (515), доступное в наборе (516) параметров, с областью действия, выходящей за пределы одного изображения, например, в наборе параметров последовательности или наборе параметров декодера.
[0104] Дополнительный уровень косвенной активации PPS из заголовка группы тайлов, PPS, SPS, как используется в JVET-M0135-vl, кажется ненужным, поскольку наборы параметров изображения, как и наборы параметров последовательности, могут (и должны в определенных стандартах, таких как RFC3984) использоваться для согласования возможностей или объявлений. Если, однако, информация ARC должна быть применима к субизображению, представленному, например, также группами тайлов, набор параметров с областью активации, ограниченной группой тайлов, например набор параметров адаптации или набор параметров заголовка, может быть более подходящим выбором. Кроме того, если размер информации ARC не является незначительным например, содержит информацию управления фильтром, такую как многочисленные коэффициенты фильтра, тогда параметр может быть более подходящим выбором, чем непосредственное использование заголовка (508), с точки зрения эффективности кодирования, поскольку эти настройки могут быть повторно использованы для будущих изображений или субизображений со ссылкой на тот же набор параметров.
[0105] При использовании набора параметров последовательности или другого набора параметров более высокого уровня с областью действия, охватывающей несколько изображений, могут применяться определенные соображения:
[0106] 1. Набор параметров для хранения таблицы (516) с информацией ARC в некоторых случаях может быть набором параметров последовательности, но в других случаях предпочтительно может быть набором параметров декодера. Набор параметров декодера может иметь область активации нескольких видеопоследовательностей CVS, а именно потока кодированных видеоданных, то есть всех кодированных битов видеоданных от начала сеанса до разрыва сеанса. Такой объем может быть более подходящим, потому что возможные коэффициенты ARC могут быть характеристикой декодера, возможно, реализованной в аппаратном обеспечении, а аппаратные функции, как правило, не зависят от видеопоследовательности CVS (которая, по меньшей мере в некоторых развлекательных системах, представляет собой группу изображений длительностью в одну секунду или менее). Тем не менее, помещение таблицы в набор параметров последовательности явно включено в варианты размещения, описанные здесь, в частности, в связи с пунктом 2 ниже.
[0107] 2. Опорная информация ARC (513) может быть предпочтительно помещена непосредственно в заголовок тайла / GOB / группы тайлов (далее заголовок (514) группы тайлов) изображения/слайса, а не в набор параметров изображения, как в JVCET-M0135-vl. Причина заключается в следующем: когда кодеру нужно изменить одно значение в наборе параметров изображения, такое как, например, опорная информация ARC, он должен создать новый набор PPS и ссылаться на этот новый набор PPS. Предположим, что изменяется только опорная информация ARC, но другая информация, например, информация матрицы квантования в PPS, остается неизменной. Такая информация может быть значительного размера, и ее необходимо будет повторно передать, чтобы сделать полным новый набор PPS. Поскольку опорная информация ARC может быть единственным кодовым словом, например индексом в таблице (513), и это будет единственное значение, которое изменяется, было бы обременительно и расточительно повторно передавать, например, всю информацию матрицы квантования. В этом отношении может быть значительно лучше, с точки зрения эффективности кодирования, избежать косвенного обращения через PPS, как предлагается в JVET-M0135-vl. Аналогично, размещение опорной информации ARC в PPS имеет дополнительный недостаток, заключающийся в том, что информация ARC, на которую ссылается опорная информация ARC (513), обязательно должна применяться ко всему изображению, а не к субизображению, поскольку областью активации набора параметров изображения является изображение.
[0108] В том же или другом варианте осуществления изобретения сигнализация параметров ARC может соответствовать подробному примеру, показанному на фиг.6. На фиг.6 показаны синтаксические диаграммы в виде представления, используемого, например, в стандартах кодирования видеоданных по меньшей мере с 1993 года. Система обозначений таких синтаксических диаграмм, в общем, соответствует программированию в стиле С.Строки, выделенные жирным шрифтом, указывают на синтаксические элементы, присутствующие в битовом потоке, а строки без жирного шрифта часто указывают на поток данных управления или установку переменных.
[0109] Заголовок (601) группы тайлов в качестве примера синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, может в зависимости от условий содержать синтаксический элемент dec_pic_size_idx (602) (выделен жирным шрифтом) переменной длины, кодированный экспоненциальным кодом Голомба. Наличие этого синтаксического элемента в заголовке группы тайлов может быть обусловлено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в том месте, где он встречается в синтаксической диаграмме. О том, используется ли адаптивное разрешение для данного изображения или его части, может сигнализироваться в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это сигнализируется в наборе параметров последовательности, как описано ниже.
[0110] На фиг. 6 также показан фрагмент набора (610) параметров последовательности. Первый показанный синтаксический элемент adaptive_pic_resolution_change_flag (611). В случае значения "истина" этот флаг может указывать на использование адаптивного разрешения, что, в свою очередь, может потребовать определенной управляющей информации. В примере такая управляющая информация условно присутствует на основе значения флага, основанного на конструкции if() в наборе (612) параметров и заголовке (601) группы тайлов.
[0111] При использовании адаптивного разрешения в данном примере кодируется выходное разрешение в единицах отсчетов (613). Цифра 613 относится как к output_pic_width_in_lumasamples, так и к output_pic_height_in_luma_samples, которые вместе могут задавать разрешение выходного изображения. В других местах технологии или стандарта кодирования видеоданных могут быть определены некоторые ограничения для любого из этих значений. Например, задание уровня может ограничить количество общих выходных отсчетов, которое может быть произведением значения этих двух синтаксических элементов. Кроме того, определенные технологии или стандарты кодирования видеоданных или внешние технологии или стандарты, такие как, например, стандарты, касающиеся систем, могут ограничивать диапазон нумерации (например, одно или оба измерения должны быть кратны степени числа 2) или соотношение сторон (например, соотношение ширины и высоты 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам и хорошо известны в данной области техники.
[0112] В некоторых приложениях может быть целесообразно, чтобы кодер инструктировал декодер использовать определенный размер опорного изображения вместо неявного принятия этого размера в качестве размера выходного изображения. В этом примере синтаксический элемент reference_pic_size_present_flag (614) управляет условным наличием размеров опорного изображения (615) (опять же, цифра относится как к ширине, так и к высоте).
[0113] Наконец, показана таблица возможных значений ширины и высоты изображения при декодировании. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minus1) (616). Здесь "minus1" может относиться к интерпретации значения этого синтаксического элемента. Например, если кодированное значение равно нулю, то присутствует одна запись таблицы. Если значение равно пяти, то в таблице присутствует шесть записей. Для каждой "строки" в таблице ширина и высота декодированного изображения затем включаются в синтаксис (617).
[0114] Представленные записи (617) таблицы могут быть проиндексированы с использованием синтаксического элемента dec_pic_size_idx (602) в заголовке группы тайлов, что позволяет использовать различные декодированные размеры - по сути, коэффициенты масштабирования - для каждой группы тайлов.
[0115] Некоторые технологии или стандарты кодирования видеоданных, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения (сигнализируемых иначе, чем в настоящем изобретении) в сочетании с временной масштабируемостью, чтобы обеспечить возможность пространственной масштабируемости. В частности, к некоторым опорным изображениям может быть применена повышающая дискретизация с использованием технологий ARC до более высокого разрешения, чтобы сформировать основу пространственного уровня улучшения. Эти изображения после повышающей дискретизации могут быть уточнены с помощью обычных механизмов предсказания при высоком разрешении для добавления деталей.
[0116] Настоящее изобретение может использоваться в такой среде. В некоторых случаях, в том же или другом варианте осуществления изобретения, значение в заголовке блока NAL, например поле временного идентификатора (Temporal ID), может использоваться для указания не только временного, но и пространственного уровня. Это имеет определенные преимущества для некоторых систем; например, существующие выбранные единицы перенаправления (SFU, Selected Forwarding Unit), созданные и оптимизированные для выбранной пересылки на временном уровне на основе значения временного идентификатора в заголовке блока NAL, могут быть использованы без модификации для масштабируемых сред. Для этого может потребоваться преобразование размера кодированного изображения во временной уровень, на который указывает поле временного идентификатора в заголовке блока NAL.
[0117] В некоторых технологиях кодирования видеоданных блок доступа (AU, access unit) может относиться к кодированному(ым) изображению(ям), слайсу(ам), блоку(ам) NAL и т.д., которые были захвачены и скомпонованы в соответствующий битовый поток изображения / слайса / тайла / блоков NAL в данный момент времени. Этим моментом времени может быть время компоновки.
[0118] В HEVC и некоторых других технологиях кодирования видеоданных может использоваться значение счетчика последовательности изображений (РОС, picture order count) для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB, decoded picture buffer). Когда блок доступа (AU) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащие одному и тому же AU, могут иметь одно и то же значение РОС, из чего можно сделать вывод, что они были созданы из контента с одним и тем же временем компоновки. Другими словами, если два изображения/слайса/тайла имеют одно и то же заданное значение РОС, это может указывать на то, что два изображения/слайса/тайла принадлежат одному и тому же AU и имеют одинаковое время компоновки. И наоборот, два изображения/слайса/тайла, имеющие разные значения РОС, могут указывать на то, что те изображения/слайсы/тайлы принадлежат разным AU и имеют разное время компоновки.
[0119] В варианте осуществления изобретения вышеупомянутая жесткая взаимосвязь может быть ослаблена, так что блок доступа может содержать изображения, слайсы или тайлы с разными значениями РОС. Путем разрешения различных значений РОС в пределах AU становится возможным использовать значение РОС для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с одинаковым временем представления. Это, в свою очередь, может обеспечить поддержку множества масштабируемых уровней без изменения сигнализации выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.
[0120] Тем не менее, все еще желательно иметь возможность идентифицировать AU, которому принадлежит изображение/слайс/тайл, по отношению к другому изображению/слайсам/тайлам, имеющим другие значения РОС, только на основе значения РОС. Этого можно добиться следующим образом.
[0121] В том же или другом варианте осуществления изобретения может сигнализироваться счетчик блоков доступа (AUC, access unit count) в синтаксической структуре высокого уровня, такой как заголовок блока NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или разделитель AU. Значение AUC может использоваться, чтобы идентифицировать, какие блоки NAL, изображения, слайсы или тайлы принадлежат данному AU. Значение AUC может соответствовать отдельному моменту времени компоновки. Значение AUC может быть кратным значению РОС. Путем деления значения РОС на целочисленное значение можно вычислить значение AUC. В некоторых случаях операции деления могут создать определенную нагрузку на декодер. В таких случаях небольшие ограничения в пространстве нумерации значений AUC могут позволить заменить операцию деления операциями сдвига. Например, значение AUC может быть равно значению старшего значащего бита (MSB, Most Significant Bit) диапазона значений РОС.
[0122] В том же варианте осуществления изобретения значение цикла РОС для каждого AU (poc_cycle_au) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок блока NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или разделитель AU. Значение рос_cycle_au может указывать, сколько разных и последовательных значений РОС может быть связано с одним и тем же AU. Например, если значение рос_cycle_au равно 4, изображения, слайсы или тайлы со значением РОС, равным 0-3 включительно, связаны с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением РОС, равным 4-7 включительно, связаны с AU со значением AUC, равным 1. Следовательно, значение AUC может быть получено путем деления значения РОС на значение рос_cycle_au.
[0123] В том же или другом варианте осуществления изобретения значение poc cyle au может быть получено из информации, расположенной, например, в наборе параметров видео (VPS, video parameter set), которая идентифицирует количество пространственных уровней или уровней SNR в кодированной видеопоследовательности. Такая возможная взаимосвязь кратко описывается ниже. Хотя описанный выше вывод может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, может оказаться предпочтительным явно кодировать рос_cycle_au в соответствующей синтаксической структуре высокого уровня иерархически ниже набора параметров видео, чтобы иметь возможность минимизировать рос_cycle_au для данной небольшой части битового потока, например, изображения. Эта оптимизация может сэкономить больше битов, чем может быть сохранено посредством процесса вывода, описанного выше, потому что значения РОС (и/или значения синтаксических элементов, косвенно относящиеся к РОС) могут кодироваться в синтаксических структурах низкого уровня.
[0124] В том же или другом варианте осуществления изобретения фиг. 9 показывает пример таблиц синтаксиса для сигнализации синтаксического элемента vps_poc_cycle_au в VPS (или SPS), который указывает параметр poc_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и синтаксического элемента 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. В этом случае значение vps_access_unit_cnt не сигнализируется, в то время как значение slice_access_unit_cnt сигнализируется в заголовке слайса для каждого слайса или изображения. Каждый слайс или изображение могут иметь различное значение slice_access_unit_cnt. Значение AUC для каждого AU вычисляется путем деления значения РОС на slice_poc_cycle_au. Фиг. 10 показывает блок-схему, иллюстрирующую соответствующий процесс.
[0125] В том же или других вариантах осуществления изобретения, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующий AU с тем же значением AUC, может быть связан с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо взаимной зависимости анализа/декодирования между изображениями, слайсами или тайлами в одном и том же AU, все или подмножество изображений, слайсов или тайлов, связанных с одним и тем же AU, могут декодироваться параллельно и могут выводиться в один и тот же момент времени.
[0126] В том же или других вариантах осуществления изобретения, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующий AU с таким же значением AUC, могут быть связаны с одним и тем же моментом времени компоновки/отображения. Когда время компоновки содержится в формате контейнера, даже если изображения соответствуют разным AU, если изображения имеют одинаковое время компоновки, изображения могут отображаться в один и тот же момент времени.
[0127] В том же или других вариантах осуществления изобретения каждое изображение, слайс или тайл могут иметь один и тот же временной идентификатор (temporal_id) в одном и том же AU. Все или подмножество изображений, слайсов или тайлов, соответствующих определенному моменту времени, могут быть связаны с одним и тем же временным подуровнем. В том же или других вариантах осуществления изобретения каждое изображение, слайс или тайл могут иметь одинаковый или другой идентификатор пространственного уровня (layer_id) в одном и том же AU. Все или часть изображений, слайсов или тайлов, соответствующие какому-либо моменту времени, могут быть связаны с тем же или другим пространственным уровнем.
[0128] Описанные способы сигнализации параметров адаптивного разрешения могут быть реализованы в виде компьютерного программного обеспечения, использующего машиночитаемые инструкции и физически хранящегося на одном или более машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система 700, пригодная для осуществления некоторых вариантов осуществления изобретения.
[0129] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п., компьютерными центральными процессорами (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) и т.п.
[0130] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0131] Компоненты компьютерной системы 700, показанные на фиг. 7, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым компонентом или комбинацией компонентов, показанных в примере осуществления компьютерной системы 700.
[0132] Компьютерная система 700 может включать некоторые устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двумерного видео, трехмерного видео, включая стереоскопическое видео).
[0133] Входной человеко-машинный интерфейс устройства может включать одно или более из следующего (показано по одному): клавиатура 701, мышь 702, сенсорная панель 703, сенсорный экран 710, информационная перчатка 704, джойстик 705, микрофон 706, сканер 707 и камера 708.
[0134] Компьютерная система 700 также может включать в себя некоторые устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана 710, информационной перчатки 704 или джойстика 705, а также устройства тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: динамики 709, наушники (не показаны)), устройства визуального вывода (например, экраны 710, в том числе экраны на электронно-лучевых трубках (CRT, cathode ray tube), жидкокристаллические экраны (LCD, liquid-crystal display), плазменные экраны, экраны на органических светодиодах (OLED, organic light-emitting diode), каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из них способны к двумерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографическому выводу, очки виртуальной реальности (не показаны), голо графические дисплеи, дымовые баки (не показаны) и принтеры (не показаны).
[0135] Компьютерная система 700 также может включать доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие CD/DVD ROM/RW 720 с носителями 721 CD/DVD и т.п., карты 722 флэш-памяти, сменный жесткий диск или твердотельный диск 723, традиционные магнитные носители, например, ленту и магнитный диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0136] Специалисты в данной области техники также должны понимать, что термин "машиночитаемые носители", используемый в связи с настоящим изобретением, не охватывает среды передачи, несущие волны или другие временные сигналы.
[0137] Компьютерная система 700 также может включать интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть также локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают локальные сети, например, Ethernet, беспроводные сети LAN, сотовые сети, в том числе глобальные системы мобильной связи (GSM, global system for mobile communications), сети поколений 3G, 4G и 5G, сети технологии долгосрочного развития (LTE, Long-Term Evolution) и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные сети, включающие CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (749) (например, порты универсальной последовательной шины (USB, universal serial bus) компьютерной системы 700); другие обычно встраиваются в ядро компьютерной системы 700 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система 700 может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.
[0138] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру 740 компьютерной системы 700.
[0139] Ядро 740 может включать один или более центральных процессоров (CPU) 741, графические процессоры (GPU) 742, специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Array) 743, аппаратные ускорители 744 для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) 745, оперативной памятью 746 (RAM), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, твердотельными накопителями (SSD, solid-state drive) и т.п. 747, могут соединяться посредством системной шины 748. В некоторых компьютерных системах системная шина 748 может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных процессоров CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине 748 ядра, либо через периферийную шину 749. Архитектуры периферийной шины включают шину соединения периферийных компонентов (PCI, peripheral component interconnect), USB и т.п.
[0140] Устройства CPU 741, GPU 742, FPGA 743 и ускорители 744 могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в памяти ROM 745 или RAM 746. Временные данные также могут храниться в памяти RAM 746, тогда как постоянные данные могут храниться, например, во внутреннем хранилище 747 данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU 741, GPU 742, хранилищем 747 данных большой емкости, памятью ROM 745, RAM 746 и т.п.
[0141] На машиночитаемых носителях может храниться компьютерный код для осуществления различных выполняемых компьютером операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0142] В порядке примера, но не ограничения изобретения, компьютерная система, имеющая архитектуру 700, и, в частности, ядро 740 может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных машиночитаемых носителей. Такие машиночитаемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым постоянным хранилищем ядра 740, например, внутренним хранилищем 747 данных большой емкости или ROM 745. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 740.
[0143] Машиночитаемый носитель может включать одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру 740 и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные способы или конкретные части описанных здесь конкретных способов, включая задание структур данных, хранящихся в памяти RAM 746, и модификацию таких структур данных согласно способам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель 744), которая может действовать вместо программного обеспечения или совместно с программным обеспечением для выполнения конкретных способов или конкретных частей описанных здесь конкретных способов.
[0144] Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на машиночитаемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе схемы, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.
[0145] Фиг. 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.
[0146] В вышеупомянутых вариантах осуществления изобретения все или некоторые структуры внешнего предсказания изображений или межуровневого предсказания и указания опорного изображения могут поддерживаться с использованием существующей сигнализации набора опорных изображений (RPS, reference picture set) в HEVC или сигнализация списка опорных изображений (RPL, reference picture list). В RPS или RPL выбранное опорное изображение указывается посредством сигнализации значения РОС или значения разности РОС между текущим изображением и выбранным опорным изображением. Для настоящего изобретения RPS и RPL могут использоваться для указания структуры внешнего предсказания изображений или межуровневого предсказания без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id опорного изображения больше, чем значение temporal_id текущего изображения, текущее изображение не может использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, текущее изображение не может использовать опорное изображение для компенсации движения или других предсказаний.
[0147] В том же и других вариантах осуществления изобретения масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть запрещено для множества изображений в блоке доступа. Следовательно, хотя каждое изображение может иметь различное значение РОС в блоке доступа, вектор движения не масштабируется и не используется для временного предсказания вектора движения в блоке доступа. Это связано с тем, что опорное изображение с другим РОС в одном и том же AU считается опорным изображением, имеющим тот же самый момент времени. Следовательно, в варианте осуществления изобретения функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, связанному с текущим изображением.
[0148] В том же и других вариантах осуществления изобретения масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть опционально запрещено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основе как разности РОС, так и отношения пространственного разрешения между текущим изображением и опорным изображением.
[0149] В том же или другом варианте осуществления изобретения вектор движения может масштабироваться на основе разницы AUC вместо разницы РОС для временного предсказания вектора движения, особенно когда значение poc_cycle_au неравномерно (когда vps_contant_poc_cycle_per_au=0). В противном случае (когда vps_contant_poc_cycle_per_au=1) масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности РОС.
[0150] В том же или другом варианте осуществления изобретения, когда вектор движения масштабируется на основе разницы AUC, опорный вектор движения в том же AU (с тем же значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственных разрешений текущего изображения и опорного изображения.
[0151] В том же и других вариантах осуществления изобретения значение AUC используется для идентификации границы AU и используется для работы гипотетического эталонного декодера (HRD, hypothetical reference decoder), для которого требуется синхронизация ввода и вывода со степенью разбиения AU. В большинстве случаев декодированное изображение с самым высоким уровнем в AU может выводиться для отображения. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.
[0152] В варианте осуществления изобретения изображение может включать одно или более субизображений. Каждое субизображение может охватывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, составленная из одного или более субизображений, может покрывать или не покрывать всю область изображения. Если изображение состоит из субизображения, область, поддерживаемая субизображением, идентична области, поддерживаемой изображением.
[0153] В том же варианте осуществления изобретения субизображение может кодироваться способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может кодироваться независимо или в жение может зависеть или не зависеть от анализа другого субизображения изависимости от другого субизображения или кодированного изображения. Субизобрали кодированного изображения.
[0154] В том же варианте осуществления изобретения кодированное субизображение может содержаться на одном или более уровнях. Кодированное субизображение на уровне может иметь другое пространственное разрешение. Исходное субизображение может подвергаться пространственной (повышающей или понижающей) передискретизации, кодироваться с различными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем уровню.
w,k
h,k
w,k
h,k
w,k
h,k
[0155] В том же или другом варианте осуществления изобретения субизображение с (W, Н), где W указывает ширину субизображения, а Н указывает высоту субизображения, соответственно, может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню 0, в то время как субизображение с повышающей (или понижающей) дискретизацией из субизображения с исходным пространственным разрешением, с (W*S, H*S), может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню k, где S, S указывают коэффициенты передискретизации по горизонтали и вертикали. Если значения S, S больше 1, передискретизация является повышающей дискретизацией.
w,k
h,k
Если значения S, S меньше 1, передискретизация является понижающей дискретизацией.
i,n
j,m
[0156] В том же или другом варианте осуществления изобретения кодированное субизображение на уровне может иметь визуальное качество, отличное от качества кодированного субизображения на другом уровне в том же субизображении или другом субизображении. Например, субизображение i на уровне n кодируется с использованием параметра квантования Q, тогда как субизображение j на уровне m кодируется с использованием параметра квантования Q.
[0157] В том же или другом варианте осуществления изобретения кодированное субизображение на уровне может декодироваться независимо, без какой-либо зависимости от анализа или декодирования кодированного субизображения на другом уровне той же локальной области. Уровень субизображения, который можно независимо декодировать без ссылки на другой уровень субизображения той же локальной области, является независимым уровнем субизображения. Кодированное субизображение на независимом уровне субизображения может зависеть или не зависеть от декодирования или анализа ранее кодированного субизображения на том же уровне субизображения, но не может зависеть от кодированного изображения на другом уровне субизображения.
[0158] В том же или другом варианте осуществления изобретения кодированное субизображение на уровне может быть зависимо-декодируемым, с любой зависимостью от анализа или декодирования кодированного субизображения на другом уровне той же локальной области. Уровень субизображения, который можно зависимо декодировать со ссылкой на другой уровень субизображения той же локальной области, является зависимым уровнем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированному субизображению на том же уровне субизображения или обоим опорным субизображениям.
[0159] В том же или другом варианте осуществления изобретения кодированное субизображение содержит один или более независимых уровней субизображения и один или более зависимых уровней субизображения. Однако по меньшей мере один независимый уровень субизображения может присутствовать для кодированного субизображения. Независимый уровень субизображения может иметь значение идентификатора уровня (layer_id), который может присутствовать в заголовке блока NAL или другой синтаксической структуре высокого уровня, равное 0. Уровень субизображения с layer_id, равным 0, является базовым уровнем субизображения.
а
а
[0160] В том же или другом варианте осуществления изобретения изображение может содержать одно или более субизображений переднего плана и одно субизображение фона. Область, поддерживаемая субизображением фона, может совпадать с областью изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением фона. Субизображение фона может быть базовым уровнем субизображения, в то время как субизображение переднего плана может быть не базовым уровнем (улучшения) субизображения. Один или более небазовых уровней субизображения могут ссылаться на один и тот же базовый уровень для декодирования. Каждый небазовый уровень субизображения с layer_id, равным , может ссылаться на небазовый уровень субизображения с layer_id, равным b, где  больше b.
а
а
[0161] В том же или другом варианте осуществления изобретения изображение может содержать одно или более субизображений переднего плана с субизображением фона или без него. Каждое субизображение может иметь свой собственный базовый уровень субизображения и один или более небазовых уровней (улучшения). На каждый базовый уровень субизображения может ссылаться один или более небазовых уровней субизображения. Каждый небазовый уровень субизображения с layer_id, равным , может ссылаться на небазовый уровень субизображения с layer_id, равным b, где  больше b.
[0162] В том же или другом варианте осуществления изобретения изображение может содержать одно или более субизображений переднего плана с субизображением фона или без него. На каждое кодированное субизображение на (базовом или небазовом) уровне субизображения могут ссылаться одно или более субизображений небазового уровня, принадлежащих одному и тому же субизображению, и одно или более субизображений небазового уровня, которые не принадлежат одному и тому же субизображению.
а
[0163] В том же или другом варианте осуществления изобретения изображение может содержать одно или более субизображений переднего плана с субизображением фона или без него. Субизображение на уровне а может быть также разделено на множество субизображений на одном и том же уровне. Одно или более кодированных субизображений на уровне b могут ссылаться на разделенные субизображения на уровне .
[0164] В том же или другом варианте осуществления изобретения кодированная видеопоследовательность (CVS, coded video sequence) может быть группой кодированных изображений. CVS может содержать одну или более последовательностей кодированных субизображений (CSPS, coded sub-picture sequence), где CSPS может быть группой кодированных субизображений, охватывающих одну и ту же локальную область изображения. CSPS может иметь то же или другое временное разрешение по сравнению с кодированной видеопоследовательностью.
[0165] В том же или другом варианте осуществления изобретения CSPS может кодироваться и содержаться на одном или более уровнях. CSPS может содержать один или более уровней CSPS. Декодирование одного или более уровней CSPS, соответствующих CSPS, может реконструировать последовательность субизображений, соответствующих одной и той же локальной области.
[0166] В том же или другом варианте осуществления изобретения количество уровней CSPS, соответствующих CSPS, может быть одинаковым или может отличаться от количества уровней CSPS, соответствующих другой CSPS.
[0167] В том же или другом варианте осуществления изобретения уровень CSPS может иметь временное разрешение (например, частоту кадров), отличное от другого уровня CSPS. Исходная (несжатая) последовательность субизображений может быть передискретизирована во времени (с повышением или понижением частоты), кодирована с различными параметрами временного разрешения и может содержаться в битовом потоке, соответствующем уровню.
t,k
t,k
t,k
t,k
[0168] В том же или другом варианте осуществления изобретения последовательность субизображений с частотой F кадров может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню 0, в то время как последовательность субизображений с временной повышающей (или понижающей) дискретизацией из исходной последовательности субизображений с F*S может кодироваться и содержаться в кодированном битовом потоке, соответствующем уровню k, где S указывает коэффициент временной дискретизации для уровня k. Если значение S больше 1, процесс временной передискретизации является преобразованием с повышением частоты кадров. Если значение S меньше 1, процесс временной передискретизации является преобразованием с понижением частоты кадров.
a
a
a
[0169] В том же или другом варианте осуществления изобретения, когда на субизображение с уровнем  CSPS ссылается субизображение с уровнем b CSPS для компенсации движения или любого межуровневого предсказания, если пространственное разрешение уровня  CSPS отличается от пространственного разрешения уровня b CSPS, декодированные пиксели на уровне  CSPS передискретизируются и используются для ссылки. Для процесса передискретизации может потребоваться фильтрация повышающей или понижающей дискретизации.
[0170] Фиг. 11 показывает пример потока видеоданных, включающих CSPS видеоданных фона с layer_id, равным 0, и множество уровней CSPS переднего плана. Хотя кодированное субизображение может содержать один или более уровней CSPS, область фона, которая не принадлежит какому-либо уровню CSPS переднего плана, может состоять из базового уровня. Базовый уровень может содержать область фона и области переднего плана, в то время как уровень CSPS улучшения содержит область переднего плана. Уровень CSPS улучшения может иметь лучшее визуальное качество по сравнению с базовым уровнем в той же области. Уровень CSPS улучшения может ссылаться на реконструированные пиксели и векторы движения базового уровня, соответствующие одной и той же области.
[0171] В том же или другом варианте осуществления изобретения битовый поток видеоданных, соответствующий базовому уровню, содержится в треке, в то время как уровни CSPS, соответствующие каждому субизображению, содержатся в отдельном треке в видеофайле.
[0172] В том же или другом варианте осуществления изобретения битовый поток видеоданных, соответствующий базовому уровню, содержится в треке, в то время как уровни CSPS с тем же layer_id содержатся в отдельном треке. В этом примере трек, соответствующий уровню k, включает только уровни CSPS, соответствующие уровню k.
[0173] В том же или другом варианте осуществления изобретения каждый уровень CSPS каждого субизображения хранится в отдельном треке. Каждый трек может зависеть или не зависеть от анализа или декодирования одного или более других треков.
[0174] В том же или другом варианте осуществления изобретения каждый трек может содержать битовые потоки, соответствующие уровням CSPS от i до j всех или подмножества субизображений, где 0<i=<j=<k, при этом k - наивысший уровень CSPS.
[0175] В том же или другом варианте осуществления изобретения изображение содержит одно или более связанных мультимедийных данных, включая карту глубины, альфа-карту, данные трехмерной геометрии, карту занятости и т.д. Такие связанные синхронизированные мультимедийные данные могут быть разделены на один или более субпотоков, каждый из которых соответствует одному субизображению.
[0176] В том же или другом варианте осуществления изобретения фиг.12 показывает пример видеоконференции на основе способа использования субизображений с множеством уровней. Поток видеоданных содержит один битовый поток видеоданных базового уровня, соответствующий изображению фона, и один или более битовых потоков видеоданных уровня улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видеоданных уровня улучшения соответствует уровню CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому уровню. Он содержит одно или более пользовательских изображений на изображении (PIP, picture in a picture). Когда конкретный пользователь выбран посредством клиентского управления, уровень CSPS улучшения, соответствующий выбранному пользователю, декодируется и отображается с улучшенным качеством или пространственным разрешением. Фиг. 13 показывает схему работы.
[0177] В том же или другом варианте осуществления изобретения промежуточный блок сети (такой как маршрутизатор) может выбирать подмножество уровней для передачи пользователю в зависимости от своей пропускной способности. Организация изображения/субизображения может использоваться для адаптации к пропускной способности. Например, если на стороне пользователя нет пропускной способности, маршрутизатор разделяет уровни или выбирает некоторые субизображения исходя из их важности или на основе используемых настроек и может делать это динамически для адаптации к пропускной способности.
[0178] Фиг. 14 показывает пример использования видео с охватом 360°. Когда "сферическое" изображение с охватом 360° проецируется на плоское изображение, проекция изображения с охватом 360° может быть разделена на множество субизображений в качестве базового уровня. Уровень улучшения конкретного субизображения может кодироваться и передаваться клиенту. Декодер может быть способен декодировать как базовый уровень, включающий все субизображения, так и уровень улучшения выбранного субизображения. Когда текущее поле обзора идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество с использованием декодированного субизображения с уровнем улучшения. В противном случае декодированное изображение с базовым уровнем может отображаться с низким качеством.
[0179] В том же или другом варианте осуществления изобретения любая информация о компоновке для отображения может присутствовать в файле как дополнительная информация (например, сообщение SEI или метаданные). Одно или более декодированных субизображений могут быть перемещены и отображены в зависимости от сигнализированной информации о компоновке. Информация о компоновке может сигнализироваться потоковым сервером или вещательной компанией, или может быть восстановлена сетевым объектом или облачным сервером, или может определяться индивидуальной настройкой пользователя.
[0180] В варианте осуществления изобретения, когда входное изображение разделено на одну или более (прямоугольных) подобластей, каждая подобласть может кодироваться как независимый уровень. Каждый независимый уровень, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого уровня может сигнализироваться информация о размере и положении субизображения. Например, размер изображения (ширина, высота), информация о смещении левого верхнего угла (x_offset, y_offset). Фиг. 15 показывает пример компоновки разделенных субизображений, информацию о размере и положении субизображений и соответствующей структуре предсказания изображения. Информация о компоновке, включающая размер(ы) субизображений и положение(я) субизображений, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров, заголовок слайса или группы тайлов или сообщение SEI.
[0181] В том же варианте осуществления изобретения каждое субизображение, соответствующее независимому уровню, может иметь свое уникальное значение РОС в пределах AU. Когда опорное изображение среди изображений, хранящихся в DPB, указывается с использованием синтаксического(их) элемента(ов) в структуре RPS или RPL, может (могут) использоваться значение(я) РОС каждого субизображения, соответствующего уровню.
[0182] В том же или другом варианте осуществления изобретения, чтобы указать структуру (межуровневого) предсказания, layer_id может не использоваться, а может использоваться значение (дельта) РОС.
[0183] В том же варианте осуществления изобретения субизображение со значением РОС, равным N и соответствующим уровню (или локальной области), может использоваться или не использоваться в качестве опорного изображения для субизображения со значением РОС, равным N+K и соответствующим тому же уровню (или той же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение числа K может быть равно максимальному количеству (независимых) уровней, которое может быть идентично количеству подобластей.
[0184] В том же или другом варианте осуществления изобретения фиг. 16 показывает расширенный случай фиг. 15. Когда входное изображение разделено на множество подобластей (например, четыре подобласти), каждая локальная область может кодироваться с использованием одного или более уровней. В этом случае количество независимых уровней может быть равно количеству подобластей, и один или более уровней могут соответствовать подобласти. Таким образом, каждая подобласть может кодироваться с использованием одного или более независимых уровней с зависимыми уровнями или без них.
[0185] В том же варианте осуществления изобретения на фиг.16 входное изображение может быть разделено на четыре подобласти. Правая верхняя подобласть может кодироваться как два уровня, которые представляют собой уровень 1 и уровень 4, в то время как правая нижняя подобласть может кодироваться как два уровня, которые представляют собой уровень 3 и уровень 5. В этом случае уровень 4 может ссылаться на уровень 1 для предсказания с компенсацией движения, тогда как уровень 5 может ссылаться на уровень 3 для компенсации движения.
[0186] В том же или другом варианте осуществления изобретения контурная фильтрация (например, фильтрация для устранения блочности, адаптивная контурная фильтрация, изменение формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу уровня может быть (опционально) запрещена.
[0187] В том же или другом варианте осуществления изобретения предсказание с компенсацией движения или копирование блока с внутренним предсказанием (intra-block сору) через границу уровня может быть (опционально) запрещено.
[0188] В том же или другом варианте осуществления изобретения может опционально использоваться заполнение (padding) границы для предсказания с компенсацией движения или контурной фильтрации на границе субизображения. Флаг, указывающий, используется ли заполнение границы или нет, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров (VPS, SPS, PPS или APS), заголовок слайса или группы тайлов, или сообщение SEI.
[0189] В том же или другом варианте осуществления изобретения информация о компоновке подобласти(ей) (или субизображения(ий)) может сигнализироваться в 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 могут быть равны ширине и высоте входного(ых) изображения(й), соответственно.
[0190] В том же варианте осуществления изобретения значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples не могут использоваться для декодирования, но могут использоваться для компоновки и отображения.
[0191] В том же варианте осуществления изобретения, когда значение vps_sub_picture_dividing_flag равно 1, синтаксические элементы pic_offset_x и pic_offset_y могут сигнализироваться в SPS, что соответствует конкретному(ым) уровню(ям). В этом случае размер кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), сигнализируемый в SPS, может быть равен ширине и высоте подобласти, соответствующей конкретному уровню. Кроме того, в SPS может сигнализироваться позиция (pic_offset_x, pic_offset_у) левого верхнего угла подобласти.
[0192] В том же варианте осуществления изобретения информация о положении (pic_offset_x, pic_offset_y) левого верхнего угла подобласти не может использоваться для декодирования, но может использоваться для компоновки и отображения.
[0193] В том же или другом варианте осуществления изобретения информация о компоновке (размер и положение) всех или подмножества подобластей входного(ых) изображения(й), информация о зависимости между уровнями может сигнализироваться в наборе параметров или в сообщении SEI. Фиг. 18 показывает пример синтаксических элементов для указания информации о компоновке подобластей, зависимости между уровнями и отношении между подобластью и одним или более уровнями. В этом примере синтаксический элемент numsubregion указывает количество (прямоугольных) подобластей в текущей кодированной видеопоследовательности. Синтаксический элемент num_layers указывает количество уровней в текущей кодированной видеопоследовательности. Значение num_layers может быть равно или больше значения num_sub_region. Когда любая подобласть кодируется как один уровень, значение num_layers может быть равно значению num_sub_region. Когда одна или более подобластей кодируются как множество уровней, значение num_layers может быть больше, чем значение num_sub_region. Синтаксический элемент direct_dependency_flag[i][j] указывает зависимость от j-ro уровня к 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_у[i] указывают горизонтальное и вертикальное положения левого верхнего угла i-й подобласти, соответственно. Значения sub_region_width[i] и sub_region_height[i] указывают ширину и высоту i-й подобласти, соответственно.
[0194] В одном варианте осуществления изобретения один или более синтаксических элементов, которые задают набор выходных уровней для указания одного или более уровней, которые должны выводиться с информацией уровня слоя профиля или без нее, могут сигнализироваться в синтаксической структуре высокого уровня, например, в сообщении VPS, DPS, SPS, PPS, APS или SEI. Как показано на фиг. 19, синтаксический элемент num output layer sets, указывающий количество наборов выходных уровней (OLS, output layer set) в кодированной видеопоследовательности, ссылающейся на VPS, может сигнализироваться в VPS. Для каждого набора выходных уровней output_layer_flag может сигнализироваться столько раз, сколько выходных уровней.
[0195] В том же варианте осуществления изобретения значение output_layer_flag[i], равное 1, указывает на то, что выводится i-й уровень. Значение vps_output_layer_flag[i], равное 0, указывает на то, что i-й уровень не выводится.
[0196] В том же или другом варианте осуществления изобретения один или более синтаксических элементов, которые определяют информацию уровня слоя профиля для каждого набора выходных уровней, могут сигнализироваться в синтаксической структуре высокого уровня, например, в сообщении VPS, DPS, SPS, PPS, APS или SEI. Как показано на фиг.19, синтаксический элемент num_profile_tile_level, указывающий количество экземпляров информации уровня слоя профиля для каждого OLS в кодированной видеопоследовательности, ссылающейся на VPS, может сигнализироваться в VPS. Для каждого набора выходных уровней набор синтаксических элементов для информации уровня слоя профиля или индекс, указывающий конкретную информацию уровня слоя профиля среди записей в информации уровня слоя профиля, может сигнализироваться столько раз, сколько выходных уровней.
[0197] В том же варианте осуществления изобретения profile_tier_level_idx[i][j] указывает индекс в списке синтаксических структур profile_tier_level() в VPS синтаксической структуры profile_tier_level(), которая применяется к j-му уровню i-ro OLS.
[0198] В том же или другом варианте осуществления изобретения со ссылкой на фиг. 20, синтаксические элементы num_profile_tile_level и/или num_output_layer_sets могут сигнализироваться, когда количество максимальных уровней больше 1 (vps_max_layers_minus1>0).
[0199] В том же или другом варианте осуществления изобретения со ссылкой на фиг. 20, синтаксический элемент vps_output_layers_mode[i], указывающий режим сигнализации выходного уровня для i-ro набора выходных уровней, может присутствовать в VPS.
[0200] В том же варианте осуществления изобретения значение 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-м набором выходных уровней. Могут быть зарезервированы и другие значения.
[0201] В том же варианте осуществления изобретения output_layer_flag[i][j] может сигнализироваться или не сигнализироваться в зависимости от значения vps_output_layers_mode[i] для i-ro набора выходных уровней.
[0202] В том же или другом варианте осуществления изобретения со ссылкой на фиг. 20, флаг vps_ptl_signal_flag[i] может присутствовать для i-ro набора выходных уровней. В зависимости от значения vps_ptl_signal_flag[i] информация уровня слоя профиля для i-ro набора выходных уровней может сигнализироваться или не сигнализироваться.
[0203] В том же или другом варианте осуществления изобретения со ссылкой на фиг. 21 номер субизображения max_subpics_minus1 в текущей CVS может сигнализироваться в синтаксической структуре высокого уровня, например, в сообщении VPS, DPS, SPS, PPS, APS или SEI.
[0204] В том же варианте осуществления изобретения со ссылкой на фиг. 21 может сигнализироваться идентификатор субизображения, sub_pic_id[i], для i-ro субизображения, когда количество субизображений больше 1 (max_subpics_minus1>0).
[0205] В том же или другом варианте осуществления изобретения один или более синтаксических элементов, указывающих идентификатор субизображения, принадлежащий каждому уровню каждого набора выходных уровней, могут сигнализироваться в VPS. Как показано на фиг. 22, sub_pic_id_layer[i][j][k] указывает k-е субизображение, присутствующее в j-м уровне i-ro набора выходных уровней. С помощью этой информации декодер может определить, какое субизображение может быть декодировано и выведено для каждого уровня конкретного набора выходных уровней.
[0206] В варианте осуществления изобретения заголовок изображения (РН) представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются ко всем слайсам кодированного изображения. Блок изображения (PU) - это набор блоков NAL, которые связаны друг с другом в соответствии с заданным правилом классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение. PU может содержать заголовок изображения (РН) и один или более блоков NAL VCL, составляющих кодированное изображение.
[0207] В варианте осуществления изобретения SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением TemporalId, равным 0, или предоставлен с помощью внешних средств.
[0208] В варианте осуществления изобретения SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением Temporalid, равным 0, в CVS, которая содержит один или более PPS, ссылающихся на SPS, или предоставлен с помощью внешних средств.
[0209] В варианте осуществления изобретения SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более PPS, включен по меньшей мере в один PU со значением nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL PPS, которые ссылаются на блок NAL SPS в CVS, которая содержит один или более PPS, ссылающихся на SPS, или предоставлен с помощью внешних средств.
[0210] В варианте осуществления изобретения SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более PPS, включен по меньшей мере в один PU со значением TemporalId, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL PPS, которые ссылаются на блок NAL SPS, или предоставлен с помощью внешних средств.
[0211] В варианте осуществления изобретения SPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более PPS, включен по меньшей мере в один PU со значением TemporalId, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL для PPS, которые ссылаются на блок NAL SPS в CVS, содержащей один или более PPS, ссылающихся на SPS, или предоставлен с помощью внешних средств.
[0212] В том же или другом варианте осуществления изобретения pps_seq_parameter_set_id определяет значение sps_seq_parameter_set_id для упомянутого SPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[0213] В том же или другом варианте осуществления изобретения все блоки NAL SPS с конкретным значением sps_seq_parameter_set_id в CVS могут иметь одинаковое содержимое.
[0214] В том же или другом варианте осуществления изобретения, независимо от значений nuh_layer_id, блоки NAL SPS могут совместно использовать одно и то же пространство значений sps_seq_parameter_set_id.
[0215] В том же или другом варианте осуществления изобретения значение nuh_layer_id блока NAL SPS может быть равно наименьшему значению nuh_layer_id блоков NAL PPS, которые ссылаются на блок NAL SPS.
[0216] В варианте осуществления изобретения, когда на SPS со значением nuh_layer_id, равным m, ссылается один или более PPS со значением nuh_layer_id, равным n, уровень со значением nuh_layer_id, равным m, может быть таким же, как уровень со значением nuh_layer_id, равным n, или (прямым или косвенным) опорным уровнем для уровня со значением nuh_layer_id, равным m.
[0217] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением TemporalId, равным TemporalId блока NAL PPS, или предоставлен с помощью внешних средств.
[0218] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением TemporalId, равным TemporalId блока NAL PPS в CVS, которая содержит один или более РН (или блоки NAL кодированного слайса), ссылающихся на PPS, или предоставлен с помощью внешних средств.
[0219] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более РН (или блоков NAL кодированного слайса), включен по меньшей мере в один PU со значением TemporalId, равным TemporalId блока NAL PPS, и nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, содержащей один или более РН (или блоков NAL кодированного слайса), ссылающихся на PPS, или предоставлен с помощью внешних средств.
[0220] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более РН (или блоков NAL кодированного слайса), включен по меньшей мере в один PU со значением TemporalId, равным TemporalId блока NAL PPS, и nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, содержащей один или более РН (или блоков NAL кодированного слайса), ссылающихся на PPS, или предоставлен с помощью внешних средств.
[0221] В том же или другом варианте осуществления изобретения ph_pic_parameter_set_id в РН определяет значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[0222] В том же или другом варианте осуществления изобретения все блоки NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.
[0223] В том же или другом варианте осуществления изобретения независимо от значений nuh_layer_id, блоки NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.
[0224] В том же или другом варианте осуществления изобретения значение nuh_layer_id блока NAL PPS может быть равно наименьшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL, которые ссылаются на блок NAL PPS.
[0225] В варианте осуществления изобретения, когда на PPS со значением nuh_layer_id, равным m, ссылается один или более блоков NAL кодированного слайса со значением nuh_layer_id, равным n, уровень со значением nuh_layer_id, равным m, может быть таким же, как уровень со значением nuh_layer_id, равным n, или (прямым или косвенным) опорным уровнем для уровня со значением nuh_layer_id, равным m.
[0226] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением TemporalId, равным TemporalId блока NAL PPS, или предоставлен с помощью внешних средств.
[0227] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением TemporalId, равным TemporalId блока NAL PPS в CVS, которая содержит один или более РН (или блоков NAL кодированного слайса), ссылающихся на PPS, или предоставлен с помощью внешних средств.
[0228] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более РН (или блоков NAL кодированного слайса), включен по меньшей мере в один PU со значением nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, содержащей один или более РН (или блоков NAL кодированного слайса), ссылающихся на PPS, или предоставлен с помощью внешних средств.
[0229] В варианте осуществления изобретения PPS (RBSP) может быть доступен для процесса декодирования до того, как на него будет ссылаться один или более РН (или блоков NAL кодированного слайса), включен по меньшей мере в один PU со значением TemporalId, равным TemporalId блока NAL PPS, и nuh_layer_id, равным наименьшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL PPS в CVS, содержащей один или более РН (или блоков NAL кодированного слайса), ссылающихся на PPS, или предоставлен с помощью внешних средств.
[0230] В том же или другом варианте осуществления изобретения ph_pic_parameter_set_id в РН определяет значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[0231] В том же или другом варианте осуществления изобретения все блоки NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одинаковое содержимое.
[0232] В том же или другом варианте осуществления изобретения, независимо от значений nuh_layer_id, блоки NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.
[0233] В том же или другом варианте осуществления изобретения значение nuh_layer_id блока NAL PPS может быть равно наименьшему значению nuh_layer_id блоков NAL кодированного слайса, которые ссылаются на блок NAL, которые ссылаются на блок NAL PPS.
[0234] В варианте осуществления изобретения, когда на PPS со значением nuh_layer_id, равным m, ссылается один или более блоков NAL кодированного слайса со значением nuh_layer_id, равным n, уровень со значением nuh_layer_id, равным m, может быть таким же, как уровень со значением nuh_layer_id, равным n, или (прямым или косвенным) опорным уровнем для уровня со значением nuh_layer_id, равным m.
[0235] Выходной уровень указывает уровень набора выходных уровней, который является выходным. Набор выходных уровней (OLS) указывает набор уровней, содержащий указанный набор уровней, при этом один или более уровней в наборе уровней определены как выходные уровни. Индекс уровня набора выходных уровней (OLS) - это индекс уровня в OLS в списке уровней в OLS.
[0236] Подуровень указывает уровень временного масштабирования битового потока с временным масштабированием, состоящий из блоков NAL VCL с конкретным значением переменной TemporalId и соответствующих блоков NAL, не относящихся к VCL. Представление подуровня указывает подмножество битового потока, состоящее из блоков NAL конкретного подуровня и нижних подуровней.
[0237] RBSP VPS может быть доступен для процесса декодирования до того, как на него будет сделана ссылка, включен по меньшей мере в один AU со значением TemporalId равным 0, или предоставлен с помощью внешних средств. Все блоки NAL VPS с конкретным значением vps_video_parameter_set_id в CVS могут иметь одинаковое содержимое.
[0238] vps_video_parameter_set_id предоставляет идентификатор VPS для ссылки с помощью других синтаксических элементов. Значение vps_video_parameter_set_id может быть больше 0.
[0239] vps_max_layers_minus1 плюс 1 указывает максимально допустимое количество уровней в каждой CVS, ссылающейся на VPS.
[0240] vps_max_sublayers_minus1 плюс 1 указывает максимальное количество временных подуровней, которые могут присутствовать на уровне в каждой CVS, ссылающейся на VPS. Значение vps_max_sublayers_minus1 может находиться в диапазоне от 0 до 6 включительно.
[0241] Значение vpsa_all_layers_same_num_sublayers_flag, равное 1, указывает на то, что количество временных подуровней одинаково для всех уровней в каждой CVS, ссылающейся на VPS. Значение vps_all_layers_same_num_sublayers_flag, равное 0, указывает на то, что уровни в каждой CVS, ссылающейся на VPS, могут иметь или не иметь одинаковое количество временных подуровней. Если значение vps_all_layers_same_num_sublayers_flag отсутствует, оно считается равным 1.
[0242] Значение vps_all_independent_layers_flag, равное 1, указывает на то, что все уровни в CVS независимо кодируются без использования межуровневого предсказания. Значение vps_all_independent_layers_flag, равное 0, указывает на то, что один или более уровней в CVS могут использовать межуровневое предсказание. Если значение vps_all_independent_layers_flag отсутствует, оно считается равным 1.
[0243] vps_layer_id[i] указывает значение nuh_layer_id i-ro уровня. Для любых двух неотрицательных целочисленных значений m и n, когда m меньше n, значение vps_layer_id[m] может быть меньше vps_layer_id[n].
[0244] Значение vps_independent_layer_flag[i], равное 1, указывает на то, что уровень с индексом i не использует межуровневое предсказание. Значение vps_independent_layer_flag[i], равное 0, указывает на то, что уровень с индексом i может использовать межуровневое предсказание, а синтаксические элементы vps_direct_ref_layer_flag[i][j] для j в диапазоне от 0 до i-l включительно присутствуют в VPS. Когда значение vps_independent_layer_flag[i] отсутствует, оно считается равным 1.
[0245] Значение vps_direct_ref_layer_flag[i][j], равное 0, указывает на то, что уровень с индексом j не является прямым опорным уровнем для уровня с индексом i. Значение vps_direct_ref_layer_flag[i][j], равное 1, указывает на то, что уровень с индексом j является прямым опорным уровнем для уровня с индексом i. Когда значение vps_direct_ref_layer_flag[i][j] отсутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, считается, что оно равно 0. Когда значение vps_independent_layer_flag[i] равно 0, может быть по меньшей мере одно значение j в диапазоне от 0 до i-l включительно, так что значение vps_direct_ref_layer_flag[i][j] равно 1.
[0246] Переменные NumDirectRefLayers[i], DirectRefLayerIdx[i][d], NumRefLayers[i], RefLayerIdx[i][r] и LayerUsedAsRefLayerFlag[j] получают следующим образом:
[0247] Переменную GeneralLayerIdx[i], определяющую индекс уровня для уровня со значением nuh_layer_id, равным vps_layer_id[i], получают следующим образом:
for(i=0; i<=vps_max_layers_minus1; i++) GeneralLayerIdx[vps_ layer_ id[i]]=i.
[0248] Для любых двух разных значений i и j, находящихся в диапазоне от 0 до vps_max_layers_minus1 включительно, когда dependencyFlag[i][j] равно 1, имеется требование соответствия битового потока, чтобы значения chroma_format_idc и bit_depth_minus8, которые применяются к i-му уровню, могли быть равны значениям chroma_format_idc и bit_depth_minus8, соответственно, которые применяются к j-му уровню.
[0249] Значение max_tid_ref_present_flag[i], равное 1, указывает на то, что синтаксический элемент max_tid_il_ref_pics_plus1[i] присутствует. Значение max_tid_ref_present_flag[i], равное 0, указывает на то, что синтаксический элемент max_tid_il_ref_pics_plus1[i] отсутствует.
[0250] Значение max_tid_il_ref_pics_plus1[i], равное 0, указывает на то, что межуровневое предсказание не используется для изображений i-ro уровня, не являющихся IRAP. Значение max_tid_il_ref_pics_plus1[i] больше 0 указывает на то, что для декодирования изображений i-ro уровня ни одно изображение со значением TemporalId больше, чем max_tid_il_ref_pics_plus1 [i] - 1, не используется как ILRP. Если значение max_tid_il_ref_pics_plus1[i] отсутствует, оно считается равным 7.
[0251] Значение each_layer_is_an_ols_flag, равное 1, указывает на то, что каждый OLS содержит только один уровень, а каждый уровень в CVS, ссылающейся на VPS, является OLS с единственным включенным уровнем, который является единственным выходным уровнем. Значение each_layer_is_an_ols_flag, равное 0, указывает на то, что OLS может содержать более одного уровня. Если значение vps_max_layers_minus1 равно 0, значение each_layer_is_an_ols_flag считается равным 1. В противном случае, когда значение vps_all_independent_layers_flag равно 0, значение each_layer_is_an_ols_flag считается равным 0.
[0252] Значение ols_mode_idc, равное 0, указывает на то, что общее количество OLS, заданных VPS, равно vps_max_layers_minus1+1, i-й OLS включает уровни с индексами уровней от 0 до i включительно, и для каждого OLS выводится только наивысший уровень в OLS.
[0253] Значение ols_mode_idc, равное 1, указывает на то, что общее количество OLS, заданных VPS, равно vps_max_layers_minus1+1, i-й OLS включает уровни с индексами уровней от 0 до i включительно, и для каждого OLS выводятся все уровни в OLS.
[0254] Значение ols_mode_idc, равное 2, указывает на то, что общее количество OLS, заданных VPS, явно сигнализируется, и для каждого OLS выходные уровни явно сигнализируются, а другие уровни являются уровнями, которые являются прямыми или косвенными опорными уровнями выходных уровней OLS.
[0255] Значение ols_mode_idc может находиться в диапазоне от 0 до 2 включительно. Значение 3 для ols_mode_idc зарезервировано для будущего использования в ITU-T ISO/IEC.
[0256] Когда значение vps_all_independent_layers_flag равно 1, а значение each_layer_is_an_ols_flag равно 0, значение ols_mode_idc считается равным 2.
[0257] Значение num_output_layer_sets_minus1 плюс 1 указывает общее количество OLS, указанных VPS, когда значение ols_mode_idc равно 2.
[0258] Переменную TotalNumOlss, определяющую общее количество OLS, заданных VPS, получают следующим образом:
[0259] Значение ols_output_layer_flag[i][j], равное 1, указывает на то, что уровень со значением nuh_layer_id, равным vps_layer_id[j], является выходным уровнем i-ro OLS, когда значение ols_mode_idc равно 2. Значение ols_output_layer_flag[i][j], равное 0, указывает на то, что уровень со значением nuh_layer_id, равным vps_layer_id[j], не является выходным уровнем i-ro OLS, когда значение ols_mode_idc равно 2.
[0260] Переменную NumOutputLayersInOls[i], определяющую количество выходных уровней в i-м OLS, переменную NumSubLayersInLayerInOLS[i][j], указывающую количество подуровней в j-м уровне в i-м OLS, переменную OutputLayerIdInOls[i][j], определяющую значение nuh_layer_id j-ro выходного уровня в i-м OLS, и переменную LayerUsedAsOutputLayerFlag[k], определяющую, используется ли k-й уровень в качестве выходного уровня по меньшей мере в одном OLS, получают следующим образом:
[0261] Для каждого значения i в диапазоне от 0 до vps_max_layers_minus1 включительно значения LayerUsedAsRefLayerFlag[i] и LayerUsedAsOutputLayerFlag[i] могут не быть оба равны 0. Другими словами, может не быть уровня, который не является ни выходным уровнем по меньшей мере одного OLS, ни прямым опорным уровнем для любого другого уровня.
[0262] Для каждого OLS может быть по меньшей мере один уровень, который является выходным уровнем. Другими словами, для любого значения i в диапазоне от 0 до TotalNumOlss - 1 включительно, значение NumOutputLayersInOls[i] может быть больше или равно 1.
[0263] Переменную NumLayersInOls[i], определяющую количество уровней в i-м OLS, и переменную LayerIdInOls[i][j], определяющую значение nuh_layer_id j-ro уровня в i-м OLS, получают следующим образом:
[0264] Переменную OlsLayerIdx[i][j], определяющую индекс уровня OLS для уровня со значением nuh_layer_id, равным LayerIdInOls[i][j], получают следующим образом:
[0265] Самый нижний уровень в каждом OLS может быть независимым уровнем. Другими словами, для каждого i в диапазоне от 0 до TotalNumOlss - 1 включительно, значение vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]] может быть равно 1.
[0266] Каждый уровень может быть включен по меньшей мере в один OLS, указанный VPS. Другими словами, для каждого уровня с конкретным значением nuh_layer_id nuhLayerId, равным одному из значений vps_layer_id[k] для k в диапазоне от 0 до vps_max_layers_minus1 включительно, может быть по меньшей мере одна пара значений i и j, где i находится в диапазоне от 0 до TotalNumOlss - 1 включительно, a j находится в диапазоне NumLayersInOls[i] - 1 включительно, так что значение LayerIdInOls[i][j] равно nuhLayerId.
[0267] Процесс декодирования для текущего изображения CurrPic согласно варианту осуществления изобретения описан ниже. Устанавливают PictureOutputFlag следующим образом. Если одно из следующих условий выполнено, значение PictureOutputFlag устанавливают равным 0. В противном случае значение PictureOutputFlag устанавливают равным pic_output_flag.
- текущее изображение является изображением RASL, а значение NoOutputBeforeRecoveryFlag соответствующего изображения IRAP равно 1.
- значение gdr_enabled_flag равно 1, а текущее изображение является изображением GDR с параметром NoOutputBeforeRecoveryFlag, равным 1.
- значение gdr_enabled_flag равно 1, текущее изображение связано с изображением GDR со значением NoOutputBeforeRecoveryFlag, равным 1, и PicOrderCntVal текущего изображения меньше RpPicOrderCntVal соответствующего изображения GDR.
- значение sps_video_parameter_set_id больше 0, значение ols_mode_idc равно 0, и текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям:
- PicA имеет значение PictureOutputFlag, равное 1. - PicA имеет значение nuh_ layer_id nuhLid больше, чем у текущего изображения.
- PicA принадлежит выходному уровню OLS (то есть значение OutputLayerIdInOls[TargetOlsIdx][0] равно nuhLid).
- значение sps_video_parameter_set_id больше 0, значение ols_mode_idc равно 2, а значение ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]] равно 0.
[0268] После декодирования всех слайсов текущего изображения текущее декодированное изображение помечают как "используемое для краткосрочной ссылки", и каждую запись ILRP в RefPicList[0] или RefPicList[1] помечают как "используемую для краткосрочной ссылки".
[0269] В том же или другом варианте осуществления изобретения, когда каждый уровень является набором выходных уровней, значение PictureOutputFlag устанавливается равным pic_output_flag, независимо от значения ols_mode_idc.
[0270] В том же или другом варианте осуществления изобретения значение PictureOutputFlag устанавливается равным 0, когда значение sps_video_parameter_set_id больше 0, значение each_layer_is_an_ols_flag равно 0, значение ols_mode_idc равно 0, и текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям: PicA имеет значение PictureOutputFlag, равное 1, PicA имеет значение nuh_layer_id nuhLid больше, чем у текущего изображения, и PicA принадлежит выходному уровню OLS (то есть значение OutputLayerIdInOls[TargetOlsIdx][0] равно nuhLid).
[0271] В том же или другом варианте осуществления изобретения значение PictureOutputFlag устанавливается равным 0, когда значение sps_video_parameter_set_id больше 0, значение each_layer_is_an_ols_flag равно 0, значение ols_mode_idc равно 2, и значение ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]] равно 0.
[0272] Передискретизация опорного изображения обеспечивает возможность адаптивного изменения разрешения в кодированной (многоуровневой) видеопоследовательности и пространственной масштабируемости по уровням с зависимостью между уровнями, принадлежащими одному и тому же набору выходных уровней.
[0273] В варианте осуществления изобретения, показанном на фиг.24, sps_ref_pic_resampling_enabled_flag сигнализируется в наборе параметров (например, в наборе параметров последовательности). Флаг sps_ref_pic_resampling_enabled_flag указывает, используется ли передискретизация опорного изображения для адаптивного изменения разрешения в кодированной видеопоследовательности, ссылающейся на SPS, или пространственной масштабируемости по уровням. Значение sps_ref_pic_resampling_enabled_flag, равное 1, указывает на то, что передискретизация опорного изображения разрешена, и один или более слайсов изображений в CLVS ссылаются на опорное изображение с другим пространственным разрешением в активной записи списка опорных изображений. Значение sps_ref_pic_resampling_enabled_flag, равное 0, указывает на то, что передискретизация опорного изображения запрещена, и ни один слайс изображений в CLVS не ссылается на опорное изображение с другим пространственным разрешением в активной записи списка опорных изображений.
[0274] В том же или другом варианте осуществления изобретения, когда значение sps_ref_pic_resampling_enabled_flag равно 1, для текущего изображения опорное изображение с другим пространственным разрешением либо принадлежит тому же уровню, либо уровню, отличному от уровня, содержащего текущее изображение.
[0275] В другом варианте осуществления изобретения значение sps_ref_pic_resampling_enabled_flag, равное 1, указывает на то, что передискретизация опорного изображения разрешена, и один или более слайсов изображений в CLVS ссылаются на опорное изображение с другим пространственным разрешением или другим окном масштабирования в активной записи списка опорных изображений. Значение sps_ref_pic_resampling_enabled_flag, равное 0, указывает на то, что передискретизация опорного изображения запрещена, и ни один слайс изображений в CLVS не ссылается на опорное изображение с другим пространственным разрешением или другим окном масштабирования в активной записи списка опорных изображений.
[0276] В том же или другом варианте осуществления изобретения, когда значение sps_ref_pic_resampling_enabled_flag равно 1, для текущего изображения опорное изображение с другим пространственным разрешением или другим окном масштабирования принадлежит либо тому же уровню, либо уровню, отличному от уровня, содержащего текущее изображение.
[0277] В том же или другом варианте осуществления изобретения sps_res_change_in_clvs_allowed_flag указывает, изменяется ли разрешение изображения в CLVS или CVS или нет.Значение sps_res_change_in_clvs_allowed_flag, равное 1, указывает на то, что пространственное разрешение изображения может изменяться в пределах CLVS, ссылающейся на SPS. Значение sps_res_change_in_clvs_allowed_flag, равное 0, указывает на то, что пространственное разрешение изображения не изменяется в пределах CLVS, ссылающейся на SPS. Если значение sps_res_change_in_clvs_allowed_flag отсутствует, оно считается равным 0.
[0278] В том же или другом варианте осуществления изобретения, когда значение sps_ref_pic_resampling_enabled_flag равно 1, а значение sps_res_change_in_clvs_allowed_flag равно 0, передискретизация опорного изображения может использоваться только для пространственной масштабируемости, а не для адаптивного изменения разрешения в CLVS.
[0279] В том же или другом варианте осуществления изобретения, когда значение sps_re_pic_resampling_enabled_flag равно 1, а значение sps_res_change_in_clvs_allowed_flag равно 1, передискретизация опорного изображения может использоваться как для пространственной масштабируемости, так и для адаптивного изменения разрешения в CLVS.
[0280] Если значение sps_ref_pic_resampling_enabled_flag равно 1, значение sps_res_change_in_clvs_allowed_flag равно 0, а значение sps_video_parameter_set_id равно 0, то значение pps_scaling_window_explicit_explicit_signalling_flag может быть равно 1. Это подразумевает, что параметры окна масштабирования должны явно сигнализироваться вместо того, чтобы делать вывод о значениях на основе параметров окна соответствия, когда разрешение изображения является постоянным в CLVS или CVS, и используется передискретизация опорного изображения.
[0281] В варианте осуществления изобретения sps_virtual_boundaries_present_flag сигнализируется в SPS, как показано на фиг. 24. Флаг sps_virtual_boundaries_present_flag указывает, сигнализируется ли информация о виртуальной границе в SPS или нет.
[0282] В том же или другом варианте осуществления изобретения sps_virtual_boundaries_present_flag сигнализируется, только когда значение sps_res_change_in_clvs_allowed_flag равно 0, поскольку, когда используется передискретизация опорного изображения, информация о виртуальной границе может не сигнализироваться в SPS.
[0283] В том же варианте осуществления изобретения значение sps_virtual_boundaries_present_flag, равное 1, указывает на то, что информация о виртуальных границах сигнализируется в SPS. Значение sps_virtual_boundaries_present_flag, равное 0, указывает на то, что информация о виртуальных границах не сигнализируется в SPS. Когда в SPS сигнализируется одна или более виртуальных границ, запрещены операции контурной фильтрации через виртуальные границы на изображениях, ссылающихся на SPS. Операции контурной фильтрации включают фильтр для устранения блочности, адаптивный фильтр смещения отсчетов и операции адаптивного контурного фильтра. Когда значение sps_virtual_boundaries_present_flag отсутствует, оно считается равным 0.
[0284] В варианте осуществления изобретения sps_subpic_info_present_flag сигнализируется в SPS, как показано на фиг. 24. Флаг sps_subpic_info_present_flag указывает, сигнализируется ли информация о разделении субизображения в SPS или нет.
[0285] В том же или другом варианте осуществления изобретения sps_subpic_info_present_flag сигнализируется только тогда, когда значение sps_res_change_in_clvs_allowed_flag равно 0, поскольку, когда используется передискретизация опорного изображения, информация о разделении субизображения может не сигнализироваться в SPS.
[0286] В том же варианте осуществления изобретения значение sps_subpic_info_present_flag, равное 1, указывает на то, что информация субизображения присутствует для CLVS, и в каждом изображении CLVS может быть одно или более субизображений. Значение sps_subpic_info_present_flag, равное 0, указывает на то, что информация субизображения отсутствует для CLVS, и в каждом изображении CLVS есть только одно субизображение. Когда значение sps_subpic_info_present_flag отсутствует, оно считается равным 0.
[0287] В варианте осуществления изобретения pps_res_change_in_clvs_allowed_flag может сигнализироваться в PPS, как показано на фиг.25. Значение pps_res_change_in_clvs_allowed_flag в PPS может быть равно значению sps_res_change_in_clvs_allowed_flag в SPS, на который ссылается PPS.
[0288] В том же варианте осуществления изобретения информация о ширине и высоте изображения может сигнализироваться в PPS только тогда, когда значение pps_res_change_in_clvs_allowed_flag равно 1. Когда pps_res_change_in_clvs_allowed_flag равно 0, значения ширины и высоты изображения считаются равными значениям максимальной ширины и высоты изображения, сигнализируемым в SPS.
[0289] В том же варианте осуществления изобретения значение pps_pic_width_in_luma_samples определяет ширину каждого декодированного изображения, ссылающегося на PPS, в единицах отсчетов яркости. Значение pps_pic_width_in_luma_samples может не быть равным 0, может быть целым числом, кратным Мах(8, MinCbSizeY), и может быть меньше или равно sps_pic_width_max_in_luma_samples. Если значение pps_pic_width_in_luma_samples отсутствует, оно считается равным sps_pic_width_max_in_luma_samples. Когда значение sps_ref_wraparound_enabled_flag равно 1, значение (CtbSizeY/MinCbSizeY+1) может быть меньше или равно значению (pps_pic_width_in_luma_samples/MinCbSizeY - 1). Значение pps_pic_height_in_luma_samples определяет высоту каждого декодированного изображения, ссылающегося на PPS, в единицах отсчетов яркости. Значение pps_pic_height_in_luma_samples может не быть равным 0, может быть целым числом, кратным Мах(8, MinCbSizeY), и может быть меньше или равно sps_pic_height_max_in_luma_samples. Если значение pps_pic_height_in_luma_samples отсутствует, оно считается равным sps_pic_height_max_in_luma_samples.
[0290] В списке опорных изображений все активные опорные изображения для изображения имеют ту же компоновку субизображений, что и само изображение, и все активные опорные изображения представляют собой межуровневые опорные изображения, которые имеют одно субизображение.
[0291] В том же или другом варианте осуществления изобретения, изображение, на которое ссылается каждая активная запись в RefPicList[0] или RefPicList[1], имеет тот же размер изображения и ту же компоновку субизображений, что и текущее изображение (то есть SPS, на которые ссылается это изображение, и текущее изображение имеют одинаковое значение sps_num_subpics_minus1 и одни и те же значения sps_subpic_ctu_top_left_x[j], sps_subpic_ctu_top_left_y[j],
sps_subpic_width_minus1[j] и sps_subpic_height_minus1[j], соответственно, для каждого значения] в диапазоне от 0 до sps_num_subpics_minus1 включительно). Изображение, на которое ссылается каждая активная запись в RefPicList[0] или RefPicList[1], является ILRP, для которого значение sps_num_subpics_minus1 равно 0.
[0292] В том же или другом варианте осуществления изобретения, когда значение sps_num_subpics_minus1 больше 0, а значение sps_subpic_treated_as_pic_flag[i] равно 1, для каждой CLVS текущего уровня, ссылающейся на SPS, в предположении, что targetAuSet представляет все AU, начиная с AU, содержащего первое изображение CLVS в порядке декодирования, до AU, содержащего последнее изображение CLVS в порядке декодирования, включительно, имеется требование соответствия битового потока, которое заключается в том, чтобы все следующие условия выполнялись для targetLayerSet, который содержит текущий уровень и все уровни, имеющие текущий уровень в качестве опорного уровня:
- Для каждого AU в targetAuSet все изображения уровней в targetLayerSet могут иметь одно и то же значение pps_pic_width_in_luma_samples и одно и то же значение pps_pic_height_in_luma_samples.
Все SPS, на которые ссылаются уровни, для которых текущий уровень является опорным, в targetLayerSet могут иметь одно и то же значение sps_num_subpics_minus1 и могут иметь одни и те же значения sps_subpic_ctu_top_left_x[j], sps_subpic_ctu_top_left_y[j], sps_subpic_width_minus1[j], sps_subpic_height_minus1[j] и sps_subpic_treated_as_pic_flag[j], соответственно, для каждого значения] в диапазоне от 0 до sps_num_subpics_minus1 включительно.
- Для каждого AU в targetAuSet все изображения уровней, которые имеют текущий уровень в качестве опорного, в targetLayerSet могут иметь одинаковое значение SubpicIdVal[j] для каждого значения j в диапазоне от 0 до sps_num_subpics_minus1 включительно.
[0293] В том же или другом варианте осуществления изобретения pp_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset и pps_scaling_win_bottom_offset задают смещения, которые применяются к размеру изображения для вычисления коэффициента масштабирования. Если значения pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset и pps_scaling_win_bottom_offset отсутствуют, они считаются равными pps_conf_win_left_offset, pps_conf_win_confset, pps_conf_win_ps_set_offset, pps_conf_win_right_offset, pps_conf_win_right_offset и pps_conf_win_right_offset, соответственно.
[0294] Значение SubWidthC * (Abs(pps_scaling _win_ left_ offset)+Abs(pps_ scaling_ win_ right_ offset)) может быть меньше, чем pps_pic_ width_ in_ luma_samples, а значение SubHeightC * (Abs(pps_scaling_win_top_offset)+bs(pps_scaling_win_bottom_offset)) может быть меньше, чем pps_pic_height_in_luma_samples.
[0295] Переменные CurrPicScalWinWidthL и CurrPicScalWinHeightL получают следующим образом:
[0296] Пусть refPicScalWinWidthL и refPicScalWinHeightL представляют собой CurrPicScalWinWidthL и CurrPicScalWinHeightring, соответственно, опорного изображения для текущего изображения, ссылающегося на этот PPS. Требование соответствия битового потока заключается в том, чтобы все следующие условия могли быть удовлетворены:
- CurrPicScalWinWidthL*2 больше или равно refPicScalWinWidthL.
- CurrPicScalWinHeightL*2 больше или равно refPicScalWinHeightL.
- CurrPicScalWinWidthL меньше или равно refPicScalWinWidthL*8. - CurrPicScalWinHeightL меньше или равно refPicScalWinHeightL*8. - CurrPicScalWinWidthL*sps_pic_width_max_in_luma_samples больше или равно refPicScalWinWidthL * (pps_pic_width_in_luma_samples - Max(8, MinCbSizeY)).
- CurrPicScalWinHeightL*sps_pic_height_max_in_luma_samples больше или равно refPicScalWinHeightL * (pps_pic_height_in_luma_samples - Max(8, MinCbSizeY)).
[0297] Значение SubWidthC * (Abs(pps_scaling_win_left_offset)+Abs(pps_scaling_win_right_offset)) может быть меньше, чем pps_pic_width_in_ luma_samples, а значение SubHeightC * (Abs(pps_scaling_win_top_offset)+bs(pps_scaling_win_bottom_offset)) может быть меньше, чем pps_pic_height_in_luma_samples.
[0298] В том же или другом варианте осуществления изобретения значение SubWidthC * (pps_scaling_win_left_offset+pps_scaling_win_right_offset) может быть больше или равно -pps_pic_width_in_luma_samples*15 и меньше pps_pic_width_in_luma_samples_top_scaling, а значение SubHeightC*(pps_scaling_win_top_offset+pps_scaling_win_bottom_offset) может быть больше или равно pps_pic_height_in_luma_samples*15 и меньше pps_pic_height_in_luma_samples.
[0299] В том же или другом варианте осуществления значение SubWidthC*(pps_scaling_win_len_offset+pps_scaling_win_right_offset) может быть больше или равно -pps_pic_width_in_luma_samples*7 и меньше pps_pic_width_in_luma_samples, а значение SubHeightC*(pps_scaling_win_top_offset+pps_scaling_win_bottom_offset) может быть больше или равно -pps_pic_height_in_luma_samples*7 и меньше pps_pic_height_in_luma_samples.
[0300] В том же или другом варианте осуществления изобретения, если значение sps_ref_pic_resampling_enabled_flag равно 1, значение sps_res_change_in_clvs_allowed_flag равно 0, а значение sps_subpic_info_present_flag равно 1, то значение SubWidthC * (Abs(pps_scaling_win_left_offset)+Abs(pps_scaling_win_right_offset)) может быть меньше минимального значения sps_subpic_width_minus1[i]+1 для i в диапазоне от 0 до sps_num_subpics_minus1, а значение SubHeightC*(Abs(pps_scaling_win_top_offset)+Abs(pps_scaling_win_bottom_offset)) может быть меньше минимального значения sps_subpic_height_minus1[i]+1 для i в диапазоне от 0 до sps_num_subpics_minus1.
[0301] В том же или другом варианте осуществления изобретения, когда значение sps_res_change_in_clvs_allowed_flag текущего уровня равно 1, значение sps_subpic_info_present_flag может быть равно 0.
[0302] В том же или другом варианте осуществления изобретения, когда значение sps_res_change_in_clvs_allowed_flag текущего уровня равно 1, значение sps_subpic_info_present_flag уровня, который ссылается на текущий уровень, может быть равно 0.
[0303] В том же или другом варианте осуществления изобретения, когда значение sps_res_change_in_clvs_allowed_flag текущего уровня равно 1, значение sps_subpic_info_present_flag текущего уровня и всех уровней, которые ссылаются на текущий уровень, может быть равно 0.
[0304] В том же или другом варианте осуществления изобретения, когда значение sps_subpic_info_present_flag текущего уровня может быть равно 1, значение sps_res_change_in_clvs_allowed_flag текущего уровня может быть равно 0.
[0305] В том же или другом варианте осуществления изобретения, когда значение sps_subpic_info_present_flag текущего уровня может быть равно 1, значение sps_res_change_in_clvs_allowed_flag опорного уровня текущего уровня может быть равно 0.
[0306] В том же или другом варианте осуществления изобретения, когда значение sps_subpic_info_present_flag текущего уровня может быть равно 1, значения sps_res_change_in_clvs_allowed_flag текущего уровня и всего опорного уровня для текущего уровня могут быть равны 0.
[0307] В том же или другом варианте осуществления изобретения, когда значение sps_subpic_info_present_flag текущего уровня равно 1, а значение sps_ref_pic_resampling_enabled_flag может быть равно 1, значение sps_ref_pic_resampling_enabled_flag опорного уровня для текущего уровня может быть равно 1.
[0308] В варианте осуществления изобретения кодированное изображение на уровне k может быть разделено на одно или более субизображений, как показано на фиг. 26, может ссылаться на одно или более опорных изображений на одном и том же уровне и может ссылаться на одно или более опорных изображений на опорном уровне уровня k. В примере на фиг.26, когда значение sps_ref_pic_resampling_enabled_flag (на фиг. 24) равно 1, текущее изображение и каждое опорное изображение могут иметь разные окна масштабирования, даже если размер изображения один и тот же.
[0309] В том же или другом варианте осуществления изобретения, когда извлекается субизображение, размер окна масштабирования и его значения смещения, которые используются для вычисления коэффициента масштабирования для передискретизации опорного изображения, могут обновляться в соответствии с размером и местоположением субизображения. При обновлении размера окна масштабирования и его значения смещения текущего изображения, размер окна масштабирования и его значения смещения для одного или более опорных изображений текущего изображения могут обновляться соответственно. Фиг. 27 иллюстрирует пример обновления окна масштабирования опорного изображения на том же уровне и межуровневого опорного изображения на другом уровне.
[0310] В том же или другом варианте осуществления изобретения, когда изображение на уровне к разделено на одно или более субизображений с одинаковой компоновкой при разделении, изображение на уровне, отличном от уровня к и называемом опорным уровнем, не может быть разделено на субизображения.
[0311] В том же или другом варианте осуществления изобретения, когда размер окна масштабирования и значения смещения окна масштабирования обновляются, в примере на фиг.27 размер окна масштабирования может быть изменен относительно коэффициента масштабирования между размером исходного изображения и размером извлеченного субизображения. Когда размер окна масштабирования обновляется, в зависимости от размера исходного изображения и размера субизображения, обновленный размер окна масштабирования может иметь дробное значение, которое не может быть представлено значениями смещения окна масштабирования (pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, pps_scaling_win_bottom_offset), сигнализируемыми в PPS, как показано на фиг. 25. Кроме того, в этом подходе могут обновляться все значения смещения масштабирования опорных изображений. Это довольно большая нагрузка.
[0312] В том же или другом варианте осуществления изобретения, как показано на фиг.28, чтобы сигнализировать об одном и том же коэффициенте масштабирования между текущим изображением и опорным изображением при извлечении субизображения, размер окна масштабирования не может быть изменен по сравнению с исходным окном масштабирования перед извлечением, а только местоположение окна масштабирования смещается путем обновления значений смещения окна масштабирования (pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, pps_scaling_win_bottom_offset), сигнализируемых в PPS.
[0313] В том же варианте осуществления изобретения, когда значениями смещения окна масштабирования исходного изображения являются orgScalingWinLeft, orgScalingWinRight, orgScalingWinTop и orgScalingWinBottom, которые равны значениям pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset и pps_scaling_win_bottom_offset исходного изображения, соответственно, положение и размер извлеченного субизображения представлены SubpicLeftBoundaryPos, SubpicRightBoundaryPos, SubpicTopBoundaryPos и SubpicBotBoundaryPos, значения которых получают следующим образом:
[0314] Значения pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset и pps_scaling_win_bottom_offset извлеченного субизображения получают следующим образом:
[0315] В том же или другом варианте осуществления изобретения процесс извлечения битового потока субизображения осуществляют следующим образом. Входными данными для этого процесса являются битовый поток inBitstream, целевой индекс OLS targetOlsIdx, целевое наибольшее значение TemporalId tIdTarget и массив целевых значений индексов субизображений для каждого уровня subpicIdxTarget[]. Выходными данными этого процесса является битовый субпоток outBitstream.
[0316] Требование соответствия битового потока для входного битового потока состоит в том, что любой выходной субпоток, который удовлетворяет всем следующим условиям, будет надлежащим битовым потоком. Выходной битовый субпоток представляет собой выходные данные указанного процесса, значение targetOlsIdx равно индексу списка OLS, заданных VPS, и subpicIdxTarget[] равно индексу субизображения, присутствующего в OLS, в качестве входных данных. Выходной битовый субпоток содержит по меньшей мере один блок NAL VCL со значением nuh_layer_id, равным каждому из значений nuh_layer_id в LayerIdInOls[targetOlsIdx]. Выходной битовый субпоток содержит по меньшей мере один блок NAL VCL со значением TemporalId, равным tIdTarget. Надлежащий битовый поток содержит один или более блоков NAL кодированного слайса со значением TemporalId, равным 0, но не обязательно должен содержать блоки NAL кодированного слайса со значением nuh_layer_id, равным 0. Выходной битовый субпоток содержит по меньшей мере один блок NAL VCL со значением nuh_layer_id, равным LayerIdInOls[targetOlsIdx][i], и со значением sh_subpic_id, равным значению в SubpicIdVal[subpicIdxTarget[i]] для каждого i в диапазоне от 0 до NumLayersInOls[targetOlsIdx] - 1 включительно.
[0317] Выходной битовый субпоток outBitstream получают следующим образом. Процесс извлечения битового субпотока запускают с inBitstream, targetOlsIdx и tIdTarget в качестве входных данных, а выходные данные процесса назначают outBitstream. Если некоторые внешние средства, не указанные в данном описании, доступны для обеспечения заменяющих наборов параметров для битового субпотока outBitstream, следует заменить все наборы параметров заменяющими наборами параметров.
[0318] В противном случае, когда присутствуют сообщения SEI с информацией уровня субизображения в inBitstream, применимо следующее. Переменную subpicIdx устанавливают равной значению subpicIdxTarget[[NumLayersIn01s[targetOlsIdx] - 1]]. Переписывают значение general_level_idc_в vps_ols_ptl_idx[targetOlsIdx]-ой записи в списке синтаксических структур profile_tier_level() во всех блоках NAL VPS, на которые есть ссылка, чтобы оно было равно SubpicLevelIdc для набора субизображений, состоящего из субизображений с индексом субизображения, равным subpicIdx. Когда присутствуют параметры VCL HRD или параметры NAL HRD, переписывают соответствующие значения cpb_size_value_minus1[tIdTarget][j] и bit_ rate_value_minus1[tIdTarget][j] j- го СРВ в
vps_ols_hrd_idx[MultiLayerOlsIdx[MultiLayerOls]]-й синтаксической структуре ols_hrd_parameters() во всех блоках NAL VPS, на которые есть ссылка, и в синтаксических структурах ols_hrd_parameters() во всех блоках NAL SPS, на которые ссылается i-й уровень, таким образом, чтобы они соответствовали SubpicCpbSizeVcl[SubpicSetLevelIdx][subpicIdx] и SubpicCpbSizeNal[SubpicSetLevelIdx][subpicIdx].
[0319] SubpicBitrateVcl[SubpicSetLevelIdx][subpicIdx] и SubpicBitrateNal[SubpicSetLevelIdx][subpicIdx] для индекса субизображения, равного subpicIdx, j находится в диапазоне от 0 до hrd_cpb_cnt_minus1 включительно, a i находится в диапазоне от 0 до NumLayersInOls[targetOlsIdx] - 1 включительно.
[0320] Для i-го уровня с i в диапазоне от 0 до NumLayersInOls[targetOlsIdx] - 1 применимо следующее. Переменную subpicIdx устанавливают равной значению subpicIdxTarget[i]. Переписывают значение general_level_idc в синтаксической структуре profile_tier_level() во всех блоках NAL SPS, на которые есть ссылка, со значением sps_ptl_dpb_hrd_params_present_flag, равным 1, чтобы оно было равно SubpicLevelIdc для набора субизображений, состоящих из субизображений с индексом субизображения, равным subpicIdx.
[0321] Переменные subpicWidthInLumaSamples и subpicHeightInLumaSamples получают следующим образом:
[0322] Переписывают значения sps_pic_width_max_in_luma_samples и sps_pic_height_max_in_luma_samples во всех блоках NAL SPS, на которые есть ссылка, и значения pps_pic_width_in_luma_samples и pps_pic_height_in_luma_samples во всех блоках NAL PPS, на которые есть ссылка, так, чтобы они были равны subpicWidthInLumaSamples и subpicHeightInLumaSamples, соответственно. Переписывают значение sps_num_subpics_minus1 во всех блоках NAL SPS, на которые есть ссылка, и значение pps_num_subpics_minus1 во всех блоках NAL PPS, на которые есть ссылка, как 0. Переписывают синтаксические элементы sps_subpic_ctu_top_left_x[subpicIdx] и sps_subpic_ctu_top_left_y[subpicIdx] при их наличии, во всех блоках NAL SPS, на которые есть ссылка, как 0. Удаляют синтаксические элементы sps_subpic_ctu_top_left_x[j], sps_subpic_ctu_top_left_y[j], sps_subpic_width_minus1[j], sps_subpic_height_minus1[j], sps_subpic_treated_as_pic_flag[j], sps_loop_filter_across_subpic_enabled_flag[j] и sps_subpic_id_flag[j] во всех блоках NAL SPS, на которые есть ссылка и для которых j не равно subpicIdx. Переписывают синтаксические элементы во всех PPS, на которые есть ссылка, для сигнализации тайлов и слайсов, чтобы удалить все строки тайлов, столбцы тайлов и слайсы, которые не связаны с субизображением с индексом субизображения, равным subpicIdx.
[0323] Переменные subpicConfWinLeftOffset, subpicConfWinRightOffset, subpicConfWinTopOffset и subpicConfWinBottomOffset получают следующим образом:
[0324] Переписывают значения sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset и sps_conf_win_bottom_offset во всех блоках NAL SPS, на которые есть ссылка, и значения pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset и pps_conf_win_bottom_offset во всех блоках NAL PPS, на которые есть ссылка, так, чтобы они были равны subpicConfWinLeftOffset, subpicConfWinRightOffset, subpicConfWinTopOffset и subpicConfWinBottomOffset, соответственно. Переписывают значения pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset и pps_scaling_win_bottom_offset следующим образом:
pps_scaling_win_left_offset=orgScalingWinLeft - (SubpicLeftBoundaryPos / SubWidthC)
pps_scaling_win_right_offset=orgScalingWinRight - (SubpicLeftBoundaryPos / SubWidthC)
pps_scaling_win_top_offset=orgScalingWinTop - (SubpicTopBoundaryPos / SubWidthC)
pps_scaling_win_bottom_offset=orgScalingWinBottom - (SubpicTopBoundaryPos / SubWidthC),
где orgScalingWinLeft, orgScalingWinRight, orgScalingWinTop и orgScalingWinBottom равны значениям pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset и pps_scaling_win_bottom_offset исходного кодированного изображения. Удаляют из outBitstream все блоки NAL VCL со значением nuh_layer_id, равным nuh_layer_id i-го уровня and со значением sh_subpic_id, не равным SubpicIdVal[subpicIdx].
[0325] Когда значение sli_cbr_constraint_flag равно 1, удаляют все блоки NAL со значением nal_unit_type, равным FD_NUT, и сообщения SEI полезной нагрузки заполнителя (filler payload SEI), которые не связаны с блоками NAL VCL субизображения в subpicIdTarget[], и устанавливают значение cbr_flag[tIdTarget][j] равным 1 j-го СРВ в vps_ols_hrd_idx[MultiLayerOlsIdx]targetOlsIdx]-й синтаксической структуре ols_hrd_parameters() во всех блоках NAL VPS, на которые есть ссылка, и блоках NAL SPS и j в диапазоне от 0 до hrd_cpb_cnt_minus1. В противном случае (значение sli_cbr_constraint_flag равно 0), удаляют все блоки NAL со значением nal_unit_type, равным FD_NUT, и сообщения SEI полезной нагрузки заполнителя и устанавливают значение cbr_flag[tIdTarget][j] равным 0.
[0326] Когда outBitstream содержит блоки NAL SEI, которые содержат масштабируемое вложенное сообщение SEI со значением sn_ols_flag, равным 1, и со значением sn_subpic_flag, равным 1, которые применимы к outBitstream, извлекают соответствующее не масштабируемое вложенное сообщение SEI со значением payloadType, равным 1 (РТ), 130 (DUI) или 132 (хэш декодированного изображения) из масштабируемого вложенного сообщения SEI и помещают извлеченные сообщения SEI в outBitstream.
[0327] Некоторые варианты осуществления изобретения могут относиться к системе, способу и/или машиночитаемому носителю на любом возможном уровне технических деталей интеграции. Машиночитаемый носитель может включать машиночитаемый носитель данных (или носители), содержащий машиночитаемые программные инструкции, которые обеспечивают выполнение процессором операций.
[0328] Машиночитаемый носитель данных может быть материальным устройством, которое может сохранять и хранить инструкции для использования устройством исполнения инструкций. Машиночитаемый носитель данных может быть, например, не ограничиваясь этим, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией указанных устройств. Неисчерпывающий список более конкретных примеров машиночитаемого носителя данных включает: портативную компьютерную дискету, жесткий диск, оперативное запоминающее устройство (RAM, random access memory), постоянное запоминающее устройство (ROM, read-only memory), стираемое программируемое постоянное запоминающее устройство (EPROM, erasable programmable read-only memory) или флэш-память, статическое оперативное запоминающее устройство (SRAM, static random access memory), портативное постоянное запоминающее устройство компакт-дисков (CD-ROM), универсальный цифровой диск (DVD), карту памяти, гибкий диск, устройство с механическим кодированием, такое как перфокарты или выпуклые структуры, в канавках которых записаны инструкции, и любую подходящую комбинацию указанных средств. Машиночитаемый носитель данных, используемый в данном описании, не следует рассматривать как сигналы во времени сами по себе, такие как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другую среду передачи (например, световые импульсы, проходящие через волоконно-оптический кабель) или электрические сигналы, передаваемые по проводам.
[0329] Машиночитаемые программные инструкции, описанные здесь, могут быть загружены в соответствующие вычислительные/обрабатывающие устройства с машиночитаемого носителя данных или на внешний компьютер или внешнее запоминающее устройство через сеть, например, Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, оптические волокна передачи, средства беспроводной передачи, маршрутизаторы, межсетевые экраны, коммутаторы, шлюзовые компьютеры и/или пограничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом вычислительном/обрабатывающем устройстве принимает машиночитаемые программные инструкции из сети и пересылает машиночитаемые программные инструкции для хранения на машиночитаемом носителе данных в соответствующем вычислительном/обрабатывающем устройстве.
[0330] Машиночитаемый программный код или инструкции для выполнения операций могут быть инструкциями ассемблера, инструкциями архитектуры набора инструкций (ISA, instruction-set-architecture), машинными инструкциями, машинно-зависимыми инструкциями, микрокодом, инструкциями встроенного программного обеспечения, данными установки состояния, конфигурационными данными для интегральных схем, либо исходным кодом, объектным кодом, написанным с помощью любой комбинации одного или более языков программирования, включая объектно-ориентированный язык программирования, такой как Smalltalk, С++ и т.п., и процедурные языки программирования, такие как язык программирования С или аналогичные языки программирования. Машиночитаемые программные инструкции могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как автономный программный пакет, частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть подключен к компьютеру пользователя через сеть любого типа, включая локальную сеть (LAN, local area network) или глобальную сеть (WAN, wide area network), либо может быть выполнено соединение с внешним компьютером (например, через интернет с помощью провайдера услуг интернета). В некоторых вариантах осуществления изобретения электронные схемы, включая, например, программируемые логические схемы, программируемые вентильные матрицы (FPGA, field-programmable gate arrays) или программируемые логические матрицы (PLA, programmable logic arrays), могут исполнять машиночитаемые программные инструкции, используя информацию о состоянии машиночитаемых программных инструкций для конфигурирования электронной схемы для реализации аспектов или операций.
[0331] Эти машиночитаемые программные инструкции могут быть предоставлены процессору компьютера общего назначения, специализированному компьютеру или другому программируемому устройству обработки данных для создания машины, так что инструкции, которые исполняются посредством процессора компьютера или другого программируемого устройства обработки данных создают средства для реализации функций/действий, указанных в блок-схеме и/или блоке или блоках структурной схемы. Эти машиночитаемые программные инструкции также могут храниться на машиночитаемом носителе данных, который может указывать компьютеру, программируемому устройству обработки данных и/или другим устройствам функционировать определенным образом, так что машиночитаемый носитель данных, содержащий инструкции, хранящиеся на нем, образует промышленное изделие, включающее инструкции, которые реализуют аспекты функции/действия, указанные в блок-схеме и/или блоке или блоках структурной схемы.
[0332] Машиночитаемые программные инструкции также могут быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство, чтобы вызвать выполнение последовательности рабочих шагов на компьютере, другом программируемом устройстве или другом устройстве для осуществления компьютерно-реализуемого способа, так что инструкции, которые исполняются на компьютере, другом программируемом устройстве или другом устройстве, реализуют функции/действия, указанные в блок-схеме и/или блоке или блоках структурной схемы.
[0333] Блок-схема и структурные схемы на чертежах иллюстрируют архитектуру, функциональные возможности и работу возможных реализаций систем, способов и машиночитаемых носителей согласно различным вариантам осуществления изобретения. В этом отношении каждый блок в блок-схеме или структурных схемах может представлять модуль, сегмент или часть инструкций, которые содержат одну или более исполняемых инструкций для реализации указанной логической функции или функций. Способ, компьютерная система и машиночитаемый носитель могут включать дополнительные блоки, меньшее количество блоков, различные блоки или блоки, расположенные иначе, чем показано на чертежах. В некоторых альтернативных реализациях функции, указанные в блоках, могут выполняться не в том порядке, который показан на чертежах. Например, два блока, показанные последовательно, могут фактически выполняться одновременно или по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от задействованных функциональных возможностей. Также следует отметить, что каждый блок блок-схем и/или структурных схем, а также комбинации блоков в блок-схемах и/или структурных схемах могут быть реализованы аппаратными системами специального назначения, которые выполняют указанные функции или действия, или комбинацией специализированного аппаратного обеспечения и компьютерных инструкций.
[0334] Очевидно, что описанные здесь системы и/или способы могут быть реализованы в различных формах аппаратного обеспечения, встроенного программного обеспечения или комбинации аппаратного и программного обеспечения. Фактическое специализированное аппаратное обеспечение или программный код управления, используемые для реализации этих систем и/или способов, не ограничивают варианты осуществления изобретения. Таким образом, работа и поведение систем и/или способов были описаны здесь без ссылки на конкретный программный код, при этом понятно, что могут быть разработаны программное обеспечение и аппаратное обеспечение для реализации систем и/или способов на основе данного описания.
[0335] Ни один элемент, действие или инструкция, использованные в данном описании, не должны рассматриваться как критические или существенные, если они явно не указаны как таковые. Кроме того, используемое здесь единственное число предназначено для включения одного или более элементов и может использоваться взаимозаменяемо с выражением "один или более". Кроме того, используемый здесь термин "набор" предназначен для включения одного или более элементов (например, связанных элементов, несвязанных элементов, комбинации связанных и несвязанных элементов и т.д.) и может использоваться взаимозаменяемо с выражением "один или более". Если подразумевается только один элемент, используется термин "один" или аналогичный термин. Кроме того, указанные здесь термины «имеет», «иметь» и т.п. предназначены для использования в качестве неограничивающих терминов. Фраза «на основе» предназначена для обозначения «по меньшей мере частично на основе», если явно не указано иное.
[0336] Описание различных аспектов и вариантов осуществления изобретения представлено для иллюстрации, но не является исчерпывающим или ограниченным раскрытыми вариантами осуществления изобретения. Даже несмотря на то, что некоторые комбинации признаков изложены в формуле изобретения и/или раскрыты в описании, эти комбинации не предназначены для ограничения возможных вариантов осуществления изобретения. Фактически, многие из этих признаков могут быть объединены способами, которые конкретно не указаны в формуле изобретения и/или в описании. Хотя каждый зависимый пункт формулы, указанный ниже, может напрямую зависеть только от одного пункта формулы, раскрытие возможных реализаций включает каждый зависимый пункт формулы в сочетании с каждым другим пунктом формулы изобретения. Специалистам в данной области техники будут очевидны многие модификации и варианты, не выходящие за рамки описанных вариантов осуществления изобретения. Используемая здесь терминология была выбрана для наилучшего объяснения принципов вариантов осуществления изобретения, практического применения или технического усовершенствования технологий, имеющихся на рынке, или для того, чтобы дать возможность другим специалистам в данной области техники понять раскрытые здесь варианты осуществления изобретения.