RU2819201C1 - Информация о синхронизации изображений и единицах декодирования для временной масштабируемости - Google Patents

Информация о синхронизации изображений и единицах декодирования для временной масштабируемости Download PDF

Info

Publication number
RU2819201C1
RU2819201C1 RU2022110900A RU2022110900A RU2819201C1 RU 2819201 C1 RU2819201 C1 RU 2819201C1 RU 2022110900 A RU2022110900 A RU 2022110900A RU 2022110900 A RU2022110900 A RU 2022110900A RU 2819201 C1 RU2819201 C1 RU 2819201C1
Authority
RU
Russia
Prior art keywords
cpb
decoding
data
sei message
video
Prior art date
Application number
RU2022110900A
Other languages
English (en)
Inventor
Е-куй Ван
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2819201C1 publication Critical patent/RU2819201C1/ru

Links

Images

Abstract

Изобретение относится к области кодирования видео и в частности к изменениям параметров гипотетического эталонного декодера (HRD) для поддержки эффективного кодирования и/или тестирования соответствия многослойных потоков битов данных. Техническим результатом является повышение коэффициента сжатия при минимальном или вообще отсутствующем ущербе для качества изображения. Предложен способ декодирования, который содержит прием потока битов данных, содержащего кодированное изображение и сообщение с информацией о дополнительной оптимизации (SEI), где это сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие выполняемым на подслоях операциям HRD на основе единиц декодирования (DU); и декодирование кодированного изображения из потока битов данных с целью получения декодированного изображения. 6 н. и 10 з.п. ф-лы, 12 ил.

Description

