СИГНАЛИЗАЦИЯ ДЛЯ ПЕРЕДИСКРЕТИЗАЦИИ ОПОРНОГО ИЗОБРАЖЕНИЯ
SIGNALING FOR REFERENCE PICTURE OVERSAMPLING

Перекрестная ссылка на родственную заявку
[1] В соответствии с §119 раздела 35 Кодекса США (35 U.S.С.) по настоящей заявке испрашивается приоритет на основании предварительной заявки США №62/865955, поданной 24 июня 2019 г., и заявки США№16/899202, поданной 11 июня 2020 г. в Ведомство по патентам и товарным знакам США, содержание которых в их полном объеме включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
[2] Раскрываемый предмет изобретения относится к кодированию и декодированию видео, а более конкретно, к сигнализации информации, относящейся к передискретизации опорного изображения и адаптивному изменению разрешения.
Предпосылки создания изобретения
[3] Кодирование и декодирование видео с использованием внешнего предсказания с компенсацией движения известны. Несжатое цифровое видео может состоять из последовательности изображений, где каждое изображение имеет пространственный размер, например, 1920x1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту изображений (неофициально также называемую частотой кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео предъявляет значительные требования к скорости передачи битов. Например, для видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение 1920x1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 Гбайт дискового пространства.
[4] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности или пространству для хранения, в некоторых случаях на два порядка или более. Может использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к технологиям, при которых точная копия исходного сигнала может быть восстановлена из сжатого исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал полезным для предполагаемого применения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от применения; например, пользователи определенных потребительских применений потоковой передачи могут допускать более высокие искажения, чем пользователи применений для доставки телевизионных сигналов. Достижимая степень сжатия может отражать следующее: более высокое допустимое/приемлемое искажение может давать более высокие степени сжатия.
[5] Кодер и декодер видео могут использовать технологии из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.
[6] Исторически кодеры и декодеры видео имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS, Coded Video Sequence), группы изображений (GOP, Group of Pictures) или аналогичного интервала времени с множественными изображениями. Например, в стандарте Экспертной группы по движущимся изображениям (MPEG, Moving Picture Experts Group) MPEG-2 известны структуры системы для изменения горизонтального разрешения (и, следовательно, размера изображения) в зависимости от таких факторов, как активность сцены, но только для изображений I (Intra-coded picture - изображение кодируется с использованием только той информации, которая содержится в нем самом), следовательно, обычно для группы изображений (GOP, Group of Pictures). Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Приложения Р Рекомендации Н.263 Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T, (International Telecommunication Union-Telecommunication Standardization Sector). Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально используются только части холста изображения (в случае понижения частоты дискретизации) или только части захватываемой сцены (в случае повышения частоты дискретизации). Кроме того, Приложение Q Рекомендации Н.263 допускает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении) в сторону увеличения или уменьшения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому не требуется его сигнализировать.
[7] Изменение размера изображения в предсказываемых изображениях стало более распространенной тенденцией в современном кодировании видеосигналов. Например, стандарт VP9 (Video Processor 9 - Видеопроцессор 9) позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении Универсального кодирования видео (VVC, Versatile Video Coding) (включая, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-v1, 9-19 января 2019 г., группы экспертов (JVET, Joint Video Experts Team) в рамках совместной программы (JVT, Joint Video Team), полностью включенный в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений для получения другого, более высокого или более низкого, разрешения. В этом документе предлагается кодировать различные возможные разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.
Сущность изобретения
[8] В одной из форм осуществления изобретения предлагается способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий получение кодированного изображения из кодированного битового потока видео; декодирование кодированного изображения для формирования декодированного изображения; получение из кодированного битового потока видео первого флага, указывающего, разрешена ли передискретизация опорного изображения; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получение из кодированного битового потока видео второго флага, указывающего, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получение из кодированного битового потока видео третьего флага, указывающего, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео; на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, формирование опорного изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения, и сохранение опорного изображения в буфере декодированных изображений; и на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, формирование выходного изображения путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения, и выведение выходного изображения.
[9] В одной из форм осуществления изобретения предлагается устройство для декодирования кодированного битового потока видео, при этом устройство содержит по меньшей мере одну память, сконфигурированную для хранения программного кода; и по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с командами программного кода, причем программный код содержит: первый код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать кодированное изображение из кодированного битового потока видео; код декодирования, сконфигурированный так, чтобы заставлять по меньшей мере один процессор декодировать кодированное изображение для формирования декодированного изображения; второй код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать из кодированного битового потока видео первый флаг, указывающий, разрешена ли передискретизация опорного изображения; третий код получения, сконфигурированный так, чтобы, на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, заставлять по меньшей мере один процессор получать из кодированного битового потока видео второй флаг, указывающий, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео; четвертый код получения, сконфигурированный так, чтобы на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, заставлять по меньшей мере один процессор получать из кодированного битового потока видео третий флаг, указывающий, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео; первый формирующий код, сконфигурированный так, чтобы на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, заставлять по меньшей мере один процессор формировать опорное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения, и сохранять опорное изображение в буфере декодированных изображений; и второй формирующий код, сконфигурированный так, чтобы на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, заставлять по меньшей мере один процессор формировать выходное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения, и выводить выходное изображение.
[10] В одной из форм осуществления изобретения предлагается машиночитаемый носитель, на котором хранятся команды, содержащие: одну или более команд, которые при выполнении одним или более процессорами устройства для декодирования кодированного битового потока видео заставляют один или более процессоров: получать кодированное изображения из кодированного битового потока видео; декодировать кодированное изображение для формирования декодированного изображения; получать из кодированного битового потока видео первый флаг, указывающий, разрешена ли пере дискретизация опорного изображения; на основе первого флага, указывающего на то, что ли пере дискретизация опорного изображения разрешена, получать из кодированного битового потока видео второй флаг, указывающий, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получать из кодированного битового потока видео третий флаг, указывающий, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео; на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, формировать опорное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения, и сохранять опорное изображение в буфере декодированных изображений; и на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, формировать выходное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения, и выводить выходное изображение.
Краткое описание чертежей
[11] Дополнительные особенности, сущность и различные преимущества раскрываемого предмета изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых:
[12] Фиг. 1 представляет собой схематическое изображение упрощенной блок-схемы системы связи в соответствии с формой осуществления изобретения.
[13] Фиг. 2 - схематическое изображение упрощенной блок-схемы системы связи в соответствии с формой осуществления изобретения.
[14] Фиг. 3 - схематическое изображение упрощенной блок-схемы декодера в соответствии с формой осуществления изобретения.
[15] Фиг. 4 - схематическое изображение упрощенной блок-схемы кодера в соответствии с формой осуществления изобретения.
[16] Фиг. 5 - схематическое изображение упрощенной блок-схемы кодера в соответствии с формой осуществления изобретения.
[17] Фиг. 6 - схематическое изображение упрощенной блок-схемы декодера в соответствии с формой осуществления изобретения.
[18] Фиг. 7 -блок-схема последовательности операций иллюстративного процесса для декодирования кодированного битового потока видео соответствии с формой осуществления изобретения.
[19] Фиг. 8 - схематическая иллюстрация компьютерной системы в соответствии с формой осуществления изобретения.
Подробное описание
[20] Раскрываемые здесь формы осуществления изобретения могут использоваться отдельно или комбинироваться в любом порядке. Кроме того, каждый из способов (или форм осуществления), кодер и декодер могут быть реализованы схемой обработки данных (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе.
[21] Фиг. 1 представляет собой упрощенную блок-схему системы (100) связи согласно одной из форм осуществления настоящего изобретения. Система (100) может содержать по меньшей мере два терминала (110-120), соединенные друг с другом через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях мультимедийного обслуживания и т.п.
[22] На фиг. 1 показана вторая пара терминалов (130, 140), обеспечивающих поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференцсвязи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи на другой терминал через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.
[23] На фиг. 1 терминалы (110-140) могут быть показаны как серверы, персональные компьютеры и смартфоны, но принципы настоящего изобретения могут быть не ограничены этим. Формы осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть (150) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), в том числе, например, проводные и/или беспроводные сети связи. Сеть (150) связи может обмениваться данными по каналам с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.
[24] На фиг. 2 показано в качестве примера применения для раскрываемого предмета изобретения размещение кодера и декодера видео в потоковой среде. Раскрываемый предмет изобретения может быть в равной степени применим к другим применениям с поддержкой видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая компакт диск (CD, Compact Disk), универсальный цифровой диск (DVD, Digital Versatile Disk), карту памяти и т.п.
[25] Система потоковой передачи может содержать подсистему (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.
[26] Фиг. 3 может представлять функциональную блок-схему видеодекодера (210) согласно одной из форм осуществления настоящего изобретения.
[27] Приемник (310) может принимать одну или более видеопоследовательностей кодека, которые должны быть декодированы декодером (210); в той же или другой форме осуществления изобретения - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные вместе с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут пересылаться их соответствующим объектам использования (не изображенным). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети может быть включена буферная память (315) между приемником (310) и энтропийным декодером/синтаксическим анализатором (320) (далее - "синтаксическим анализатором"). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемости, или из изосинхронной сети, буфер (315) может не понадобиться или может быть небольшим. Для использования в пакетных сетях с максимальной эффективностью, таких как Интернет, может потребоваться буфер (315), он может быть сравнительно большим и предпочтительно может иметь адаптивный размер.
[28] Видеодекодер (210) может содержать синтаксический анализатор (320) для восстановления символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть присоединен к нему, как это было показано на фиг. 3. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной уточняющей информацией (сообщений SEI (Supplementary Enhancement Information)) или информацией по использованию видео (VUI, Video Usability Information) (не показанных). Синтаксический анализатор (320) может анализировать/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с учетом контекста или без него и т.д. Синтаксический анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, фрагменты изображения, тайлы, слайсы, "кирпичи" (bricks), макроблоки, пакеты кодового дерева (CTU, Coding Tree Unit), кодовые пакеты (CU, Coding Unit), блоки, пакеты преобразования (TU, Transform Unit), пакеты предсказания (PU, Prediction Unit,) и т.д. Тайл может указывать прямоугольную область из CU/CTU в конкретном столбце и строке тайлов в изображении. "Кирпич" может указывать на прямоугольную область из строк CU/CTU внутри конкретного тайла. Слайс может указывать на один или более "кирпичей" изображения, которые содержатся в пакете сетевого уровня абстракции (NAL, Network Abstraction Layer). Фрагмент изображения может указывать на прямоугольную область из одного или более слайсов в изображении. Энтропийный декодер/синтаксический анализатор также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[29] Синтаксический анализатор (320) может выполнять операцию энтропийного декодирования/синтаксического анализа над видеопоследовательностью, принятой из буфера (315), чтобы создавать символы (321).
[30] Восстановление символов (321) может включать в себя несколько различных блоков в зависимости от типа кодированного видеоизображения или его частей (например, изображения, кодированного с внутренним и внешним предсказанием, блока, кодированного с внутренним и внешним предсказанием) и других факторов. Какие блоки задействовать и каким образом, можно управлять с помощью управляющей информации подгруппы, которая была синтаксически проанализирована из кодированной видеопоследовательности с помощью синтаксического анализатора (320). Поток такой управляющей информации подгруппы между синтаксическим анализатором (320) и множеством блоков не показан для ясности.
[31] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных блоков, как описано ниже. При практической реализации, работающей в условиях коммерческих ограничений, многие из этих блоков тесно взаимодействуют друг с другом и могут, по меньшей мере частично, быть интегрированы друг в друга. Однако для целей описания раскрываемого предмета изобретения уместно концептуальное подразделение на функциональные блоки, приведенные ниже.
[32] Первым блоком является блок (351) масштабирования/обратного преобразования. Блок (351) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в виде символа(-ов) (321) от синтаксического анализатора (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).
[33] В некоторых случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внутренним предсказанием, то есть: блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена блоком (352) внутреннего предсказания. В некоторых случаях блок (352) внутреннего предсказания формирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (356). Агрегатор (355) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сформированную блоком (352) внутреннего предсказания, к информации выходных отсчетов, предоставляемой блоком (351) масштабирования/обратного преобразования.
[34] В других случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внешним предсказанием и, возможно, с компенсацией движения. В таком случае блок (353) предсказания с компенсацией движения может получать доступ к памяти (357) опорных изображений для выборки отсчетов, используемых для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходному сигналу блока масштабирования/обратного преобразования (в этом случае называемых остаточными отсчетами или остаточным сигналом), чтобы сформировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда блок компенсации движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными блоку компенсации движения в форме символов (321), которые могут иметь, например, X, Y и компоненты опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчета, механизмы предсказания вектора движения и т.д.
[35] Выходные отсчеты агрегатора (355) могут подвергаться различным технологиям петлевой фильтрации в блоке (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в кодированный битовый поток видео и предоставляемыми блоку (356) петлевого фильтра в виде символов (321) из синтаксического анализатора (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также в ответ на ранее восстановленные и отфильтрованные по петле значения отсчетов.
[36] Выходными данными блока (354) петлевого фильтра может быть поток отсчетов, который может выводиться в устройство (212) визуализации, а также сохраняться в памяти опорных изображений для использования в будущем внешнем предсказании.
[37] Некоторые кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (320)), текущее опорное изображение (356) может стать частью буфера (357) опорных изображений, и память свежего текущего изображения может быть перераспределена перед началом восстановления следующего кодированного изображения.
[38] Видеодекодер 320 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как Рекомендация Н.265 ITU-T. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемой технологией или стандартом сжатия видео, в том смысле, что она придерживается синтаксиса технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в профилях, задокументированных в них. Для соответствия также необходимо, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.
[39] В одной из форм осуществления изобретения приемник (310) может принимать с кодированным видео дополнительные (избыточные) данные. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(-ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных уровней или уровней улучшения отношения сигнал/шум (SNR, Signal-to-Noise Ratio), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и т.д.
[40] Фиг. 4 может быть функциональной блок-схемой видеокодера (203) согласно одной из форм осуществления настоящего изобретения.
[41] Кодер (203) может принимать отсчеты видео от источника (201) видео (не являющегося частью кодера), который может захватывать видеоизображение(-ия) для кодирования кодером (203).
[42] Источник (201) видео может предоставлять исходную видеопоследовательность, которая должна быть кодирована кодером (203), в форме потока отсчетов цифрового видео, который может иметь какую-то подходящую глубину в битах (например: 8 бит, 10 бит, 12 бит, …), какое-то цветовое пространство (например, пространство Y CrCB по рекомендации ITU-R ВТ.601, RGB, …), какую-то подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим заранее подготовленное видео. В системе видеоконференцсвязи видеосигналов источник (203) может быть камерой, которая фиксирует информацию локального изображения в виде видеопоследовательности. Видеоданные могут предоставляться в виде множества отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, при этом каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалисты в данной области техники могут легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.
[43] Согласно одной из форм осуществления изобретения кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует применение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными блоками, как описано ниже, и функционально соединен с этими блоками. Соединение не изображено для ясности. Параметры, установленные контроллером, могут включать в себя параметры, связанные с управлением скоростью (пропуск изображения, квантователь, значение лямбда технологий оптимизации скорость-искажение, …), размером изображения, структурой группы изображений (GOP), максимальным диапазоном поиска вектора движения и т.д. Специалисты в данной области техники могут легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной структуры системы.
[44] Некоторые видеокодеры работают таким способом, который специалисты в данной области называют "петля кодирования". В качестве упрощенного описания, петля кодирования может состоять из кодирующей части кодера (430) (далее "кодера источника") (ответственного за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения (изображений)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрываемом предмете изобретения). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита независимым от местоположения декодера (локального или удаленного), содержимое буфера опорных изображений также имеет точность до бита между локальным кодером и удаленным кодером. Другими словами, блок предсказания кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер "видел бы" при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалистам в данной области техники.
[45] Работа "локального" декодера (433) может быть такой же, как у "удаленного" декодера (210), который уже был подробно описан выше в связи с фиг. 3. Кратко обратимся также к фиг. 3, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированной видеопоследовательности энтропийным кодером (445) и синтаксическим анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и синтаксический анализатор (320) могут не быть полностью реализованы в локальном декодере (433).
[46] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме синтаксического анализа/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать, по существу в идентичной функциональной форме, в соответствующем кодере. По этой причине раскрываемый предмет изобретения сосредотачивает внимание на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[47] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как "опорные кадры". Таким образом, механизм (432) кодирования кодирует разницы между блоками пикселей входного кадра и блоками пикселей опорного кадра(-ов), которые могут быть выбраны в качестве опорных значений предсказания для входного кадра.
[48] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных исходным кодером (430). Операции механизма (432) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общий контент, как восстановленные опорные кадры, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[49] Предсказатель (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового кадра, который должен быть кодирован, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве возможных опорных блоков пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и т.д., это может служить подходящим эталоном для предсказания для новых изображений. Предсказатель (435) может работать на основе блока отсчетов на блок пикселей, чтобы найти соответствующие эталоны для предсказания. В некоторых случаях, как определено результатами поиска, полученными предсказателем (435), входное изображение может иметь эталоны для предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.
[50] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.
[51] Выходные данные всех вышеупомянутых функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сформированные различными функциональными блоками, в кодированную видеопоследовательность путем сжатия без потерь символов согласно различным технологиям, например кодированию Хаффмана, кодированию с переменной длиной, арифметическому кодированию и т.д.
[52] Передатчик (440) может буферизировать кодированную видеопоследовательность (видеопоследовательности), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал связи (460), который может быть аппаратным/программным каналом связи к устройству хранения данных, которое будет хранить кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные из видеокодера (430) с другими данными, которые должны быть переданы, например, с кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[53] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на технологии кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть назначены как один из следующих типов кадров:
[54] Изображение с внутренним кодированием (I-изображение) (I picture, Intra picture) может быть таким, которое может быть кодировано и декодировано без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки позволяют использовать различные типы изображений с внутренним кодированием, включая, например, обновленные изображения с помощью независимого декодера. Специалистам в данной области техники известны эти варианты изображений и их соответствующие применения и особенности.
[55] Изображение, кодированное с предсказанием, (Р-изображение) (Р picture, Predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[56] Изображение, кодированное с двунаправленным предсказанием, (В-изображение) (В Picture, Bi-directionally predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и справочных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения, кодированные с множественным предсказанием, могут использовать более двух опорных изображений и связанных метаданных для восстановления одиночного блока.
[57] Исходные изображения обычно могут быть разделены пространственно на множество блоков отсчетов (например, блоки по 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или внутреннее предсказание). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированные опорные изображения.
[58] Видеокодер (203) может выполнять операции кодирования согласно заранее определенной технологии или стандарту видеокодирования, такому как Рекомендация Н.265 ITU-T. Во время своей работы видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[59] В одной из форм осуществления изобретения передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/улучшающие SNR уровни, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной уточняющей информации (SEI), фрагменты набора параметров информации по использованию видео (VUI) и т.д.
[60] На фиг. 5 показан пример кодера 500 согласно одной из форм осуществления изобретения, а на фиг. 6 показан пример декодера 600 согласно одной из форм осуществления изобретения. Как показано на фиг. 5, кодер 500 может содержать понижающий дискретизатор 501, разделитель 502 изображений, деквантователь 503, энтропийный кодер 504, внутрипетлевой фильтр 505, внутренний предсказатель 506, буфер 507 декодированных изображений (DPB, Decoded Picture Buffer), передискретизатор 508 и внешний предсказатель 509. Как показано на фиг. 6, декодер 600 может содержать буфер 601 кодированного изображения, синтаксический анализатор 602 видео, деквантователь 603, внутрипетлевой фильтр 604, буфер 605 декодированного изображения, передискретизатор 606, внешний предсказатель 607 и внутренний предсказатель 608.
[61] В формах осуществления изобретения один или более элементов, показанных на фиг. 5 и/или фиг. 6, может соответствовать или выполнять аналогичные функции одному или нескольким элементам, показанным на фиг. 3 и/или фиг. 4.
[62] В формах осуществления изобретения, например, формах осуществления, показанных на фиг. 5 и 6, можно изменять ширину и высоту изображения на уровне зернистости изображения независимо от типа изображения. В кодере 500 данные входного изображения могут подвергаться понижающей дискретизации до выбранного размера изображения, используя, например, понижающий дискретизатор 501 для кодирования текущего изображения. После того, как первое входное изображение кодировано как изображение с внутренним кодированием, декодированное изображение сохраняется в буфере DPB 507. Когда последующее изображение подвергается понижающей дискретизации с другим коэффициентом дискретизации и кодируется как изображение с внешним кодированием, опорные изображения в буфере DPB могут быть увеличены или уменьшены в масштабе в соответствии с пространственным соотношением между размером опорного изображения и текущим размером изображения, используя, например, передискретизатор 508.
[63] В декодере 600 декодированное изображение может сохраняться в буфере DPB 605 без передискретизации. Однако опорное изображение в буфере DPB 605 может быть масштабировано с повышением или с понижением по отношению к пространственному соотношению между текущим декодированным изображением и эталоном, например, с использованием передискретизатора 606, когда используется для компенсации движения. Декодированное изображение может быть подвергнуто повышающей дискретизации до размера исходного изображения или желаемого размера выходного изображения, используя, например, повышающий дискретизатор 609, когда оно подгоняется для отображения. В процессе оценки/компенсации движения векторы движения могут масштабироваться в соответствии с соотношением размеров изображения, а также разницы в порядковом номере изображения.
[64] Схема передискретизации опорного изображения (RPR, Reference Picture Resampling), используемая, например, в формах осуществления изобретения, раскрываемых в данном документе, может включать в себя поддержку адаптивного изменения разрешения (декодированного) изображения в кодированной видеопоследовательности, поддержку постоянного разрешения опорного изображения для упрощения процесса компенсации движения, поддержку постоянного разрешения выходного изображения для управляемого разрешения дисплея и поддержку режимов адаптивной передискретизации, как с дополнительной фильтрацией, так и без нее.
[65] В формах осуществления изобретения, чтобы поддерживать желаемые функции для RPR и адаптивного изменения разрешения (ARC, Adaptive Resolution Change), может использоваться набор модификаций синтаксиса высокого уровня.
[66] Например, в формах осуществления изобретения минимальное/максимальное разрешение изображения может сигнализироваться в наборе параметров декодера (DPS, Decoder Parameter Set) для облегчения обмена верхними пределами / их согласования.
[67] В формах осуществления изобретения флаг, указывающий, что RPR разрешена в кодированной видеопоследовательности, может сигнализироваться в наборе параметров последовательности (SPS, Sequence Parameter Set). Разрешение декодированного изображения может быть указано в таблице в SPS. Эта таблица может включать в себя список размеров декодированных изображений, которые могут использоваться одним или более изображениями в кодированной видеопоследовательности.
[68] В формах осуществления изобретения флаг, указывающий, что любое опорное изображение имеет одинаковое пространственное разрешение, и постоянный размер опорного изображения, может сигнализироваться в наборе SPS. Если значение флага равно 1, любое декодированное изображение в кодированной видеопоследовательности может быть масштабировано с увеличением с помощью процесса пере дискретизации, так что любое опорное изображение, хранящееся в буфере декодированных изображений (DPB, Decoded Picture Buffer) может иметь тот же размер изображения с размером опорного изображения, о котором сигнализируется в наборе SPS.
[69] В формах осуществления изобретения флаг, указывающий, что любое выходное изображение имеет одинаковое пространственное разрешение и постоянный размер выходного изображения, может передаваться в наборе SPS. Если значение флага равно 1, любое выходное изображение в кодированной видеопоследовательности может быть масштабировано с увеличением с помощью процесса передискретизации, так что любое выходное изображение может иметь тот же размер изображения, что и размер выходного изображения, переданный в наборе SPS.
[70] В формах осуществления индекс, указывающий размер декодированного изображения из числа кандидатов, сигнализированных в наборе SPS, может быть передан в наборе параметров изображения (PPS, Picture Parameter Set). Этот индекс может использоваться для обеспечения обмена верхними пределами / их согласования.
[71] В формах осуществления изобретения флаг, указывающий, что масштабирование вектора движения для временного предсказания вектора движения запрещено, может сигнализироваться в наборе PPS. Если значение флага равно 1, любое временное предсказание вектора движения может обрабатываться без масштабирования вектора движения.
[72] В формах осуществления изобретения выбор режима фильтрации может передаваться в наборе PPS.
[73] Пример синтаксиса набора DPS для сигнализации описанных выше форм осуществления изобретения показан в таблице 1 ниже:
[74] В формах осуществления изобретения элемент max_pic_width_in_luma_samples может указывать максимальную ширину декодированных изображений в единицах отсчетов яркости в битовом потоке. Элемент max_pic_width_in_luma_samples не может быть равен 0 и может быть целым кратным MinCbSizeY. Значение max_pic_width_in_luma_samples[i] не может быть больше, чем значение max_pic_width_in_luma_samples.
[75] В формах осуществления изобретения элемент max_pic_height_in_luma_samples может указывать максимальную высоту декодированных изображений в единицах отсчетов яркости. Элемент max_pic_height_in_luma_samples не может быть равен 0 и может быть целым кратным MinCbSizeY. Значение max_pic_height_in_luma_samples[i] не может быть больше, чем значение max_pic_height_in_luma_samples.
[76] Пример синтаксиса набора SPS для сигнализации описанных выше форм осуществления показан в табл. 2 ниже:
[77] В формах осуществления изобретения элемент reference_pic_resampling_flag, равный 1, может указывать на то, что размер декодированного изображения для кодированного изображения, связанного с набором SPS, может изменяться или не изменяться в кодированной видеопоследовательности. Элемент reference_pic_resampling_flag, равный 0, указывает на то, что размер декодированного изображения кодированного изображения, связанного с набором SPS, не может изменяться в пределах кодированной видеопоследовательности. Когда значение reference_pic_resampling_flag равно 1, могут присутствовать один или более размеров декодированного изображения (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]), которые могут указываться и использоваться кодированным изображением в кодированной видеопоследовательности, и присутствуют постоянный размер опорного изображения (reference_pic_width_in_luma_samples, reference_pic_height_in_luma_samples) и постоянный размер выходного изображения output_pic_width_in_luma_samples, output_pic_height_in_luma_samples), обусловленные значениями constant_ref_pic size_presentsent_flag и constant_output_pic_size_present_flag, соответственно.
[78] В формах осуществления изобретения элемент constant_ref_pic_size_flag равный 1, может указывать на то, что присутствуют элементы reference_pic_width_in_luma_samples и reference_pic_height_in_luma_samples.
[79] В формах осуществления изобретения элемент reference_pic_width_in_luma_samples может указывать ширину опорного изображения в единицах отсчетов яркости. Элемент reference_pic_width_in_luma_samples не может быть равен 0. Если не указано, значение reference_pic_width_in_luma_samples может быть логически выведено равным dec_pic_width_in_luma_samples[i].
[80] В формах осуществления изобретения элемент reference_pic_height_in_luma_samples может указывать высоту опорного изображения в единицах отсчетов яркости. Элемент reference_pic_height_in_luma_samples не может быть равным 0. Если он отсутствует, значение reference_pic_height_in_luma_samples может быть логически выведено равным dec_pic_height_in_luma_samples[i]. Размер опорного изображения, хранящегося в буфере DPB, может быть равен значениям reference_pic_width_in_luma_samples и reference_pic_height_in_luma_samples, когда значение элемента constant_pic_size_present_flag равно 1. В этом случае какой-либо дополнительный процесс передискретизации может не выполняться для компенсации движения.
[81] В формах осуществления изобретения элемент constant_output_pic_size_flag, равный 1, может указывать на то, что присутствуют элементы output_pic_width_in_luma_samples и output_pic_height_in_luma_samples.
[82] В формах осуществления изобретения элемент output_pic_width_in_luma_samples может указывать ширину выходного изображения в единицах отсчетов яркости. Элемент output_pic_width_in_luma_samples не должен быть равен 0. Если он отсутствует, значение output_pic_width_in_luma_samples может быть логически выведено равным dec_pic_width_in_luma_samples [i].
[83] В формах осуществления изобретения элемент output_pic_height_in_luma_samples может указывать высоту выходного изображения в единицах отсчетов яркости. Элемент output_pic_height_in_luma_samples не может быть равным 0. Если он отсутствует, значение output_pic_height_in_luma_samples может быть логически выведено равным dec_pic_height_in_luma_samples[i]. Размер выходного изображения может быть равен значениям output_pic_width_in_luma_samples и output_pic_height_in_luma_samples, когда значение constant_output_pic_size_flag равно 1.
[84] В формах осуществления изобретения элемент num_dec_pic_size_in_luma_samples_minus1 plus 1 может указывать количество декодированных размеров изображения (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) в единицах отсчетов яркости в кодированной видеопоследовательности.
[85] В формах осуществления изобретения элемент dec_pic_width_in_luma_samples[i] может указывать i-ю ширину размеров декодированного изображения в единицах отсчетов яркости в кодированной видеопоследовательности. Элемент dec_pic_width_in_luma_samples[i] не может быть равен 0 и может быть целым кратным MinCbSizeY.
[86] В формах осуществления изобретения элемент dec_pic_height_in_luma_samples[i] может указывать i-ю высоту размеров декодированного изображения в единицах отсчетов яркости в кодированной видеопоследовательности. Элемент dec_pic_height_in_luma_samples[i] не может быть не равен 0 и может быть целым кратным MinCbSizeY. Размер i-го декодированного изображения (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) может быть равен размеру декодированного изображения декодированного изображения в кодированной видеопоследовательности.
[87] Пример синтаксиса набора PPS для сигнализации описанных выше форм осуществления изобретения показан в таблице 3 ниже:
[88] В формах осуществления изобретения элемент dec_pic_size_idx может указывать, что ширина декодированного изображения должна быть равна pic_width_in_luma_samples[dec_pic_size_idx], а высота декодированного изображения должна быть равна pic_height_in_luma_samples[dec_pic_size_idx].
[89] В формах осуществления изобретения элемент disabling_motion_vector_scaling_flag, равный 1, может указывать на то, что используется опорный вектор движения без процесса масштабирования, зависящего от значений порядкового номера изображения (РОС, Picture Order Count) или пространственных разрешений, для временного предсказания вектора движения. Элемент disabling_motion_vector_scaling_flag, равный 0, может указывать на то, что опорный вектор движения используется с процессом масштабирования или без него в зависимости от значений РОС или пространственных разрешений для временного предсказания вектора движения.
[90] В формах осуществления изобретения элемент rpr_resampling_mode, равный 0, может указывать на то, что интерполированные пиксели в опорном изображении не фильтруются дополнительно для компенсации движения, когда разрешение текущего изображения отличается от опорного изображения. Элемент rpr_resampling_mode, равный 1, может указывать на то, что интерполированные пиксели в опорном изображении дополнительно фильтруются для компенсации движения, когда разрешение текущего изображения отличается от разрешения опорного изображения. Элемент rpr_resampling_mode, равный 2, может указывать на то, что пиксели в опорном изображении фильтруются и интерполируются для компенсации движения, когда разрешение текущего изображения отличается от разрешения опорного изображения. Другие значения могут быть зарезервированы.
[91] Изменение ARC может быть включено в "базовый/основной" профили. Для их удаления можно использовать субпрофилирование, если оно не требуется для определенных сценариев применения. Некоторые ограничения могут быть приемлемыми. В связи с этим определенные профили Н.263+ и "рекомендуемые режимы" (которые предшествовали профилям) включали ограничение для Приложения Р, которое должно использоваться только как "неявный коэффициент 4", т.е. диадическая понижающая дискретизация в обоих измерениях. Этого было достаточно для поддержки быстрого старта (быстрого получения кадра I) в видеоконференцсвязи.
[92] В формах осуществления изобретения вся фильтрация может выполняться "на лету", при этом может отсутствовать или иметься незначительно увеличение пропускной способности памяти. В результате может не потребоваться помещать ARC в экзотические профили.
[93] Сложные таблицы и тому подобное по существу не могут быть использованы при обмене возможностями, как это утверждалось в Марракеше в связи с документом JVET-M0135. Число вариантов может быть просто слишком большим, чтобы обеспечить значимую совместимость между поставщиками, предполагая предложение-ответ и аналогичные подтверждения установления связи с ограниченной глубиной. Чтобы поддерживать ARC разумным путем в сценарии обмена возможностями, можно использовать несколько пунктов взаимодействия. Например: без ARC, ARC с неявным коэффициентом 4, полное ARC. В качестве альтернативы мы могли бы указать необходимую поддержку для всех ARC и оставить ограничения по сложности битового потока для объектов данных об услуге (SDO, Service Data Object) более высокого уровня.
[94] Что касается уровней, то в качестве условия соответствия битового потока в некоторых формах осуществления изобретения количество отсчетов изображений с повышающей дискретизацией должно соответствовать уровню битового потока, независимо от того, до какой степени передискретизация сигнализируется в битовом потоке, и что все отсчеты должны соответствовать кодированному изображению с повышающей дискретизацией. Отметим, что в Н263+ этого не произошло; там было возможно, чтобы определенные отсчеты отсутствовали.
[95] Фиг. 7 является блок схемой, которая представляет собой пример процесса 700 для декодирования кодированного битового потока видео в соответствии с формами осуществления изобретения, описанными выше. В некоторых реализациях один или более блоков обработки на фиг. 7 могут выполняться декодером 210 или декодером 600. В некоторых реализациях один или более блоков обработки на фиг. 7 могут выполняться другим устройством или группой устройств, отдельных от декодера 210 или декодера 600, или включающих в себя его, например, кодером 203 или кодером 500.
[96] Как показано на фиг. 7, процесс 700 может включать в себя получение кодированного изображения из кодированного битового потока видео (блок 701).
[97] Как показано на фиг. 7, процесс 700 может включать в себя декодирование кодированного изображения для формирования декодированного изображения (блок 702).
[98] Как далее показано на фиг. 7, процесс 700 может включать в себя получение, из битового потока кодированного видео, первого флага, указывающего, разрешена ли передискретизация опорного изображения (блок 703). В формах осуществления изобретения первый флаг может соответствовать элементу reference_pic_resampling_flag, описанному выше.
[99] Как далее показано на фиг. 7, процесс 700 может включать в себя определение по первому флагу, разрешена ли передискретизация опорного изображения (блок 704). Если разрешена передискретизация опорного изображения (YES (ДА) в блоке 704), процесс 700 может перейти к блоку 705. В формах осуществления изобретения, если передискретизация опорного изображения не разрешена, процесс 700 может декодировать кодированный битовый поток видео в соответствии с другим процессом.
[100] Как показано на фиг. 7, процесс 700 может включать в себя получение, из кодированного битового потока видео, второго флага, указывающего, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео, и третьего флага, указывающего, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео (блок 705). В формах осуществления изобретения второй флаг может соответствовать элементу constant_ref_pic_size_flag, описанному выше, а третий флаг может соответствовать элементу constant_output_pic_size_flag, описанному выше.
[101] Как показано на фиг. 7, процесс 700 может включать в себя определение, указывает ли второй флаг на то, что опорные изображения имеют постоянный размер опорного изображения (блок 706). Если опорные изображения имеют постоянный размер опорного изображения (YES (ДА) в блоке 706), процесс 700 может перейти к блоку 707, а затем к блоку 708. Если опорные изображения не имеют постоянного размера опорного изображения (NO (НЕТ) в блоке 706), процесс 700 может перейти непосредственно к блоку 708.
[102] Как далее показано на фиг. 7, процесс 700 может включать в себя формирование опорного изображения путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения (блок 707).
[103] Как показано на фиг. 7, процесс 700 может включать в себя сохранение опорного изображения в буфере декодированных изображений (блок 708). Если блок 707 не выполняется, декодированное изображение может быть сохранено как опорное изображение без передискретизации.
[104] Как далее показано на фиг. 7, процесс 700 может включать в себя определение, указывает ли третий флаг на то, что выходные изображения имеют постоянный размер выходного изображения (этап 709). Если выходные изображения имеют постоянный размер выходного изображения (ДА в блоке 709), процесс 700 может перейти к блоку 710, а затем к блоку 711. Если выходные изображения не имеют постоянный размер выходного изображения (НЕТ в блоке 709), процесс 700 может перейти непосредственно к блоку 711.
[105] Как далее показано на фиг. 7, процесс 700 может включать в себя создание выходного изображения путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения (этап 710).
[106] Как далее показано на фиг. 7, процесс 700 может включать в себя вывод выходного изображения (этап 711). Если блок 710 не выполняется, декодированное изображение может выводиться как выходное изображение без передискретизации.
[107] В формах осуществления изобретения первый флаг, второй флаг и третий флаг могут сигнализироваться в наборе параметров последовательности, включенном в кодированный битовый поток видео.
[108] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение информации о разрешении изображения из кодированного битового потока видео, при этом информация о разрешении изображения указывает по меньшей мере одно из максимального разрешения изображения и минимального разрешения изображения.
[109] В формах осуществления изобретения информация о разрешении изображения может сигнализироваться в наборе параметров декодера, включенном в кодированный битовый поток видео.
[110] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение списка размеров изображения из кодированного битового потока видео.
[111] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение индекса, указывающего размер декодированного изображения в списке размеров изображения.
[112] В формах осуществления изобретения список размеров изображения может сигнализироваться в наборе параметров последовательности, включенном в кодированный битовый поток видео, а индекс может сигнализироваться в наборе параметров изображения, включенном в кодированный битовый поток видео.
[113] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение четвертого флага, указывающего, разрешено ли масштабирование вектора движения. В формах осуществления изобретения четвертый флаг может соответствовать элементу disabling_motion_vector_scaling_flag, описанному выше.
[114] В формах осуществления изобретения четвертый флаг может сигнализироваться в наборе параметров изображения, включенном в кодированный битовый поток видео.
[115] Хотя на фиг. 7 показаны иллюстративные блоки процесса 700, в некоторых реализациях процесс 700 может включать в себя дополнительные блоки, меньшее количество блоков, разные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 7. Дополнительно или альтернативно, два или более блока процесса 700 могут выполняться параллельно.
[116] Кроме того, предложенные способы могут быть реализованы схемами обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе, для выполнения одного или нескольких из предложенных способов.
[117] Технологии, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых команд и физически сохранены на одном или нескольких машиночитаемых носителях. Например, на фиг. 8 показана компьютерная система 800, подходящая для реализации определенных форм осуществления раскрываемого предмета изобретения.
[118] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или машинного языка, который может быть предметом трансляции, компиляции, компоновки или подобных механизмов для создания кода, содержащего команды, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п. центральными процессорами (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) компьютера и т.п.
[119] Команды могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[120] Компоненты, показанные на фиг. 8 для компьютерной системы 800, являются иллюстративными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего формы осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, показанных в примере осуществления компьютерной системы 800.
[121] Компьютерная система 800 может содержать определенные устройства ввода с интерфейсом пользователя. Такое устройство ввода с интерфейсом пользователя может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, проведения по экрану, движения информационной перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельный ввода (не изображенного). Устройства с интерфейсом пользователя также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные от камеры для съемки неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[122] Устройства ввода с человеком могут включать в себя одно или более из (только по одному из каждого изображенного): клавиатуры 801, мыши 802, трекпада 803, сенсорного экрана 810 и соответствующего графического адаптера 850, информационной перчатки 1204, джойстика 805, микрофона 806, сканера 807, камеры 808.
[123] Компьютерная система 800 может также содержать определенные устройства вывода с интерфейсом пользователя. Такие устройства вывода с интерфейсом пользователя могут стимулировать чувства одного или нескольких пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с интерфейсом пользователя могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 810, информационной перчатки для данных 1204 или джойстика 805, но также могут быть устройства с тактильной обратной связью, которые не служат в качестве устройств ввода), устройства звукового выхода (такие как громкоговорители 809, головные телефоны (не показанные)), устройства визуального вывода (например, экраны 710, включая экраны электронно-лучевой трубки (CRT, Cathode Ray Tube), экраны жидкокристаллического дисплея (LCD, Liquid-Crystal Display), плазменные экраны, экраны на органических светодиодах (OLED, Organic Light-Emitting Diode), каждый с возможностью сенсорного ввода или без нее, каждый с возможностью тактильной обратной связи или без нее; - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображенные), голографические дисплеи и дымовые баки (не изображенные) и принтеры (не изображенные).
[124] Компьютерная система 800 также может содержать доступные пользователю устройства хранения данных и связанные с ними носители, такие как оптические средства включая средства 720 только для чтения (ROM, Read Only Memory)/для чтения и многократной записи (RW, Read and Write) с компакт-дисками (CD, Compact Disk)/цифровыми универсальными дисками (DVD, Digital Versatile Disc) или тому подобные носители 821, флэш-накопитель 822, съемный жесткий диск или твердотельный накопитель 823, традиционные магнитные носители, такие как лента и дискета (не показаны), специализированные устройства на основе постоянных запоминающих устройств (Read Only Memory ROM/специализированных интегральных схем (ASIC, Application-Specific Integrated Circuit)/программируемых логических интегральных схем (PLD, Programmable Logic Device), такие как защитные ключи (не показанные) и т.п.
[125] Специалисты в данной области техники также должны понимать, что термин "машиночитаемый носитель", используемый в связи с раскрываемым в настоящее время предметом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.
[126] Компьютерная система 800 также может включать в себя интерфейс(-ы) к одной или нескольким сетям (955) связи. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как 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) и т.д. Некоторым сетям обычно требуются адаптеры (954) внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (949) (таким как, например, порты универсальной последовательной шины (USB, Universal Serial Bus) компьютерной системы 800; другие обычно интегрируются в ядро компьютерной системы 800 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему персональных компьютеров (PC, Personal Computer) или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система 800 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное TV), однонаправленной только для передачи (например, CANbus к определенным устройствам CANbus) или двунаправленной, например, с другими компьютерными системами, использующими локальные или глобальные цифровые сети. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей и сетевых интерфейсах (954), как описано выше.
[127] Вышеупомянутые устройства интерфейса пользователя, доступные пользователю устройства хранения данных и сетевые интерфейсы могут быть присоединены к ядру 840 компьютерной системы 800.
[128] Ядро 840 может содержать один или более центральных процессоров (CPU, Central Processing Unit) 841, графических процессоров (GPU, Graphics Processing Unit) 842, специализированных программируемых блоков обработки в виде программируемых пользователем матриц логических элементов (FPGA, Field Programmable Gate Area) 843, аппаратных ускорителей 844 для определенных задач, и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ROM, Readonly Memory) 845, оперативным запоминающим устройством (RAM, Random-Access Memory) 846, графическим адаптером 850, внутренним запоминающим устройством 847 большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD, Solid State Drive) и т.п., могут быть подключены через системную шину 848. В некоторых компьютерных системах системная шина 848 может быть доступна в форме одного или нескольких физических разъемов для обеспечения возможности расширения с помощью дополнительных процессоров, графических процессоров и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 848 ядра, либо через периферийную шину 849. Архитектуры периферийной шины включают шину ввода-вывода для подключения периферийных устройств PCI (Peripheral Component Interconnect), USB и т.п.
[129] Процессоры CPU 841, GPU 842, матрицы FPGA 843 и ускорители 844 могут выполнять определенные команды, которые в комбинации могут составлять вышеупомянутый машинный код. Этот машинный код может храниться в ROM 845 или RAM 846. Временные данные также могут храниться в RAM 846, тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве 847 большой емкости. Возможность быстрого запоминания и выборки для любого из запоминающих устройств может быть обеспечена посредством использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU 841, GPU 842, запоминающим устройством 847 большой емкости, памятью ROM 845, запоминающим устройством RAM 846 и т.п.
[130] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[131] В качестве примера, а не в качестве ограничения, компьютерная система, имеющая архитектуру 800, и, в частности, ядро 840, может обеспечивать функциональные возможности в результате выполнения процессором(-и) (включая процессоры CPU, GPU, матрицы FPGA, ускорители и т.п.) программного обеспечения, воплощенного на одном или нескольких материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя запоминающим устройством большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 840, которые имеют энергонезависимый характер, такими как внутреннее запоминающее устройство 847 большой емкости или ROM 845. Программное обеспечение, реализующее различных формы осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 840. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или интегральных схем в соответствии с конкретными потребностями. Программное обеспечение может заставлять ядро 840 и, в частности, процессоры в нем (включая процессоры CPU, GPU, матрицу FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM 846, и изменение таких структур данных в соответствии с процессами, определяемыми программным обеспечением. Вдобавок или в качестве альтернативы компьютерная система может обеспечивать функциональные возможности в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускорителе 844), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или определенных частей конкретных процессов, описанных здесь. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (1С, Integrated Circuit), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.
[132] Хотя в этом раскрытии описаны несколько иллюстративных форм осуществления изобретения, существуют изменения, перестановки и различные заменяющие эквиваленты, которые находятся в объеме изобретения. Таким образом, следует иметь ввиду, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в пределах его сущности и объема.