Сигнализация адаптивного размера изображения в битовом потоке видео
ADAPTIVE IMAGE SIZE SIGNALING IN VIDEO BITSTREAM

Перекрестная ссылка на родственную заявку
[0001] По настоящей заявке испрашивается приоритет на основании предварительной заявки на патент США №62/816667, поданной 11 марта 2019 г. в Ведомство США по патентам и товарным знакам, которая полностью включена в настоящий документ посредством ссылки.
Предпосылки создания изобретения
1. Область техники
[0002] Раскрываемый предмет изобретения относится к кодированию и декодированию видео, а более конкретно, к передаче сигналов изображения или частей изображения, размер которых может изменяться от изображения к изображению или от части изображения к части изображения.
2. Описание известного уровня техники
[0003] Кодирование и декодирование видео с использованием межкадрового предсказания с компенсацией движения были известны в течение десятилетий. Несжатый цифровой видеосигнал может состоять из последовательности изображений, каждое изображение имеет пространственный размер, например, 1920x1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео предъявляет значительные требования к скорости передачи битов. Например, для видео формата 1080р60 4:2:0 с 8 битами на отсчет (разрешение 1920×1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с.Час такого видео требует объема памяти более 600 Гбайт.
[0004] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видео посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности или объему памяти, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к технологиям, при которых точная копия исходного сигнала может быть восстановлена из сжатого исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал полезным для предполагаемого применения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от применения; например, пользователи определенных потребительских приложений потоковой передачи могут допускать более высокие искажения, чем пользователи приложений для передачи телевизионных сигналов. Достижимая степень сжатия может отражать следующее: более высокое допустимое/приемлемое искажение может приводить к более высокому коэффициенту сжатия.
[0005] Кодер и декодер видео могут использовать технологии из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.
[0006] Исторически кодеры и декодеры видео имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS, Coded Video Sequence), группы изображений (GOP, Group of Pictures) или аналогичного интервала времени с множественными изображениями. Например, в стандарте Экспертной группы по движущимся изображениям (MPEG, Moving Picture Experts Group) MPEG-2 известны структуры системы для изменения горизонтального разрешения (и, следовательно, размера изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений (Intra-coded picture изображение кодируется с использованием только той информации, которая содержится в нем самом), следовательно, обычно для группы изображений GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Приложения Р Рекомендации Н.263 Сектора по стандартизации телекоммуникаций в составе Международного союза электросвязи (ITU-T, International Telecommunications Union Telecommunication Standardization Sector). Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего могут использоваться только части холста изображения (в случае понижения частоты дискретизации) или только части захватываемой сцены (в случае повышения частоты дискретизации). Кроме того, Приложение Q Рекомендации Н.263 допускает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону увеличения или уменьшения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому его не требуется сигнализировать.
[0007] Изменения размера изображения в предсказываемых изображениях стало все более распространенной тенденцией в современном кодировании видео. Например, стандарт VP9 (Video Processor 9 Видеопроцессор 9) позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении Универсального кодирования видео (VVC, Versatile Video Coding) (включая, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-vl, 9-19 января 2019 г., группы экспертов (JVET, Joint Video Experts Team) в рамках совместной программы (JVT, Joint Video Team), полностью включенные в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений с другими, более высокими или более низкими, разрешениями. В этом документе предлагается кодировать различные возможные разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.
Сущность изобретения
[0008] Согласно формам осуществления изобретения способ декодирования кодированного изображения из кодированной видеопоследовательности выполняется по меньшей мере одним процессором и включает в себя декодирование из набора параметров множества возможных декодированных разрешений выбор посредством индекса, кодированного в структуре временного заголовка, применимого к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений, передискретизацию отсчетов из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения и разрешение предсказания с использованием передискретизированного отсчета.
[0009] Согласно формам осуществления изобретения устройство для декодирования кодированного изображения из кодированной видеопоследовательности содержит по меньшей мере одну память, сконфигурированную для хранения кода компьютерной программы, и по меньшей мере один процессор, сконфигурированный для доступа по меньшей мере к одной памяти и работы в соответствии с кодом компьютерной программы, причем код компьютерной программы содержит код декодирования, сконфигурированный для декодирования из набора параметров множества возможных декодированных разрешений; код выбора, сконфигурированный для выбора, посредством индекса, кодированного в структуре временного заголовка, применимой к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений; код передискретизации, сконфигурированный для передискретизации отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения; и код разрешения предсказания, сконфигурированного для разрешения предсказания с использованием передискретизированного отсчета.
[0010] Согласно формам осуществления изобретения машиночитаемый носитель данных, хранящий программу для декодирования кодированного изображения из кодированной видеопоследовательности, включает команды, которые заставляют процессор декодировать из набора параметров множество возможных декодированных разрешений, выбирать посредством индекса, кодированного в структуре временного заголовка, применимой к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений, выполнять передискретизацию отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения, и разрешать предсказание с использованием передискретизированного отсчета.
Краткое описание чертежей
[0011] Дополнительные особенности, сущность и различные преимущества раскрываемого предмета изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых:
Фиг. 1 представляет собой схематическое изображение упрощенной блок-схемы системы связи в соответствии с формой осуществления изобретения.
Фиг. 2 - схематическое изображение упрощенной блок-схемы системы связи в соответствии с формой осуществления изобретения.
Фиг. 3 - схематическое изображение упрощенной блок-схемы декодера в соответствии с формой осуществления изобретения.
Фиг. 4 - схематическое изображение упрощенной блок-схемы кодера в соответствии с формой осуществления изобретения.
Фиг. 5А - схематическое изображение возможных вариантов для сигнализации параметров адаптивного изменения разрешения (ARC, Adaptive Resolution Change), как указано.
Фиг. 5В - схематическое изображение возможных вариантов сигнализации параметров ARC в соответствии с формой осуществления изобретения, как указано.
Фиг. 6А - схематическое изображение в соответствии с формой осуществления изобретения.
Фиг. 6В - блок-схема, иллюстрирующая способ декодирования кодированного изображения из кодированной видеопоследовательности согласно форме осуществления изобретения.
Фиг. 6С - упрощенная блок-схема устройства для управления декодированием видеопоследовательности согласно форме осуществления изобретения.
Фиг. 7 - схематическое изображение компьютерной системы в соответствии с формой осуществления изобретения.
Подробное описание
[0022] В последнее время некоторое внимание привлекла агрегация сжатой области или извлечение многочисленных семантически независимых частей изображения в одно видеоизображение. В частности, в контексте, например, 360-градусного кодирования или определенных приложений наблюдения, многочисленные семантически независимые исходные изображения (например, шесть поверхностей куба проектируемой кубом 360-градусной сцены или входные данные отдельных камер в случае установки многокамерного наблюдения) могут потребовать отдельных настроек адаптивного разрешения, чтобы справиться с различной активностью каждой сцены в данном моменте времени. Другими словами, кодер в данный момент времени могут выбирать использование разных коэффициентов передискретизации для разных семантически независимых изображений, составляющих все 360 градусов или сцену наблюдения. При объединении в одно изображение это, в свою очередь, требует, чтобы выполнялась передискретизация опорного изображения и имелась сигнализация кодирования с адаптивным разрешением для частей кодированного изображения.
[0023] Фиг. 1 представляет собой упрощенную блок-схему системы (100) связи согласно одной из форм осуществления настоящего изобретения. Система (100) может содержать по меньшей мере два терминала (110-120), соединенные друг с другом через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в применениях мультимедийного обслуживания и т.п.
[0024] На фиг. 1 показана вторая пара терминалов (130, 140), обеспечивающих поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференцсвязи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи на другой терминал через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, передаваемые другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.
[0025] На фиг. 1 терминалы (110-140) могут быть показаны как серверы, персональные компьютеры и смартфоны, но принципы настоящего изобретения могут быть не ограничены этим. Формы осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи может обмениваться данными по каналам с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.
[0026] На фиг. 2 показано в качестве примера применения для раскрываемого предмета изобретения размещение кодера и декодера видео в потоковой среде. Раскрываемый предмет изобретения может быть в равной степени применим к другим применениям с поддержкой видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая компакт диск (CD, Compact Disk), универсальный цифровой диск (DVD, Digital Versatile Disk), карту памяти и т.п.
[0027] Система потоковой передачи может содержать подсистему (213) видеозахвата, которая может включать в себя источник (201) видеосигналов, например цифровую камеру, создающую, например, поток (202) отсчетов несжатого видео. Этот поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми потоками видео, может обрабатываться кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию, чтобы задействовать или реализовать аспекты раскрываемого предмета изобретения, как более подробно описано ниже. Кодированный битовый поток (204) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может сохраняться на сервере (205) потоковой передачи для будущего использования. Один или более клиентов (206, 208) потоковой передачи могут получать доступ к серверу (205) потоковой передачи для получения копий (207, 209) кодированного битового потока (204) видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию (207) кодированного битового потока видео и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не изображенным). В некоторых потоковых системах битовые потоки (204, 207, 209) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию ITU-T Н.265. В стадии разработки находится стандарт кодирования видеосигналов, неофициально известный как Универсальное кодирование видео (VVC, Versatile Video Coding). Раскрываемый предмет изобретения может использоваться в контексте стандарта VVC.
[0028] Фиг. 3 может представлять функциональную блок-схему видеодекодера (210) согласно одной из форм осуществления настоящего изобретения.
[0029] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (210); в той же или другой форме осуществления изобретения - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные вместе с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут пересылаться их соответствующим объектам использования (не изображенным). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети может быть включена буферная память (315) между приемником (310) и энтропийным декодером/синтаксическим анализатором (320) (далее - "синтаксическим анализатором"). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемости, или из изосинхронной сети, буфер (315) может не понадобиться или может быть небольшим. Для использования в пакетных сетях с максимальной эффективностью, таких как Интернет, может потребоваться буфер (315), он может быть сравнительно большим и предпочтительно может иметь адаптивный размер.
[0030] Видеодекодер (210) может содержать синтаксический анализатор (320) для восстановления символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть присоединен к нему, как это было показано на фиг.2. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной уточняющей информации (сообщений SEI (Supplementary Enhancement Information)) или информации по использованию видео (VUI, Video Usability Information) (не показанных). Синтаксический анализатор (320) может анализировать/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с учетом контекста или без него и т.д. Синтаксический анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, кодовые пакеты (CU, Coding Unit), блоки, пакеты преобразования (TU, Transform Unit), пакеты предсказания (PU, Prediction Unit,) и т.д. Энтропийный декодер/синтаксический анализатор также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0031] Синтаксический анализатор (320) может выполнять операцию энтропийного декодирования/синтаксического анализа над видеопоследовательностью, принимаемой из буфера (315), таким образом, чтобы создавать символы (321).
[0032] Восстановление символов (321) может включать в себя несколько различных блоков в зависимости от типа кодированного видеоизображения или его частей (например, изображения, кодированного с внутренним и внешним предсказанием, блока, кодированного с внутренним и внешним предсказанием) и других факторов. Какие блоки задействовать и каким образом, можно управлять с помощью управляющей информации подгруппы, которая была синтаксически проанализирована из кодированной видеопоследовательности с помощью синтаксического анализатора (320). Поток такой управляющей информации подгруппы между синтаксическим анализатором (320) и множеством блоков не показан для ясности.
[0033] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных блоков, как описано ниже. При практической реализации, работающей в условиях коммерческих ограничений, многие из этих блоков тесно взаимодействуют друг с другом и могут, по меньшей мере частично, быть интегрированы друг в друга. Однако для целей описания раскрываемого предмета изобретения уместно концептуальное подразделение на функциональные блоки, приведенные ниже.
[0034] Первым блоком является блок (351) масштабирования/обратного преобразования. Блок (351) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в виде символа(-ов) (321) от синтаксического анализатора (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).
[0035] В некоторых случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внутренним предсказанием, то есть: блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена блоком (352) внутрикадрового предсказания. В некоторых случаях блок (352) внутрикадрового предсказания формирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (356). Агрегатор (355) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сформированную блоком (352) внутрикадрового предсказания, к информации выходных отсчетов, предоставляемой блоком (351) масштабирования/обратного преобразования.
[0036] В других случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внешним предсказанием и, возможно, с компенсацией движения. В таком случае блок (353) предсказания с компенсацией движения может получать доступ к памяти (357) опорных изображений для выборки отсчетов, используемых для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходному сигналу блока масштабирования/обратного преобразования (в этом случае называемых остаточными отсчетами или остаточным сигналом), чтобы сформировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда блок компенсации движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными блоку компенсации движения в форме символов (321), которые могут иметь, например, X, Y и компоненты опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчета, механизмы предсказания вектора движения и т.д.
[0037] Выходные отсчеты агрегатора (355) могут подвергаться различным технологиям петлевой фильтрации в блоке (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в кодированный битовый поток видео и предоставляемыми блоку (356) петлевого фильтра в виде символов (321) из синтаксического анализатора (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также в ответ на ранее восстановленные и отфильтрованные петлевым фильтром значения отсчетов.
[0038] Выходными данными блока (354) петлевого фильтра может быть поток отсчетов, который может выводиться в устройство (212) визуализации, а также сохраняться в памяти опорных изображений для использования в будущем межкадровом предсказании.
[0039] Некоторые кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (320)), текущее опорное изображение (356) может стать частью буфера (357) опорных изображений, и память свежего текущего изображения может быть перераспределена перед началом восстановления следующего кодированного изображения.
[0040] Видеодекодер 210 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как Рекомендация Н.265 ITU-T. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемой технологией или стандартом сжатия видео, в том смысле, что она придерживается синтаксиса технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в профилях, задокументированных в них. Для соответствия также необходимо, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.
[0041] В одной из форм осуществления изобретения приемник (310) может принимать с кодированным видео дополнительные (избыточные) данные. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(-ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных уровней или уровней улучшения отношения сигнал/шум (SNR, Signal-to-Noise Ratio), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и т.д.
[0042] Фиг. 4 может быть функциональной блок-схемой видеокодера (203) согласно одной из форм осуществления настоящего изобретения.
[0043] Кодер (203) может принимать отсчеты видео от источника (201) видео (не являющегося частью кодера), который может захватывать видеоизображение(-ия) для кодирования кодером (203).
[0044] Источник (201) видео может предоставлять исходную видеопоследовательность, которая должна быть кодирована кодером (203), в форме потока отсчетов цифрового видео, который может иметь какую-то подходящую глубину в битах (например: 8 бит, 10 бит, 12 бит, …), какое-то цветовое пространство (например, пространство Y CrCb по рекомендации ITU-R ВТ.601, RGB, …), какую-то подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим заранее подготовленное видео. В системе видеоконференцсвязи видеосигналов источник (203) может быть камерой, которая фиксирует информацию локального изображения в виде видеопоследовательности.
Видеоданные могут предоставляться в виде множества отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, при этом каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалисты в данной области техники могут легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.
[0045] Согласно одной из форм осуществления изобретения кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует применение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными блоками, как описано ниже, и функционально соединен с этими блоками. Соединение не изображено для ясности. Параметры, установленные контроллером, могут включать в себя параметры, связанные с управлением скоростью (пропуск изображения, квантователь, значение лямбда для технологий оптимизации скорость-искажение, …), размером изображения, структурой группы изображений (GOP), максимальным диапазоном поиска вектора движения и т.д. Специалисты в данной области техники могут легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной структуры системы.
[0046] Некоторые видеокодеры работают в том, что специалисты в данной области легко распознают как "петля кодирования". В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (430) (далее "кодера источника") (ответственного за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения (изображений)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрываемом предмете изобретения). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита независимо от местоположения декодера (локального или удаленного), содержимое буфера опорных изображений также имеет точность до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер "видел бы" при использовании предсказания во время декодирования. Это принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может быть сохранена, например, из-за ошибок канала).
[0047] Работа "локального" декодера (433) может быть такой же, как у "удаленного" декодера (210), который уже был подробно описан выше в связи с фиг. 3. Кратко обратимся также к фиг. 3-4, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и синтаксическим анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и синтаксический анализатор (320) могут не быть полностью реализованы в локальном декодере (433).
[0048] На этом этапе можно сделать наблюдение, что любая технология декодирования, помимо синтаксического анализа/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрываемый предмет изобретения сосредотачивает внимание на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[0049] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как "опорные кадры". Таким образом, механизм (432) кодирования кодирует разницы между блоками пикселей входного кадра и блоками пикселей опорного кадра(-ов), которые могут быть выбраны в качестве опорных значений предсказания для входного кадра.
[0050] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общий контент, как восстановленные опорные кадры, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[0051] Предсказатель (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового кадра, который должен быть кодирован, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве возможных опорных блоков пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и т.д., это может служить подходящим эталоном для предсказания для новых изображений. Предсказатель (435) может работать на основе блока отсчетов на блок пикселей, чтобы найти соответствующие эталоны для предсказания. В некоторых случаях, как определено результатами поиска, полученными предсказателем (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.
[0052] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0053] Выходные данные всех вышеупомянутых функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сформированные различными функциональными блоками, в кодированную видеопоследовательность путем сжатия без потерь символов согласно различным технологиям, например кодированию Хаффмана, кодированию с переменной длиной, арифметическому кодированию и т.д.
[0054] Передатчик (440) может буферизовать кодированную видеопоследовательность (видеопоследовательности), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал связи (460), который может быть аппаратным/программным каналом связи к устройству хранения данных, которое будет хранить кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные из видеокодера (430) с другими данными, которые должны быть переданы, например, с кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[0055] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначать каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на технологии кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть назначены как один из следующих типов кадров:
[0056] Изображение с внутренним кодированием (I-изображение) (I picture, Intra Picture) может быть таким, которое может быть кодировано и декодировано без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки позволяют использовать различные типы с внутренним кодированием, включая, например, обновленные изображения, с помощью независимого декодера. Могут быть использованы варианты I-изображений и их соответствующие применения и особенности.
[0057] Изображение, кодированное с предсказанием, (Р-изображение) (Р picture, Predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0058] Изображение, кодированное с двунаправленным предсказанием, (В-изображение) (В Picture, Bi-directionally predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и справочных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения, кодированные с множественным предсказанием, могут использовать более двух опорных изображений и связанных с ними метаданных для восстановления одиночного блока.
[0059] Исходные изображения обычно могут быть подразделены пространственно на множество блоков отсчетов (например, блоки по 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или внутреннее предсказание). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированные опорные изображения.
[0060] Видеокодер (203) может выполнять операции кодирования согласно заранее определенной технологии или стандарту видеокодирования, такому как Рекомендация Н.265 ITU-T. Во время своей работы видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[0061] В одной из форм осуществления изобретения передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/улучшающие SNR уровни, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной расширенной информации (SEI), фрагменты набора параметров информации о свойствах видео (VUI) и т.д.
[0062] Перед более подробным описанием определенных аспектов раскрываемого предмета изобретения необходимо ввести несколько терминов, на которые будут ссылаться в оставшейся части данного описания.
[0063] В дальнейшем фрагмент изображения относится в некоторых случаях к прямоугольной компоновке отсчетов, блоков, макроблоков, кодовых пакетов или подобных объектов, которые семантически сгруппированы и которые могут быть независимо кодированы с измененным разрешением. Один или более фрагментов изображения могут быть для изображения. Один или более кодированных фрагментов изображения могут образовывать кодированное изображение. Один или более фрагментов изображения могут быть собраны в изображение, и один или более фрагментов изображения могут быть извлечены из изображения. В определенных средах один или более кодированных фрагментов изображения могут быть собраны в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или некоторых других случаях один или более кодированных фрагментов изображения могут быть извлечены из кодированного изображения в сжатой области.
[0064] Адаптивное изменение разрешения (ARC) отныне относится к механизмам, которые позволяют изменять разрешение изображения или фрагмента изображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. Параметры ARC могут относиться к типам управляющей информации, необходимой для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д. Таким образом, информация ARC может относиться к данным и значениям, соответствующим параметрам ARC.
[0065] Вышеприведенное описание сосредоточено на кодировании и декодировании одного семантически независимого кодированного видеоизображения. Прежде чем описывать последствия кодирования/декодирования нескольких фрагментов изображения с независимыми параметрами ARC и его предполагаемую дополнительную сложность, должны быть описании опции для сигнализации параметров ARC.
[0066] На фиг. 5А показано несколько новых возможных вариантов для сигнализации параметров ARC. Как отмечено для каждого из возможных вариантов, они имеют определенные преимущества и определенные недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видео может выбрать один или более из этих возможных вариантов или других вариантов для сигнализации параметров ARC. Возможные варианты не могут быть взаимоисключающими и, возможно, могут меняться местами в зависимости от потребностей применения, используемых стандартов или выбора кодера.
[0067] Классы параметров ARC могут включать:
[0068] - коэффициенты повышения/понижения частоты дискретизации, отдельные или объединенные по измерениям X и Y;
[0069] - коэффициенты повышения/понижения частоты дискретизации, с добавлением временного измерения, указывающие на увеличение/уменьшение масштаба с постоянной скоростью для заданного количества изображений.
[0070] - Любой из вышеупомянутых двух может включать в себя кодирование одного или нескольких предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициент(-ы).
[0070] - разрешение для измерения X или Y в единицах отсчетов, блоков, макроблоков, пакетов CU или любой другой подходящей гранулярности входного изображения, выходного изображения, опорного изображения, кодированного изображения, комбинированно или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть выведен из другого набора значений. Это может регулироваться, например, с помощью флагов. Более подробный пример см. ниже.
[0072] - координаты "деформации", подобные тем, которые используются в Приложении Р Н.263, снова с подходящей гранулярностью, как описано выше. Приложение Р Н.263 определяет один эффективный способ кодирования таких координат деформации координат, но, возможно, также могут быть разработаны другие, потенциально более эффективные способы. Например, обратимое кодирование переменной длины в стиле "Хаффмана" для координат деформации согласно Приложению Р может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть "деформацию" за пределами границ максимального размера изображения.
[0073] - параметры фильтра с повышением или понижением частоты дискретизации. В простейшем случае может быть только один фильтр для повышающей и/или понижающей дискретизации. Однако в некоторых случаях может быть выгодно обеспечить большую гибкость в структуре фильтра, и для этого может потребоваться сигнализация параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных структур фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть выбран неявно с помощью соотношений повышающей/понижающей дискретизации, в соответствии с которыми, в свою очередь, сигнализируются в соответствии с любым из механизмов, упомянутых выше, и т.д.
[0074] Далее в описании предполагается кодирование конечного набора коэффициентов повышающей/понижающей дискретизации (один и тот же коэффициент, который должен использоваться как в измерениях X, так и в Y), указанных с помощью кодового слова. Это кодовое слово может быть преимущественно кодировано с переменной длиной, например, с использованием экспоненциального кода Голомба (Exp-Golomb), общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как Н.264 и Н.265. Одно подходящее сопоставление значений с коэффициентами повышающей/понижающей дискретизации может, например, соответствовать следующей таблице.
[0075] Многие аналогичные отображения могут быть разработаны в соответствии с потребностями применения и возможностями механизмов увеличения и уменьшения масштаба, доступных в технологии или стандарте сжатия видео. Таблица может быть расширена до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляли интерес за пределами самих механизмов обработки видео (прежде всего кодера и декодера), например, посредством сетевых элементов, реагирующих на медиаданные (MANE, Media Aware Network Element). Следует отметить, что для (предположительно) наиболее распространенного случая, когда изменение разрешения не требуется, можно выбрать короткий экспоненциальный код Голомба; в таблице выше - только один бит.Это может иметь преимущество в эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.
[0076] Количество записей в таблице, а также их семантика могут быть полностью или частично конфигурируемыми. Например, основная структура таблицы может быть передана в "высоком" наборе параметров, таком как последовательность или набор параметров декодера. В качестве альтернативы или в дополнение, одна или несколько таких таблиц могут быть определены в технологии или стандарте видеокодирования и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.
[0077] Далее мы описываем, как коэффициент повышающей/понижающей дискретизации (информация ARC), кодированный, как описано выше, может быть включен в синтаксис технологию или стандарта кодирования видео. Подобные соображения могут применяться к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. См. ниже обсуждение, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.
[0078] Приложение Р Н.263 включает информацию ARC 502 в форме четырех координат деформации в заголовок 501 изображения, в частности, в расширение заголовка PLUSPTYPE (503) Н.263. Эта форма информации ARC 502 может использоваться, когда а) имеется доступный заголовок изображения и b) ожидаются частые изменения информации ARC. Однако объем служебных данные при использовании сигнализации в стиле Н.263 может быть довольно высоким, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.
[0079] Документ JVCET-M135-vl, процитированный выше, включает справочную информацию ARC (505) (индекс), расположенную в наборе (504) параметров изображения, индексирующей таблицу (506), включая целевые разрешения, которая, в свою очередь, расположена внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности может, в соответствии со словесными заявлениями, сделанными авторами, быть оправдано использованием набора параметров последовательности (SPS, Sequence Parameter Set) в качестве пункта согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506) от изображения к изображению, путем обращения к соответствующему набору (504) параметров изображения.
[0080] Для передачи информации ARC в битовом потоке видео могут существовать следующие дополнительные возможные варианты. Каждый из этих возможных вариантов имеет определенные преимущества, как описано выше. Возможные варианты могут одновременно присутствовать в одной и той же технологии или стандарте кодирования видео.
[0081] В форме осуществления изобретения, показанной на фиг.5 В, информация ARC (509), такая как коэффициент передискретизации (масштабирования), может присутствовать в заголовке слайса, заголовке GOB, заголовке тайла или заголовке (508) группы тайлов (далее - заголовке группы тайлов). Этого может быть достаточно для информации ARC небольшого размера, такой как одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из нескольких битов, например, как показано выше. Наличие информации ARC в заголовке группы тайлов непосредственно имеет дополнительное преимущество, поскольку информация ARC может быть применима к фрагменту изображения, представленному, например, этой группой тайлов, а не ко всему изображению. Также см. ниже. Кроме того, даже если технология или стандарт сжатия видео предусматривает только адаптивное изменение разрешения всего изображения (в отличие, например, от адаптивного изменения разрешения на основе группы тайлов), помещение ее в заголовок изображения в стиле Н.263 имеет определенные преимущества с точки зрения обеспечения устойчивости к ошибкам.
[0082] В той же или другой форме осуществления изобретения сама информация ARC (512) может присутствовать в соответствующем наборе (511) параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров тайла, набор параметров адаптации и т.д. (показан набор параметров адаптации). Объем этого набора параметров может преимущественно быть не больше, чем изображение, например представлять группу тайлов. Использование информации ARC неявно осуществляется путем активации соответствующего набора параметров. Например, когда технология или стандарт видеокодирования рассматривают только ARC на основе изображения, тогда может быть подходящим набор параметров изображения или его эквивалент.
[0083] В той же или другой форме осуществления изобретения справочная информация ARC (513) может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Эта справочная информация (513) может относиться к подмножеству информации ARC (515), доступной в наборе (516) параметров с объемом, выходящим за рамки одного изображения, например, наборе параметров последовательности или наборе параметров декодера.
[0084] Дополнительный уровень косвенного обращения, подразумевающий активацию набора параметров изображения (PPS) из заголовка группы элементов тайла, PPS, набора параметров последовательности (SPS), как используется в документе JVET-M0135-vl, кажется ненужным, поскольку наборы параметров изображения, так же, как наборы параметров последовательности, могут использоваться (и используются в некоторых стандартах, таких как RFC3984) для согласования возможностей или объявлений. Набор PPS обычно относится к структуре синтаксиса, содержащей элементы синтаксиса, которые применяются к нулю или более целых кодированных изображений, как определено элементом синтаксиса, найденным в каждом заголовке слайса. Набор SPS обычно относится к структуре синтаксиса, содержащей элементы синтаксиса, которые применяются к нулю или более полных видеопоследовательностей кодированного уровня (CLVS, Coded Layer Video Sequence), как определено контентом элемента синтаксиса, найденного в наборе PPS, на который ссылается элемент синтаксиса, найденный в каждом заголовке изображения. Если, однако, информация ARC должна быть применима к фрагменту изображения, представленному, например, также группами тайлов, набор параметров с областью активации, ограниченной группой тайлов, такой как набор параметров адаптации или набор параметров заголовка, может быть лучшим выбором. Также, если информация ARC имеет более чем пренебрежимо малый размер например, содержит информацию управления фильтром, такую как многочисленные коэффициенты фильтра то тогда параметр может быть лучшим выбором, чем использование заголовка (508) непосредственно, с точки зрения эффективности кодирования, так как эти установки могут быть годными для повторного использования будущими изображениями или фрагментами изображения по ссылке на тот же самый набор параметров.
[0085] При использовании набора параметров последовательности или другого набора параметров более высокого уровня с областью действия, охватывающей несколько изображений, могут применяться определенные соображения:
[0086] 1. Набор параметров для хранения таблицы (516) информации ARC может в некоторых случаях быть набором параметров последовательности, но в других случаях предпочтительно набором параметров декодера. Набор параметров декодера может иметь область активации нескольких кодированных видеопоследовательностей CVS, а именно кодированного видеопотока, т.е. всех битов кодированного видео от начала сеанса до разрыва сеанса. Такой объем может быть более подходящим, потому что возможные факторы ARC могут быть функцией декодера, возможно, реализованной в аппаратном обеспечении, а аппаратные функции, как правило, не меняются с любой CVS (который, по крайней мере, в некоторых развлекательных системах представляет собой группу изображений, длительностью одну секунду или меньше). Тем не менее, включение таблицы в набор параметров последовательности явно включено в варианты размещения, описанные здесь, в частности, в связи с пунктом 2 ниже.
[0087] 2. Справочная информация ARC (513) может быть преимущественно помещена непосредственно в заголовок (514) изображения/тайла слайса/группы блоков (GOB, Group Of Blocks)/rpynnbi тайлов (далее - заголовок группы тайлов), а не в набор параметров изображения, как в документе JVCET-M0135-vl. Причина в следующем: когда кодер хочет изменить одно значение в наборе параметров изображения, такое как, например, справочная информация ARC, он должен создать новый набор PPS и ссылаться на этот новый набор PPS. Предположим, что изменяется только справочная информация ARC, но другая информация, такая как, например, информация матрицы квантования в наборе PPS, остается. Такая информация может быть значительного размера, и ее необходимо будет повторно передать, чтобы завершить новый набор PPS. Поскольку справочная информация ARC может быть одним кодовым словом, например индексом в таблице (513), и это будет единственное значение, которое изменяется, было бы обременительно и расточительно повторно передавать всю, например, информацию матрицы квантования. В этом отношении может быть значительно лучше с точки зрения эффективности кодирования, чтобы избежать косвенного обращения через набор PPS, как предлагается в документе JVET-M0135-vl. Точно так же размещение справочной информации ARC в наборе PPS имеет дополнительный недостаток, заключающийся в том, что информация ARC, на которую ссылается справочная информация ARC (513), обязательно должна применяться ко всему изображению, а не к фрагменту изображения, поскольку задачей активации набора параметров изображения является изображение.
[0088] В той же или другой форме осуществления изобретения, сигнализация параметров ARC может следовать подробному примеру, как показано на фиг. 6А. Фиг. 6А изображает схемы показывающие примеры синтаксиса, в представлении, используемом в стандартах видеокодирования по меньшей мере с 1993 года. Представление таких схем, показывающих примеры синтаксиса, примерно соответствует программированию в стиле языка С. Строки, выделенные жирным шрифтом, указывают на элементы синтаксиса, присутствующие в потоке битов, строки без жирного шрифта часто указывают на поток управления или установочные параметры переменных.
[0089] Заголовок (601) группы тайлов в качестве иллюстративной структуры синтаксиса заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать элемент синтаксиса переменной длины, кодированный с помощью экспоненциального кода Голомба, dec_pic_size_idx (602) (выделенный жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть запущено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в потоке битов в той точке, где он встречается на схеме, показывающей пример синтаксиса. О том, используется ли адаптивное разрешение для этого изображения или его частей, можно сигнализировать в любой синтаксической структуре высокого уровня внутри или вне потока битов. В показанном примере это сигнализируется в наборе параметров последовательности, как показано ниже.
[0090] По-прежнему обращаясь к фиг. 6А также показан фрагмент набора (610) параметров последовательности. Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). Когда он имеет значение истина, этот флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if() в наборе (612) параметров и заголовке (601) группы тайлов.
[0091] Когда используется адаптивное разрешение, в этом примере кодируется выходное разрешение в единицах отсчетов (613). Цифра 613 относится как к элементу output_pic_width_in_luma_samples, так и к элементу output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте технологии или стандарта видеокодирования могут быть определены определенные ограничения для каждого значения. Например, определение уровня может ограничивать число общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Кроме того, определенные технологии или стандарты видеокодирования, или внешние технологии или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон численной величины (например, одно или оба измерения должны делиться на степень 2) или формат изображения (например, ширина и высота должны быть в соотношении, например, 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам.
[0092] В некоторых применениях может быть целесообразно, чтобы кодер подавал команду декодеру использовать определенный размер опорного изображения, а не неявно предполагать, что этот размер является размером выходного изображения. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) запускает условное присутствие размеров (615) опорного изображения (опять же, число относится как к ширине, так и к высоте).
[0093] Наконец, показана таблица возможной ширины и высоты декодированного изображения. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minusl) (616). Элемент "minusl" может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если значение равно пяти, присутствуют шесть записей таблицы. Затем для каждой "строки" в таблице ширина и высота декодированного изображения включаются в синтаксис (617).
[0094] Представленные (617) элементы таблицы могут быть проиндексированы с использованием элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, тем самым позволяя различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.
[0095] Некоторые технологии или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм пере дискретизации опорного изображения (сигнализируемой совершенно иначе, чем в раскрываемом предмете изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость, в частности, определенные опорные изображения могут подвергаться повышающей дискретизации с использованием технологий ARC-стиля до более высокого разрешения для формирования основы уровня пространственного улучшения. Эти изображения с повышенной дискретизацией можно улучшить, используя обычные механизмы предсказания с высоким разрешением, чтобы добавить детали.
[0096] Раскрываемый предмет изобретения может использоваться в такой среде. В некоторых случаях, в той же или другой форме осуществления изобретения, значение в заголовке пакета уровня сетевой абстракции (NAL, Network Abstraction Level) например поле Temporal ID, может использоваться для указания не только временного, но и пространственного уровня. Это дает определенные преимущества для определенных структур систем; например, серверы селективной пересылки потоков (SFU, Selected Forwarding Units), созданные и оптимизированные для селективной пересылки на временном уровне, выбранные на основе значения временного идентификатора Temporal ID заголовка пакета NAL, могут использоваться без модификации для масштабируемых сред. Чтобы сделать это возможным, может существовать требование для отображения между размером кодированного изображения и временным уровнем, указываемым полем Temporal ID в заголовке пакета NAL.
[0097] Фиг. 6В - это блок-схема, иллюстрирующая способ (620) декодирования кодированного изображения из кодированной видеопоследовательности согласно форме осуществления изобретения. В некоторых реализациях один или более блоков обработки на фиг. 6В может выполняться декодером (210). В некоторых реализациях один или более блоков обработки на фиг. 6 В может выполняться другим устройством или группой устройств, отдельных от декодера (210) или включающих в себя его, например кодером (203).
[0098] Как показано на фиг.6 В, способ (620) включает в себя определение, доступна ли (621) информация ARC, и если определено, что информация ARC недоступна, то способ завершается (650). Если определено, что информация ARC доступна, то способ включает в себя декодирование из набора параметров множества возможных декодированных разрешений (625).
[0099] Способ (620) включает в себя выбор посредством индекса, кодированного в структуре временного заголовка, применимого к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений (630).
[0100] Способ (620) включает в себя передискретизацию отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения (635).
[0101] Способ (620) включает в себя разрешение предсказания с использованием передискретизированного отсчета (640).
[0102] Способ (620) может дополнительно включать в себя то, что структура временного заголовка представляет собой любой один или любую комбинацию заголовка изображения, заголовка группы тайлов, заголовка тайла, заголовка слайса и заголовка группы блоков.
[0103] Способ (620) может дополнительно включать в себя то, что индекс кодируется экспоненциальным кодом Голомба.
[0104] Способ (620) может дополнительно включать в себя то, что структура временного заголовка является заголовком группы тайлов, а заголовок группы тайлов содержит коэффициент передискретизации.
[0105] Способ (620) может дополнительно включать в себя то, что структура переходного заголовка является заголовком группы тайлов, а заголовок группы тайлов содержит справочную информацию об адаптивном изменении разрешения (ARC).
[0106] Способ (620) может дополнительно включать в себя то, что справочная информация ARC относится к подмножеству информации ARC, доступной в наборе параметров.
[0107] Способ (620) может дополнительно включать в себя то, что число возможных декодированных разрешений кодируется в элементе синтаксиса, кодированного экспоненциальным кодом Голомба, предшествующем множеству возможных декодированных разрешений.
[0108] Хотя на фиг. 6 В показаны иллюстративные блоки способа (620), в некоторых реализациях способ (620) может включать в себя дополнительные блоки, меньшее количество блоков, различные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 6В. Дополнительно или альтернативно, два или более блоков способа (620) могут выполняться параллельно.
[0109] Кроме того, предлагаемые способы могут быть реализованы схемами обработки (например, одним или несколькими процессорами или одной или несколькими интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на энергонезависимом машиночитаемом носителе, для выполнения одного или нескольких из предложенных способов.
[ОНО] Фиг. 6С - упрощенная блок-схема устройства (660) для декодирования кодированного изображения видеопоследовательности согласно форме осуществления изобретения.
[0111] Как показано на фиг. 6С, устройство (660) содержит код (670) декодирования, код (675) выбора, код (680) передискретизации и код (685) разрешения.
[0112] Код (670) декодирования сконфигурирован для декодирования из набора параметров множества возможных декодированных разрешений.
[0113] Код (675) выбора сконфигурирован для выбора посредством индекса, кодированного в структуре временного заголовка, применимой к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений.
[0114] Код (680) передискретизации сконфигурирован для передискретизации отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения.
[0115] Код (685) разрешения сконфигурирован для разрешения предсказания с использованием передискретизированного отсчета.
[0116] Технологии для сигнализации параметров адаптивного разрешения, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых команд и физически сохранены на одном или нескольких машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система 700, подходящая для реализации некоторых форм осуществления раскрываемого предмета изобретения.
[0117] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка вычислительной машины, который может быть предметом трансляции, компиляции, компоновки или подобных механизмов для создания кода, содержащего команды, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п.центральными процессорами компьютера (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) и т.п.
[0118] Команды могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[0119] Компоненты, показанные на фиг. 7 для компьютерной системы 700, являются иллюстративными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего формы осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, показанных в примере осуществления компьютерной системы 700.
[0120] Компьютерная система 700 может содержать определенные устройства ввода с интерфейсом пользователя. Такое устройство ввода с интерфейсом пользователя может реагировать на ввод одним или несколькими пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, проведения по экрану, движения информационной перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображенного). Устройства с интерфейсом пользователя также могут использоваться для захвата определенных мультимедийных данных, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[0121] Устройства ввода интерфейса пользователя могут включать в себя одно или более из (только по одному из каждого изображенного): клавиатуры 701, мыши 702, трекпада 703, сенсорного экрана 710, информационной перчатки 704, джойстика 705, микрофона 706, сканера 707, камеры 708.
[0122] Компьютерная система 700 может также содержать определенные устройства вывода с интерфейсом пользователя. Такие устройства вывода с интерфейсом пользователя могут стимулировать чувства одного или нескольких пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с интерфейсом пользователя могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 710, информационной перчатки 704 или джойстика 705, но также могут быть устройствами с тактильной обратной связью, которые не служат в качестве устройств ввода), устройства звукового выхода (такие как громкоговорители 709, головные телефоны (не показанные)), устройства визуального вывода (например, экраны 710, включая экраны электронно-лучевой трубки (CRT, Cathode Ray Tube), экраны жидкокристаллического дисплея (LCD, Liquid-Crystal Display), плазменные экраны, экраны на органических светодиодах (OLED, Organic Light-Emitting Diode), каждое с возможностью сенсорного ввода или без нее, каждое с возможностью тактильной обратной связи или без нее; - некоторые из них могут быть способны выполнять двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображенные), голографические дисплеи, дымовые баки (не изображенные) и принтеры (не изображенные).
[0123] Компьютерная система 700 также может содержать доступные пользователю устройства хранения данных и связанные с ними носители, такие как оптические средства включая средства 720 только для чтения (ROM, Read Only Memory)/для чтения и многократной записи (RW, Read and Write) с компакт-дисками (CD, Compact 018к)/цифровыми универсальными дисками (DVD, Digital Versatile Disc) или тому подобные носители 721, флэш-накопитель 722, съемный жесткий диск или твердотельный накопитель 723, традиционные магнитные носители, такие как лента и дискета (не показаны), специализированные устройства на основе постоянных запоминающих устройств (Read Only Memory ROM/специализированных интегральных схем (ASIC, Application-Specific Integrated Circuit)/программируемых логических интегральных схем (PLD, Programmable Logic Device), такие как защитные ключи (не показанные) и т.п.
[0124] Специалисты в данной области техники также должны понимать, что термин "машиночитаемый носитель", используемый в связи с раскрываемым в настоящее время предметом изобретения, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0125] Компьютерная система 700 также может содержать интерфейс к одной или более сетям (755) связи. Сети (755) могут быть, например, беспроводными, проводными, оптическими. Сети (755) дополнительно могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и так далее. Примеры сетей (755) включают в себя локальные сети, такие как Ethernet, беспроводные локальные сети (LAN, Local Area Network), сотовые сети, включая глобальную систему мобильной связи (GSM, Global System for Mobile communications), сети связи третьего поколения (3G, 3-rd Generation), сети связи четвертого поколения (4G, 4-th Generation), сети связи пятого поколения (5G, 5-th Generation), сеть связи по технологии долгосрочной эволюции (LTE, Long-Term Evolution) и т.п., телевизионные (TV, Television) проводные или беспроводные глобальные цифровые сети, включая кабельное телевидение (TV), спутниковое телевидение (TV) и наземное телевещание, автомобильное и промышленное, включая локальную сеть контроллеров (CANBus, Controller Area Network Bus) и т.д. Некоторым сетям (755) обычно требуются адаптеры (754) внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (749) (таким как, например, порты универсальной последовательной шины (USB, Universal Serial Bus) компьютерной системы 700; другие обычно интегрируются в ядро компьютерной системы 700 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему персональных компьютеров (PC, Personal Computer) или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей (755), компьютерная система 700 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное TV), однонаправленной только для передачи (например, CANbus к определенным устройствам CANbus) или двунаправленной, например, с другими компьютерными системами, использующими локальные или глобальные цифровые сети. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей (755) и сетевых интерфейсах (754), как описано выше.
[0126] Вышеупомянутые устройства интерфейса пользователя, доступные пользователю устройства хранения данных и сетевые интерфейсы (754) могут быть присоединены к ядру 740 компьютерной системы 700.
[0127] Ядро 740 может содержать один или более центральных процессоров (CPU, Central Processing Unit) 741, графических процессоров (GPU, Graphics Processing Unit) 742, специализированных программируемых блоков обработки в виде программируемых пользователем матриц 743 логических элементов (FPGA, Field Programmable Gate Area), аппаратных ускорителей 744 для определенных задач, и так далее. Эти устройства, наряду с постоянным запоминающим устройством (ROM, Readonly Memory) 745, оперативным запоминающим устройством (RAM, Random-Access Memory)746, графическим адаптером 750, внутренним запоминающим устройством 747 большой емкости, таким как внутренние жесткие диски, не доступные пользователю, твердотельные накопители (SSD, Solid State Drive) и т.п., могут быть подключены через системную шину 748. В некоторых компьютерных системах системная шина 748 может быть доступна в форме одного или нескольких физических разъемов для обеспечения возможности расширения с помощью дополнительных процессоров, графических процессоров и т.п.Периферийные устройства могут быть подключены либо непосредственно к системной шине 748 ядра, либо через периферийную шину 749. Архитектуры периферийной шины включают шину ввода-вывода для подключения периферийных устройств PCI (Peripheral Component Interconnect), USB и т.п.
[0128] Процессоры CPU 741, GPU 742, матрицы FPGA 743 и ускорители 744 могут выполнять определенные команды, которые в комбинации могут составлять вышеупомянутый машинный код. Этот машинный код может храниться в ROM 745 или RAM 746. Временные данные также могут храниться в RAM 746, тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве 747 большой емкости. Возможность быстрого запоминания и выборки для любого из запоминающих устройств может быть обеспечена посредством использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU 741, GPU 742, запоминающим устройством 747 большой емкости, памятью ROM 745, запоминающим устройством RAM 746 и т.п.
[0129] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[0130] В качестве примера, а не в качестве ограничения, компьютерная система, имеющая архитектуру 700, и, в частности, ядро 740, может обеспечивать функциональные возможности в результате выполнения процессором(-и) (включая процессоры CPU, GPU, матрицы FPGA, ускорители и т.п.) программного обеспечения, воплощенного на одном или нескольких материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя запоминающим устройством большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 740, которые имеют энергонезависимый характер, такими как внутреннее запоминающее устройство 747 большой емкости или ROM 745. Программное обеспечение, реализующее различных формы осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 740. Машиночитаемый носитель может включать в себя одно или несколько запоминающих устройств или интегральных схем в соответствии с конкретными потребностями. Программное обеспечение может заставлять ядро 740 и, в частности, процессоры в нем (включая процессоры CPU, GPU, матрицу FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM 746, и изменение таких структур данных в соответствии с процессами, определяемыми программным обеспечением. Вдобавок или в качестве альтернативы компьютерная система может обеспечивать функциональные возможности в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 744), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или определенных частей конкретных процессов, описанных здесь. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (1С, Integrated Circuit), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.
[0131] Хотя в данном раскрытии описаны несколько иллюстративных форм осуществления изобретения, существуют изменения, перестановки и различные заменяющие эквиваленты, которые входят в объем изобретения. Таким образом, следует иметь ввиду, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в пределах его сущности и объема.