Перекрестные ссылки на родственные заявки
Настоящая заявка на выдачу патента США претендует на преимущества от предварительной заявки на выдачу патента США No. 62/905,147, которую подал 24 сентября 2019 г. Е-Куи Ванг под названием «Информация о синхронизации изображений и единицах декодирования для временной масштабируемости» и которая включена сюда посредством ссылки.
Область техники, к которой относится раскрытие
Настоящее раскрытие, в общем, относится к области кодирования видео и, в частности, к изменениям параметров гипотетического эталонного декодера (hypothetical reference decoder (HRD)) для поддержки эффективного кодирования и/или тестирования соответствия многослойных потоков битов данных.
Уровень техники
Количество данных видео, необходимое для описания даже относительно короткого видеоролика, может быть значительным, что может привести к затруднениям, когда нужно передавать данные в виде потока или другим способом через сеть связи с ограниченной полосой пропускания. Таким образом, данные видео обычно сжимают перед тем, как передать их по современным телекоммуникационным сетям. Размер видеоролика также может представлять проблему, когда этот видеоролик сохраняют в запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства для сжатия видео часто используют в источнике программное обеспечение и/или устройство для кодирования данных перед их передачей или сохранением в запоминающем устройстве, тем самым уменьшая количество данных, необходимых для представления изображений цифрового видео. Затем сжатые данные в пункте назначения принимает устройство для декомпрессии (расширения) видео, которое декодирует эти данные видео. При ограниченности ресурсов сетей связи и постоянно растущих требованиях к достижению все более высокого качества видео, необходимо создать усовершенствованные способы сжатия и расширения (декомпрессии) видео, которые позволили бы повысить коэффициент сжатия при минимальном или вообще отсутствующем ущербе для качества изображения.
Раскрытие сущности изобретения
Первый аспект относится к способу, реализуемому устройством декодирования видео, этот способ содержит прием, устройством декодирования видео, потока битов данных, содержащего кодированное изображение и сообщение с дополнительной улучшающей информацией (supplemental enhancement information (SEI)), где это сообщение SEI содержит параметры буфера кодированного изображения (coded picture buffer (CPB)), соответствующие выполняемым на подслоях операциям гипотетического эталонного декодера (hypothetical reference decoder (HRD)) на основе единиц декодирования (decoding unit (DU)); и декодирование, посредством декодирующего устройства для видео, кодированного изображения из потока битов данных для получения декодированного изображения.
Этот способ предлагает алгоритмы, обеспечивающие, чтобы параметры буфера кодированного изображения (CPB) на уровне изображения, соответствующие выполняемым на подслоях операциям декодера (HRD) на основе единиц декодирования (DU), были включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI является сообщением SEI с параметрами синхронизации изображений (picture timing (PT)), т.е. сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что совокупность параметров буфера CPB содержит приращение общей задержки извлечения данных из буфера CPB и приращение задержки извлечения данных из буфера CPB для единицы доступа (access unit (AU)), ассоциированной с рассматриваемым сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI является сообщением PT SEI, которое определяет число единиц декодирования в единице AU, ассоциированной с этим сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI является сообщением PT SEI, которое определяет число единиц слоев сетевой абстракции (network abstraction layer (NAL)) в единице декодирования (DU) из единицы AU, ассоциированной с указанным сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (decoding unit information (DUI)), т.е. сообщение DUI SEI, содержащее временной идентификатор (ID) единицы SEI NAL, содержащей сообщение DUI SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что указанный временной идентификатор (ID), определяет наивысший подуровень, для которого информация о задержке моментов извлечения данных из буфера CPB содержится в сообщении DUI SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает представление декодированного изображения на дисплее электронного устройства.
Второй аспект относится к способу, реализуемому устройством кодирования видео, где этот способ содержит генерацию, устройством кодирования видео, потока битов данных, содержащего кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), где это сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие выполняемым на подслоях операциям гипотетического эталонного декодера (HRD) на основе единиц декодирования (decoding unit (DU)); осуществление, устройством кодирования видео, операций декодера HRD на основе единиц DU на подслоях с использованием параметров буфера CPB для определения, является ли поток битов данных соответствующим; сохранение, устройством кодирования видео, потока битов данных для передачи декодирующему устройству для видео, когда этот поток битов данных является соответствующим на основе характеристик операций детектора HRD на основе единиц DU.
Этот способ предлагает алгоритмы, обеспечивающие, чтобы параметры буфера кодированного изображения (CPB) на уровне изображения, соответствующие выполняемым на подслоях операциям декодера (HRD)) на основе единиц декодирования (DU), были включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB, и при этом поток битов данных является соответствующим, когда эта продолжительность промежутка времени между моментами извлечения единиц декодирования из буфера CPB не превышена.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI представляет собой сообщение SEI с параметрами синхронизации изображений (PT).
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что совокупность параметров буфера CPB содержит общую задержку извлечения данных из буфера CPB и задержку извлечения данных из буфера CPB для единицы доступа (AU), ассоциированной с сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение PT SEI определяет число единиц декодирования в единице AU, ассоциированной с этим сообщением PT SEI, и число единиц слоев сетевой абстракции (NAL) в единице декодирования (DU) в единице AU, ассоциированной с этим сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI), которое содержит временной идентификатор (ID) единицы SEI NAL, содержащей это сообщение DUI SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение DUI SEI определяет временной идентификатор ID наивысшего подслоя, для которого информация о задержке извлечения данных из буфера CPB содержится в сообщении DUI SEI.
Третий аспект относится к декодирующему устройству, содержащему приемник, конфигурированный для приема потока битов данных, содержащего кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), где это сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие выполняемым на подслоях операциям гипотетического эталонного декодера (HRD) на основе единиц декодирования (decoding unit (DU)); запоминающее устройство, соединенное с приемником, это запоминающее устройство сохраняет команды; и процессор, соединенный с запоминающим устройством, этот процессор конфигурирован для выполнения указанных команд, чтобы устройство декодирования декодировало кодированное изображение из потока битов данных для получения декодированного изображения.
Это устройство декодирования предлагает способ, обеспечивающий, что параметры буфера кодированного изображения (CPB) на уровне изображений, соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях, будут включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI представляет собой сообщение PT SEI, которое определяет число единиц декодирования в единице доступа (AU), ассоциированной с этим сообщением PT SEI, и при этом совокупность параметров буфера CPB содержит общую задержку извлечения данных из буфера CPB и задержку извлечения данных из буфера CPB для единицы AU, ассоциированной с этим сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI), которое содержит временной идентификатор (ID) единицы SEI NAL, содержащей это сообщение DUI SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что временной идентификатор ID определяет наивысший подслой, для которого информация о задержке извлечения данных из буфера CPB содержится в сообщении DUI SEI.
Четвертый аспект относится к кодирующему устройству, которое содержит запоминающее устройство, содержащее команды; процессор, соединенный с запоминающим устройством, где этот процессор конфигурирован для выполнения команд, в результате чего устройство кодирования: генерирует поток битов данных, содержащий кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), где это сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях; осуществляет операции декодера HRD на основе единиц DU на подслоях с использованием параметров буфера CPB для определения, является ли поток битов данных соответствующим; и передатчик, соединенный с процессором, где этот передатчик конфигурирован для передачи потока битов данных видео декодирующему устройству для видео, когда этот поток битов данных является соответствующим на основе осуществления операций декодера HRD на основе единиц DU.
Это устройство кодирования предлагает алгоритмы, обеспечивающие, что параметры буфера кодированного изображения (CPB) на уровне изображений, соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях, будут включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB, и при этом поток битов данных является соответствующим, когда продолжительность промежутка времени между моментами извлечения единиц декодирования из буфера CPB не превышена.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI является сообщением SEI с параметрами синхронизации изображений (PT).
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что совокупность параметров буфера CPB содержит общую задержку извлечения данных из буфера CPB и задержку извлечения данных из буфера CPB для единицы доступа (AU), ассоциированной с сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение PT SEI определяет число единиц декодирования в единице AU, ассоциированной с этим сообщением PT SEI, и число единиц слоев сетевой абстракции (NAL) в единице декодирования (DU) из единицы AU, ассоциированной с этим сообщением PT SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI), содержащее временной идентификатор (ID) единицы слоев сетевой абстракции (NAL) из информации SEI (SEI NAL), где эта единица содержит сообщение DUI SEI.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает, что сообщение DUI SEI определяет временной идентификатор (ID) наивысшего подслоя, для которого информация о задержке извлечения данных из буфера CPB содержится в сообщении DUI SEI.
Пятый аспект относится к устройству кодирования. Это устройство кодирования содержит приемник, конфигурированный для приема изображения, подлежащего кодированию, или для приема потока битов данных, подлежащего декодированию; передатчик, соединенный с приемником, где этот передатчик конфигурирован для передачи потока битов данных декодирующему устройству или для передачи декодированного изображения дисплею; запоминающее устройство, соединенное по меньшей мере с одним из устройств – с приемником и/или с передатчиком, это запоминающее устройство конфигурировано для сохранения команд; и процессор, соединенный с запоминающим устройством, где этот процессор конфигурирован для выполнения команд, сохраняемых в запоминающем устройстве, для осуществления какого-либо из описываемых здесь способов.
Это устройство кодирования предлагает способ, обеспечивающий, что параметры буфера кодированного изображения (CPB) на уровне изображений, соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях, будут включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В качестве варианта, в любом из предшествующих аспектов, другой вариант реализации этого аспекта предлагает дисплей, конфигурированный для представления декодированного изображения.
Шестой аспект относится к системе. Эта система содержит устройство кодирования и устройство декодирования, осуществляющее связь с этим кодирующим устройством, где это устройство кодирования или устройство декодирования содержит собственно устройство декодирования, устройство кодирования или аппаратуру кодирования, описываемые здесь.
Эта система предлагает способы, обеспечивающие, что параметры буфера кодированного изображения (CPB) на уровне изображений, соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях, будут включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
Седьмой аспект относится к средствам для кодирования. Совокупность этих средств для кодирования содержит приемные средства, конфигурированные для приема изображения, подлежащего кодированию, или для приема потока битов данных, подлежащего декодированию; передающие средства, соединенные с приемными средствами, эти передающие средства конфигурированы для передачи поток битов данных декодирующим средствам или для передачи декодированного изображения дисплейным средствам; средства для хранения информации, соединенные по меньшей мере с одним – с приемными средствами и/или с передающими средствами, эти средства для хранения информации конфигурированы для сохранения команд; и процессорные средства, соединенные со средствами для хранения информации, эти процессорные средства конфигурированы для выполнения команд, хранящихся в средствах для хранения информации, для осуществления какого-либо из способов, описываемых здесь.
Эти средства для кодирования предлагают способ, обеспечивающий, что параметры буфера кодированного изображения (CPB) на уровне изображений, соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
Для ясности, любой из приведенных выше вариантов можно комбинировать с любыми одним или несколькими другими из приведенных выше вариантов для создания нового варианта в пределах объема настоящего изобретения.
Эти и другие признаки будут лучше понятны из последующего подробного описания, рассматриваемого в сочетании с прилагаемыми чертежами и Формулой изобретения.
Краткое описание чертежей
Для более полного понимания настоящего изобретения ссылки теперь будут сделаны на последующее краткое описание, рассматриваемое в сочетании с прилагаемыми чертежами, и подробное описание, где подобные цифровые позиционные обозначения представляют подобные компоненты.
Фиг. 1 предлагает логическую схему примера способа кодирования сигнала видео.
Фиг. 2 представляет упрощенную схему примера системы кодирования и декодирования (кодек) для кодирования видео.
Фиг. 3 представляет упрощенную схему, иллюстрирующую пример кодирующего устройства для видео.
Фиг. 4 представляет упрощенную схему, иллюстрирующую пример декодирующего устройства для видео.
Фиг. 5 представляет упрощенную схему, иллюстрирующую пример гипотетического эталонного декодера (HRD).
Фиг. 6 представляет упрощенную схему, иллюстрирующую пример многослойной последовательности видео, конфигурированной для межслойного прогнозирования.
Фиг. 7 представляет упрощенную схему, иллюстрирующую пример многослойной последовательности видео, конфигурированной для временной масштабируемости.
Фиг. 8 представляет упрощенную схему, иллюстрирующую пример потока битов данных.
Фиг. 9 представляет один из вариантов способа декодирования кодированного потока битов данных видео.
Фиг. 10 представляет один из вариантов способа кодирования потока битов данных видео.
Фиг. 11 представляет упрощенную схему кодирующего устройства для видео.
Фиг. 12 представляет упрощенную схему одного из вариантов средства кодирования.
Осуществление изобретения
Сначала следует понимать, что хотя ниже приведена иллюстративная реализация одного или нескольких вариантов, описываемые здесь системы и/или способы могут быть реализованы с использованием любого числа технологий и алгоритмов, как известных в настоящее время, так и существующих. Настоящее раскрытие никоим образом не ограничивается иллюстративными вариантами реализации, чертежами и способами, иллюстрируемыми ниже, включая иллюстрируемые и описываемые здесь примеры конфигураций и реализаций, но могут быть модифицированы в пределах объема прилагаемой Формулы изобретения вместе с полным объемом эквивалентов.
Приведенные ниже термины определены следующим образом, если только они не используются здесь в противоположном контексте. В частности, последующие определения предназначены для внесения дополнительной ясности в настоящее раскрытие. Однако эти термины могут быть описаны по-разному в различных контекстах. Соответственно, следующие определения должны считаться дополнительными, и их не следует рассматривать в качестве ограничений для каких-либо других определений таких терминов здесь.
Поток битов данных представляет собой последовательность битов, содержащую данные видео, сжатые для передачи между кодирующим устройством и декодирующим устройством. Устройство кодирования представляет собой устройство, конфигурированное для использования процедур кодирования с целью сжатия данных видео и преобразования их в поток битов данных. Устройство декодирования представляет собой устройство, конфигурированное для использования процедур декодирования с целью реконструкции данных видео из потока битов данных для представления на дисплее. Изображение представляет собой массив отсчетов яркостной составляющей и/или массив отсчетов цветностной составляющей, образующие кадр или поле кадра. Изображение, кодируемое или декодируемое, может, для ясности обсуждения, называться текущим изображением. Единица слоев сетевой абстракции (NAL) представляет собой синтаксическую структуру, содержащую данные в форме первичной байтовой последовательности данных (Raw Byte Sequence Payload (RBSP)), индикацию типа данных и байты предотвращения эмуляции, которые рассеяны по желанию. Единица NAL слоя кодирования видео (video coding layer (VCL)) представляет собой единицу NAL, кодированную так, чтобы содержать данные видео, такие как кодированный срез изображения. Единица не-VCL NAL представляет собой единицу NAL, содержащую данные не-видео, такие как синтаксис и/или параметры, которые поддерживают декодирование данных видео, характеристики проверки соответствия или другие операции. Единица доступа (access unit (AU)) представляет собой группу единиц NAL, которые ассоциированы одни с другими в соответствии со специфицированным правилом классификации и относятся к одному конкретному моменту времени выхода. Единица декодирования (DU) представляет собой единицу AU или подгруппу из единицы AU и ассоциированных единиц не-VCL NAL. Слой представляет собой группу единиц VCL NAL, которые совместно используют специфицированную характеристику (например, общее разрешение, частоту кадров, размер изображения и т.п.), и ассоциированных единиц не-VCL NAL. Порядок декодирования представляет собой порядок, в котором происходит обработка синтаксических элементов в процессе декодирования. Набор параметров видео (video parameter set (VPS)) представляет собой единицу данных, содержащую параметры, относящиеся к полному видео.
Масштабируемый по времени поток битов данных представляет собой поток битов данных, кодированный в виде нескольких слоев, создающих изменяющееся во времени разрешение/частоту кадров (например, каждый слой кодирован для поддержки отличной от других слоев частоты кадров). Подслой, представляет собой масштабируемый по времени слой масштабируемого по времени потока битов данных, содержащий единицы VCL NAL с конкретным значением временного идентификатора и ассоциированные единицы не-VCL NAL. Например, временной подслой представляет собой слой, содержащий данные видео, ассоциированные с некой специфицированной частотой кадров. Представление по подслоям является подмножеством потока битов данных, содержащим единицы NAL конкретного подслоя и подслоев более низкого порядка. Следовательно, один или более временных подслоев можно комбинировать для получения представления по подслоям, которое может быть декодировано, результатом чего является последовательность видео со специфицированной частотой кадров. Выходное множество слоев (output layer set (OLS)) представляет собой множество слоев, для которого один или более слоев специфицирован (ы) в качестве выходного слоя (ев). Выходной слой представляет собой слой, назначенный для вывода (например, для вывода к дисплею). Индекс множества OLS представляет собой индекс, однозначно идентифицирующий соответствующее множество OLS. Нулевое (0-ое) множество OLS представляет собой множество OLS, содержащее только самый нижний (самого низкого порядка) слой (слой с наименьшим идентификатором слоя), и, следовательно, содержит только один выходной слой. Временной идентификатор (ID) представляет собой элемент данных, указывающий данные, соответствующие некой временной позиции в последовательности видео. Процедура выделения подпотока битов данных представляет собой процедуру удаления из потока битов данных единиц NAL, не принадлежащих целевому множеству, как это определено индексом целевого множества OLS и целевым наивысшим временным идентификатором ID. Результатом процедуры выделения подпотока битов данных является выходной подпоток битов данных, содержащий единицы NAL из потока битов данных, которые не являются частью выходного множества.
Декодер HRD представляет собой модель декодера, работающую в кодирующем устройстве. Этот декодер HRD проверяет изменчивость потоков битов данных, генерируемых в процессе кодирования, чтобы удостовериться в соответствии с заданными ограничениями. Тест на соответствие потока битов данных представляет собой тест на определение, соответствует ли кодированный поток битов данных какому-либо стандарту, такому как стандарт универсального видео кодирования (Versatile Video Coding (VVC)). Параметры декодера HRD представляют собой синтаксические элементы, которые инициализируют и/или определяют рабочие условия декодера HRD. Параметры декодера HRD на уровне последовательности представляют собой параметры декодера HRD, применимые ко всей кодированной последовательности, тогда как параметры декодера HRD на уровне изображения представляют собой параметры декодера HRD, применимые к изображениям в кодированной последовательности. Максимальный временной идентификатор (ID) декодера HRD (Htid), определяет временной идентификатор (Temporal ID) наивысшего представления по подслоям, для которого параметры декодера HRD содержаться в i-ом множестве OLS параметров декодера HRD. Рабочая точка (operation point (OP)) представляет собой временное подмножество множества OLS, идентифицированного индексом множества OLS и наивысшим временным идентификатором ID. Буфер кодированного изображения (CPB) представляет собой буфер обратного магазинного типа в декодере HRD, где в этом буфере находятся кодированные изображение в порядке декодирования для использования в процессе удостоверения соответствия потока битов данных. Буфер декодированного изображения (decoded picture buffer (DPB)) представляет собой буфер для хранения декодированных изображений с целью использования для справки, для переупорядочения вывода и/или для задержки вывода.
Сообщение с дополнительной улучшающей информацией (supplemental enhancement information (SEI)) представляет собой синтаксическую структуру со специфицированной семантикой, передающую информацию, которая не является необходимой для процедуры декодирования, с целью определить величины отсчетов декодированных изображений. Сообщение SEI с периодом буферизации (buffering period (BP)) представляет собой сообщение SEI, содержащее параметры декодера HRD для инициализации декодера HRD с целью управления буфером CPB. Сообщение SEI с параметрами синхронизации изображений (PT) представляет собой сообщение SEI, содержащее параметры декодера HRD для управления доставкой информации для единиц AU в буфере CPB и/или в буфере DPB. Сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI) представляет собой сообщение SEI, содержащее параметры декодера HRD для управления доставкой информации для единиц DU в буфере CPB и/или в буфере DPB.
Задержка извлечения данных из буфера CPB представляет собой период времени, в течение которого соответствующая текущая единица AU может оставаться в буфере CPB прежде извлечения и передачи на выход в буфер DPB. Первоначальная задержка извлечения данных из буфера CPB представляет собой задержку по умолчанию извлечения данных из буфера CPB для каждого изображения, единицы AU и/или единицы DU в поток битов данных, множество OLS и/или слой. Сдвиг извлечения из буфера CPB представляет собой позицию в буфере CPB, используемую для определения границ соответствующей единицы AU в буфере CPB. Первоначальный сдвиг извлечения из буфера CPB представляет собой сдвиг по умолчанию извлечения из буфера CPB, ассоциированный с каждым изображением, единицей AU и/или единицей DU в потоке битов данных, множестве OLS и/или слое. Информация о задержке вывода из буфера декодированного изображения (DPB) представляет собой величину периода времени, в течение которого соответствующая единица AU может оставаться в буфере DPB прежде вывода из буфера. Информация о задержке извлечения данных из буфера CPB представляет собой информацию относительно извлечения соответствующей единицы DU из буфера CPB. График доставки определяет моменты времени (синхронизацию) для доставки данных видео в и/или области запоминающего устройства, такой как буфер CPB и/или буфер DPB.
Максимальное число временных подслоев представляет собой максимальное число подслоев, для которых первоначальная задержка извлечения данных из буфера CPB и первоначальный сдвиг извлечения из буфера CPB обозначены в сообщении BP SEI. Приращение общей задержки извлечения данных из буфера CPB определяет продолжительность, в единицах долей тактового интервала, промежутка времени между номинальными моментами времени извлечения любых двух последовательных единиц DU из буфера CPB в порядке декодирования в единице AU, ассоциированной с сообщением SEI с параметрами синхронизации изображений. Приращение общей задержки извлечения данных из буфера CPB также используется для вычисления самого раннего возможного момента прихода единиц декодирования в буфер CPB для гипотетического планировщика потоков (hypothetical stream scheduler (HSS)).
Число единиц декодирования определяет число единиц DU в единице AU, с которой ассоциировано сообщение SEI с параметрами синхронизации изображений. Число единиц NAL определяет число единиц NAL в i-ой единице DU из единицы AU, с которой ассоциировано сообщение PT SEI. Флаг общей задержки извлечения данных из буфера CPB определяет, присутствуют ли синтаксические элементы относительно приращения общей задержки извлечения данных из буфера CPB в сообщении PT SEI.
Приращение задержки извлечения данных из буфера CPB определяет продолжительность, в единицах долей тактового интервала, промежутка времени между номинальными моментами извлечения из буфера CPB (i+1)-ой единицы DU и i-ой единицы DU, в порядке декодирования, в единице AU, ассоциированной с сообщением PT SEI.
Синтаксический элемент максимального числа подслоев согласно набору VPS минус один (vps_max_sublayers_minus1) представляет собой синтаксический элемент, специфицирующий максимальное число временных подслоев, которые могут присутствовать в слое, специфицированном набором VPS.
Здесь используются следующие акронимы – единица доступа (Access Unit (AU)), блок дерева кодирования (Coding Tree Block (CTB)), единица дерева кодирования (Coding Tree Unit (CTU)), единица кодирования (Coding Unit (CU)), кодированная последовательность слоев видео (Coded Layer Video sequence (CLVS)), начало кодированной последовательности слоев видео (Coded Layer Video sequence Start (CLVSS)), кодированная последовательность видео (Coded video sequence (CVS)), начало кодированной последовательности видео (Coded video sequence Start (CVSS)), объединенная группа экспертов в области видео (Joint Video Experts Team (JVET)), гипотетический эталонный декодер (Hypothetical reference decoder (HRD)), множество плиток с ограниченным движением (Motion Constrained Tile Set (MCTS)), максимальная единица передачи (Maximum Transfer Unit (MTU)), слой сетевой абстракции (Network Abstraction Layer (NAL)), выходное множество слоев (Output Layer Set (OLS)), порядковый номер изображения (Picture Order Count (POC)), точка произвольного доступа (Random Access Point (RAP)), первичная байтовая последовательность данных (Raw Byte Sequence Payload (RBSP)), набор параметров последовательности (Sequence Parameter Set (SPS)), набор параметров видео (Video Parameter Set (VPS)), универсальное видео кодирование (Versatile Video Coding (VVC)).
Для уменьшения размера файлов видео при минимальной потере данных могут быть использованы многочисленные способы сжатия видео. Например, совокупность способов сжатия видео может содержать осуществление пространственного (например, внутрикадрового) прогнозирования и/или временного (например, межкадрового) прогнозирования для уменьшения или устранения избыточности данных в последовательностях видео. Для кодирования видео на блочной основе срез видео (например, изображение видео или часть изображения видео) может быть разбит на видео блоки, которые могут также называться, блоками дерева, блоками дерева кодирования (CTB), единицами дерева кодирования (CTU), единицами кодирования (CU) и/или узлами кодирования. Видео блоки в срезе с внутрикадровым кодированием (I) в изображении кодируют с использованием пространственного прогнозирования относительно опорных отсчетов в соседних блоках того же самого изображения. Видео блоки в срезе изображения с однонаправленным прогнозированием (P) или двунаправленным прогнозированием (B) при межкадровом кодировании могут быть кодированы с использованием пространственного прогнозирования относительно опорных отсчетов в соседних блоках того же самого изображения или временного прогнозирования относительно опорных отсчетов в других опорных изображениях. Изображения могут называться кадрами и/или картинами, а опорные изображения могут называться опорными кадрами и/или картинами. Результатом пространственного или временного прогнозирования является блок прогнозирования, представляющий блок изображения. Данные остатка представляют разности пикселей между блоком исходного изображения и блоком прогнозирования. Соответственно, кодирование блока с межкадровым кодированием осуществляют в соответствии с вектором движения, указывающим на блок опорных отсчетов, образующий блок прогнозирования, и с данными остатками, указывающими разность между кодированным блоком и блоком прогнозирования. Кодирование блока с внутрикадровым прогнозированием осуществляют в соответствии с режимом внутрикадрового кодирования и данными остатка. Для дальнейшего сжатия данные остатка могут быть преобразованы из областей пикселей в преобразованную область. Результатом этого являются коэффициенты преобразования остатка, которые могут быть квантованы. Квантованные коэффициенты преобразования могут быть первоначально организованы в виде двумерного массива. Эти квантованные коэффициенты преобразования можно сканировать с целью получения одномерного вектора коэффициентов преобразования. Для достижения еще большей степени сжатия может быть применено энтропийное кодирование. Такие способы сжатия видео более подробно осуждаются ниже.
Для того чтобы обеспечить возможность точного декодирования кодированного видео, кодирование и декодирование видео осуществляют согласно соответствующим стандартам кодирования видео. К таким стандартам кодирования видео относятся разработанный Международным союзом по телекоммуникациям (International Telecommunication Union (ITU)) Сектором стандартизации (Standardization Sector (ITU-T)) стандарт H.261, разработанный Международной организацией по стандартизации/Международной электротехнической комиссией (International Organization for Standardization/International Electrotechnical Commission (ISO/IEC)) Группой экспертов по кинематографии (Motion Picture Experts Group (MPEG)) стандарт MPEG-1 Part 2, а также стандарты ITU-T H.262 или ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, стандарт Усовершенствованного видео кодирования (Advanced Video Coding (AVC)), также известный как ITU-T H.264 или ISO/IEC MPEG-4 Part 10, и стандарт Высокоэффективного видео кодирования (High Efficiency Video Coding (HEVC)), также известный как ITU-T H.265 или MPEG-H Part 2. Стандарт AVC имеет такие расширения как Масштабируемое видео кодирование (Scalable Video Coding (SVC)), Многовидовое видео кодирование (Multiview Video Coding (MVC)) и Многовидовое видео кодирование плюс глубина (Multiview Video Coding plus Depth (MVC+D)), а также трехмерный стандарт (3D) AVC (3D-AVC). Стандарт HEVC содержит такие расширения как Масштабируемое кодирование HEVC (Scalable HEVC (SHVC)), Многовидовое кодирование HEVC (Multiview HEVC (MV-HEVC)) и 3D HEVC (3D-HEVC). Объединенная группа экспертов в области видео (JVET), созданная организациями ITU-T и ISO/IEC начала разработку стандарта кодирования видео, называемого Универсальное видео кодирование (Versatile Video Coding (VVC)). Стандарт кодирования VVC входит в Рабочий проект (Working Draft (WD)), который содержит документ JVET-O2001-v14.
Последняя версия проекта стандарта VVC предлагает специфику для сообщений SEI с параметрами синхронизации изображений (PT), сообщений SEI с информацией о единицах декодирования (DUI) (сообщения DUI SEI), операций декодера HRD на основе единиц AU (например, операции декодера HRD, применяемой ко всей единице AU) и операции декодера HRD на основе единиц декодирования (DU) (например, операции декодера HRD, применяемой к одной единице декодирования или изображению в единице AU).
Параметры буфера кодированного изображения (CPB) на уровне изображения, необходимые для операций декодера HRD на основе единицы AU и для слоев, и для подслоев, передают в виде сигнализации в сообщениях PT SEI. Параметры буфера CPB, необходимые для операций декодера HRD на основе единиц DU для слоев, передают в виде сигнализации либо в сообщении PT SEI, либо в сообщении DUI SEI. Однако параметры буфера CPB, необходимые для операций декодера HRD на основе единиц DU для подслоев, исключены из сообщения PT SEI и сообщения DUI SEI.
Здесь предложены способы, обеспечивающие, что параметры буфера CPB на уровне изображения, соответствующие операциям декодера HRD на основе единиц DU на подслоях, будут включены в сообщение SEI. Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
Фиг. 1 представляет логическую схему примера способа 100 кодирования сигнала видео. Конкретнее, сигнал видео кодируют в кодирующем устройстве. Процедура кодирования сжимает сигнал видео с использованием различных механизмов для уменьшения размера файла видео. Меньший размер файла позволяет передавать сжатый файл видео пользователю, уменьшив при этом связанные с этим издержки полосы пропускания. Затем декодер осуществляет декодирование сжатого файла видео с целью реконструкции исходного сигнала видео для представления на дисплее конечному пользователю. Процедура декодирования, в общем, зеркально отражает процедуру кодирования, чтобы позволить декодирующему устройству согласованно реконструировать сигнал видео.
На этапе 101, сигнал видео поступает на вход кодирующего устройства. Например, этот сигнал видео может представлять собой несжатый файл видео, сохраняемый в запоминающем устройстве. В качестве другого примера, этот файл видео может быть захвачен устройством для захвата видео, таким как видеокамера, и закодирован для поддержки потокового видео в реальном времени. Этот файл видео может содержать и аудио составляющую, и видео составляющую. Видео составляющая содержит ряд кадров изображений, которые при просмотре их последовательно создают визуальное впечатление движения. Эти кадры содержат пиксели, выражаемые в терминах освещенности, называемой здесь яркостной составляющей (или отсчетами яркостной составляющей), и цвета, называемого здесь цветностными составляющими (или отсчетами цветностных составляющих). В некоторых вариантах кадры могут содержать значения глубины для поддержки трехмерного видения.
На этапе 103, видео разбивают на блоки. Процедура разбиения содержит подразделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, в стандарте высокоэффективного видео кодирования (HEVC) (также известном под названиями H.265 и MPEG-H Part 2) кадр может быть сначала разделен на единицы дерева кодирования (CTU), которые представляют собой блоки заданного размера (например, шестьдесят четыре пикселя на шестьдесят четыре пикселя). Эти единицы CTU содержат отсчеты обеих – яркостной и цветностной, составляющих. Деревья кодирования могут быть использованы для разделения единиц CTU на блоки и затем рекурсивного дальнейшего подразделения этих блоков до тех пор, пока не будут достигнуты конфигурации, поддерживающие дальнейшее кодирование. Например, яркостные составляющие кадра могут быть подвергнуты подразделению до тех пор, пока не будут получены индивидуальные блоки, имеющие относительно однородные яркостные величины. Далее, цветностные составляющие кадра могут быть подразделены до тех пор, пока не будут получены индивидуальные блоки, имеющие относительно однородные цветовые величины. Соответственно, механизмы разбиения варьируются в зависимости от контента кадров видео.
На этапе 105, разнообразные механизмы сжатия используются для сжатия блоков изображения, полученных в результате разбиения на этапе 103. Например, может быть использовано межкадровое прогнозирование и/или внутрикадровое прогнозирование. Межкадровое прогнозирование рассчитано на извлечение преимуществ из того факта, что объекты в общей сцене имеют тенденцию появляться в последовательных кадрах. Соответственно, блок, показывающий объект в опорном кадре, нет необходимости описывать повторно в соседних кадрах. В частности, объект, такой как стол, может оставаться в постоянном положении в продолжение множества кадров. Следовательно, стол описывают один раз, а соседние кадры могу обращаться назад, к опорному кадру. Для согласования объектов в пределах множества кадров могут быть использованы механизмы сопоставления с образцом. Далее, движущиеся объекты могут быть представлены во множестве кадров, например, вследствие движения объекта или движения видеокамеры. В качестве конкретного примера, видео может показывать автомобиль, который движется на экране на протяжении множества кадров. Для описания такого движения могут быть использованы векторы движения. Вектор движения представляет собой двумерный вектор, создающий сдвиг от координат некого объекта в одном из кадров к координатам этого же объекта в опорном кадре. При таком подходе, межкадровое прогнозирование позволяет кодировать блок изображения в текущем кадре в виде множества векторов движения, указывающих сдвиг от соответствующего блока в опорном кадре.
Способ внутрикадрового прогнозирования кодирует блоки в общем кадре. Способ внутрикадрового прогнозирования извлекает преимущества из того факта, что яркостная и цветностные составляющие имеют тенденцию группироваться в одном кадре. Например, площадка зеленого цвета на участке дерева имеет тенденцию располагаться рядом с аналогичными площадками зеленого цвета. Способ внутрикадрового прогнозирования использует большое число направленных режимов прогнозирования (например, тридцать три в стандарте кодирования HEVC), планарный режим и режим постоянного тока (DC). Направленные режимы указывают, что текущий блок подобен/является таким же, как отсчеты из соседнего блока в соответствующем направлении. Планарный режим, указывает, что ряд блоков вдоль строки/столбца (например, плоскость) может быть интерполирован на основе соседних блоков на краях строки. Планарный режим, по существу, обозначает плавный переход яркости/цвета по строке/столбцу с использованием относительно постоянной крутизны изменения величин. Наконец, DC-режим используется для сглаживания границ и обозначает, что некий блок подобен/является таким же, как средняя величина, ассоциированная с отсчетами из всех соседних блоков, ассоциированных с угловыми направлениями направленных режимов прогнозирования. Соответственно, блоки с внутрикадровым прогнозированием могут представлять блоки изображения в виде разнообразных относительных величин режимов прогнозирования вместо фактических величин. Далее, блоки с внутрикадровым прогнозированием могут представлять блоки изображения в виде величин векторов движения вместо фактических величин. В любом случае, блоки прогнозирования могут, в некоторых ситуациях, неточно представлять блоки изображения. Любые различия сохраняются в блоках остатка. К этим блокам остатка могут быть применены преобразования для дальнейшего сжатия файла.
На этапе 107, могут быть применены различные способы фильтрации. В стандарте кодирования HEVC фильтры применяют в соответствии со схемой внутриконтурной фильтрации. Результатом прогнозирования на основе блоков, обсуждавшегося выше, может быть создание в декодирующем устройстве блочных изображений. Далее, схема прогнозирования на основе блоков позволяет кодировать блок и затем реконструировать кодированный блок для использования в последующем в качестве опорного блока. Схема внутриконтурной фильтрации итеративно применяет фильтры подавления шумов, деблокирующие фильтры, адаптивные контурные фильтры и нелинейные фильтры с адаптивным смещением (sample adaptive offset (SAO)) к блокам/кадрам. Эти фильтры подавляют такие блокирующие артефакты, так что можно точно реконструировать кодированный файл. Далее, такие фильтры подавляют артефакты в реконструированных опорных блоках, так что эти артефакты будут с меньшей вероятностью порождать дополнительные артефакты в последующих блоках, кодируемых на основе реконструированных опорных блоков.
Когда сигнал видео уже был разбит, сжат и отфильтрован, полученные в результате данные кодируют, превращая их в поток битов данных, на этапе 109. Этот поток битов данных содержит данные, обсуждавшиеся выше, равно как любые сигнализационные данные, нужные для поддержки правильной реконструкции сигнала видео в декодирующем устройстве. Например, такие данные могут содержать данные разбиения, данные прогнозирования, блоки остатка и разнообразные флаги, представляющие команды кодирования декодирующему устройству. Этот поток битов данных может быть сохранен в запоминающем устройстве для передачи декодирующему устройству по запросу. Этот поток битов данных может быть также передан в режиме широкого и/или многоадресного вещания нескольким декодирующим устройствам. Создание потока битов данных является итеративной процедурой. Соответственно, этапы 101, 103, 105, 107 и 109 могут осуществляться непрерывно и/или одновременно по большому числу кадров и блоков. Порядок, показанный на фиг. 1, представлен здесь только для ясности и облегчения обсуждения и не предназначен для ограничения процедуры кодирования видео каким-то конкретным порядком.
Устройство декодирования принимает поток битов данных и начинает процедуру декодирования на этапе 111. В частности, устройство декодирования применяет схему энтропийного декодирования для преобразования потока битов данных в соответствующие синтаксические данные и данные видео. Устройство декодирования использует синтаксические данные из потока битов данных для определения разбиения на кадры на этапе 111. Это разбиение должно быть согласовано с результатами разбиения на блоки на этапе 103. Теперь будет описано энтропийное кодирование/декодирование, применяемое на этапе 111. Устройство кодирования делает множество вариантов в ходе процедуры сжатия, таких как выбор схем разбиения на блоки из ряда возможных вариантов на основе пространственного расположения величин во входном изображении (ях). Передача сигнализации о точном выборе может использовать большое число бинов. Как используется здесь, бин представляет собой двоичную величину, рассматриваемую в качестве переменной (например, величину бита, которая можно изменяться в зависимости от контекста). Энтропийное кодирование позволяет кодирующему устройству отбрасывать любые опции, которые являются очевидно нежизнеспособными для конкретного случая, оставляя набор допустимых опций. Каждой допустимой опции затем назначают кодовое слово. Длина этих кодовых слов зависит от числа допустимых опций (например, один бин для двух опций, два бина для трех или четырех опций и т.д.). Затем устройство кодирования кодирует кодовое слово для выбранной опции. Такая схема уменьшает размер кодовых слов, поскольку кодовые слова являются настолько большими, насколько это необходимо для однозначной индикации выбора из небольшого подмножества допустимых опций, в противоположность потенциально большому множеству всех возможных опций. Устройство декодирования затем декодирует выбор путем определения множества допустимых опций способом, аналогичным способу в кодирующем устройстве. Определив множество допустимых опций, устройство декодирования может прочитать кодовое слово и определить выбор, сведанный кодирующим устройством.
На этапе 113, устройство декодирования осуществляет декодирование блоков. В частности, устройство декодирования использует обратные преобразования для генерации блоков остатка. Затем это устройство декодирования использует блоки остатка и соответствующие блоки прогнозирования для реконструкции блоков изображения в соответствии с разбиением. Эти блоки прогнозирования могут представлять собой как блоки с межкадровым прогнозированием, так и блоки с внутрикадровым прогнозированием, как их генерирует устройство кодирования на этапе 105. Реконструированные блоки изображения затем помещают в кадры реконструированного сигнала видео в соответствии с данными разбиения, найденными на этапе 111. Синтаксис для этапа 113 также может быть передан в виде сигнализации в потоке битов данных посредством энтропийного кодирования, как обсуждается выше.
На этапе 115, осуществляют фильтрацию кадров реконструированного сигнала видео способом, аналогичным этапу 107 в кодирующем устройстве. Например, к кадрам можно применять фильтры для подавления шумов, деблокирующие фильтры, адаптивные контурные фильтры и фильтры SAO для устранения блокирующих артефактов. После фильтрации кадров сигнал видео может быть передан дисплею на этапе 117 для просмотра конечным пользователем.
На фиг. 2 представлена упрощенная схема примера системы 200 кодирования и декодирования (кодек) для кодирования видео. В частности, система 200 кодека предоставляет функциональные возможности для поддержки осуществления способа 100. Система 200 кодека является обобщенной с целью изображения компонентов, используемых и в кодирующем устройстве, и в декодирующем устройстве. Система 200 кодека принимает и разбивает сигнал видео, как это обсуждается применительно к этапам 101 и 103 способа 100, результатом чего является прошедший разбиение сигнал 201 видео. Затем система 200 кодека сжимает этот прошедший разбиение сигнал 201 видео и превращает его в кодированный поток битов данных, когда работает в качестве кодирующего устройства, как это обсуждалось в отношении этапов 105, 107 и 109 способа 100. Когда система 200 кодека работает в качестве декодирующего устройства, она генерирует выходной сигнал видео на основе потока битов данных, как это обсуждалось в отношении этапов 111, 113, 115 и 117 способа 100. Система 200 кодека содержит компонент 211 общего управления кодирующим устройством, компонент 213 преобразовательного масштабирования и квантования, компонент 215 оценки внутрикадрового прогнозирования, компонент 217 внутрикадрового прогнозирования, компонент 219 компенсации движения, компонент 221 оценки движения, компонент 229 масштабирования и обратного преобразования, компонент 227 анализа управления фильтрами, компонент 225 внутриконтурных фильтров, компонент 223 буфера декодированного изображения и компонент 231 форматирования заголовка и контекстно-адаптивного двоичного арифметического кодирования (CABAC). Такие компоненты соединены между собой, как показано на чертеже. На фиг. 2, сплошные линии обозначают перемещение данных, подлежащих кодированию/декодированию, тогда как штриховые линии обозначают перемещение данных управления работой других компонентов. Компоненты системы 200 кодека могут все присутствовать в кодирующем устройстве. Устройство декодирования может содержать подмножество компонентов системы 200 кодека. Например, устройство декодирования может содержать компонент 217 внутрикадрового прогнозирования, компонент 219 компенсации движения, компонент 229 масштабирования и обратного преобразования, компонент 225 внутриконтурных фильтров и компонент 223 буфера декодированного изображения. Эти компоненты будут теперь рассмотрены.
Прошедший разбиение сигнал 201 видео представляет собой захваченную последовательность видео, которая была разбита на блоки пикселей в соответствии с деревом кодирования. Дерево кодирования использует различные режимы разбиения для подразделения блока пикселей на блоки пикселей меньшего размера. Эти блоки меньшего размера могут быть далее подразделены на еще меньшие блоки. Такие блоки могут называться узлами дерева кодирования. Имеющие больший размер материнские блоки разбивают на имеющие меньший размер дочерние блоки. Число раз, когда производится подразделение узла, называется глубиной узла/дерева кодирования. Разделенные блоки могут быть в некоторых случаях включены в единицы кодирования (CU). Например, единица CU может быть подразделением единицы CTU, содержащим блок яркостной составляющей, блок (и) красной разностной цветностной составляющей (Cr) и блок (и) разностной цветностной составляющей (Cb) вместе с соответствующими синтаксическими командами для единицы CU. Совокупность режимов разбиения может содержать двоичное дерево (binary tree (BT)), троичное дерево (triple tree (TT)) и дерево квадратов или четвертичное дерево (quad tree (QT)), используемые для разбиения узла на два, три или четыре дочерних узла, соответственно, различной формы в зависимости от применяемых режимов разбиения. Прошедший разбиение сигнал 201 видео направляют компоненту 211 общего управления кодирующим устройством, компоненту 213 преобразовательного масштабирования и квантования, компоненту 215 оценки внутрикадрового прогнозирования, компоненту 227 анализа управления фильтрами и компоненту 221 оценки движения для сжатия.
Компонент 211 общего управления кодирующим устройством конфигурирован для принятия решений относительно кодирования изображений из последовательности видео и превращения их в поток битов данных в соответствии с ограничениями приложений. Например, компонент 211 общего управления кодирующим устройством управляет оптимизацией соотношения между скоростью передачи битов данных/размером потока битов данных и качеством реконструкции. Такие решения могут быть приняты на основе доступности пространства для хранения информации/полосы пропускания и требований к разрешению изображения. Этот компонент 211 общего управления кодирующим устройством также управляет использованием буфера с учетом скорости передачи данных, чтобы ослабить проблемы с недостаточным заполнением и с переполнением буфера. Для решения этих проблем компонент 211 общего управления кодирующим устройством управляет разбиением, прогнозированием и фильтрацией, осуществляемыми другими компонентами. Например, компонент 211 общего управления кодирующим устройством может динамически увеличивать сложность сжатия, чтобы увеличить разрешение и повысить степень использования полосы пропускания, или уменьшить сложность сжатия, уменьшить разрешение и снизить степень использования полосы пропускания. Следовательно, компонент 211 общего управления кодирующим устройством управляет другими компонентами системы 200 кодека, чтобы сбалансировать качество реконструкции сигнала видео с соображениями относительно скорости передачи битов данных. Этот компонент 211 общего управления кодирующим устройством генерирует данные управления, которые управляют работой других компонентов. Эти данные управления также пересылают компоненту 231 форматирования заголовка и кодирования CABAC для кодирования и встраивания в поток битов данных, чтобы сообщить параметры для декодирования в декодирующем устройстве.
Прошедший разбиение сигнал 201 видео также передают компоненту 221 оценки движения и компоненту 219 компенсации движения для осуществления межкадрового прогнозирования. Кадр или срез прошедшего разбиение сигнала 201 видео может быть разбит на несколько видео блоков. Компонент 221 оценки движения и компонент 219 компенсации движения осуществляют кодирование в режиме межкадрового прогнозирования применительно к принятому видео блоку относительно одного или нескольких блоков в одном или нескольких опорных кадрах для реализации временного прогнозирования. Система 200 кодека можно произвести несколько кодирующих проходов, например, чтобы выбрать соответствующий режим кодирования для каждого блока данных видео.
Компонент 221 оценки движения и компонент 219 компенсации движения могут быть в высокой степени интегрированы один с другим, но иллюстрированы на чертеже по отдельности из концептуальных соображений. Оценка движения, осуществляемая компонентом 221 оценки движения, представляет собой процедуру генерации векторов движения, которые оценивают движение для видео блоков. Вектор движения, например, может обозначать смещение кодируемого объекта относительно блока прогнозирования. Блок прогнозирования представляет собой блок, для которого обнаружено, что он близко согласован с блоком, подлежащим кодированию, в терминах разности пикселей. Блок прогнозирования может также называться опорным блоком. Такая разность пикселей может быть определена суммой абсолютных разностей (sum of absolute difference (SAD)), суммой квадратов разностей (sum of square difference (SSD)) или другими метрическими показателями разностей. Стандарт кодирования HEVC использует несколько кодируемых объектов, включая единицу CTU, блоки дерева кодирования (CTB) и единицы CU. Например, единица CTU может быть разбита на блоки CTB, которые могут быть разбиты на блоки CB для включения в единицы CU. Единица CU может быть кодирована как единица прогнозирования (prediction unit (PU)), содержащая данные прогнозирования, и/или как единица преобразования (transform unit (TU)), содержащая преобразованные данные остатка для единицы CU. Компонент 221 оценки движения генерирует векторы движения, единицы PU и единицы TU с использованием анализа соотношения между скоростью передачи данных и искажениями в качестве части процедуры оптимизации соотношения между скоростью передачи данных и искажениями. Например, компонент 221 оценки движения может определить несколько опорных блоков, несколько векторов движения и т.п. для текущего блока/кадра и может выбрать опорные блоки, векторы движения и т.п., имеющие наилучшие характеристики с точки зрения соотношения между скоростью передачи данных и искажениями. Эти наилучшие характеристики соотношения между скоростью передачи данных и искажениями балансируют качество реконструкции видео (например, количество данных, теряемых при сжатии) с эффективностью кодирования (например, размером окончательно кодированных данных).
В некоторых примерах, система 200 кодека может вычислять величины для субцелочисленных позиций пикселей в опорных изображениях, сохраняемых в компоненте 223 буфера декодированного изображения. Например, система 200 кодека для видео может интерполировать величины в позициях четверть пикселя, в позициях одна восьмая пикселя или в других дробных позициях пикселей в опорном изображении. Поэтому, компонент 221 оценки движения могут осуществить поиск движения относительно позиций полных пикселей и позиций дробных пикселей и передать на выход вектор движения с точностью до дробных пикселей. Этот компонент 221 оценки движения вычисляет вектор движения для единицы PU видео блока в срезе, кодированном в режиме межкадрового прогнозирования, путем сравнения положения единицы PU с положением блока прогнозирования в опорном изображении. Компонент 221 оценки движения передает на выход вычисленный вектор движения в качестве данных движения компоненту 231 форматирования заголовка и кодирования CABAC для кодирования и движения компоненту 219 компенсации движения.
Процедура компенсации движения, осуществляемая компонентом 219 компенсации движения, может содержать выборку или генерацию блока прогнозирования на основе вектора движения, определяемого компонентом 221 оценки движения. Снова, компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы в некоторых примерах. После приема вектора движения для единицы PU для текущего видео блока, компонент 219 компенсации движения может определить положение блока прогнозирования, на который указывает вектор движения. Видео блок остатка затем формируют путем вычитания величин пикселей из блока прогнозирования из величин пикселей текущего видео блока, кодируемого в настоящий момент, получая величины разностей пикселей. В общем, компонент 221 оценки движения осуществляет оценку движения относительно яркостных составляющих, а компонент 219 компенсации движения использует векторы движения, вычисленные на основе яркостных составляющих, для обеих цветностных составляющих и яркостных составляющих. Блок прогнозирования и блок остатка передают компоненту 213 преобразовательного масштабирования и квантования.
Прошедший разбиение сигнал 201 видео также передают компоненту 215 оценки внутрикадрового прогнозирования и компоненту 217 внутрикадрового прогнозирования. Как компонент 221 оценки движения и компонент 219 компенсации движения, компонент 215 оценки внутрикадрового прогнозирования и компонент 217 внутрикадрового прогнозирования могут быть интегрированы в высокой степени, но иллюстрированы по отдельности из концептуальных соображений. Компонент 215 оценки внутрикадрового прогнозирования и компонент 217 внутрикадрового прогнозирования осуществляют внутрикадровое прогнозирование текущего блока относительно блоков в текущем кадре в качестве альтернативы межкадровому прогнозированию, осуществляемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 оценки внутрикадрового прогнозирования определяет режим внутрикадрового прогнозирования для использования при кодировании текущего блока. В некоторых примерах, компонент 215 оценки внутрикадрового прогнозирования выбирает соответствующий режим внутрикадрового прогнозирования для кодирования текущего блока из нескольких протестированных режимов внутрикадрового прогнозирования. Выбранные режимы внутрикадрового прогнозирования затем передают компоненту 231 форматирования заголовка и кодирования CABAC для кодирования.
Например, компонент 215 оценки внутрикадрового прогнозирования вычисляет величины соотношения между скоростью передачи данных и искажениями с использованием анализа этого соотношения для различных тестируемых режимов внутрикадрового прогнозирования, и выбирает режим внутрикадрового прогнозирования, имеющий наилучшие характеристики соотношения между скоростью передачи данных и искажениями из совокупности протестированных режимов. Анализ соотношения между скоростью передачи данных и искажениями в общем случае определяет величину искажений (или ошибки) между кодированным блоком и первоначальным, некодированным блоком, который был кодирован для получения кодированного блока, равно как скорости передачи битов данных (например, число битов), используемой для генерации кодированного блока. Компонент 215 оценки внутрикадрового прогнозирования вычисляет соотношения между искажениями и скоростями передачи данных для различных кодированных блоков с целью определения, какой из режимов внутрикадрового прогнозирования предоставляет наилучшую величину соотношения между скоростью передачи данных и искажениями для рассматриваемого блока. В дополнение к этому, компонент 215 оценки внутрикадрового прогнозирования может быть конфигурирован для кодирования блоков глубины из карты глубины с использованием режима моделирования глубины (depth modeling mode (DMM)) на основе оптимизации соотношения между скоростью передачи данных и искажениями (rate-distortion optimization (RDO)).
Компонент 217 внутрикадрового прогнозирования может генерировать блок остатка из блока прогнозирования на основе выбранных режимов внутрикадрового прогнозирования, определяемых компонентом 215 оценки внутрикадрового прогнозирования, когда это осуществляется в кодирующем устройстве, или считывать блок остатка из потока битов данных, когда это осуществляется в декодирующем устройстве. Этот блок остатка содержит разности величин между блоком прогнозирования и исходным блоком, представленные в виде матрицы. Блок остатка затем передают компоненту 213 преобразовательного масштабирования и квантования. Компонент 215 оценки внутрикадрового прогнозирования и компонент 217 внутрикадрового прогнозирования могут работать и с яркостными, и с цветностными составляющими.
Компонент 213 преобразовательного масштабирования и квантования конфигурирован для дальнейшего сжатия блока остатка. Этот компонент 213 преобразовательного масштабирования и квантования применяет преобразование, такое как дискретное косинусное преобразование (discrete cosine transform (DCT)), дискретное синусное преобразование (discrete sine transform (DST)) или концептуально аналогичное преобразование, к блоку остатка, генерируя видео блок, содержащий величины коэффициентов преобразования остатка. Могут быть также использованы вейвлетное преобразование, целочисленное преобразование, преобразование по поддиапазонам или преобразования других типов. Такое преобразование может перевести информацию остатка из области величин пикселей в преобразованную область, такую как частотная область. Компонент 213 преобразовательного масштабирования и квантования также конфигурирован для масштабирования преобразованной информации остатка, например, на основе частоты. Такое масштабирование использует применение масштабного коэффициента к информации остатка, так что разную частотную информацию квантуют с различными величинами зернистости, что может повлиять на конечное визуальное качество реконструированного видео. Компонент 213 преобразовательного масштабирования и квантования также конфигурирован для квантования коэффициентов преобразования с целью дальнейшего уменьшения скорости передачи битов данных. Процедура преобразования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована путем регулирования параметра квантования. В некоторых примерах, компонент 213 преобразовательного масштабирования и квантования может затем осуществить сканирование матрицы, содержащей квантованные коэффициенты преобразования. Эти квантованные коэффициенты преобразования передают компоненту 231 форматирования заголовка и кодирования CABAC для кодирования и преобразования в поток битов данных.
Компонент 229 масштабирования и обратного преобразования применяет операцию, обратную операциям компонента 213 преобразовательного масштабирования и квантования для поддержки оценки движения. Компонент 229 масштабирования и обратного преобразования применяет обратные масштабирование, преобразование и/или квантование для реконструкции блока остатка в области пикселей, например, для использования позднее в качестве опорного блока, который может стать блоком прогнозирования для другого текущего блока. Компонент 221 оценки движения и/или компонент 219 компенсации движения может вычислить опорный блок путем суммирования блока остатка с соответствующим блоком прогнозирования для использования при оценке движения более позднего блока/кадра. К реконструированным опорным блокам применяют фильтры для подавления артефактов, появляющихся в процессе масштабирования, квантования и преобразования. Такие артефакты могли бы в противном случае вызвать неточное прогнозирование (и порождать дополнительные артефакты) при прогнозировании последующих блоков.
Компонент 227 анализа управления фильтрами и компонент 225 внутриконтурных фильтров применяют фильтры к блокам остатка и/или к реконструированным блокам изображения. Например, преобразованный блок остатка от компонента 229 масштабирования и обратного преобразования может быть скомбинирован с соответствующим блоком прогнозирования от компонента 217 внутрикадрового прогнозирования и/или от компонента 219 компенсации движения для реконструкции исходного блока изображения. Эти фильтры могут быть затем применены к реконструированному блоку изображения. В некоторых примерах, фильтры могут быть вместо этого применены к блокам остатка. Как и другие компоненты, показанные на фиг. 2, компонент 227 анализа управления фильтрами и компонент 225 внутриконтурных фильтров в высокой степени интегрированы и могут быть реализованы совместно, но показаны по отдельности из концептуальных соображений. Фильтры, применяемые к реконструированным опорным блокам, применяются к конкретным пространственным областям и содержат множество параметров для регулирования того, как применять такие фильтры. Компонент 227 анализа управления фильтрами анализирует реконструированные опорные блоки для определения, где следует применять такие фильтры, и установления соответствующих параметров. Такие данные передают компоненту 231 форматирования заголовка и кодирования CABAC в качестве данных управления фильтрами для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе данных управления фильтром. Совокупность фильтров может содержать деблокирующий фильтр, фильтр для подавления шумов, фильтр SAO и адаптивный контурный фильтр. Такие фильтры могут быть применены в пространственной/пиксельной области (например, к реконструированному блоку пикселей) или в частотной области, в зависимости от примера.
При работе в качестве кодирующего устройства, фильтрованный реконструированный блок изображения, блок остатка и/или блок прогнозирования сохраняют в компоненте 223 буфера декодированного изображения для использования позже при оценке движения, как обсуждается выше. При работе в качестве декодирующего устройства, компонент 223 буфера декодированного изображения сохраняет и передает реконструированные и фильтрованные блоки дисплею в качестве части выходного сигнала видео. Компонент 223 буфера декодированного изображения может представлять собой какое-либо запоминающее устройство, способное сохранять блоки прогнозирования, блоки остатка и/или реконструированные блоки остатка.
Компонент 231 форматирования заголовка и кодирования CABAC принимает данные от различных компонентов системы 200 кодека и кодирует такие данные, превращая их в кодированный поток битов данных для передачи декодирующему устройству. В частности, компонент 231 форматирования заголовка и кодирования CABAC генерирует различные заголовки для кодирования данных управления, таких как общие данные управления и данные управления фильтрами. Далее, данные прогнозирования, включая данные внутрикадрового прогнозирования и данные движения, равно как данные остатка в форме данных квантованных коэффициентов преобразования все кодируют и превращают в поток битов данных. Окончательный поток битов данных содержит всю информацию, необходимую декодирующему устройству для реконструкции исходного прошедшего разбиения сигнал 201 видео. Такая информация может также содержать таблицы индексов режимов внутрикадрового прогнозирования (также называются таблицами отображения кодовых слов), дефиниции контекстов кодирования для различных блоков, указания наиболее вероятных режимов внутрикадрового прогнозирования, указание информации о разбиении и т.п. Такие данные могут быть кодированы с использованием энтропийного кодирования. Например, эта информация может быть кодирована с использованием контекстно-адаптивного кодирования в коде переменной длины (context adaptive variable length coding (CAVLC)), кодирования CABAC, контекстно-адаптивного двоичного арифметического кодирования на основе синтаксиса (syntax-based context-adaptive binary arithmetic coding (SBAC)), энтропийного кодирования с разбиением интервалов вероятности (probability interval partitioning entropy (PIPE)) или другого способа энтропийного кодирования. После энтропийного кодирования полученный кодированный поток битов данных может быть передан другому устройству (например, декодирующему устройству для видео) или архивирован для передачи или вызова позже.
На фиг. 3 представлена блок-схема, иллюстрирующая пример кодирующего устройства 300 для видео. Устройство кодирования 300 для видео может быть использовано для осуществления функции кодирования в системе 200 кодека и/или осуществления этапов 101, 103, 105, 107 и/или 109 способа 100. Устройство кодирования 300 разбивает входной сигнал видео, результатом чего является прошедший разбиение сигнал 301 видео, который по существу аналогичен прошедшему разбиение сигналу 201 видео. Прошедший разбиение сигнал 301 видео затем сжимают и кодируют, превращая в поток битов данных, посредством компонентов кодирующего устройства 300.
В частности, прошедший разбиение сигнал 301 видео передают компоненту 317 внутрикадрового прогнозирования для осуществления внутрикадрового прогнозирования. Этот компонент 317 внутрикадрового прогнозирования может быть по существу аналогичен компоненту 215 оценки внутрикадрового прогнозирования и компоненту 217 внутрикадрового прогнозирования. Прошедший разбиение сигнал 301 видео также передают компоненту 321 компенсации движения для осуществления межкадрового прогнозирования на основе опорных блоков, находящихся в компоненте 323 буфера декодированного изображения. Этот компонент 321 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и компоненту 219 компенсации движения. Блоки прогнозирования и блоки остатка от компонента 317 внутрикадрового прогнозирования и компонента 321 компенсации движения направляют компоненту 313 преобразования и квантования для осуществления преобразования и квантования блоков остатка. Этот компонент 313 преобразования и квантования может быть по существу аналогичен компоненту 213 преобразовательного масштабирования и квантования. Преобразованные и квантованные блоки остатка (вместе с ассоциированными данными управления) направляют компоненту 331 энтропийного кодирования для осуществления кодирования и превращения в поток битов данных. Этот компонент 331 энтропийного кодирования может быть по существу аналогичен компоненту 231 форматирования заголовка и кодирования CABAC.
Преобразованные и квантованные блоки остатка и/или соответствующие блоки прогнозирования направляют также от компонента 313 преобразования и квантования компоненту 329 обратного преобразования и квантования для реконструкции и превращения в опорные блоки для использования компонентом 321 компенсации движения. Компонент 329 обратного преобразования и квантования может быть по существу аналогичен компоненту 229 масштабирования и обратного преобразования. Внутриконтурные фильтры в компоненте 325 внутриконтурных фильтров также применяют к блокам остатка и/или к реконструированным опорным блокам, в зависимости от примера. Этот компонент 325 внутриконтурных фильтров может быть по существу аналогичен компоненту 227 анализа управления фильтрами и компоненту 225 внутриконтурных фильтров. Компонент 325 внутриконтурных фильтров может содержать несколько фильтров, как это обсуждалось в отношении компонента 225 внутриконтурных фильтров. Затем фильтрованные блоки сохраняют в компоненте 323 буфера декодированного изображения для использования в качестве опорных блоков компонентом 321 компенсации движения. Этот компонент 323 буфера декодированного изображения может быть по существу аналогичным компоненту 223 буфера декодированного изображения.
На фиг. 4 представлена блок-схема, иллюстрирующая пример декодирующего устройства 400 для видео. Это устройство декодирования 400 для видео может быть использовано для реализации функций декодирования в системе 200 кодека и/или осуществления этапов 111, 113, 115 и/или 117 способа 100. Устройство декодирования 400 принимает поток битов данных, например, от кодирующего устройства 300, и генерирует реконструированный выходной сигнал видео на основе потока битов данных для представления на дисплее конечному пользователю.
Входной поток битов данных поступает на вход компонента 433 энтропийного декодирования. Этот компонент 433 энтропийного декодирования конфигурирован для осуществления схемы энтропийного декодирования, такой как декодирование в соответствии со схемами кодирования CAVLC, CABAC, SBAC, PIPE или другими способами энтропийного кодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка с целью получения контекста для интерпретации дополнительных данных, кодированных в виде кодовых слов в потоке битов данных. Декодированная информация содержит любую необходимую информацию для декодирования сигнала видео, такую как общие данные управления, данные управления фильтрами, информация о разбиении, данные о движении, данные прогнозирования и квантованные коэффициенты преобразования из блоков остатка. Квантованные коэффициенты преобразования направляют компоненту 429 обратного преобразования и квантования для реконструкции и превращения в блоки остатка. Этот компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.
Реконструированные блоки остатка и/или блоки прогнозирования направляют компоненту 417 внутрикадрового прогнозирования для реконструкции и превращения в блоки изображения на основе операций внутрикадрового прогнозирования. Этот компонент 417 внутрикадрового прогнозирования может быть аналогичен компоненту 215 оценки внутрикадрового прогнозирования и компоненту 217 внутрикадрового прогнозирования. В частности, компонент 417 внутрикадрового прогнозирования использует режимы прогнозирования для определения положения опорного блока в кадре и применяет блок остатка к результату для реконструкции блоков изображения, полученных посредством внутрикадрового прогнозирования. Реконструированные блоки изображения, полученные посредством внутрикадрового прогнозирования, и/или блоки остатка и соответствующие данные межкадрового прогнозирования направляют компоненту 423 буфера декодированного изображения через компонент 425 внутриконтурных фильтров, который может быть по существу аналогичен компоненту 223 буфера декодированного изображения и компоненту 225 внутриконтурных фильтров, соответственно. Компонент 425 внутриконтурных фильтров осуществляет фильтрацию реконструированных блоков изображения, блоков остатка и/или блоков прогнозирования, и затем такую информацию сохраняют в компоненте 423 буфера декодированного изображения. Реконструированные блоки изображения от компонента 423 буфера декодированного изображения направляют компоненту 421 компенсации движения для осуществления межкадрового прогнозирования. Этот компонент 421 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и/или компоненту 219 компенсации движения. В частности, компонент 421 компенсации движения использует векторы движения от опорного блока для генерации блока прогнозирования и применяет блок остатка к результату для реконструкции блока изображения. Полученные в результате реконструированные блоки могут быть направлены через компонент 425 внутриконтурных фильтров компоненту 423 буфера декодированного изображения. Этот компонент 423 буфера декодированного изображения продолжает сохранять дополнительные реконструированные блоки изображения, которые могут быть реконструированы и превращены в кадры с использованием информации о разбиении. Такие кадры могут быть также помещены в последовательность. Эту последовательность передают дисплею в качестве реконструированного выходного сигнала видео.
На фиг. 5 представлена упрощенная схема, иллюстрирующая пример декодера HRD 500. Декодер HRD 500 может быть использован в кодирующем устройстве, таком как система 200 кодека и/или устройство кодирования 300. Декодер HRD 500 может проверить поток битов данных, созданный на этапе 109 способа 100 прежде, чем этот поток битов данных будет направлен в устройство декодирования, такое как устройство декодирования 400. В некоторых примерах, поток битов данных может непрерывно передаваться через декодер HRD 500 по мере кодирования этого потока битов данных. В случае если часть этого потока битов данных не будет соответствовать ассоциированным ограничениям, декодер HRD 500 может указать на такое несоответствие кодирующему устройству, чтобы побудить это устройство кодирования повторно кодировать соответствующий отрезок потока битов данных с использованием других механизмов.
Декодер HRD 500 содержит гипотетического планировщика потоков (HSS) 541. Планировщик HSS 541 представляет собой компонент, конфигурированный для осуществления механизма гипотетической доставки. Этот механизм гипотетической доставки используется для проверки соответствия потока битов данных или декодирующего устройства в отношении синхронизации и прохождения данных для потока 551 битов данных, поступающего на вход декодера HRD 500. Например, планировщик HSS 541 может принимать поток 551 битов данных, поступающий с выхода кодирующего устройства, и управлять процедурой тестирования соответствия этого потока 551 битов данных. В конкретном примере, планировщик HSS 541 может управлять скоростью прохождения кодированных изображений через декодер HRD 500 и удостоверяться, что поток 551 битов данных не содержит несоответствующих данных.
Планировщик HSS 541 может направлять поток 551 битов данных в буфер CPB 543 с заданной скоростью. Декодер HRD 500 может управлять данными в единицах декодирования (DU) 553. Единица DU 553 представляет собой единицу AU или подгруппу из единицы AU и ассоциированных единиц не-VCL NAL (единиц слоя сетевой абстракции (NAL), относящихся не к слою кодирования видео (VCL), т.е. содержащих данные не-видео). В частности, единица AU содержит одно или более изображений, ассоциированных с некоторым моментом времени передачи на выход. Например, единица AU может содержать единственное изображение в однослойном потоке битов данных, и может содержать по одному изображению для каждого слоя в многослойном потоке битов данных. Каждое изображение в единице AU может быть разделено на срезы, каждый из которых входит в соответствующую единицу VCL NAL. Следовательно, единица DU 553 может содержать одно или более изображений, один или более срезов изображения или комбинацию перечисленных объектов. Кроме того, параметры, используемые для декодирования указанной единицы AU, изображений и/или срезов могут быть включены в единицы не-VCL NAL. В таком случае, единица DU 553 содержит единицы не-VCL NAL, которые содержат данные, необходимые для поддержки декодирования единиц VCL NAL в единице DU 553. Буфер CPB 543 представляет собой буфер обратного магазинного типа в декодере HRD 500. Этот буфер CPB 543 содержит единицы DU 553, содержащие данные видео в порядке декодирования. Буфер CPB 543 сохраняет данные видео для использования в процессе удостоверения соответствия потока битов данных.
Буфер CPB 543 направляет единицы DU 553 процессорный компонент 545 декодирования. Этот процессорный компонент 545 декодирования представляет собой компонент, соответствующий стандарту кодирования VVC. Например, этот процессорный компонент 545 декодирования может эмулировать устройство декодирования 400, используемое конечным пользователем. Процессорный компонент 545 декодирования осуществляет декодирование единиц DU 553 со скоростью, которая может быть достигнута, например, декодирующим устройством конечного пользователя. Если процессорный компонент 545 декодирования не может декодировать единицы DU 553 достаточно быстро для предотвращения переполнения буфера CPB 543, тогда поток 551 битов данных не соответствует стандарту, так что его следует закодировать заново.
Процессорный компонент 545 декодирования осуществляет декодирование единиц DU 553, в результате чего образуются декодированные единицы DU 555. Декодированная единица DU 555 содержит декодированное изображение. Декодированные единицы DU 555 направляют в буфер DPB 547. Этот буфер DPB 547 может быть по существу аналогичным компоненту 223, 323 и/или 423 буфера декодированного изображения. Для поддержки межкадрового прогнозирования изображения, маркированные для использования в качестве опорных изображений 556 и получаемые из декодированных единиц DU 555, возвращают процессорному компоненту 545 декодирования для поддержки дальнейшего декодирования. Буфер DPB 547 передает на выход декодированную последовательность видео в виде ряда изображений 557. Эти изображения 557 представляют собой реконструированные изображения, которые, в общем, зеркально отображают изображения, кодированные в потоке 551 битов данных посредством кодирующего устройства.
Изображения 557 направляют выходному компоненту 549 кадрирования. Этот выходной компонент 549 кадрирования конфигурирован для применения окна кадрирования для приведения в соответствие к изображениям 557. Результатом этого являются выходные кадрированные (подрезанные) изображения 559. Выходное кадрированное изображение 559 представляет собой полностью реконструированное изображение. Соответственно, это выходное кадрированное изображение 559 воспроизводит (имитирует) то, что должен увидеть конечный пользователь после декодирования потока 551 битов данных. В результате, устройство кодирования может пересмотреть выходные кадрированные изображения 559, чтобы убедиться, что кодирование прошло удовлетворительно.
Декодер HRD 500 инициализируют на основе параметров декодера HRD, передаваемых в потоке 551 битов данных. Например, декодер HRD 500 может считывать параметры декодера HRD из набора VPS, набора SPS и/или сообщений SEI. Затем декодер HRD 500 может осуществлять операции тестирования соответствия потока 551 битов данных на основе информации в таких параметрах декодера HRD. В качестве конкретного примера, декодер HRD 500 может определить один или более графиков 561 доставки для буфера CPB на основе полученных им параметров декодера HRD. График доставки определяет моменты времени для доставки видео в и/или из области запоминающего устройства, такого как буфер CPB и/или буфер DPB. Таким образом, график 561 доставки для буфера CPB определяет моменты времени для доставки единиц AU, единиц DU 553 и/или изображений в/из буфера CPB 543. Следует отметить, что декодер HRD 500 может использовать графики доставки к/от буфера DPB для буфера DPB 547, аналогичные графикам 561 доставки для буфера CPB.
Видео может быть кодировано по разным слоям и/или множествам OLS для использования декодирующими устройствами с варьируемыми уровнями возможностей аппаратуры, равно как для различных условий в сети связи. Графики 561 доставки для буфера CPB выбирают так, чтобы отразить эти проблемы. Соответственно, подпотоки битов данных более высоких слоев назначают для оптимальных аппаратуры и состояния сети связи, и, следовательно, более высокие слои могут принимать один или более графиков 561 доставки для буфера CPB, которые используют большой объем памяти в буфере CPB 543 и короткую задержку для передачи единиц DU 553 в буфер DPB 547. Аналогично подпотоки битов данных более низких слоев назначают для декодирующего устройства с ограниченными возможностями аппаратуры и/или в плохом состоянии сети связи. Следовательно, более низкие слои могут принимать один или более графиков 56ё1 доставки для буфера CPB, которые используют небольшой объем памяти в буфере CPB 543 и более продолжительную задержку для передачи единиц DU 553 в буфер DPB 547. Множества OLS, слои, подслои или их комбинации могут тогда быть тестированы согласно соответствующему графику 561 доставки, чтобы обеспечить, что получаемый в результате подпоток битов данных может быть правильно декодирован в условиях, ожидаемых для этого подпотока битов данных. Каждый из графиков 561 доставки для буфера CPB ассоциирован с индексом графика (ScIdx) 563. Индекс ScIdx 563 представляет собой индекс, идентифицирующий какой-либо график доставки. Соответственно, параметры декодера HRD в потоке 551 битов данных могут указывать графики 561 доставки для буфера CPB по их индексам ScIdx 563, равно как эти параметры содержат достаточно данных, чтобы позволить декодеру HRD 500 определить графики 561 доставки для буфера CPB и коррелировать эти графики 561 доставки для буфера CPB с соответствующими множествами OLS, слоями и/или подслоями.
На фиг. 6 представлена упрощенная схема, иллюстрирующая пример многослойной последовательности видео 600, конфигурированной для межслойного прогнозирования 621. Эта многослойная последовательность 600 видео может быть кодирована посредством кодирующего устройства, такого как система 200 кодека и/или устройство кодирования 300, и декодирована посредством декодирующего устройства, такого как система 200 кодека и/или устройство декодирования 400, например, в соответствии со способом 100. Далее, многослойная последовательность 600 видео может быть проверена на соответствие стандарту посредством декодера HRD, такого как декодер HRD 500. Многослойная последовательность 600 видео включена сюда для описания примера приложения для слоев в кодированной последовательности видео. Многослойная последовательность 600 видео представляет собой какую-либо последовательность видео, использующую несколько слоев, таких слой N 631 и слой N+1 632.
В одном из примеров, многослойная последовательность 600 видео может использовать межслойное прогнозирование 621. Межслойное прогнозирование 621 применяется между изображениями 611, 612, 613 и 614 и изображениями 615, 616, 617 и 618 в других слоях. В показанном примере, изображения 611, 612, 613 и 614 являются частью слоя N+1 632 и изображения 615, 616, 617 и 618 являются частью слоя N 631. Слой, такой как слой N 631 и/или слой N+1 632, представляет собой группу изображений, которые все ассоциированы с аналогичной величиной одной из характеристик, такой как аналогичный размер, качество, разрешение, отношение сигнал/шум, возможности и т.п. Слой может быть определен формально, как множество единиц VCL NAL и ассоциированных с ними единиц не-VCL NAL. Единица VCL NAL представляет собой единицу NAL, кодированную так, что она содержит данные видео, такие как кодированные срез или изображение. Единица не-VCL NAL представляет собой единицу NAL, содержащую не-видео данные, такие как синтаксис и/или параметры, поддерживающие декодирование данных видео, характеристики проверки соответствия или другие операции.
В показанном примере, слой N+1 632 ассоциирован с большим размером изображения, чем слой N 631. Соответственно, изображения 611, 612, 613 и 614 в слое N+1 632 имеют больший размер изображения (например, большую высоту и ширину и, следовательно, больше отсчетов), чем изображения 615, 616, 617 и 618 в слое N 631 в этом примере. Однако такие изображения могут быть разделены между слоем N+1 632 и слоем N 631 по другим характеристикам. Хотя показаны только два слоя, слой N+1 632 и слой N 631, множество изображений может быть разделено на любое число слоев на основе ассоциированных характеристик. Слой N+1 632 и слой N 631 могут быть также обозначены идентификаторами ID этих слоев. Идентификатор слоя ID является объектом данных, ассоциированным с изображением и обозначающим это изображение, как часть указанного слоя. Соответственно, каждое изображение 611 – 618 может быть ассоциировано с соответствующим идентификатором ID слоя для обозначения того, какой из слоев – слой N+1 632 или слой N 631 содержит соответствующее изображение. Например, идентификатор ID слоя может содержать идентификатор заголовка единицы NAL слоя (nuh_layer_id), который является синтаксическим элементом, специфицирующим идентификатор слоя, какой содержит единицу NAL (например, который содержит срезы и/или параметры изображений в слое). Слою, ассоциированному с меньшим качеством/размером потока битов данных, такому как слой N 631, обычно назначают меньший идентификатор ID слоя, и называют этот слой более низким слоем. Далее, слою, ассоциированному с более высоким качеством/большим размером потока битов данных, такому как слой N+1 632, обычно назначают более высокий идентификатор ID слоя, и называют этот слой более высоким слоем.
Изображения 611 – 618 в разных слоях 631 – 632 конфигурированы для представления на дисплее в качестве альтернатив. В такой ситуации, изображения в разных слоях 631 – 632 могут совместно использовать временной идентификатор ID 622 до тех пор, пока эти изображения входят в одну и ту же единицу AU. Временной идентификатор ID 622 представляет собой элемент данных, обозначающий данные, соответствующие некой временной позиции в последовательности видео. Единица AU представляет собой группу единиц NAL, ассоциированных одна с другой в соответствии со специфицированным правилом классификации и относящихся к одному конкретному моменту времени вывода. Например, единица AU может содержать одно или более изображений в разных слоях, таких как изображение 611 и изображение 615, когда такие изображения ассоциированы с одним и тем же временным идентификатором ID 622. Как в конкретном примере, устройство декодирования может декодировать и представить на дисплее изображение 615 в текущий момент представления на дисплее, если требуется изображение меньшего размера, или устройство декодирования может декодировать и представить на дисплее изображение 611 в текущий момент представления на дисплее, если требуется изображение большего размера. В такой ситуации, изображения 611 – 614 из более высокого слоя N+1 632 содержат по существу такие же данные изображения, как соответствующие изображения 615 – 618 из более низкого слоя N 631 (несмотря на различия в размерах изображений). В частности, изображение 611 содержит по существу такие же данные изображения, как изображение 615, изображение 612 содержит по существу такие же данные изображения, как изображение 616, и т.д.
Изображения 611 – 618 могут быть кодированы с использованием в качестве опоры других изображений 611 – 618 в том же самом слое N 631 или слое N+1 632. Результатом кодирования изображения с использованием другого изображения в качестве опоры является межкадровое прогнозирование 623. Межкадровое прогнозирование 623 обозначено сплошными стрелками. Например, изображение 613 может быть кодировано с применением межкадрового прогнозирования 623 с использованием одного или двух изображений 611, 612 и/или 614 в слое N+1 632 в качестве опоры, где одно изображение служит опорой для однонаправленного межкадрового прогнозирования и/или два изображения служат опорой для двустороннего межкадрового прогнозирования. Далее, изображение 617 может быть кодировано с применением межкадрового прогнозирования 623 с использованием одного или двух изображений 615, 616 и/или 618 в слое N 631 в качестве опоры, где одно изображение служит опорой для однонаправленного межкадрового прогнозирования и/или два изображения служат опорой для двустороннего межкадрового прогнозирования. Когда какое-то изображение используется в качестве опоры для другого изображения в том же самом слое при осуществлении межкадрового прогнозирования 623, это изображение может называться опорным изображением. Например, изображение 612 может быть опорным изображением, используемым для кодирования изображения 613 в соответствии с межкадровым прогнозированием 623. Межкадровое прогнозирование 623 может также называется межслойным прогнозированием в многослойном контексте. В такой ситуации, межкадровое прогнозирование 623 является механизмом кодирования отсчетов текущего изображения с использованием в качестве опоры обозначенных отсчетов в опорном изображении, отличном от текущего изображения, где опорное изображение и текущее изображение находятся в одном и том же слое.
Изображения 611 – 618 могут также быть кодированы с использованием в качестве опоры других изображений 611 – 618 в других слоях. Этот процесс известен как межслойное прогнозирование 621 и изображен штриховыми стрелками. Межслойное прогнозирование 621 представляет собой механизм кодирования отсчетов текущего изображения с использованием в качестве опоры обозначенных отсчетов в опорном изображении, где текущее изображение и опорное изображение находятся в разных слоях и, следовательно, имеют разные идентификаторы ID слоев. Например, изображение в более низком слое N 631 может быть использовано в качестве опорного изображения для кодирования соответствующего изображения в более высоком слое N+1 632. В качестве конкретного примера, изображение 611 может быть кодировано с использованием изображения 615 в качестве опоры в соответствии с межслойным прогнозированием 621. В таком случае, изображение 615 используется в качестве межслойного опорного изображения. Межслойное опорное изображение представляет собой опорное изображение, используемое для межслойного прогнозирования 621. В большинстве случаев межслойное прогнозирование 621 ограничено так, что текущее изображение, такое как изображение 611, может использовать только то межслойное опорное изображение (я), которое входит в ту же самую единицу AU и которое находится в более низком слое, такое как изображение 615. Когда доступны несколько слоев (например, больше двух), межслойное прогнозирование 621 может кодировать/декодировать текущее изображение на основе нескольких межслойных опорных изображений на более низких уровнях, чем текущее изображение.
Устройство кодирования для видео может использовать многослойную последовательность 600 видео для кодирования изображений 611 – 618 посредством большого числа различных комбинаций и/или перестановок при межкадровом прогнозировании 623 и межслойном прогнозированием 621. Например, изображение 615 может быть кодировано с использованием внутрикадрового прогнозирования. Изображения 616 – 618 могут быть затем кодированы в соответствии с межкадровым прогнозированием 623 с использованием изображения 615 в качестве опорного изображения. Далее, изображение 611 могут быть кодированы в соответствии с межслойным прогнозированием 621 с использованием изображения 615 в качестве межслойного опорного изображения. Изображения 612 – 614 могут быть затем кодированы в соответствии с межкадровым прогнозированием 623 с использованием изображения 611 в качестве опорного изображения. В такой ситуации, опорное изображение может служить как однослойным опорным изображением, так и межслойным опорным изображением для разных механизмов кодирования. Благодаря кодированию изображений более высокого слоя N+1 632 на основе изображений более низкого слоя N 631, более высокий слой N+1 632 может избежать использования внутрикадрового прогнозирования, которое обладает намного меньшей эффективностью кодирования по сравнению с межкадровым прогнозированием 623 и межслойным прогнозированием 621. В такой ситуации, низкая эффективность кодирования при внутрикадровом прогнозировании может быть ограничена изображениями наименьшего размера/наинизшего качества, и, следовательно, ограничена наименьшим количеством данных видео. Изображения, используемые в качестве опорных изображений и/или межслойных опорных изображений, могут быть обозначены во входных позициях списка (ов) опорных изображений, заключенных в структуре списков опорных изображений.
Для осуществления таких операций, слои, такие как слой N 631 и слой N+1 632 могут быть включены в состав множества OLS 625. Множество OLS 625 представляет собой множество слоев, из которых один или более слоев специфицированы в качестве выходного слоя. Выходной слой является слоем, назначенный для вывода (например, на дисплей). Например, слой N 631 может быть включен единственно для поддержки межслойного прогнозирования 621 и может никогда не быть передан на выход. В таком случае, слой N+1 632 декодируют на основе слоя N 631 и передают на выход. В таком случае, множество OLS 625 содержит слой N+1 632 в качестве выходного слоя. Когда множество OLS 625 содержит только один выходной слой, это множество OLS 625 называется 0-ым OLS. Такое 0-ое множество OLS представляет собой множество OLS, которое содержит только самый нижний слой (слой с наименьшим идентификатором) и, следовательно, содержит только один выходной слой. В других случаях, множество OLS 625 может содержать много слоев в различных комбинациях. Например, выходной слой множества OLS 625 может быть кодирован в соответствии с межслойным прогнозированием 621 на основе одного, двух или большого числа более низких слоев. Далее, множество OLS 625 может содержать больше одного выходного слоя. Следовательно, множество OLS 625 может содержать один или более выходных слоев и какие-либо поддерживающие слои, необходимые для реконструкции выходных слоев. Многослойная последовательность 600 видео может быть кодирована с использованием нескольких различных множеств OLS 625, каждое из которых использует свою, отличную от других множеств комбинацию слоев. С каждым из множеств OLS 625 ассоциирован свой индекс OLS 629, представляющий собой индекс, однозначно идентифицирующий соответствующее множество OLS 625.
Проверка многослойной последовательности 600 видео на соответствие стандартам в декодере HRD 500 может стать усложненной в зависимости от числа слоев 631 – 632 и множеств OLS 625. Для тестирования декодер HRD 500 может разделить многослойную последовательность 600 видео и преобразовать ее в последовательность рабочих точек 627. Рабочая точка 627 представляет собой временное подмножество множества OLS 625, идентифицированного индексом OLS 629 и наибольшим временным идентификатором ID 622. В качестве конкретного примера, первая рабочая точка 627 может содержать все изображения из первого множества OLS 625 от временного идентификатора ID, равного нулю, до временного идентификатора ID, равного двумстам, вторая рабочая точка 627 может содержать все изображения из первого множества OLS 625 от временного идентификатора ID, равно двести один, до временного идентификатора ID, равного четыреста, и т.д. Рабочая точка 627, выбранная для тестирования специфицированного события, называется тестируемой рабочей точкой (OP under test (targetOp)). Следовательно, точка targetOp представляет собой рабочую точку 627, выбранную для тестирования соответствия в декодере HRD 500.
На фиг. 7 представлена упрощенная схема, иллюстрирующая пример многослойной последовательности 700 видео, конфигурированной для временной масштабируемости. Эта многослойная последовательность 700 видео может быть кодирована посредством кодирующего устройства, таким как система 200 кодека и/или устройство кодирования 300, и декодирована посредством декодирующего устройства, такого как система 200 кодека и/или устройство декодирования 400, например, в соответствии со способом 100. Далее, многослойная последовательность 700 видео может быть проверена на соответствие стандартам посредством декодера HRD, такого как декодер HRD 500. Многослойная последовательность 700 видео включена сюда для описания другого примера приложения для слоев в кодированной последовательности видео. Например, многослойная последовательность 700 видео может быть использована в качестве отдельного варианта, либо она может быть скомбинирована со способами, описываемыми в отношении многослойной последовательности 600 видео.
Многослойная последовательность 700 видео содержит подслои 710, 720 и 730. Подслой представляет собой масштабируемый по времени слой из масштабируемого по времени потока битов данных, который содержит единицы VCL NAL (например, изображения) с конкретной величиной временного идентификатора, равно как ассоциированные единицы не-VCL NAL (например, поддерживающие параметры). Подслой 710 может быть назван базовым слоем, а подслои 720 и 730 могут называться расширительными слоями. Как показано, подслой 710 содержит изображения 711 с первой частотой кадров, например тридцать кадров в секунду. Подслой 710 является базовым слоем, поскольку этот подслой 710 содержит базовую/самую низкую частоту кадров. Подслой 720 содержит изображения 721, которые смещены во времени относительно изображений 711 подслоя 710. Результат состоит в том, что подслой 710 можно комбинировать с подслоем 720, что приводит к частоте кадров, которая коллективно выше частоты кадров одного подслоя 710. Например, подслои 710 и 720 могут иметь комбинированную частоту кадров шестьдесят кадров в секунду. Соответственно, подслой 720 увеличивает частоту кадров подслоя 710. Далее, подслой 730 содержит изображения 731, которые смещены во времени относительно изображений 711 и 721 подслоев 720 и 710. В такой ситуации, подслой 730 можно комбинировать с подслоями 720 и 710, чтобы еще больше увеличить частоту подслоя 710. Например, подслои 710, 720 и 730 могут иметь комбинированную частоту кадров девяносто кадров в секунду.
Комбинирование подслоев 710, 720 и/или 730 позволяет динамически создать представление 740 по подслоям. Представление 740 по подслоям представляет собой подмножество потока битов данных, содержащее единицы NAL конкретного подслоя и более низких подслоев. В показанном примере, представление 740 по подслоям содержит изображения 741, совокупность которых составлена из комбинированных изображений 711, 721 и 731 подслоев 710, 720 и 730. Соответственно, многослойная последовательность 700 видео может быть масштабирована по времени до нужной частоты кадров путем выбора представления 740 по подслоям, содержащего необходимый набор подслоев 710, 720 и/или 730. Представление 740 по подслоям может быть создано путем использования множества OLS, содержащего подслои 710, 720 и/или 730 в качестве слоев. В таком случае, представление 740 по подслоям выбирают в качестве выходного слоя. В такой ситуации временная масштабируемость является одним из нескольких механизмов, которые могут быть осуществлены с использованием многослойных механизмов.
На фиг. 8 представлена упрощенная схема, иллюстрирующая пример потока 800 битов данных. Например, этот поток 800 битов данных может быть сформирован системой 200 кодека и/или кодирующим устройством 300 для декодирования системой 200 кодека и/или декодирующим устройством 400 в соответствии со способом 100. Далее, поток 800 битов данных сожжет содержать многослойную последовательность 600 и/или 700 видео. В дополнение к этому, поток 800 битов данных может содержать различные параметры для управления работой декодера HRD, такого как декодер HRD 500. На основе таких параметров этот декодер HRD может проверить поток 800 битов данных на соответствие стандартам прежде передачи декодирующему устройству для декодирования.
Такой поток 800 битов данных содержит набор VPS 811, один или более наборов SPS 813, несколько наборов параметров изображения (picture parameter set (PPS)) 815, несколько заголовков 817 срезов, данные 820 изображения, сообщение BP SEI 819, сообщение PT SEI 818 и сообщение DUI SEI 816. Набор VPS 811 содержит данные относительно всего потока 800 битов данных. Например, такой набор VPS 811 может содержать данные относительно множество OLS, слоев и/или подслоев, используемых в потоке 800 битов данных. Набор SPS 813 содержит последовательность данных, общих для всех изображений в кодированной последовательности видео, содержащейся в потоке 800 битов данных. Например, каждый слой может содержать одну или более кодированных последовательностей видео, и каждая из этих кодированных последовательностей видео может обращаться к какому-либо набору SPS 813 за соответствующими параметрами. Совокупность параметров в наборе SPS 813 может содержать размер изображения, битовую глубину, параметры инструмента кодирования, ограничения скорости передачи битов данных и т.д. Следует отметить, что тогда как каждая последовательность обращается к одному набору SPS 813, в некоторых примерах один набор SPS 813 может содержать данные для нескольких последовательностей. Набор PPS 815 содержит параметры, применяемые ко всему изображению. Следовательно, каждое изображение в последовательности видео может обращаться к одному набору PPS 815. Следует отметить, что тогда как каждое изображение обращается к одному набору PPS 815, в некоторых примерах один набор PPS 815 может содержать данные для нескольких изображений. Например, несколько подобных изображений могут быть кодированы с использованием аналогичных параметров. В этом случае, один набор PPS 815 может содержать данные для таких подобных изображений. Набор PPS 815 может обозначать инструменты кодирования, доступные для срезов в соответствующих изображениях, параметры квантования, сдвиги и т.п.
Заголовок 817 среза содержит параметры, специфичные для каждого среза в изображении. Следовательно, здесь могут быть по одному заголовку 817 среза на каждый срез в последовательности видео. Заголовок 817 среза может содержать информацию о типе среза, номера POC, списки опорных изображений, весовые коэффициенты прогнозирования, входные точки плиток, параметры деблокирования и т.п. Следует отметить, что в некоторых примерах поток 800 битов данных может также содержать заголовок изображения, который представляет собой синтаксическую структуру, содержащую параметры, применимые ко всем срезам в одном изображении. По этой причине, в некоторых контекстах заголовок изображения и заголовок 817 среза могут быть использованы взаимозаменяемо. Например, некоторые параметры можно перемещать между заголовком 817 среза и заголовком изображения в зависимости от того, являются ли эти параметры общими во всех срезах в изображении.
Данные 820 изображения содержат данные видео, кодированные в соответствии с режимом межкадрового прогнозирования и/или режимом внутрикадрового прогнозирования, равно как соответствующие преобразованные и квантованные данные остатка. Например, данные 820 изображения могут содержать единицы AU 821, единицы DU 822 и/или изображения 823. Единица AU 821 представляет собой группу единиц NAL, ассоциированных одни с другими в соответствии со специфицированным правилом классификации и относящиеся к одному конкретному моменту времени выхода. Единица DU 822 представляет собой единицу AU или подмножество из единицы AU и ассоциированных с ней единиц не-VCL NAL. Изображение 823 представляет собой массив отсчетов яркостной составляющей и/или массив отсчетов цветностной составляющей, которые создают кадр или поле такого кадра. Если говорить открытым текстом, единица AU 821 содержит различные данные видео, которые могут быть представлены на дисплее в специфицированный момент времени в последовательности видео, равно как поддерживающие синтаксические данные. Следовательно, единица AU 821 может содержать одно изображение 823 в однослойном потоке битов данных или более изображений из нескольких слоев, которые все ассоциированы с одним и тем же событием в многослойном потоке битов данных. При этом, изображение 823 представляет собой кодированное изображение, которое может быть передано дисплею или использовано для поддержки кодирования других изображений 823 для передачи на выход. Единица DU 822 может содержать одно или более изображений 823 и любые поддерживающие синтаксические данные, необходимые для декодирования. Например, единица DU 822 и единица AU 821 могут быть использованы взаимозаменяемо в простых потоках битов данных (например, когда единица AU содержит одно изображение). Однако в более сложных многослойных потоках битов данных (например, поток битов данных, содержащий многослойную последовательность 600 видео), единица DU 822 может содержать только часть данных видео из единицы AU 821. Например, единица AU 821 может содержать изображения 823 в нескольких слоях (например, слоях 631, 632) и/или подслоях (например, подслоях 710, 720, 730), где некоторые из этих изображений 823 ассоциированы с разными множествами OLS. В таком случае, единица DU 822 может содержать только изображение (я) 823 из специфицированного множества OLS и/или специфицированного слоя/подслоя.
Изображение 823 содержит один или более срезов 825. Срез 825 может быть определен как целое число полных плиток или целое число последовательных полных строк единиц дерева кодирования (CTU) (например, в пределах плитки) изображения 823, которые эксклюзивно содержатся в одной единице NAL 829. Срезы 825 далее разбиты на единицы CTU и/или блоки дерева кодирования (CTB). Единица CTU представляет собой группу отсчетов заданного размера, которая может быть разбита по схеме дерева кодирования. Блок CTB представляет собой подмножество единицы CTU и содержит яркостные составляющие и цветностные составляющие этой единицы CTU. Эти единицы CTU /единицы CTB далее разбиты на блоки кодирования на основе деревьев кодирования. Блоки кодирования могут быть затем кодированы/декодированы в соответствии с механизмами прогнозирования.
Поток 800 битов данных представляет собой последовательность единиц NAL 829. Единица NAL 829 представляет собой контейнер для данных видео и/или поддерживающего синтаксиса. Единица NAL 829 может представлять собой единицу VCL NAL или единицу не-VCL NAL. Единица VCL NAL представляет собой единицу NAL 829, кодированную так, чтобы содержать данные видео, такие как кодированный срез 825 и ассоциированный заголовок 817 среза. Единица не-VCL NAL представляет собой единицу NAL 829, содержащую не-видео данные, такие как синтаксис и/или параметры, поддерживающие декодирование данных видео, осуществление проверки соответствия или других операций. Например, единица не-VCL NAL может содержать набор VPS 811, набор SPS 813, набор PPS 815, сообщение BP SEI 819, сообщение PT SEI 818, сообщение DUI SEI 816 или другой поддерживающий синтаксис.
Поток 800 битов данных может содержать одно или более сообщений SEI, которые поддерживают тестирование соответствия посредством декодера HRD, такого как декодер HRD 500. Сообщение SEI представляет собой синтаксическую структуру со специфицированной семантикой, которая несет информацию, ненужную для процедуры декодирования с целью определения величин отсчетов в декодированных изображениях. Например, сообщения SEI могут содержать данные для поддержки процедур декодера HRD или другие поддерживающие данные, которые не являются релевантными напрямую для декодирования потока 800 битов данных в декодирующем устройстве. Например, поток 800 битов данных может содержать сообщение BP SEI 819, сообщение PT SEI 818 и сообщение DUI SEI 816.
Сообщение BP SEI 819 представляет собой сообщение SEI, которое содержит параметры декодера HRD 870 для инициализации декодера HRD с целью управления буфером CPB. Например, сообщение BP SEI 819 может содержать данные, описывающие графики доставки для буфера CPB, такие как график 561 доставки для буфера CPB, который может быть использован при осуществлении тестов соответствия в потоке 800 битов данных. График доставки может быть описан парой величин, характеризующих синхронизацию графика доставки, (например, как часто извлекать данные) и описывающих объем данных, подлежащих передаче (например, как много данных извлекать в каждом случае). Сообщение BP SEI 819 обозначает единицу AU или единицу DU, которая должна быть стартовой точкой проверки соответствия, (например, единица AU 821 или единица DU 822) и пару данных, обозначающую график по умолчанию для использования для каждой единицы данных. В конкретном примере, сообщение BP SEI 819 может содержать первоначальную задержку извлечения данных из буфера CPB 837 и первоначальный сдвиг 839 извлечения из буфера CPB. Первоначальная задержка извлечения данных из буфера CPB 837 является задержкой по умолчанию извлечения данных из буфера CPB для каждого изображения, единицы AU и/или единицы DU в потоке битов данных, множества OLS и/или слоя. Первоначальный сдвиг 839 извлечения из буфера CPB представляет собой сдвиг по умолчанию извлечения из буфера CPB, ассоциированный с каждым изображением, единицей AU и/или единицей DU в потоке битов данных, множестве OLS и/или слое. Использую пару из первоначальной задержки 837 извлечения данных из буфера CPB и первоначального сдвига 839 извлечения из буфера CPB, декодер HRD может определить график доставки для буфера CPB для использования при извлечении единиц данных (единиц AU или единиц DU) из буфера CPB в процессе тестирования соответствия.
В одном из вариантов, сообщение BP SEI 819 содержит максимальное число временных подслоев 841, для которых первоначальная задержка 837 извлечения данных из буфера CPB и первоначальный сдвиг 839 извлечения из буфера CPB обозначены в сообщении BP SEI 819. Это максимальное число временных подслоев 841 обозначено параметром bp_max_sublayers_minus1. Величина параметра bp_max_sublayers_minus1 должна быть в диапазоне от 0 до максимального числа подслоев 843, специфицированного в наборе VPS 811 и обозначенного vps_max_sublayers_minus1, включительно. Параметр vps_max_sublayers_minus1 plus 1 определяет максимальное число временных подслоев, которые могут присутствовать в слое, специфицированном набором VPS 811. Величина vps_max_sublayers_minus1 должна быть в диапазоне от 0 до 6 включительно.
Сообщение PT SEI 818 представляет собой сообщение SEI, содержащее параметры декодера HRD 880 (также называются, параметрами буфера CPB на уровне изображения) для управления информацией о доставке для единиц AU в буфере CPB и/или в буфере DPB. Например, сообщение PT SEI 818 может содержать дополнительные параметры для использования при осуществлении теста соответствия в декодере HRD применительно к соответствующей единице AU. В одном из конкретных примеров, сообщение PT SEI 818 может содержать задержку 835 извлечения данных из буфера CPB и задержку 833 вывода данных из буфера DPB. Задержка 835 извлечения данных из буфера CPB представляет собой продолжительность периода времени, в течение которого соответствующая текущая единица AU может оставаться в буфере CPB прежде извлечения ее из этого буфера и вывода в буфер DPB. Например, задержка 835 извлечения данных из буфера CPB может быть использована для вычисления числа тактовых интервалов (тактов) между извлечением текущей единицы AU и предыдущей единицы AU в порядке декодирования, где предыдущая единица AU ассоциирована с сообщением BP SEI 819. Соответственно, задержка 835 извлечения данных из буфера CPB обозначает, что задержка извлечения для текущей единицы AU отличается от задержки извлечения данных по умолчанию, описываемой посредством первоначальной задержки 837 извлечения данных из буфера CPB в сообщении BP SEI 819. Далее, задержка 835 извлечения данных из буфера CPB содержит величину различия задержки извлечения текущей единицы AU относительно величины по умолчанию. Задержка 833 вывода данных из буфера DPB представляет собой информацию, описывающую продолжительность периода времени, в течение которого соответствующая единица AU может оставаться в буфере DPB прежде вывода из буфера. В частности, задержка 833 извлечения данных из буфера DPB может быть использована для определения момента времени выхода изображения из буфера DPB, и, следовательно, величины промежутка времени, в течение которого изображение/единица AU может оставаться в буфере DPB после извлечения из буфера CPB. Момент времени выхода в декодере HRD соответствует ожидаемому выходу изображения для представления на дисплее декодирующего устройства.
В одном из вариантов, сообщение PT SEI 818 содержит приращение 845 общей задержки извлечения данных из буфера CPB, которое обозначено как параметр pt_du_common_cpb_removal_delay_increment_minus1. Это приращение 845 общей задержки извлечения данных из буфера CPB плюс 1 определяет продолжительность промежутка времени, в единицах долей тактовых интервалов, между номинальными моментами времени извлечения данных из буфера CPB для любых двух последовательных единиц DU (например, единиц DU 822) в порядке декодирования в единице AU (например, единице AU 821), ассоциированной с сообщением SEI 818 с параметрами синхронизации изображений, когда параметр Htid i равен i, где Htid идентифицирует наивысший временной подслой, подлежащий декодированию. Эту величину также используют для вычисления самого раннего возможного времени прихода данных единиц декодирования в буфер CPB для гипотетического планировщика потоков (HSS). Длина этого синтаксического элемента составляет du_cpb_removal_delay_increment_length_minus1 + 1 бит.
В одном из вариантов, сообщение PT SEI 818 содержит число 847 единиц декодирования, обозначенное как pt_num_decoding_units_minus1. Это число 847 единиц декодирования плюс 1 определяет число единиц DU (например, единиц DU 822) в единице AU (например, единице AU 821), с которой ассоциировано сообщение SEI 818 с параметрами синхронизации изображений. Величина num_decoding_units_minus1 должна быть в диапазоне от 0 до PicSizeInCtbsY − 1, включительно. В одном из вариантов, синтаксический элемент PicSizeInCtbsY представляет размер изображения, измеренный в блоках CTB (например, ширина изображения, измеренная в блоках CTB, x высота изображения, измеренная в блоках CTB).
В одном из вариантов, сообщение PT SEI 818 содержит число 849 единиц NAL в i-ой единице DU из единицы AU, с которой ассоциировано сообщение PT SEI 818. Это число 849 единиц NAL обозначено как pt_num_nalus_in_du_minus1[ i ]. Величина pt_num_nalus_in_du_minus1[ i ] должна быть в диапазоне от 0 до PicSizeInCtbsY − 1, включительно.
В одном из вариантов, сообщение PT SEI 818 содержит флаг 851 общей задержки извлечения данных из буфера CPB, который обозначен как флаг pt_du_common_cpb_removal_delay_flag. Когда флаг 851 общей задержки извлечения данных из буфера CPB равен 1, это означает, что в сообщении PT SEI 818 присутствуют синтаксические элементы приращения 845 общей задержки извлечения данных из буфера CPB, обозначенные как pt_du_common_cpb_removal_delay_increment_minus1[i]. Флаг 851 общей задержки извлечения данных из буфера CPB для единицы DU, равный 0, определяет, что синтаксические элементы приращения 845 общей задержки извлечения данных из буфера CPB не присутствуют. Когда флаг 851 общей задержки извлечения данных из буфера CPB не присутствует в сообщении PT SEI 818, его признают равным 0.
В одном из вариантов, первая единица DU в единице AU является первой из pt_num_nalus_in_du_minus1[ 0 ] + 1 последовательных единиц NAL в порядке декодирования в этой единице AU. Далее, i-ая (при i больше 0) единица DU в рассматриваемой единице AU содержит pt_num_nalus_in_du_minus1[ i ] + 1 последовательных единиц NAL, следующих сразу же после последней единицы NAL в предыдущей единице DU из рассматриваемой единицы AU, в порядке декодирования. В одном из вариантов, имеется по меньшей мере одна единица VCL NAL в каждой единице DU, и все единицы не-VCL NAL, ассоциированные с какой-либо единицей VCL NAL, входят в ту же самую единицу DU, где находится указанная единица VCL NAL.
В одном из вариантов, сообщение PT SEI 818 содержит приращение 853 задержки извлечения данных из буфера CPB, которое обозначено как pt_du_cpb_removal_delay_increment_minus1. Это приращение 853 задержки извлечения данных из буфера CPB плюс 1 определяет продолжительность, в единицах долей тактовых интервалов, промежутка времени между номинальными моментами времени извлечения из буфера CPB (i+1)-ой единицы DU и i-ой единицы DU, в порядке декодирования, в единице AU, ассоциированной с сообщением PT SEI 818, когда параметр Htid равен j. Эта величина также используется для вычисления самого раннего возможного момента времени прихода данных единицы DU в буфер CPB для планировщика HSS. Длина этого синтаксического элемента равна bp_du_cpb_removal_delay_increment_length_minus1 + 1 бит.
В одном из вариантов, сообщение PT SEI 818 содержит указание 843 максимального числа подслоев вместо или в дополнение к набору VPS 811.
A сообщение DUI SEI 816 представляет собой сообщение SEI, содержащее параметры 890 декодера HRD (также называются параметрами буфера CPB на уровне изображения) для управления информацией о доставке для единиц DU в буфере CPB и/или в буфере DPB. Например, сообщение DUI SEI 816 может содержать дополнительные параметры для использования при осуществлении тестирования соответствия в декодере HRD применительно к соответствующей единице DU. Как отмечено выше одна единица AU может содержать одну или более единиц DU. Следовательно, информация для проверки единицы DU может отличаться от информации для проверки единицы AU. В качестве конкретного примера, сообщение DUI SEI 816 может содержать информацию 831 о задержке извлечения данных из буфера CPB. Информация 831 о задержке извлечения данных из буфера CPB представляет собой информацию относительно извлечения соответствующей единицы DU из буфера CPB. Например, информация 831 о задержке извлечения данных из буфера CPB может быть использована для вычисления числа тактовых интервалов между моментами извлечения текущей единицы DU и предыдущей единицы DU в порядке декодирования.
В одном из вариантов, сообщение DUI SEI 816 содержит указание 841 максимального числа временных подслоев, для которых первоначальная задержка 837 извлечения данных из буфера CPB и первоначальный сдвиг 839 извлечения из буфера CPB 839 обозначены в сообщении BP SEI 819. Это указание 841 максимального числа временных подслоев обозначено как bp_max_sublayers_minus1. Эта величина bp_max_sublayers_minus1 должна быть в диапазоне от 0 до указания 843 максимального числа подслоев, специфицированного в наборе VPS 811, которое (указание) обозначено как vps_max_sublayers_minus1, включительно. Величина vps_max_sublayers_minus1 плюс 1 определяет максимальное число временных подслоев, которые могут присутствовать в слое, специфицированном в наборе VPS 811. Величина vps_max_sublayers_minus1 должна быть в диапазоне от 0 до 6, включительно.
В одном из вариантов, сообщение DUI SEI 816 содержит указание 843 максимального числа подслоев вместо или в дополнение к набору VPS 811.
Как можно понять из предшествующего описания, сообщение BP SEI 819, сообщение PT SEI 818 и сообщение DUI SEI 816 содержат значительный объем информации. В одном из вариантов, параметры 880 и/или 890 декодера HRD (называемые также параметрами буфера CPB на уровне изображения) в сообщении PT SEI 818 и/или в сообщении DUI SEI 816 используются для осуществления операций декодера HRD на основе единиц DU на подслоях с целью тестирования соответствия потока битов данных.
В качестве примера, декодер HRD определяет, для каждого слоя, превышена ли специфицированная в сообщении PT SEI 818 и/или в сообщении DUI SEI 816, продолжительность периода времени между номинальными моментами времени извлечения из буфера CPB любых двух последовательных единиц декодирования в порядке декодирования в единице доступа, ассоциированной с сообщением SEI с параметрами синхронизации изображений. Когда эта продолжительность превышена, рассматриваемый поток битов данных считается несоответствующим, так что генерируют новый поток битов данных с пересмотренными параметрами буфера CPB, и затем тестируют его посредством кодирующего устройства. Эта процедура может повторяться до тех пор, пока не будет найден поток, в котором указанная продолжительность не превышена, что будет означать, что этот поток битов данных соответствует стандарту (например, стандарту кодирования VVC).
Декодер HRD может также определить, для каждого слоя, превышена ли специфицированная в сообщении PT SEI 818 и/или в сообщении DUI SEI 816, продолжительность периода времени между моментами времени извлечения из буфера CPB (i + 1)-ой единицы декодирования и i-ой единицы декодирования, в порядке декодирования в единице доступа, ассоциированной с сообщением SEI с параметрами синхронизации изображений. Когда эта продолжительность превышена, рассматриваемый поток битов данных считается несоответствующим, так что генерируют новый поток битов данных с пересмотренными параметрами буфера CPB, и затем тестируют его посредством кодирующего устройства. Эта процедура может повторяться до тех пор, пока не будет найден поток, в котором указанная продолжительность не превышена, что будет означать, что этот поток битов данных соответствует стандарту (например, стандарту кодирования VVC).
Когда будет получен соответствующий поток битов данных, этот поток битов данных может быть сохранен и передан декодирующему устройству. В одном из вариантов, сообщение BP SEI 819, сообщение PT SEI 818 и сообщение DUI SEI 816 остаются в составе потока битов данных, даже хотя устройство декодирования может не использовать эту информацию при декодировании каких-либо изображений, входящих в этот поток битов данных.
Предложенный пример реализации декодера HRD, использующего операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет определения соответствия этого потока битов данных использует следующие синтаксис и семантику.
Синтаксис сообщения SEI с параметрами синхронизации изображений имеет следующий вид.
pic_timing( payloadSize ) { Дескриптор
pt_max_sub_layers_minus1 u(3)
cpb_removal_delay_minus1[ pt_max_sub_layers_minus1 ] u(v)
for( i = TemporalId; i < pt_max_sub_layers_minus1; i++ ) {
sub_layer_delays_present_flag[ i ] u(1)
if( sub_layer_delays_present_flag[ i ] ) {
cpb_removal_delay_delta_enabled_flag[ i ] u(1)
if( cpb_removal_delay_delta_enabled_flag[ i ] )
cpb_removal_delay_delta_idx[ i ] u(v)
else
cpb_removal_delay_minus1[ i ] u(v)
}
}
dpb_output_delay u(v)
if( decoding_unit_hrd_params_present_flag )
pic_dpb_output_du_delay u(v)
if( decoding_unit_hrd_params_present_flag &&
decoding_unit_cpb_params_in_pic_timing_sei_flag ) {
num_decoding_units_minus1 ue(v)
du_common_cpb_removal_delay_flag u(1)
if( du_common_cpb_removal_delay_flag )
for( i = TemporalId; i < pt_max_sub_layers_minus1; i++ )
du_common_cpb_removal_delay_increment_minus1[ i ] u(v)
for( i = 0; i <= num_decoding_units_minus1; i++ ) {
num_nalus_in_du_minus1[ i ] ue(v)
if( !du_common_cpb_removal_delay_flag && i < num_decoding_units_minus1 )
for( j = TemporalId; j < pt_max_sub_layers_minus1; j++ )
du_cpb_removal_delay_increment_minus1[ i ][ j ] u(v)
}
}
}
Пример семантики сообщения SEI с параметрами синхронизации изображений выглядит следующим образом.
Сообщение SEI с параметрами синхронизации изображений предоставляет величину задержки извлечения данных из буфера CPB и информацию о задержке выхода из буфера DPB для единицы доступа, ассоциированной с этим сообщением SEI.
Параметр num_decoding_units_minus1 plus 1 определяет число единиц декодирования в единице доступа, с которой ассоциировано сообщение SEI с параметрами синхронизации изображений. Величина параметра num_decoding_units_minus1 должна быть в диапазоне от 0 до PicSizeInCtbsY − 1, включительно.
Флаг du_common_cpb_removal_delay_flag равный 1 определяет, что присутствуют синтаксические элементы du_common_cpb_removal_delay_increment_minus1[ i ]. Флаг du_common_cpb_removal_delay_flag равный 0 определяет, что синтаксические элементы du_common_cpb_removal_delay_increment_minus1[ i ] не присутствуют.
Параметр du_common_cpb_removal_delay_increment_minus1[ i ] plus 1 определяет продолжительность, в единицах долей тактовых интервалов (см. статью C.1), промежутка времени между номинальными моментами времени извлечения из буфера CPB любых двух последовательных единиц декодирования в порядке декодирования в сообщении SEI с параметрами синхронизации изображений, когда параметр Htid i равен i. Эту величину также используют для вычисления самого раннего возможного времени прихода данных единиц декодирования в буфер CPB для планировщика HSS, как это специфицировано в Приложении C к стандарту кодирования VVC. Длина этого синтаксического элемента равна du_cpb_removal_delay_increment_length_minus1 + 1 бит.
Параметр num_nalus_in_du_minus1[ i ] plus 1 определяет число единиц NAL в i-ой единице декодирования в единице доступа, с которой ассоциировано сообщение SEI с параметрами синхронизации изображений. Величина параметра num_nalus_in_du_minus1[ i ] должна быть в диапазоне от 0 до PicSizeInCtbsY − 1, включительно.
Первая единица декодирования в рассматриваемой единице доступа содержит первые num_nalus_in_du_minus1[ 0 ] + 1 последовательных единиц NAL в порядке декодирования в этой единице доступа. Эта i-ая (при i больше 0) единица декодирования в рассматриваемой единице доступа содержит num_nalus_in_du_minus1[ i ] + 1 последовательных единиц NAL, следующих сразу же после последней единицы NAL в предыдущей единице декодирования в рассматриваемой единице доступа в порядке декодирования. В каждой единице декодирования должна быть по меньшей мере одна единица VCL NAL. Все единицы не-VCL NAL, ассоциированные с какой-либо единицей VCL NAL, должны быть включены в ту же самую единицу декодирования, где находится указанная единица VCL NAL.
Параметр du_cpb_removal_delay_increment_minus1[ i ][ j ] плюс 1 определяет продолжительность, в единицах долей тактового интервала, промежутка времени между номинальными моментами времени извлечения из буфера CPB (i + 1)-ой единицы декодирования и i-ой единицы декодирования, в порядке декодирования в единице доступа, ассоциированной с сообщением SEI с параметрами синхронизации изображений, когда параметр Htid i равен j. Эта величина также используется для вычисления самого раннего возможного момента времени прихода данных единиц декодирования в буфер CPB для планировщика HSS, как это специфицировано в Приложении C к стандарту кодирования VVC. Длина этого синтаксического элемента равна du_cpb_removal_delay_increment_length_minus1 + 1 бит.
Пример синтаксиса сообщения SEI с информацией о единицах декодирования выглядит следующим образом.
decoding_unit_info( payloadSize ) { Дескриптор
decoding_unit_idx ue(v)
dui_max_sub_layers_minus1 u(3)
if( !decoding_unit_cpb_params_in_pic_timing_sei_flag )
for( i = TemporalId; i < dui_max_sub_layers_minus1; i++ )
du_spt_cpb_removal_delay_increment[ i ] u(v)
dpb_output_du_delay_present_flag u(1)
if( dpb_output_du_delay_present_flag )
pic_spt_dpb_output_du_delay u(v)
}
Пример семантики сообщения SEI с параметрами синхронизации изображений выглядит следующим образом.
Сообщение SEI с информацией о единицах декодирования несет информацию о задержке извлечения данных из буфера CPB для единицы декодирования, ассоциированной с сообщением SEI.
Следующее применимо к синтаксису и семантике сообщения SEI с информацией о единице декодирования.
– Синтаксические элементы - флаг decoding_unit_hrd_params_present_flag, флаг decoding_unit_cpb_params_in_pic_timing_sei_flag и параметр dpb_output_delay_du_length_minus1, а также переменная CpbDpbDelaysPresentFlag находятся среди или получаются из синтаксических элементов в синтаксической структуре general_hrd_parameters( ), применимой по меньшей мере к одной из рабочих точек, к которой применяется сообщение SEI с информацией о единице декодирования.
– Термин поток битов данных (или часть его) относится к подмножеству потока битов данных (или части его), ассоциированному с какой-либо из рабочих точек, к которым применимо сообщение SEI с информацией о единицах декодирования.
Присутствие сообщений SEI с информацией о единицах декодирования для рабочей точки специфицировано следующим образом.
– Если флаг CpbDpbDelaysPresentFlag равен 1, флаг decoding_unit_hrd_params_present_flag равен 1 и флаг decoding_unit_cpb_params_in_pic_timing_sei_flag равен 0, одно или более сообщений SEI с информацией о единицах декодирования, применимых к рассматриваемой рабочей точке, должны быть ассоциированы с каждой единицей декодирования в последовательности CVS.
– В противном случае, если CpbDpbDelaysPresentFlag флаг равен 1, флаг decoding_unit_hrd_params_present_flag равен 1 и флаг decoding_unit_cpb_params_in_pic_timing_sei_flag равен 1, одно или более сообщений SEI с информацией о единицах декодирования, применимых к рассматриваемой рабочей точке, могут или не могут быть ассоциированы с каждой единицей декодирования в последовательности CVS.
– В противном случае (флаг CpbDpbDelaysPresentFlag равен 0 или флаг decoding_unit_hrd_params_present_flag равен 0), в последовательности CVS не должно быть единиц декодирования, ассоциированных с сообщением SEI с информацией о единицах декодирования, применимой к рассматриваемой рабочей точке.
Множество единиц NAL, ассоциированных с сообщением SEI с информацией о единицах декодирования, состоит, в порядке декодирования, из единицы SEI NAL, содержащей сообщение SEI с информацией о единицах декодирования, и всех последующих единиц NAL в рассматриваемой единице доступа, вплоть до, но не включая, какой-либо последующей единицы SEI NAL, содержащей сообщение SEI с информацией о единицах декодирования с другой величиной индекса decoding_unit_idx. Каждая единица декодирования должна содержать по меньшей мере одну единицу VCL NAL. Все единицы не-VCL NAL, ассоциированные с какой-либо единицей VCL NAL, должны быть включены в единицу декодирования, содержащую указанную единицу VCL NAL.
Параметр TemporalId в синтаксисе сообщения SEI с информацией о единицах декодирования, представляет собой параметр TemporalId единицы SEI NAL, содержащей это сообщение SEI с информацией о единицах декодирования.
Параметр decoding_unit_idx определяет индекс, начиная с 0, к списку единиц декодирования в текущей единице доступа, для единиц декодирования, ассоциированных с сообщением SEI с информацией о единицах декодирования. Величина параметра decoding_unit_idx должна быть в диапазоне от 0 до PicSizeInCtbsY − 1, включительно.
Единица декодирования, идентифицированная конкретной величиной параметра duIdx, содержит и только содержит все единицы NAL, ассоциированные со всеми сообщениями SEI с информацией о единицах декодирования, имеющими параметр decoding_unit_idx равный duIdx. Такая единица декодирования также является ассоциированной с сообщениями SEI с информацией о единицах декодирования, имеющими параметр decoding_unit_idx равный duIdx.
Для любых двух единиц декодирования duA и duB в одной единице доступа с параметром decoding_unit_idx равным duIdxA и duIdxB, соответственно, где duIdxA меньше duIdxB, единица duA должна предшествовать единице duB в порядке декодирования.
Единица NAL из одной единицы декодирования не должна присутствовать, в порядке декодирования, между двумя единицами NAL из другой единицы декодирования.
Параметр dui_max_sub_layers_minus1 плюс 1 определяет параметр TemporalId для представления наивысшего подслоя, для которого информация о задержке извлечения данных из буфера CPB содержится в сообщении SEI с информацией о единицах декодирования. Величина параметра dui_max_sub_layers_minus1 должна быть в диапазоне от 0 до vps_max_sub_layers_minus1, включительно.
Параметр du_spt_cpb_removal_delay_increment[ i ] определяет продолжительность, в единицах долей тактового интервала, между номинальными моментами извлечения из буфера CPB последней единицы декодирования в порядке декодирования в текущей единице доступа и единицы декодирования, ассоциированной с сообщением SEI с информацией о единицах декодирования, когда параметр Htid i равен i. Эта величина также используется для вычисления самого раннего возможного момента времени прихода данных единиц декодирования в буфер CPB для планировщика HSS, как это специфицировано в Приложении C. Длина этого синтаксического элемента равна du_cpb_removal_delay_increment_length_minus1 + 1. Когда единица декодирования, ассоциированная с рассматриваемым сообщением SEI с информацией о единицах декодирования, является последней единицей декодирования в текущей единице доступа, величина параметра du_spt_cpb_removal_delay_increment[ i ] должна быть равна 0.
Флаг dpb_output_du_delay_present_flag равный 1 определяет присутствие синтаксического элемента pic_spt_dpb_output_du_delay в сообщении SEI с информацией о единицах декодирования. Флаг dpb_output_du_delay_present_flag равный 0 определяет отсутствие синтаксического элемента pic_spt_dpb_output_du_delay в указанном сообщении SEI с информацией о единицах декодирования.
Параметр pic_spt_dpb_output_du_delay используется для момента времени выхода изображения из буфера DPB, когда флаг DecodingUnitHrdFlag равен 1. Это определяет, как много долей тактового интервала нужно ожидать после извлечения последней единицы декодирования в некой единице доступа из буфера CPB прежде вывода декодированного изображения из буфера DPB. Когда параметр pic_spt_dpb_output_du_delay не присутствует, его величину признают равной pic_dpb_output_du_delay. Длина синтаксического элемента pic_spt_dpb_output_du_delay в битах равна dpb_output_delay_du_length_minus1 + 1.
Требование соответствия потока битов данных состоит в том, все сообщения SEI с информацией о единицах декодирования, ассоциированные с одной и той же единицей доступа, применимые к одной и той же рабочей точке и имеющие флаг dpb_output_du_delay_present_flag равный 1, должны иметь одну и ту же величину параметра pic_spt_dpb_output_du_delay.
Момент времени выхода, полученный из параметра pic_spt_dpb_output_du_delay для какого-либо изображения, поступающего на выход от декодирующего устройства, соответствующего синхронизации выхода, должен предшествовать моменту времени выхода, полученному из параметра pic_spt_dpb_output_du_delay для всех изображений в какой-либо последующей последовательности CVS в порядке декодирования.
Порядок вывода изображений, установленный величинами этого синтаксического элемента, должен быть таким же, как установлено величинами параметра PicOrderCntVal.
Для изображений, не выводимых в результате «выгибания», поскольку они предшествуют, в порядке декодирования, изображению, являющемуся началом кодированной последовательности слоев видео (CLVSS) и имеющему флаг no_output_of_prior_pics_flag равный 1 или признанный равным 1, моменты времени выхода, получаемые на основе параметра pic_spt_dpb_output_du_delay, следует увеличить на величину PicOrderCntVal относительно всех изображений в той же последовательности CVS.
Для любых двух изображений в последовательности CVS, разность между моментами времени выхода этих двух изображений, когда флаг DecodingUnitHrdFlag равен 1, должна быть идентичной этой же разности в ситуации, когда флаг DecodingUnitHrdFlag равен 0.
На фиг. 9 представлен вариант способа 900 декодирования, реализуемого устройством декодирования видео (например, устройство декодирования 400 для видео). Этот способ 900 может быть осуществлен после того, как поток битов данных был напрямую или не напрямую принят от кодирующего устройства для видео (например, кодирующего устройства 300 для видео). Способ 900 улучшает процедуры декодирования путем обеспечения того, что параметры буфера кодированного изображения (CPB) на уровне изображения для осуществления операций декодера HRD на основе единиц DU на подслоях включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В блоке 902, устройство декодирования для видео принимает поток битов данных, содержащий кодированное изображение и сообщение SEI. Это сообщение SEI содержит параметры буфера CPB (например, параметры 880 и/или 890 декодера HRD, называются параметрами буфера CPB на уровне изображения), используемые для осуществления операций декодера HRD на основе единиц DU на подслоях (например, подслоях 710, 720, 730). Операции декодера HRD на основе единиц DU, которые соответствует единице DU, такой как единица DU 822, отличаются от операций декодера HRD на основе единицы AU, которая соответствует одной из единиц AU, такой как единица AU 821. Как отмечено выше, операции декодера HRD на основе единиц DU осуществляются декодером HRD (например, декодером HRD 500) для целей тестирования потока битов данных, такого как поток 800 битов данных, который содержит многослойную последовательность 600 видео и/или многослойную последовательность 700 видео, на предмет соответствия этого потока битов данных.
В одном из вариантов, параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB. В одном из вариантов, указанное сообщение SEI представляет собой сообщение SEI с параметрами синхронизации изображений (PT). В одном из вариантов, совокупность параметров буфера CPB содержит общую задержку извлечения данных из буфера CPB и задержку извлечения данных из буфера CPB для единицы AU, ассоциированной с этим сообщением PT SEI.
В одном из вариантов, сообщение SEI представляет собой сообщение PT SEI, которое определяет число единиц декодирования в единице AU, ассоциированной с этим сообщением PT SEI. В одном из вариантов, сообщение SEI представляет собой сообщение PT SEI, которое определяет число единиц NAL в единице DU из единицы AU, ассоциированной с этим сообщением PT SEI. Как используется здесь, наивысший подслой является расширительным слоем (например, подслой 730), наиболее удаленным от базового слоя (например, подслоя 710).
В одном из вариантов, сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI), которое несет временной идентификатор ID единицы SEI NAL, содержащей сообщение DUI SEI. В одном из вариантов, временной идентификатор ID определяет наивысший подслой, для которого информация о задержке извлечения данных из буфера CPB, содержащейся в сообщении DUI SEI.
В блоке 904, устройство декодирования для видео декодирует кодированное изображение из потока битов данных для получения декодированного изображения. После этого, декодированное изображение может быть использовано для генерации или создания изображения или последовательности видео для представления пользователю на дисплее или экране электронного устройства (например, смартфона, планшета, портативного компьютера, персонального компьютера и т.п.). В одном из вариантов, параметры буфера CPB на уровне изображения, содержащиеся в сообщении PT SEI 818 и/или в сообщении DUI SEI 816, не используются при декодировании кодированного изображения.
На фиг. 10 представлен вариант способа 1000 кодирования потока битов данных видео, реализуемый устройством кодирования видео (например, кодирующим устройством 300 для видео). Этот способ 1000 может быть осуществлен, когда изображение (например, из видео) должно быть кодировано с преобразованием в поток битов данных видео и затем передано декодирующему устройство для видео (например, декодирующему устройству 400 для видео). Этот способ 1000 улучшает процедуру кодирования путем обеспечения того, что параметры буфера кодированного изображения (CPB) на уровне изображения, используемые для осуществления операций декодера HRD на основе единиц декодирования (DU) на подслоях, включены в сообщение с дополнительной улучшающей информацией (SEI). Поскольку параметры буфера CPB включены в сообщение SEI, декодер HRD может использовать операции декодера HRD на основе единиц DU для тестирования подслоев в потоке битов данных на предмет соответствия потока битов данных, что обеспечивает, что эти подслои правильно кодированы и/или могут быть правильно декодированы. Таким образом, предлагаемое устройство кодирования/устройство декодирования (также называемое «кодек») при кодировании видео усовершенствовано относительно сегодняшних кодеков. На практике, усовершенствованная процедура кодирования видео предлагает пользователю лучшие результаты и качество обслуживания, когда происходит передача, прием и/или просмотр видео.
В блоке 1002, устройство кодирования для видео генерирует поток битов данных, содержащий кодированное изображение и сообщение SEI. Это сообщение SEI содержит параметры буфера CPB (например, параметры 880 и/или 890 декодера HRD, называемые параметрами буфера CPB на уровне изображения), используемые для осуществления операций декодера HRD на основе единиц DU на подслоях (например, подслоях 710, 720, 730). Операции декодера HRD на основе единиц DU, которые соответствуют единице DU, такой как единица DU 822, отличаются от операций декодера HRD на основе единиц AU, которые соответствуют единице AU, такой как единица AU 821. Как отмечено выше, операции декодера HRD на основе единиц DU реализуются декодером HRD (например, декодером HRD 500) для целей тестирования потока битов данных, такого как поток 800 битов данных, который содержит многослойную последовательность 600 видео и/или многослойную последовательность 700 видео, на предмет соответствия этого потока битов данных.
В одном из вариантов, параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB. В одном из вариантов, сообщение SEI представляет собой сообщение SEI с параметрами синхронизации изображений (PT). В одном из вариантов, совокупность параметров буфера CPB содержит общую задержку извлечения данных из буфера CPB и задержку извлечения данных из буфера CPB для единицы доступа (AU), ассоциированной с этим сообщением PT SEI. В одном из вариантов, указанное сообщение PT SEI определяет число единиц декодирования в единице AU, ассоциированной с этим сообщением PT SEI, и число единиц слоев сетевой абстракции (NAL) в единице декодирования (DU) из единицы AU, ассоциированной с рассматриваемым сообщением PT SEI.
В одном из вариантов, сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI), которое содержит временной идентификатор (ID) единицы SEI NAL, содержащей это сообщение DUI SEI. В одном из вариантов, это сообщение DUI SEI определяет временной идентификатор (ID) наивысшего подслоя, для которого информация о задержке извлечения данных из буфера CPB содержится в сообщении DUI SEI.
В блоке 1004, устройство кодирования для видео осуществляет операции декодера HRD на основе единиц DU на подслоях с использованием параметров буфера CPB для определения, является ли рассматриваемый поток битов данных соответствующим.
В одном из вариантов, поток битов данных является соответствующим, когда продолжительность промежутка времени между моментами извлечения единиц декодирования из буфера CPB не превышена.
В блоке 1006, устройство кодирования для видео сохраняет поток битов данных для передачи декодирующему устройству для видео, когда этот поток битов данных является соответствующим на основе выполнения операций декодера HRD на основе единиц DU. Указанный поток битов данных может быть сохранен в запоминающем устройстве до тех пор, пока этот поток битов данных не будет передан декодирующему устройству для видео. После приема устройством декодирования видео, кодированный поток битов данных может быть декодирован (например, как описано выше) для генерации или формирования изображения или последовательности видео для представления пользователю на дисплее или экране электронного устройства (например, смартфона, планшета, портативного компьютера, персонального компьютера и т.п.).
На фиг. 11 представлена упрощенная схема кодирующего устройства 1100 для видео (например, кодирующего устройства 300 для видео или декодирующего устройства 400 для видео) согласно одному из вариантов настоящего изобретения. Это устройство кодирования 1100 для видео подходит для осуществления вариантов изобретения, как они описываются здесь. Это устройство кодирования 1100 для видео содержит входящие порты 1110 приемные модули (Rx) 1120 для приема данных; процессор, логический модуль или центральный процессор (central processing unit (CPU)) 1130 для обработки данных; передающие модули (Tx) 1140 и исходящие порты 1150 для передачи данных; и запоминающее устройство 1160 для сохранения данных. Это устройство 1100 для кодирования видео может также содержать оптоэлектрические (optical-to-electrical (OE)) компоненты и электрооптические (electrical-to-optical (EO)) компоненты, соединенные с входящими портами 1110, приемные модули 1120, передающие модули 1140 и исходящие порты 1150 для вывода или ввода оптических или электрических сигналов.
Процессор 1130 реализован посредством аппаратуры и программного обеспечения. Процессор 1130 может быть реализован в виде одного или нескольких кристаллов интегральных схем процессоров CPU, ядер (например, в качестве многоядерного процессора), программируемых пользователем вентильных матриц (field-programmable gate array (FPGA)), специализированных интегральных схем (application specific integrated circuit (ASIC)) и цифровых процессоров сигнала (digital signal processor (DSP)). Этот процессор 1130 осуществляет связь с входящими портами 1110, приемными модулями 1120, передающими модулями 1140, исходящими портами 1150 и запоминающим устройством 1160. Процессор 1130 содержит кодирующий модуль 1170. Этот кодирующий модуль 1170 реализует предлагаемые здесь варианты, рассмотренные выше. Например, кодирующий модуль 1170 реализует, обрабатывает, готовит или осуществляет различные функции кодека. Введение кодирующего модуля 1170, таким образом, создает значительное усовершенствование функциональных возможностей устройства 1100 для кодирования видео и осуществляет трансформацию устройства 1100 для кодирования видео в другое состояние. В качестве альтернативы, кодирующий модуль 1170 реализуется в виде команд, сохраняемых в запоминающем устройстве 1160 и выполняемых процессором 1130.
Это устройство кодирования 1100 для видео может также содержать устройства 1180 ввода и/или вывода (I/O) для передачи данных пользователю и от него. Совокупность устройств 11880 ввода/вывода (I/O) может содержать устройства вывода, такие как дисплей для представления данных видео на экране, громкоговорителя для вывода данных аудио и т.п. Совокупность устройств 11880 ввода/вывода (I/O) может также содержать устройства ввода, такие как клавиатура, мышь, трекбол и т.п., и/или соответствующие интерфейсы для взаимодействия с такими устройствами ввода/вывода.
Запоминающее устройство 1160 может содержать один или более дисков, накопителей на магнитной ленте и твердотельных накопителей (дисков) и может быть использовано в качестве устройства для хранения данных с переполнением, с целью сохранения программ, когда такие программы выбраны для выполнения, и с целью сохранения команд и данных, считываемых в процессе выполнения программ. Запоминающее устройство 1160 может быть, например, энергозависимым и/или энергонезависимым и может представлять собой постоянное запоминающее устройство (ПЗУ (read-only memory (ROM))), запоминающее устройство с произвольной выборкой (ЗУПВ (random access memory (RAM))), троичное ассоциативное запоминающее устройство (ternary content-addressable memory (TCAM)) и/или статическое ЗУПВ (static random-access memory (SRAM)).
На фиг. 12 представлена упрощенная схема варианта средств 1200 для кодирования. В одном из вариантов, средства 1200 для кодирования реализованы в кодирующем устройстве 1202 для видео (например, в кодирующем устройстве 300 для видео или декодирующем устройстве 400 для видео). Устройство кодирования 1202 для видео содержит приемные средства 1201. Эти приемные средства 1201 конфигурированы для приема изображения, подлежащего кодированию, или приема потока битов данных, подлежащего декодированию. Устройство кодирования 1202 для видео содержит передающие средства 1207, соединенные с приемными средствами 1201. Эти передающие средства 1207 конфигурированы для передачи потока битов данных декодирующему устройству или для передачи декодированного изображения дисплейным средствам (например, одному из устройств 1180 ввода/вывода (I/O)).
Кодирующее устройство 1202 для видео содержит средства 1203 для хранения информации. Эти средства 1203 для хранения информации соединены по меньшей мере с одним – с приемными средствами 1201 и/или с передающими средствами 1207. Эти средства 1203 для хранения информации конфигурированы для хранения команд. Устройство кодирования 1202 для видео также содержит процессорные средства 1205. Эти процессорные средства 1205 соединены со средствами 1203 для хранения информации. Процессорные средства 1205 конфигурированы для выполнения команд, сохраняемых в средствах 1203 для хранения информации для осуществления описываемых здесь способов.
Следует также понимать, что этапы рассматриваемых здесь примеров способов не обязательно требуется осуществлять в том порядке, в каком они описаны, и что должно быть понятно, что порядок этапов этих способов является всего лишь примером. Аналогично, в такие способы могут быть включены дополнительные этапы, а какие-то определенные этапы могут быть исключены или комбинированы в различных вариантах способов согласно настоящему изобретению.
Хотя в настоящем описании приведен ряд вариантов, следует понимать, что описываемые системы и способы могут быть реализованы во множестве других конкретных форм, не отклоняясь от смысла или объема настоящего изобретения. Представленные примеры следует рассматривать только в качестве иллюстраций, а не ограничений, так что раскрытие не исчерпывается приведенными здесь подробностями. Например, различные элементы или компоненты могут быть комбинированы или интегрированы в другую систему, либо определенные признаки могут быть исключены или не реализованы.
В дополнение к этому, технологии, системы, подсистемы и способы. Описываемые и иллюстрируемые здесь в различных вариантах как дискретные или отдельные, могут быть скомбинированы или интегрированы с другими системами, модулями, технологиями или способами, не отклоняясь от объема настоящего изобретения. Другие объекты, показанные или обсуждаемые как связанные, соединенные напрямую или осуществляющие связь одним с другими, могут быть соединены не напрямую или осуществлять связь через некоторый интерфейс, устройство или промежуточный компонент, будь то механически, электрически или иными образом. Другие примеры изменений, подстановок или замен понятны для специалистов в рассматриваемой области и могут быть сделаны без отклонений от смысла и объема, описываемых здесь.

Claims (37)

1. Способ декодирования, содержащий этапы, на которых:
принимают, с помощью устройства декодирования видео, поток битов данных, содержащий кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), причем сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие выполняемым на подслоях операциям гипотетического эталонного декодера (HRD) на основе единиц декодирования (DU); и
декодируют, с помощью устройства декодирования видео, кодированное изображение из потока битов данных для получения декодированного изображения.
2. Способ по п. 1, в котором параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB.
3. Способ по п. 1 или 2, в котором сообщение SEI представляет собой сообщение SEI с параметрами синхронизации изображений (PT).
4. Способ по п. 3, в котором совокупность параметров буфера CPB содержит приращение общей задержки извлечения данных из буфера CPB и приращение задержки извлечения данных из буфера CPB для единицы доступа (AU), ассоциированной с сообщением PT SEI.
5. Способ по п. 4, в котором указанное сообщение SEI представляет собой сообщение PT SEI, определяющее число единиц декодирования в единице AU, ассоциированной с этим сообщением PT SEI.
6. Способ по п. 1, в котором указанное сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI) (сообщение DUI SEI), содержащее временной идентификатор (ID) единицы SEI NAL, содержащей указанное сообщение DUI SEI.
7. Способ по п. 6, в котором временной идентификатор ID определяет наивысший подслой, для которого информация о задержке извлечения данных из буфера CPB содержится в сообщении DUI SEI.
8. Способ кодирования, содержащий этапы, на которых:
генерируют, с помощью устройства кодирования видео, поток битов данных, содержащий кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), причем указанное сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие выполняемым на подслоях операциям гипотетического эталонного декодера (HRD) на основе единиц декодирования (DU);
осуществляют, с помощью устройства кодирования видео, операции декодера HRD на основе единиц DU на подслоях с использованием параметров буфера CPB для определения, является ли поток битов данных соответствующим; и
сохраняют, с помощью устройства кодирования видео, указанный поток битов данных для передачи устройством декодирования видео, когда указанный поток битов данных является соответствующим на основе осуществления операций декодера HRD на основе единиц DU.
9. Устройство декодирования, содержащее:
приемник для приема потока битов данных, содержащего кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), причем сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие выполняемым на подслоях операциям гипотетического эталонного декодера (HRD) на основе единиц декодирования (DU);
запоминающее устройство, соединенное с приемником, причем указанное запоминающее устройство содержит команды; и
процессор, соединенный с указанным запоминающим устройством, причем процессор выполнен с возможностью исполнения команд, вызывающих выполнение, устройством декодирования, декодирования кодированного изображения из указанного потока битов данных для получения декодированного изображения.
10. Устройство декодирования по п. 9, в котором параметры буфера CPB определяют продолжительность промежутка времени между моментами извлечения двух единиц декодирования из буфера CPB.
11. Устройство декодирования по п. 9 или 10, в котором указанное сообщение SEI представляет собой сообщение PT SEI, определяющее число единиц декодирования в единице доступа (AU), ассоциированной с указанным сообщением PT SEI, и при этом совокупность параметров буфера CPB содержит общую задержку извлечения данных из буфера CPB и задержку извлечения данных из буфера CPB для единицы AU, ассоциированной с указанным сообщением PT SEI.
12. Устройство декодирования по п. 9, в котором указанное сообщение SEI представляет собой сообщение SEI с информацией о единицах декодирования (DUI), содержащее временной идентификатор (ID) единицы SEI NAL, содержащей указанное сообщение DUI SEI.
13. Устройство декодирования по п. 12, в котором временной идентификатор ID определяет наивысший подслой, для которого информация о задержке извлечения данных из буфера CPB содержится в указанном сообщении DUI SEI.
14. Устройство кодирования, содержащее:
запоминающее устройство, хранящее команды;
процессор, соединенный с запоминающим устройством, при этом процессор выполнен с возможностью исполнения команд, вызывающих выполнение кодирующим устройством:
генерирования потока битов данных, содержащего кодированное изображение и сообщение с дополнительной улучшающей информацией (SEI), при этом сообщение SEI содержит параметры буфера кодированного изображения (CPB), соответствующие операциям декодера HRD на основе единиц декодирования (DU) на подслоях;
осуществления операций декодера HRD на основе единиц DU на подслоях с использованием параметров буфера CPB с целью определения, является ли указанный поток битов данных соответствующим; и
передатчик, соединенный с процессором, причем передатчик выполнен с возможностью передачи потока битов данных видео декодирующему устройству для видео, когда указанный поток битов данных является соответствующим на основе осуществления операций декодера HRD на основе единиц DU.
15. Оборудование декодирования, содержащее:
приемник для приема потока битов данных, подлежащего декодированию;
передатчик, соединенный с приемником, при этом передатчик выполнен с возможностью передачи декодированного изображения на дисплей;
запоминающее устройство, соединенное по меньшей мере с одним модулем – приемником или передатчиком, причем запоминающее устройство выполнено с возможностью хранения команд; и
процессор, соединенный с запоминающим устройством, при этом процессор выполнен с возможностью выполнения команд, хранящихся в запоминающем устройстве, для осуществления способа по любому из пп. 1 – 7.
16. Оборудование кодирования, содержащее:
приемник для приема изображения, подлежащего кодированию так, что генерируется поток битов данных, подлежащий декодированию;
передатчик, соединенный с приемником, при этом передатчик выполнен с возможностью передачи потока битов на устройство декодирования;
запоминающее устройство, соединенное по меньшей мере с одним из приемника и передатчика, причем запоминающее устройство выполнено с возможностью хранения команд; и
процессор, соединенный с запоминающим устройством, при этом процессор выполнен с возможностью выполнения команд, хранящихся в запоминающем устройстве, для осуществления способа по п. 8.
RU2022110900A 2019-09-24 2020-09-21 Информация о синхронизации изображений и единицах декодирования для временной масштабируемости RU2819201C1 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/905,147 2019-09-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024112468A Division RU2024112468A (ru) 2019-09-24 2020-09-21 Информация о синхронизации изображений и единицах декодирования для временной масштабируемости

Publications (1)

Publication Number Publication Date
RU2819201C1 true RU2819201C1 (ru) 2024-05-15

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2627098C2 (ru) * 2012-09-24 2017-08-03 Квэлкомм Инкорпорейтед Независимые от единицы доступа времена удаления из буфера кодированных картинок при кодировании видео

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2627098C2 (ru) * 2012-09-24 2017-08-03 Квэлкомм Инкорпорейтед Независимые от единицы доступа времена удаления из буфера кодированных картинок при кодировании видео

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DRUGEON V. AHG17: Harmonized HRD parameters signalling for decoding units, JVET-P0202, 16. JVET Meeting; Geneva, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, найдено в Интернете на http://phenix.int-evry.fr/jvet/doc_end_user/documents/16_Geneva/wg11/JVET-P0202-v1.zip JVET-P0202_Spec_based_on_JVET-O2001-vE.docx, version 1 - date 2019-09-23. BENJAMIN BROSS. et al. Versatile Video Coding (Draft 6), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 15th Meeting: Gothenburg, 3-12 July 2019. *

Similar Documents

Publication Publication Date Title
CN114979663B (zh) 解码器、编码器及其实现的方法
CN114514751B (zh) 避免多层视频码流中的冗余指示
JP7436641B2 (ja) 時間スケーラビリティのためのピクチャタイミング及び復号ユニット情報
KR20220063261A (ko) 비디오 코딩에서 멀티뷰를 위한 동시 송출 레이어
CN114424527B (zh) 所有层可伸缩嵌套式sei消息的设置方法和装置
RU2819201C1 (ru) Информация о синхронизации изображений и единицах декодирования для временной масштабируемости
RU2821048C1 (ru) Параметры hrd для тестирования на соответствие на основе слоя
RU2823614C1 (ru) Ограничения временного идентификатора для сообщений sei
RU2820076C1 (ru) Тесты на соответствие hrd для ols
RU2822533C1 (ru) Ограничения набора параметров единиц nal на основе уровня
RU2822508C1 (ru) Ols для многоракурсной масштабируемости
RU2822990C1 (ru) Ols для пространственной масштабируемости и масштабируемости по snr
RU2827823C1 (ru) Параметры hrd для слоев
RU2819291C2 (ru) Извлечение битового потока видеокодирования с помощью сигнализации идентификаторов
RU2822511C1 (ru) Предотвращение избыточной сигнализации в многослойных битовых потоках видео
RU2824781C1 (ru) Управление масштабируемым вкладываемым sei-сообщением