RU2821048C1 - Hrd parameters for layer-based conformity testing - Google Patents

Hrd parameters for layer-based conformity testing Download PDF

Info

Publication number
RU2821048C1
RU2821048C1 RU2022110946A RU2022110946A RU2821048C1 RU 2821048 C1 RU2821048 C1 RU 2821048C1 RU 2022110946 A RU2022110946 A RU 2022110946A RU 2022110946 A RU2022110946 A RU 2022110946A RU 2821048 C1 RU2821048 C1 RU 2821048C1
Authority
RU
Russia
Prior art keywords
hrd
sublayer
layer
flag
parameters
Prior art date
Application number
RU2022110946A
Other languages
Russian (ru)
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 RU2821048C1 publication Critical patent/RU2821048C1/en

Links

Abstract

FIELD: physics.
SUBSTANCE: invention relates to video encoding and decoding means. Plurality of sublayer representations are encoded into a bitstream. Parameters of a hypothetical reference decoder (HRD) and a flag of coded picture buffer (CPB) parameters of a sublayer (sublayer_cpb_params_present_flag) are encoded with the help of a processor. Sublayer representation is a subset of a bit stream containing NAL units of a specific sublayer and lower sublayers. Conducting, using a processor, that the HRD parameters for all representations of sublayers with temporary identifiers (TemporalIds) are less than the maximum TemporalId, are equal to HRD parameters for maximum sublayer representation with maximum TemporalId when sublayer_cpb_params_present_flag is set equal to zero.
EFFECT: high efficiency of video encoding.
20 cl, 12 dwg

Description

Перекрестная ссылка на родственную заявкуCross reference to related application

В настоящей заявке на патент испрашивается преимущество предварительной заявки на патент США № 62/905,244, поданной 24 сентября 2019 года Ван Е-Куем (Ye-Kui Wang) и озаглавленной «Hypothetical Reference Decoder (HRD) for Multi-Layer Video Bitstreams», которая включена в данный документ путем ссылки.This patent application claims benefit from U.S. Provisional Patent Application No. 62/905,244, filed September 24, 2019 by Ye-Kui Wang, entitled "Hypothetical Reference Decoder (HRD) for Multi-Layer Video Bitstreams", which incorporated herein by reference.

Область техники, к которой относится изобретениеField of technology to which the invention relates

Настоящее раскрытие относится, в общем, к кодированию видео и, в частности, относится к изменениям параметров гипотетического опорного декодера (HRD) для поддержки эффективного кодирования и/или тестирования на соответствие многослойных битовых потоков.The present disclosure relates generally to video encoding and in particular relates to changes to hypothetical reference decoder (HRD) parameters to support efficient encoding and/or conformance testing of multi-layer bitstreams.

Уровень техникиState of the art

Объем видеоданных, необходимых для отображения даже относительно короткого видео, может быть значительным, что может привести к трудностям в тех случаях, когда данные должны передаваться в потоковом режиме или передаваться иным образом по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед передачей по современным телекоммуникационным сетям. Размер видео также может быть проблемой, когда видео хранится в запоминающем устройстве, так как ресурсы памяти могут быть ограничены. Устройства для сжатия видео часто используют программное обеспечение и/или аппаратные средства в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в пункте назначения устройством для распаковки видео, которое декодирует видеоданные. При ограниченных сетевых ресурсах и постоянно растущих требованиях к более высокому качеству видео желательны улучшенные технологии сжатия и распаковки, которые улучшают коэффициент сжатия практически без ущерба для качества изображения.The amount of video data required to display even a relatively short video can be significant, which can lead to difficulties in cases where the data must be streamed or otherwise transmitted over a communications network with limited bandwidth. Thus, video data is typically compressed before being transmitted over modern telecommunications networks. Video size can also be an issue when the video is stored in a storage device, as memory resources may be limited. Video compression devices often use software and/or hardware at the source to encode video data before transmission or storage, thereby reducing the amount of data required to represent digital video images. The compressed data is then received at its destination by a video decompressor, which decodes the video data. With limited network resources and ever-increasing demands for higher video quality, improved compression and decompression technologies are desired that improve the compression ratio with little or no sacrifice in image quality.

Раскрытие сущности изобретенияDisclosure of the invention

В варианте осуществления раскрытие включает в себя способ, реализуемый декодером, причем способ содержит: прием, приемником декодера, битового потока, содержащего множество представлений подслоев, параметры гипотетического опорного декодера (HRD) и флаг наличия параметров буфера кодированных изображений (CPB) подслоя (sublayer_cpb_params_present_flag); вывод, процессором декодера, относительно того, что параметры HRD для всех представлений подслоев с временными идентификаторами (TemporalIds) меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда sublayer_cpb_params_present_flag установлен равным нулю; и декодирование, процессором, изображения из представлений подслоев.In an embodiment, the disclosure includes a method implemented by a decoder, the method comprising: receiving, by a decoder receiver, a bitstream containing a plurality of sublayer representations, hypothetical reference decoder (HRD) parameters, and a sublayer coded picture buffer (CPB) parameters present flag (sublayer_cpb_params_present_flag) ; an output, by the decoder processor, that the HRD parameters for all sublayer representations with temporal identifiers (TemporalIds) less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer representation with the maximum TemporalId when sublayer_cpb_params_present_flag is set to zero; and decoding, by the processor, images from sublayer representations.

Системы кодирования видео используют различные тесты на соответствие с тем, чтобы гарантировать, что битовый поток может быть декодирован декодером. Например, проверка на соответствие может включать в себя тестирование всего битового потока на соответствие, затем проверку каждого слоя битового потока на соответствие и, наконец, проверку потенциально декодируемых выходных сигналов на соответствие. Для того, чтобы реализовать проверки на соответствие в битовый поток включаются соответствующие параметры. HRD может считывать параметры и выполнять тесты. Видео может включать в себя множество слоев и множество различных наборов слоев вывода (OLS). По запросу кодер передает один или более слоев выбранного OLS. Например, кодер может передать лучший слой (слои) из OLS, который может поддерживаться текущей пропускной способностью сети. Проблема может возникнуть тогда, когда видео разделено на несколько слоев и/или подслоев. Кодер может кодировать эти слои в битовый поток. Кроме того, кодер может использовать HRD для выполнения тестов на соответствие, чтобы проверить битовый поток на соответствие стандартам. Кодер может быть выполнен с возможностью включения специфичных для слоя параметров HRD в битовый поток для поддержки таких тестов на соответствие. В некоторых системах кодирования видео специфичные для слоя параметры HRD могут быть закодированы для каждого слоя. В некоторых случаях специфичные для слоя параметры HRD являются одинаковыми для каждого слоя, что приводит к избыточной информации, которая без необходимости увеличивает размер кодирования видео. Настоящий пример включает в себя механизм для уменьшения избыточности параметров HRD для видео, которые используют несколько слоев. Кодер может кодировать параметры HRD для верхнего слоя. Кодер также может кодировать флаг sublayer_cpb_params_present_flag. sublayer_cpb_params_present_flag может быть установлен равным нулю, чтобы указать то, что все нижние уровни должны использовать те же самые параметры HRD, что и верхний слой. В этом контексте верхний слой имеет наибольший идентификатор (ID) слоя, и нижний слой – это любой слой, который имеет идентификатор слоя, который меньше идентификатора верхнего слоя. Таким образом, параметры HRD для нижних слоев могут быть исключены из битового потока. Это позволяет уменьшить размер битового потока и, следовательно, уменьшить использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.Video encoding systems use various conformance tests to ensure that the bit stream can be decoded by the decoder. For example, conformance testing may involve testing the entire bitstream for consistency, then testing each layer of the bitstream for consistency, and finally testing potentially decodable output signals for consistency. In order to implement compliance checks, appropriate parameters are included in the bitstream. HRD can read parameters and perform tests. A video can include many layers and many different output layer sets (OLS). Upon request, the encoder transmits one or more layers of the selected OLS. For example, the encoder may transmit the best layer(s) from the OLS that can be supported by the current network bandwidth. The problem can arise when the video is divided into several layers and/or sublayers. The encoder can encode these layers into a bitstream. In addition, the encoder can use HRD to perform conformance tests to check the bitstream for compliance with standards. The encoder may be configured to include layer-specific HRD parameters in the bitstream to support such compliance tests. In some video encoding systems, layer-specific HRD parameters may be encoded on a per-layer basis. In some cases, layer-specific HRD parameters are the same for each layer, resulting in redundant information that unnecessarily increases the video encoding size. The present example includes a mechanism to reduce the redundancy of HRD parameters for videos that use multiple layers. The encoder can encode the HRD parameters for the top layer. The encoder can also encode the sublayer_cpb_params_present_flag. sublayer_cpb_params_present_flag can be set to zero to indicate that all lower layers should use the same HRD parameters as the top layer. In this context, the top layer has the highest layer ID, and the bottom layer is any layer that has a layer ID that is less than the top layer's ID. In this way, the HRD parameters for the lower layers can be excluded from the bitstream. This makes it possible to reduce the size of the bit stream and therefore reduce the use of processor, memory and/or network resources in both the encoder and decoder.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой sublayer_cpb_params_present_flag содержится в наборе параметров видео (VPS) в битовом потоке.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the sublayer_cpb_params_present_flag is contained in the video parameter set (VPS) in the bitstream.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой максимальный TemporalId максимального представления подслоя выражается как максимальный TemporalId HRD (hrd_max_tid[ i ]), где i указывает синтаксическую структуру i-го параметра HRD.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the maximum TemporalId of the maximum representation of the sublayer is expressed as the maximum TemporalId of the HRD (hrd_max_tid[ i ]), where i indicates the syntactic structure of the i-th HRD parameter.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой TemporalId, которые меньше максимального TemporalId, находятся в диапазоне от нуля до hrd_max_tid[ i ] минус один.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the TemporalIds that are less than the maximum TemporalId are in the range of zero to hrd_max_tid[ i ] minus one.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой параметры HRD включают в себя общий флаг фиксированной скорости вывода изображений (fixed_pic_rate_general_flag[ i ]), который указывает то, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the HRD parameters include a general fixed picture rate flag (fixed_pic_rate_general_flag[ i ]) that indicates whether the temporal distance between the HRD output times of successive pictures in the order output.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой параметры HRD включают в себя синтаксическую структуру параметров HRD подслоев (sublayer_hrd_parameters( i )), которая содержит параметры HRD для одного или более подслоев.Alternatively, in any of the previous aspects, another implementation of the aspect is provided wherein the HRD parameters include a sublayer HRD parameters syntactic structure (sublayer_hrd_parameters(i)) that contains the HRD parameters for one or more sublayers.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой параметры HRD включают в себя флаг наличия общих параметров HRD слоя кодирования видео (VCL) (general_vcl_hrd_params_present_flag), который указывает то, присутствуют ли параметры HRD VCL, относящиеся к точке соответствия, в синтаксической структуре общих параметров HRD.Alternatively, in any of the previous aspects, another implementation of the aspect is provided wherein the HRD parameters include a video coding layer (VCL) general HRD parameters presence flag (general_vcl_hrd_params_present_flag) that indicates whether the VCL HRD parameters related to the match point are present , in the syntactic structure of the general HRD parameters.

В варианте осуществления раскрытие включает в себя способ, реализуемый кодером, причем способ содержит: кодирование, процессором кодера, множества представлений подслоев в битовый поток; кодирование в битовый поток, процессором, параметров HRD и флага sublayer_cpb_params_present_flag; вывод, процессором, относительно того, что параметры HRD для всех представлений подслоев с TemporalId меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда sublayer_cpb_params_present_flag установлен равным нулю; и выполнение, процессором, набора тестов на соответствие битового потока в отношении битового потока на основе параметров HRD.In an embodiment, the disclosure includes a method implemented by an encoder, the method comprising: encoding, by an encoder processor, a plurality of sublayer representations into a bitstream; encoding into a bit stream, by the processor, HRD parameters and the sublayer_cpb_params_present_flag flag; an output, by the processor, that the HRD parameters for all sublayer views with a TemporalId less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when sublayer_cpb_params_present_flag is set to zero; and executing, by the processor, a set of bitstream compliance tests with respect to the bitstream based on the HRD parameters.

Системы кодирования видео используют различные тесты на соответствие с тем, чтобы гарантировать, что битовый поток может быть декодирован декодером. Например, проверка на соответствие может включать в себя тестирование всего битового потока на соответствие, затем проверку каждого слоя битового потока на соответствие и, наконец, проверку потенциально декодируемых выходных сигналов на соответствие. Для того, чтобы реализовать проверки на соответствие в битовый поток включаются соответствующие параметры. HRD может считывать параметры и выполнять тесты. Видео может включать в себя множество слоев и множество OLS. По запросу кодер передает один или более слоев выбранного OLS. Например, кодер может передать лучший слой (слои) из OLS, который может поддерживаться текущей пропускной способностью сети. Проблема может возникнуть тогда, когда видео разделено на несколько слоев и/или подслоев. Кодер может кодировать эти слои в битовый поток. Кроме того, кодер может использовать HRD для выполнения тестов на соответствие, чтобы проверить битовый поток на соответствие стандартам. Кодер может быть выполнен с возможностью включения специфичных для слоя параметров HRD в битовый поток для поддержки таких тестов на соответствие. В некоторых системах кодирования видео специфичные для слоя параметры HRD могут быть закодированы для каждого слоя. В некоторых случаях специфичные для слоя параметры HRD являются одинаковыми для каждого слоя, что приводит к избыточной информации, которая без необходимости увеличивает размер кодирования видео. Настоящий пример включает в себя механизм для уменьшения избыточности параметров HRD для видео, которые используют несколько слоев. Кодер может кодировать параметры HRD для верхнего слоя. Кодер также может кодировать флаг sublayer_cpb_params_present_flag. sublayer_cpb_params_present_flag может быть установлен равным нулю, чтобы указать то, что все нижние уровни должны использовать те же самые параметры HRD, что и верхний слой. В этом контексте верхний слой имеет наибольший ID слоя, и нижний слой – это любой слой, имеющий ID слоя, который меньше ID верхнего слоя. Таким образом, параметры HRD для нижних слоев могут быть исключены из битового потока. Это позволяет уменьшить размер битового потока и, следовательно, уменьшить использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.Video encoding systems use various conformance tests to ensure that the bit stream can be decoded by the decoder. For example, conformance testing may involve testing the entire bitstream for consistency, then testing each layer of the bitstream for consistency, and finally testing potentially decodable output signals for consistency. In order to implement compliance checks, appropriate parameters are included in the bitstream. HRD can read parameters and perform tests. A video can include many layers and many OLSs. Upon request, the encoder transmits one or more layers of the selected OLS. For example, the encoder may transmit the best layer(s) from the OLS that can be supported by the current network bandwidth. The problem can arise when the video is divided into several layers and/or sublayers. The encoder can encode these layers into a bitstream. In addition, the encoder can use HRD to perform conformance tests to check the bitstream for compliance with standards. The encoder may be configured to include layer-specific HRD parameters in the bitstream to support such compliance tests. In some video encoding systems, layer-specific HRD parameters may be encoded on a per-layer basis. In some cases, layer-specific HRD parameters are the same for each layer, resulting in redundant information that unnecessarily increases the video encoding size. The present example includes a mechanism to reduce the redundancy of HRD parameters for videos that use multiple layers. The encoder can encode the HRD parameters for the top layer. The encoder can also encode the sublayer_cpb_params_present_flag. sublayer_cpb_params_present_flag can be set to zero to indicate that all lower layers should use the same HRD parameters as the top layer. In this context, the top layer has the highest layer ID, and the bottom layer is any layer that has a layer ID that is less than the top layer ID. In this way, the HRD parameters for the lower layers can be excluded from the bitstream. This makes it possible to reduce the size of the bit stream and therefore reduce the use of processor, memory and/or network resources in both the encoder and decoder.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой sublayer_cpb_params_present_flag кодируется в VPS в битовом потоке.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the sublayer_cpb_params_present_flag is encoded in the VPS in the bitstream.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой максимальный TemporalId максимального представления подслоя выражается как hrd_max_tid[ i ], где i указывает синтаксическую структуру i-го параметра HRD.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the maximum TemporalId of the maximum representation of the sublayer is expressed as hrd_max_tid[ i ], where i indicates the syntactic structure of the i th HRD parameter.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой TemporalId, которые меньше максимального TemporalId, находятся в диапазоне от нуля до hrd_max_tid[ i ] минус один.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the TemporalIds that are less than the maximum TemporalId are in the range of zero to hrd_max_tid[ i ] minus one.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой параметры HRD включают в себя fixed_pic_rate_general_flag[ i ], который указывает то, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the HRD parameters include a fixed_pic_rate_general_flag[ i ] that indicates whether the time distance between the HRD output times of successive pictures in output order is limited.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой параметры HRD включают в себя синтаксическую структуру sublayer_hrd_parameters( i ), которая содержит параметры HRD для одного или более подслоев.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the HRD parameters include a sublayer_hrd_parameters(i) syntax structure that contains HRD parameters for one or more sublayers.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой параметры HRD включают в себя general_vcl_hrd_params_present_flag, который указывает то, указывает то, присутствуют ли параметры HRD VCL, относящиеся к точке соответствия, в синтаксической структуре общих параметров HRD.Alternatively, in any of the previous aspects, another implementation of the aspect is provided in which the HRD parameters include a general_vcl_hrd_params_present_flag that indicates whether VCL HRD parameters related to the match point are present in the syntactic structure of the general HRD parameters.

В варианте осуществления раскрытие включает в себя устройство кодирования видео, содержащее: процессор, приемник, подключенный к процессору, память, подключенную к процессору, и передатчик, подключенный к процессору, причем процессор, приемник, память и передатчик выполнен с возможностью выполнения способа согласно любому из предыдущих аспектов.In an embodiment, the disclosure includes a video encoding apparatus comprising: a processor, a receiver coupled to the processor, a memory coupled to the processor, and a transmitter coupled to the processor, wherein the processor, receiver, memory, and transmitter are configured to perform a method according to any one of previous aspects.

В варианте осуществления раскрытие включает в себя энергонезависимый машиночитаемый носитель информации, содержащий компьютерный программный продукт для использования устройством для кодирования видео, причем компьютерный программный продукт содержит исполняемые компьютером инструкции, хранящиеся на энергонезависимый машиночитаемом носителе информации, которые при их исполнении процессором предписывают устройству для кодирования видео выполнять способ согласно любому из предыдущих аспектов.In an embodiment, the disclosure includes a non-transitory computer readable storage medium comprising a computer program product for use by a video encoding apparatus, the computer program product comprising computer executable instructions stored on the non-transitory computer readable storage medium which, when executed by a processor, cause the video encoding apparatus to execute a method according to any of the previous aspects.

В варианте осуществления раскрытие включает в себя декодер, содержащий: средство приема, предназначенное для приема битового потока, содержащего множество представлений подслоев, параметры HRD и флаг sublayer_cpb_params_present_flag; средство вывода, предназначенное для вывода относительно того, что параметры HRD для всех представлений подслоев с TemporalId меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю; средство декодирования, предназначенное для декодирования изображения из представлений подслоев; и средство пересылки, предназначенное для пересылки изображения для отображения в виде части декодированной видеопоследовательности.In an embodiment, the disclosure includes a decoder comprising: receiving means for receiving a bitstream comprising a plurality of sublayer representations, HRD parameters, and a sublayer_cpb_params_present_flag; output means for outputting that the HRD parameters for all sublayer views with a TemporalId less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when the sublayer_cpb_params_present_flag is set to zero; decoding means for decoding the image from the sublayer representations; and forwarding means for forwarding the image for display as part of the decoded video sequence.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой декодер дополнительно выполнен с возможностью выполнения способа согласно любому из предыдущих аспектов.Alternatively, in any of the previous aspects, another implementation of the aspect is provided, wherein the decoder is further configured to perform the method according to any of the previous aspects.

В варианте осуществления раскрытие включает в себя кодер, содержащий: средство кодирования для: кодирования множества представлений подслоев в битовый поток; кодирование в параметры HRD битового потока и флаг sublayer_cpb_params_present_flag; средство вывода, предназначенное для вывода относительно того, что параметры HRD для всех представлений подслоев с TemporalId меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю; средство HRD для выполнения набора тестов на соответствие битового потока для битового потока на основе параметров HRD; и средство хранения, предназначенное для хранения битовый поток для его дальнейшей передачи в декодер.In an embodiment, the disclosure includes an encoder comprising: encoding means for: encoding a plurality of sublayer representations into a bitstream; encoding the bitstream into HRD parameters and the sublayer_cpb_params_present_flag flag; output means for outputting that the HRD parameters for all sublayer views with a TemporalId less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when the sublayer_cpb_params_present_flag is set to zero; an HRD means for performing a set of bitstream conformance tests on the bitstream based on the HRD parameters; and storage means for storing the bit stream for further transmission to the decoder.

В качестве варианта, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой кодер дополнительно выполнен с возможностью выполнения способа согласно любому из предыдущих аспектов.Alternatively, any of the previous aspects provides another implementation of the aspect, wherein the encoder is further configured to perform the method according to any of the previous aspects.

В целях ясности любой из вышеизложенных вариантов осуществления может быть объединен с любым одним или несколькими другими вышеизложенными вариантами осуществления для создания нового варианта осуществления в пределах объема настоящего раскрытия.For purposes of clarity, any of the above embodiments may be combined with any one or more other embodiments above to create a new embodiment within the scope of this disclosure.

Эти и другие признаки станут более понятными из последующего подробного описания, рассматриваемого совместно с сопроводительными чертежами и формулой изобретения.These and other features will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings and claims.

Краткое описание чертежейBrief description of drawings

Для более полного понимания настоящего раскрытия теперь делается ссылка на последующее краткое описание, приведенное совместно с сопроводительными чертежами и подробным описанием, в котором одинаковые ссылочные позиции обозначают одинаковые части.For a more complete understanding of the present disclosure, reference is now made to the following brief description, taken in conjunction with the accompanying drawings and detailed description, in which like reference numerals denote like parts.

Фиг. 1 – блок-схема последовательности операций примерного способа кодирования видеосигнала.Fig. 1 is a flowchart of an exemplary video encoding method.

Фиг. 2 – схематичное представление примерной системы кодирования и декодирования (кодека) для кодирования видео.Fig. 2 is a schematic representation of an exemplary encoding and decoding system (codec) for video encoding.

Фиг. 3 – схематичное представление, иллюстрирующее примерный видеокодер.Fig. 3 is a schematic diagram illustrating an exemplary video encoder.

Фиг. 4 – схематичное представление, иллюстрирующее примерный видеодекодер.Fig. 4 is a schematic diagram illustrating an exemplary video decoder.

Фиг. 5 – схематичное представление, иллюстрирующее примерный гипотетический опорный декодер (HRD).Fig. 5 is a schematic diagram illustrating an exemplary hypothetical reference decoder (HRD).

Фиг. 6 – схематичное представление, иллюстрирующее примерную многослойную видеопоследовательность, выполненную с возможностью межслойного предсказания.Fig. 6 is a schematic diagram illustrating an exemplary multi-layer video sequence configured with inter-layer prediction capability.

Фиг. 7 – схематичное представление, иллюстрирующее примерную многослойную видеопоследовательность, выполненную с возможностью временного масштабирования.Fig. 7 is a schematic diagram illustrating an exemplary multi-layer video sequence capable of time scaling.

Фиг. 8 – схематичное представление, иллюстрирующее пример битового потока.Fig. 8 is a schematic diagram illustrating an example of a bit stream.

Фиг. 9 – схематичное представление примерного устройства для кодирования видео.Fig. 9 is a schematic diagram of an exemplary video encoding apparatus.

Фиг. 10 – блок-схема последовательности операций примерного способа кодирования видеопоследовательности в битовый поток путем включения полученных параметров HRD для поддержки тестов на соответствие битового потока с помощью HRD.Fig. 10 is a flow diagram of an exemplary method for encoding a video sequence into a bitstream by incorporating the resulting HRD parameters to support bitstream compliance tests using the HRD.

Фиг. 11 – блок-схема последовательности операций примерного способа декодирования видеопоследовательности из битового потока, включающего в себя полученные параметры HRD.Fig. 11 is a flowchart of an exemplary method for decoding a video sequence from a bit stream including received HRD parameters.

Фиг. 12 – схематичное представление примерной системы кодирования видеопоследовательности в битовом потоке путем включения полученных параметров HRD.Fig. 12 is a schematic representation of an exemplary system for encoding a video sequence into a bitstream by incorporating the derived HRD parameters.

Осуществление изобретенияCarrying out the invention

Прежде всего следует отметить, что, хотя иллюстративная реализация одного или более вариантов осуществления представлена ниже, раскрытые системы и/или способы могут быть реализованы с использованием любого количества технологий, известных в настоящее время или уже существующих. Настоящее раскрытие никоим образом не должно быть ограничено иллюстративными реализациями, чертежами и технологиями, проиллюстрированными ниже, включая иллюстративные конструкции и реализации, проиллюстрированные и описанные в данном документе, но может быть изменено в пределах объема прилагаемой формулы изобретения вместе с их полным объемом эквивалентов.First, it should be noted that while an illustrative implementation of one or more embodiments is presented below, the disclosed systems and/or methods may be implemented using any number of technologies currently known or existing. The present disclosure is not to be limited in any way to the illustrative implementations, drawings and techniques illustrated below, including the illustrative designs and implementations illustrated and described herein, but may be varied within the scope of the appended claims along with their full scope of equivalents.

Приведенные ниже термины определяются следующим образом, если они не используются в данном контексте в противоположном контексте. В частности, следующие определения предназначены для обеспечения дополнительной ясности настоящего раскрытия. Однако термины могут быть описаны по-разному в разных контекстах. Соответственно, приведенные ниже определения следует рассматривать как дополнение и не следует рассматривать как ограничение любых других определений описаний, представленных для таких терминов в данном документе.The following terms are defined as follows unless otherwise used herein. In particular, the following definitions are intended to provide further clarity to this disclosure. However, the terms may be described differently in different contexts. Accordingly, the definitions below should be considered in addition to, and should not be construed as limiting, any other definitions of the descriptions provided for such terms herein.

Битовый поток – это последовательность битов, включающая в себя видеоданные, которые сжимают для передачи между кодером и декодером. Кодер – это устройство, которое выполнено с возможностью использования процессов кодирования для сжатия видеоданных в битовый поток. Декодер – это устройство, которое выполнено с возможностью использования процессов декодирования для восстановления видеоданных из битового поток для отображения. Изображение представляет собой массив выборок яркости и/или массив выборок цветности, которые создают кадр или его область. Изображение, которое кодируется или декодируется, может называться текущим изображением для ясности обсуждения. Единица слоя абстракции сети (NAL) представляет собой синтаксическую структуру, содержащую данные в виде необработанных полезных данных последовательности байтов (RBSP), указатель типа данных и байты предотвращения эмуляции, которые чередуются по желанию. Единица NAL слоя кодирования видео (VCL) представляет собой единицу NAL, кодированную таким образом, чтобы она содержала видеоданные, такие как кодированный слайс изображения. Единица NAL без VCL представляет собой единицу NAL, который содержит данные, не относящиеся к видео, такие как синтаксис и/или параметры, которые поддерживают декодирование видеоданных, выполнение проверки на соответствие или другие операции. Единица доступа (AU) представляет собой набор единиц NAL, которые взаимодействуют друг с другом в соответствии с заданным правилом классификации и относятся к одному конкретному времени вывода. Единица декодирования (DU) представляет собой AU или поднабор AU и ассоциированных единиц NAL без VCL. Например, AU включает в себя единицы NAL VCL и любые единицы NAL без VCL, ассоциированные с единицами NAL VCL в AU. Кроме того, DU включает в себя набор единиц NAL VCL из AU или его поднабора, а также любые единицы NAL без VCL, ассоциированные с единицами NAL VCL в DU. Слой представляет собой набор единиц NAL VCL, которые совместно используют определенную характеристику (например, общее разрешение, частоту кадров, размер изображения и т. д.), и ассоциированные единицы NAL без VCL. Порядок декодирования – это порядок, в котором синтаксические элементы обрабатываются в процессе декодирования. Набор параметров видео (VPS) – это единица данных, которая содержит параметры, относящиеся ко всему видео.A bitstream is a sequence of bits comprising video data that is compressed for transmission between an encoder and a decoder. An encoder is a device that is configured to use encoding processes to compress video data into a bitstream. A decoder is a device that is configured to use decoding processes to recover video data from a bitstream for display. An image is an array of luma samples and/or an array of chrominance samples that create a frame or region of it. The image that is being encoded or decoded may be called the current image for clarity of discussion. A network abstraction layer (NAL) unit is a syntactic structure containing data in the form of a raw byte sequence payload (RBSP), a data type indicator, and emulation prevention bytes that are interleaved as desired. A video coding layer (VCL) NAL unit is a NAL unit encoded to contain video data, such as an encoded image slice. A non-VCL NAL unit is a NAL unit that contains non-video data, such as syntax and/or parameters that support decoding video data, performing conformance checking, or other operations. An access unit (AU) is a collection of NAL units that interact with each other according to a given classification rule and are assigned to one specific output time. A decoding unit (DU) is an AU or a subset of AUs and associated NAL units without VCL. For example, an AU includes VCL NAL units and any non-VCL NAL units associated with VCL NAL units in the AU. In addition, the DU includes a set of VCL NAL units from the AU or a subset thereof, as well as any non-VCL NAL units associated with the VCL NAL units in the DU. A layer is a collection of VCL NAL units that share a specific characteristic (eg, overall resolution, frame rate, image size, etc.) and associated non-VCL NAL units. Decoding order is the order in which syntactic elements are processed during the decoding process. A video parameter set (VPS) is a unit of data that contains parameters relevant to the entire video.

Масштабируемый по времени битовый поток представляет собой битовый поток, кодированный в многочисленных слоях, обеспечивающих различное временное разрешение/частоту кадров (например, каждый слой кодируется для поддержки разной частоты кадров). Подслой представляет собой масштабируемый по времени слой масштабируемого по времени битового потока, включающего в себя единицы NAL VCL с конкретным значением временного идентификатора и ассоциированные единицы NAL без VCL. Например, временной подслой – это слой, который содержит видеоданные, ассоциированные с заданной частотой кадров. Представление подслоя представляет собой поднабор битового потока, содержащего единицы NAL конкретного подслоя и нижних подслоев. Таким образом, один или более временных подслоев могут быть объединены для достижения представления подслоя, которое может быть декодировано для получения видеопоследовательности с заданной частотой кадров. Набор слоев вывода (OLS) – это набор слоев, для которого один или более слоев задаются в качестве слоев вывода. Слой вывода представляет собой слой, предназначенный для вывода (например, на дисплей). Индекс OLS – это индекс, который однозначно идентифицирует соответствующий OLS. Нулевой (0-й) OLS – это OLS, который содержит только нижний слой (слой с идентификатором нижнего слоя) и, следовательно, содержит только слой вывода. Временной идентификатор (ID) – это элемент данных, который указывает то, что данные соответствуют временному местоположению в видеопоследовательности. Процесс извлечения битового подпотока представляет собой процесс, который удаляет единицы NAL из битового потока, которые не принадлежат целевому набору, определенному целевым индексом OLS и целевым наибольшим временным ID. Результатом процесса извлечения битового подпотока является выходной битовый подпоток, содержащий единицы NAL из битового потока, которые являются частью целевого набора.A time-scaled bitstream is a bitstream encoded in multiple layers providing different temporal resolution/frame rates (eg, each layer is encoded to support a different frame rate). The sublayer is a time-scaled layer of time-scaled bitstream including VCL NAL units with a specific temporal identifier value and associated non-VCL NAL units. For example, a temporal sublayer is a layer that contains video data associated with a given frame rate. A sublayer representation is a subset of a bitstream containing the NAL units of a particular sublayer and lower sublayers. Thus, one or more temporal sublayers can be combined to achieve a sublayer representation that can be decoded to obtain a video sequence at a given frame rate. An output layer set (OLS) is a set of layers for which one or more layers are specified as output layers. The output layer is a layer intended for output (for example, to a display). An OLS index is an index that uniquely identifies the corresponding OLS. A null (0th) OLS is an OLS that contains only the bottom layer (the layer with the bottom layer ID) and therefore contains only the output layer. A temporal identifier (ID) is a data element that indicates that the data corresponds to a temporal location in a video sequence. The substream bitstream extraction process is a process that removes NAL units from the bitstream that do not belong to the target set defined by the target OLS index and the target largest temporary ID. The result of the bitstream extraction process is an output bitstream containing the NAL units from the bitstream that are part of the target set.

HRD представляет собой модель декодера, работающую в кодере, который проверяет изменчивость битовых потоков, создаваемых процессом кодирования, для тестирования на соответствие с заданными ограничениями. Тест на соответствие битового потока – это тест для определения того, соответствует ли кодированный битовый поток стандарту, такому как универсальное кодирование видео (VVC). Параметры HRD представляют собой синтаксические элементы, которые инициируют и/или определяют условия работы HRD. Параметры HRD на уровне последовательности представляют собой параметры HRD, которые применяются ко всей кодированной видеопоследовательности. Максимальный временной идентификатор HRD (hrd_max_tid[ i ]) задает временной идентификатор представления верхнего слоя, для которого параметры HRD содержатся в i-м наборе параметров HRD OLS. Синтаксическая структура общих параметров HRD (general_hrd_parameters) представляет собой синтаксическую структуру, которая содержит параметры HRD слоя последовательности. Рабочая точка (OP) – это временное поднабор OLS, который идентифицируется индексом OLS и наибольшим временным идентификатором. Тестируемая OP (targetOp) – это OP, выбранная для тестирования на соответствие в HRD. Целевой OLS – это OLS, выбранный для извлечения из битового потока. Флаг наличия параметров единицы декодирования HRD (decoding_unit_hrd_params_present_flag) является флагом, который указывает то, работают ли соответствующие параметры HRD в слое DU или в слое AU. Буфер кодированных изображений (CPB) представляет собой буфер обратного магазинного типа в HRD, который содержит кодированные изображения в порядке декодирования для использования во время верификации соответствия битового потока. Буфер декодированных изображений (DPB) представляет собой буфер для хранения декодированных изображений для ссылки, переупорядочивания вывода и/или задержки вывода.HRD is a decoder model running within an encoder that examines the variability of the bitstreams produced by the encoding process to test against specified constraints. A bitstream conformance test is a test to determine whether an encoded bitstream conforms to a standard such as Versatile Video Coding (VVC). HRD parameters are syntactic elements that initiate and/or define the operating conditions of the HRD. Sequence-level HRD parameters are HRD parameters that apply to the entire encoded video sequence. The maximum HRD temporal identifier (hrd_max_tid[ i ]) specifies the temporal identifier of the top layer view for which the HRD parameters are contained in the i-th OLS HRD parameter set. The syntactic structure of the general HRD parameters (general_hrd_parameters) is a syntactic structure that contains the HRD parameters of the sequence layer. An operating point (OP) is a temporary subset of the OLS that is identified by the OLS index and the largest temporary identifier. The OP under test (targetOp) is the OP selected for compliance testing in the HRD. The target OLS is the OLS selected to be extracted from the bitstream. The HRD decoding unit parameters present flag (decoding_unit_hrd_params_present_flag) is a flag that indicates whether the corresponding HRD parameters operate in the DU layer or in the AU layer. The Coded Picture Buffer (CPB) is a reverse store type buffer in HRD that holds coded pictures in decoding order for use during bitstream compliance verification. A decoded picture buffer (DPB) is a buffer for storing decoded pictures for reference, output reordering, and/or output delay.

Сообщение с дополнительной информацией расширения (SEI) представляет собой синтаксическую структуру с заданной семантикой, которая передает информацию, которая не требуется процессу декодирования для определения значений выборок в декодированных изображениях. Масштабируемое вкладывающее SEI-сообщение представляет собой сообщение, содержащее множество SEI-сообщений, которые соответствуют одному или более OLS или одному или более слоям. Немасштабируемое вложенное SEI-сообщение представляет собой сообщение, которое не является вложенным и, следовательно, содержит одно SEI-сообщение. SEI-сообщение периода буферизации (BP) представляет собой SEI-сообщение, которое содержит параметры HRD для инициирования HRD с целью управления CPB. SEI-сообщение таймирования изображения (PT) представляет собой SEI-сообщение, которое содержит параметры HRD для управления информацией о доставке для AU в CPB и/или DPB. SEI-сообщение информации единицы декодирования (DUI) представляет собой SEI-сообщение, которое содержит параметры HRD для управления информацией о доставке для DU в CPB и/или DPB.An additional extension information (SEI) message is a syntactic structure with defined semantics that conveys information that is not required by the decoding process to determine the values of samples in decoded images. A scalable embedding SEI message is a message containing a plurality of SEI messages that correspond to one or more OLSs or one or more layers. A non-scalable nested SEI message is a message that is not nested and therefore contains a single SEI message. The Buffering Period (BP) SEI message is an SEI message that contains HRD parameters for initiating HRD for the purpose of CPB control. A Picture Timing (PT) SEI message is an SEI message that contains HRD parameters for managing delivery information for AUs in the CPB and/or DPB. A decoding unit information (DUI) SEI message is an SEI message that contains HRD parameters for managing delivery information for the DU in the CPB and/or 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. ID слоя VPS (vps_layer_id) представляет собой синтаксический элемент, который указывает ID i-го слоя, указанного в VPS. Количество наборов слоев вывода минус один (num_output_layer_sets_minus1) – это синтаксический элемент, задающий общее количество OLS, заданных VPS. Счетчик буфера HRD-кодированного изображения (hrd_cpb_cnt_minus1) представляет собой синтаксический элемент, который определяет количество альтернативных графиков доставки CPB. Флаг наличия параметров CPB подслоя (sublayer_cpb_params_present_flag) является синтаксическим элементом, который определяет то, включает в себя ли набор параметров HRD OLS параметры HRD для заданных представлений подслоя. Индекс графика (ScIdx) – это индекс, идентифицирующий график доставки. Счетчик CPB BP минус 1 (bp_cpb_cnt_minus1) представляет собой синтаксический элемент, который указывает количество пар начальной задержки и смещения удаления CPB и, следовательно, количество графиков доставки, доступных для временного подслоя. Идентификатор слоя заголовка единицы NAL (nuh_layer_id) представляет собой синтаксический элемент, который указывает идентификатор слоя, который включает в себя единицу NAL. Синтаксический элемент общего флага фиксированной скорости изображения (fixed_pic_rate_general_flag) представляет собой синтаксический элемент, который указывает то, ограничено ли временное расстояние между моментами времени вывода HRD последовательных изображений в порядке вывода. Синтаксическая структура параметров HRD подслоя (sublayer_hrd_parameters) представляет собой синтаксическую структуру, которая включает в себя параметры HRD для соответствующего подслоя. Общий флаг наличия параметров VCL HRD (general_vcl_hrd_params_present_flag) представляет собой флаг, который указывает то, присутствуют ли параметры VCL HRD в синтаксической структуре общих параметров HRD. Синтаксический элемент максимального количества подслоев BP минус один (bp_max_sublayers_minus1) представляет собой синтаксический элемент, который указывает максимальное количество временных подслоев, для которых задержка удаления CPB и смещение удаления CPB указаны в сообщении SEI BP. Синтаксический элемент максимального количества подслоев VPS минус один (vps_max_sublayers_minus1) представляет собой синтаксический элемент, который определяет максимальное количество временных подслоев, которые могут присутствовать в слое, заданном VPS. Флаг OLS с масштабируемой вложенностью – это флаг, указывающий то, применяются ли масштабируемые вложенные SEI-сообщения к определенным OLS или конкретным слоям. Количество OLS с масштабируемой вложенностью минус один (num_olss_minus1) – это синтаксический элемент, который указывает количество OLS, к которым применяются масштабируемые вложенные SEI-сообщения. Индекс OLS вложенности (NestingOlsIdx) – это синтаксический элемент, указывающий индекс OLS для OLS, к которому применяются масштабируемые вложенные SEI-сообщения. Целевой индекс OLS (targetOlsIdx) – это переменная, которая идентифицирует индекс OLS целевого OLS, подлежащего декодированию. Общее количество OLS минус один (TotalNumOlss-1) – это синтаксический элемент, который задает общее количество OLS, заданных в VPS.The CPB removal delay is the period of time that the corresponding current AU can remain in the CPB before being removed and output to the DPB. The initial CPB removal delay is the default CPB removal delay for each picture, AU and/or DU in the bitstream, OLS and/or layer. The CPB removal offset is a location in the CPB used to determine the boundaries of the corresponding AU in the CPB. The initial CPB removal offset is the default CPB removal offset associated with each picture, AU and/or DU in the bitstream, OLS and/or layer. The decoded picture buffer (DPB) output delay information represents the period of time that the corresponding AU can remain in the DPB before output. The CPB deletion delay information is information related to deleting the corresponding DU from the CPB. The delivery schedule determines the timing of delivery of video data to and/or from a memory location such as a CPB and/or DPB. The VPS layer ID (vps_layer_id) is a syntax element that specifies the ID of the i-th layer specified in the VPS. Number of output layer sets minus one (num_output_layer_sets_minus1) is a syntax element that specifies the total number of OLSs specified by the VPS. The HRD-coded picture buffer counter (hrd_cpb_cnt_minus1) is a syntax element that specifies the number of alternative CPB delivery schedules. The sublayer CPB parameters present flag (sublayer_cpb_params_present_flag) is a syntactic element that determines whether the OLS HRD parameter set includes HRD parameters for the given sublayer views. Schedule Index (ScIdx) is an index that identifies the delivery schedule. The CPB BP counter minus 1 (bp_cpb_cnt_minus1) is a syntax element that specifies the number of CPB initial delay and removal offset pairs and hence the number of delivery schedules available for the timing sublayer. The NAL unit header layer identifier (nuh_layer_id) is a syntax element that specifies the identifier of the layer that includes the NAL unit. The fixed picture rate general flag syntax element (fixed_pic_rate_general_flag) is a syntax element that indicates whether the temporal distance between the HRD output times of successive images in output order is limited. The sublayer HRD parameters syntax structure (sublayer_hrd_parameters) is a syntax structure that includes the HRD parameters for the corresponding sublayer. The general VCL HRD parameters present flag (general_vcl_hrd_params_present_flag) is a flag that indicates whether VCL HRD parameters are present in the syntactic structure of the general HRD parameters. The maximum number of BP sublayers minus one syntax element (bp_max_sublayers_minus1) is a syntax element that specifies the maximum number of temporary sublayers for which the CPB removal delay and CPB removal offset are specified in the BP SEI message. The VPS maximum sublayers minus one syntax element (vps_max_sublayers_minus1) is a syntax element that specifies the maximum number of temporary sublayers that can be present in a layer specified by the VPS. The Scalable Nesting OLS flag is a flag that indicates whether scalable nested SEI messages apply to specific OLSs or specific layers. Number of OLSs with scalable nesting minus one (num_olss_minus1) is a syntax element that specifies the number of OLSs to which scalable nested SEI messages apply. Nesting OLS Index (NestingOlsIdx) is a syntax element that specifies the OLS index for the OLS to which scalable nested SEI messages are applied. Target OLS Index (targetOlsIdx) is a variable that identifies the OLS index of the target OLS to be decoded. Total Number of OLSs minus one (TotalNumOlss-1) is a syntax element that specifies the total number of OLSs defined in the VPS.

В данном документе используются следующие сокращения: адаптивный контурный фильтр (ALF), блок дерева кодирования (CTB), блок дерева кодирования (CTU), единица кодирования (CU), кодированная видеопоследовательность (CVS), буфер декодированных изображений (DPB), мгновенное обновление декодирования (IDR), точка произвольного доступа при внутрикадровом предсказании (IRAP), объединенная группа экспертов по видео (JVET), младший значащий бит (LSB), старший значащий бит (MSB), набор тайлов с ограничением по движению (MCTS), максимальная единица передачи (MTU), слой абстракции сети (NAL), счетчик очередности изображений (POC), набор параметров изображения (PPS), необработанные полезные данные последовательности байтов (RBSP), адаптивное смещение выборок (SAO), набор параметров последовательности (SPS), временное предсказание вектора движения (TMVP) и универсальное кодирование видео (VVC).The following abbreviations are used in this document: adaptive loop filter (ALF), coding tree block (CTB), coding tree unit (CTU), coding unit (CU), coded video sequence (CVS), decoded picture buffer (DPB), flash decoding update (IDR), Intra Frame Random Access Point (IRAP), Joint Video Expert Team (JVET), Least Significant Bit (LSB), Most Significant Bit (MSB), Motion Constrained Tile Set (MCTS), Maximum Transmission Unit (MTU), Network Abstraction Layer (NAL), Picture Queue Counter (POC), Picture Parameter Set (PPS), Raw Byte Sequence Payload (RBSP), Sample Adaptive Offset (SAO), Sequence Parameter Set (SPS), Temporal Prediction motion vector (TMVP) and universal video coding (VVC).

Для уменьшения размера видеофайлов с минимальной потерей данных можно использовать различные технологии сжатия видео. Например, технологии сжатия видео могут включать в себя выполнение пространственного (например, внутрикадрового) предсказания и/или временного (например, межкадрового) предсказания для уменьшения или устранения избыточности данных в видеопоследовательностях. Для кодирования видео на основе блоков видеослайс (например, видеоизображение или часть видеоизображения) может быть разделен на видеоблоки, которые также могут называться блоками дерева кодирования, блоками дерева кодирования (CTB), единицами дерева кодирования (CTU), единицами кодирования (CU) и/или узлами кодирования. Видеоблоки во внутрикадрово-кодированном (I) слайсе изображения кодируются с использованием пространственного предсказания по отношению к опорным выборам в соседних блоках в одном и том же изображении. Видеоблоки в межкадрово-кодированном слайсе изображения с однонаправленным предсказанием (P) или двунаправленным предсказанием (B) могут быть закодированы с использованием пространственного предсказания по отношению к опорным выборкам в соседних блоках в одном и том же изображении или временного предсказания по отношению к опорным выборкам в других опорных изображениях. Изображения могут упоминаться как кадры и/или изображения, и опорные изображения могут упоминаться как опорные кадры и/или опорные изображения. Пространственное или временное предсказание приводит к блоку предсказания, представляющему блок изображения. Остаточные данные представляют собой разность в пикселях между исходным блоком изображения и блоком предсказания. Соответственно, межкадрово-кодированный блок закодирован в соответствии с вектором движения, который указывает блок опорных выборок, образующих блок предсказания, и остаточными данными, указывающими различие между кодированным блоком и блоком предсказания. Внутрикадрово-кодированный блок закодирован в соответствии с режимом внутрикадрового кодирования и остаточными данными. Для дальнейшего сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования. В результате это приводит к остаточным коэффициентам преобразования, которые могут квантоваться. Квантованные коэффициенты преобразования могут первоначально располагаться в двумерном массиве. Квантованные коэффициенты преобразования могут быть просканированы для получения одномерного вектора коэффициентов преобразования. Энтропийное кодирование может применяться для достижения еще большего сжатия. Такие технологии сжатия видео обсуждены более подробно ниже.To reduce the size of video files with minimal data loss, you can use various video compression technologies. For example, video compression technologies may include performing spatial (eg, intra-frame) prediction and/or temporal (eg, inter-frame) prediction to reduce or eliminate data redundancy in video sequences. For block-based video encoding, a video slice (e.g., a video image or part of a video image) can be divided into video blocks, which may also be called coding tree blocks, coding tree blocks (CTB), coding tree units (CTU), coding units (CU), and/or or coding nodes. Video blocks in an intra-frame (I) image slice are encoded using spatial prediction with respect to reference selections in adjacent blocks in the same image. Video blocks in an interframe-coded unidirectional predicted (P) or bidirectional predicted (B) image slice may be encoded using spatial prediction with respect to reference samples in adjacent blocks in the same image or temporal prediction with respect to reference samples in others. reference images. Pictures may be referred to as frames and/or images, and reference pictures may be referred to as reference frames and/or reference pictures. Spatial or temporal prediction results in a prediction block representing an image block. The residual data is the difference in pixels between the original image block and the prediction block. Accordingly, the interframe coded block is encoded in accordance with a motion vector that indicates a block of reference samples constituting a prediction block, and residual data indicating a difference between the coded block and the prediction block. The intra-frame encoded block is encoded in accordance with the intra-frame encoding mode and residual data. For further compression, the residual data can be converted from a pixel domain to a transform domain. This results in residual transform coefficients that may be quantized. The quantized transform coefficients may initially be located in a two-dimensional array. The quantized transform coefficients can be scanned to obtain a one-dimensional vector of transform coefficients. Entropy coding can be used to achieve even greater compression. Such video compression technologies are discussed in more detail below.

Чтобы гарантировать точное декодирование кодированного видео, видео кодируется и декодируется согласно соответствующим стандартам кодирования видео. Стандарты кодирования видео включают в себя сектор стандартизации международного союза электросвязи (ITU) (ITU-T) H.261, группу экспертов по движущимся изображениям (MPEG)-1 международной организации по стандартизации/международной электротехнической комиссии (ISO/IEC) часть 2, ITU-T H.262 или ISO/IEC MPEG-2 часть 2, ITU-T H.263, ISO/IEC MPEG-4 часть 2, усовершенствованное кодирование видео (AVC), также известное как ITU-T H.264 или ISO/IEC MPEG-4 часть 10, и высокоэффективное кодирование видео (HEVC), также известное как ITU-T H.265 или MPEG-H часть 2. AVC включает в себя такие расширения, как масштабируемое кодирование видео (SVC), кодирование многовидового видео (MVC) и кодирование многовидового видео плюс глубины (MVC+D), и трехмерное (3D) AVC (3D-AVC). HEVC включает в себя такие расширения, как масштабируемое HEVC (SHVC), многовидовое HEVC (MV-HEVC) и 3D HEVC (3D-HEVC). Объединенная группа экспертов по видео (JVET) ITU-T и ISO/IEC приступила к разработке стандарта кодирования видео, называемого универсальное кодирование видео (VVC). VVC включено в рабочий проект (WD), который включает в себя JVET-O2001-v14.To ensure accurate decoding of the encoded video, the video is encoded and decoded according to the relevant video encoding standards. Video coding standards include International Telecommunication Union (ITU) Standardization Sector (ITU-T) H.261, Moving Picture Experts Group (MPEG)-1, International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Part 2, ITU -T H.262 or ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, Advanced Video Coding (AVC), also known as ITU-T H.264 or ISO/ IEC MPEG-4 part 10, and High Efficiency Video Coding (HEVC), also known as ITU-T H.265 or MPEG-H part 2. AVC includes extensions such as scalable video coding (SVC), multi-view video coding ( MVC) and multi-view video plus depth encoding (MVC+D), and three-dimensional (3D) AVC (3D-AVC). HEVC includes extensions such as scalable HEVC (SHVC), multi-view HEVC (MV-HEVC), and 3D HEVC (3D-HEVC). The Joint Video Experts Team (JVET) of ITU-T and ISO/IEC has begun developing a video coding standard called Versatile Video Coding (VVC). VVC is included in the working draft (WD), which includes JVET-O2001-v14.

Системы кодирования видео используют различные тесты на соответствие с тем, чтобы гарантировать, что битовый поток может быть декодирован декодером. Например, проверка на соответствие может включать в себя тестирование всего битового потока на соответствие, затем проверку каждого слоя битового потока на соответствие и, наконец, проверку потенциально декодируемых выходных сигналов на соответствие. Для того, чтобы реализовать проверки на соответствие в битовом потоке включаются соответствующие параметры. Гипотетический опорный декодер (HRD) может считывать параметры и выполнять тесты. Видео может включать в себя множество слоев и множество различных наборов слоев вывода (OLS). По запросу кодер передает один или более слоев выбранного OLS. Например, кодер может передать лучший слой (слои) из OLS, который может поддерживаться текущей пропускной способностью сети. Первая проблема с этим подходом состоит в том, что значительное количество слоев тестируется, но фактически не передается в декодер. Однако параметры для поддержки такого тестирования все же могут быть включены в битовый поток, что без необходимости увеличивает размер битового потока.Video encoding systems use various conformance tests to ensure that the bit stream can be decoded by the decoder. For example, a conformance test might involve testing the entire bitstream for consistency, then testing each layer of the bitstream for consistency, and finally testing potentially decodable output signals for consistency. In order to implement compliance checks, the corresponding parameters are included in the bit stream. A hypothetical reference decoder (HRD) can read parameters and perform tests. A video can include many layers and many different output layer sets (OLS). Upon request, the encoder transmits one or more layers of the selected OLS. For example, the encoder may transmit the best layer(s) from the OLS that can be supported by the current network bandwidth. The first problem with this approach is that a significant number of layers are tested but not actually passed to the decoder. However, parameters to support such testing may still be included in the bitstream, which unnecessarily increases the size of the bitstream.

В первом примере здесь раскрыт механизм для применения тестов на соответствие битового потока только к каждому OLS. Таким образом, весь битовый поток, каждый слой и декодируемые выходные сигналы совместно тестируются при тестировании соответствующего OLS. Таким образом, сокращается количество тестов на соответствие, что позволяет снизить использование ресурсов процессора и памяти в колере. Кроме того, уменьшение количества тестов на соответствие позволяет уменьшить количество связанных с ними параметров, включенных в битовый поток. Это позволяет уменьшить размер битового потока и, следовательно, уменьшить использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.The first example here discloses a mechanism for applying bitstream matching tests only to each OLS. Thus, the entire bitstream, each layer, and the decoded output signals are tested together when testing the corresponding OLS. Thus, the number of compliance tests is reduced, which reduces the use of processor and memory resources in the color scheme. In addition, reducing the number of conformance tests allows you to reduce the number of associated parameters included in the bitstream. This makes it possible to reduce the size of the bit stream and therefore reduce the use of processor, memory and/or network resources in both the encoder and decoder.

Вторая проблема состоит в том, что процесс сигнализации параметров HRD, используемый для тестирования на соответствие HRD в некоторых системах кодирования видео, может усложняться в многослойном контексте. Например, набор параметров HRD может сигнализироваться для каждого слоя в каждом OLS. Такие параметры HRD могут сигнализироваться в разных местах в битовом потоке в зависимости от предполагаемого объема параметров. Это приводит к тому, что схема усложняется по мере добавления дополнительных слоев и/или OLS. Кроме того, параметры HRD для разных слоев и/или OLS могут содержать избыточную информацию.The second problem is that the HRD parameter signaling process used for HRD compliance testing in some video encoding systems can become complex in a multi-layer context. For example, a set of HRD parameters may be signaled for each layer in each OLS. Such HRD parameters may be signaled at different locations in the bitstream depending on the intended scope of the parameters. This causes the circuit to become more complex as additional layers and/or OLS are added. In addition, HRD parameters for different layers and/or OLS may contain redundant information.

Во втором примере здесь раскрыт механизм для сигнализации глобального набора параметров HRD для OLS и соответствующих слоев. Например, все параметры HRD уровня последовательности, которые применяются ко всем OLS и всем слоям, содержащимся в OLS, сигнализируются в наборе параметров видео (VPS). VPS сигнализируется один раз в битовом потоке, и, таким образом, параметры HRD уровня последовательности сигнализируются один раз. Кроме того, параметры HRD в слое последовательности могут быть ограничены одинаковыми для всех OLS. Таким образом, уменьшается избыточная сигнализация, что повышает эффективность кодирования. Кроме того, этот подход упрощает процесс HRD. В результате сокращается использование ресурсов процессора, памяти и/или сетевой сигнализации как в кодере, так и в декодере.The second example here discloses a mechanism for signaling a global set of HRD parameters to the OLS and corresponding layers. For example, all sequence-level HRD parameters that apply to all OLSs and all layers contained in an OLS are signaled in a video parameter set (VPS). The VPS is signaled once per bitstream, and thus the sequence level HRD parameters are signaled once. Additionally, the HRD parameters in the sequence layer can be constrained to be the same for all OLSs. Thus, redundant signaling is reduced, which improves coding efficiency. Additionally, this approach simplifies the HRD process. The result is reduced CPU, memory, and/or network signaling usage in both the encoder and decoder.

Третья проблема может возникнуть тогда, когда системы кодирования видео выполняют проверки на соответствие битовых потоков. Видео может быть закодировано в нескольких слоях и/или подслоях, которые затем могут быть организованы в OLS. Каждый слой и/или подслой каждого OLS проверяется на соответствие согласно графикам доставки. Каждый график доставки ассоциируется с различным размером буфера кодированного изображения (CPB) и задержкой CPB для учета различных полос пропускания передачи и возможностей системы. Некоторые системы кодирования видео позволяют каждому подслою определять любое количество графиков доставки. Это может привести к большому количеству сигналов для поддержки проверок на соответствие, что приводит к снижению эффективности кодирования для битового потока.A third problem can arise when video encoding systems perform bitstream consistency checks. Video can be encoded in multiple layers and/or sublayers, which can then be organized into OLS. Each layer and/or sublayer of each OLS is checked for compliance according to delivery schedules. Each delivery schedule is associated with a different coded picture buffer (CPB) size and CPB delay to account for different transmission bandwidths and system capabilities. Some video encoding systems allow each sublayer to define any number of delivery schedules. This can result in a large number of signals to support compliance checks, resulting in reduced encoding efficiency for the bitstream.

В третьем примере здесь раскрыты механизмы повышения эффективности кодирования для видео, включающего в себя несколько слоев. В частности, все слои и/или подслои ограничены включением одного и того же количества графиков доставки CPB. Например, кодер может определить максимальное количество графиков доставки CPB, используемых для любого одного слоя, и установить максимальное количество графиков доставки CPB для всех слоев. Затем количество графиков доставки может быть просигнализировано один раз, например, как часть параметров HRD в VPS. Это позволяет избежать необходимости указывать несколько графиков для каждого слоя/подслоя. В некоторых примерах все слои/подслои в OLS могут также совместно использовать один и тот же индекс графика доставки. Эти изменения позволяют уменьшить объем данных, используемых для передачи данных, ассоциированных с проверкой на соответствие. Это позволяет уменьшить размер битового потока и, следовательно, уменьшить использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.The third example here reveals mechanisms for improving encoding efficiency for video that includes multiple layers. In particular, all layers and/or sublayers are limited to include the same number of CPB delivery schedules. For example, the encoder may determine the maximum number of CPB delivery schedules used for any one layer and set the maximum number of CPB delivery schedules for all layers. The number of delivery schedules can then be signaled once, for example as part of the HRD parameters in the VPS. This avoids the need to specify multiple plots for each layer/sublayer. In some examples, all layers/sublayers in OLS may also share the same delivery schedule index. These changes reduce the amount of data used to transmit data associated with compliance testing. This makes it possible to reduce the size of the bit stream and therefore reduce the use of processor, memory and/or network resources in both the encoder and decoder.

Четвертая проблема может возникнуть тогда, когда видео кодируется в нескольких слоях и/или подслоях, которые затем организуются в OLS. OLS могут включать в себя нулевой (0-й) OLS, который включает в себя только слой вывода. В битовый поток могут быть включены сообщения дополнительной расширенной информации (SEI) для информирования HRD о конкретных параметрах слоя/OLS, используемых для тестирования слоев битового потока на соответствие стандартам. В частности, масштабируемые вкладывающие SEI-сообщения применяются тогда, когда OLS включены в битовый поток. Масштабируемое вкладывающее SEI-сообщение содержит группы вложенных SEI-сообщений, которые применяются к одному или более OLS и/или одному или более слоям OLS. Каждое из вложенных SEI-сообщений может содержать указатель, указывающий ассоциацию с соответствующим OLS и/или слоем. Вложенное SEI-сообщение настроено для использования с несколькими слоями и может содержать лишнюю информацию при применении к 0-му OLS, содержащему один слой.A fourth problem can arise when video is encoded in multiple layers and/or sublayers, which are then organized into OLS. OLSs may include a zero (0th) OLS, which includes only the output layer. Additional Extended Information (SEI) messages may be included in the bitstream to inform the HRD of specific layer/OLS parameters used to test the bitstream layers for standards compliance. In particular, scalable embedding SEI messages are used when OLS is included in the bitstream. A scalable nested SEI message contains groups of nested SEI messages that apply to one or more OLSs and/or one or more OLS layers. Each of the embedded SEI messages may contain a pointer indicating the association with the corresponding OLS and/or layer. The embedded SEI message is configured for use with multiple layers and may contain unnecessary information when applied to a 0th OLS containing a single layer.

В четвертом примере здесь раскрыт механизм повышения эффективности кодирования для видео, включающего в себя 0-ой OLS. Немасштабируемое вложенное SEI-сообщение применяется для 0-ого OLS. Немасштабируемое вложенное SEI-сообщение ограничивается применением только к 0-му OLS и, следовательно, только к слою вывода, содержащемуся в 0-ом OLS. Таким образом, лишняя информация, такая как соотношения вложенности, указатели слоев и т. д., может быть исключена из SEI-сообщения. Немасштабируемое вложенное SEI-сообщение может использоваться как SEI-сообщение периода буферизации (BP), SEI-сообщение таймирования изображения (PT), SEI-сообщение единицы декодирования (DU) или их комбинации. Эти изменения позволяют уменьшить объем данных, используемых для сигнализации информации, относящейся к проверке на соответствие, для 0-го OLS. Это позволяет уменьшить размер битового потока и, следовательно, уменьшить использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.The fourth example here discloses a mechanism for improving encoding efficiency for video incorporating 0th OLS. The non-scalable nested SEI message is applied to the 0th OLS. The non-scalable nested SEI message is limited to applying only to the 0th OLS and therefore only to the output layer contained in the 0th OLS. In this way, unnecessary information such as nesting relationships, layer indicators, etc. can be excluded from the SEI message. The non-scalable nested SEI message can be used as a buffer period (BP) SEI message, a picture timing (PT) SEI message, a decoding unit (DU) SEI message, or combinations thereof. These changes reduce the amount of data used to signal compliance-related information to OLS 0. This makes it possible to reduce the size of the bit stream and therefore reduce the use of processor, memory and/or network resources in both the encoder and decoder.

Пятая проблема также может возникнуть тогда, когда видео разделено на множество слоев и/или подслоев. Кодер может кодировать эти слои в битовый поток. Кроме того, кодер может использовать HRD для выполнения тестов на соответствие с тем, чтобы проверить битовый поток на соответствие стандартам. Кодер может быть выполнен с возможностью включения специфичных для слоя параметров HRD в битовый поток для поддержки таких тестов на соответствие. Специфичные для слоя параметры HRD могут быть закодированы для каждого слоя в некоторых системах кодирования видео. В некоторых случаях специфичные для слоя параметры HRD являются одинаковыми для каждого слоя, что приводит к избыточной информации, которая без необходимости увеличивает размер кодирования видео.The fifth problem can also arise when the video is divided into many layers and/or sublayers. The encoder can encode these layers into a bitstream. In addition, the encoder can use HRD to perform conformance tests to verify that the bitstream conforms to the standards. The encoder may be configured to include layer-specific HRD parameters in the bitstream to support such compliance tests. Layer-specific HRD parameters may be encoded on a per-layer basis in some video encoding systems. In some cases, layer-specific HRD parameters are the same for each layer, resulting in redundant information that unnecessarily increases the video encoding size.

В пятом примере здесь раскрыты механизмы для уменьшения избыточности параметров HRD для видео, которые используют несколько слоев. Кодер может кодировать параметры HRD для верхнего слоя. Кодер также может кодировать флаг наличия параметров CPB подслоя (sublayer_cpb_params_present_flag). Флаг sublayer_cpb_params_present_flag может быть установлен равным нулю, чтобы указать то, что все нижние слои должны использовать те же самые параметры HRD, что и верхний слой. В этом контексте верхний слой имеет наибольший идентификатор слоя (ID), и нижний слой представляет собой любой слой, который имеет ID слоя, который меньше ID слоя верхнего слоя. Таким образом, параметры HRD для нижних слоев могут быть исключены из битового потока. Это позволяет уменьшить размер битового потока и, следовательно, уменьшить использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.The fifth example here discloses mechanisms to reduce the redundancy of HRD parameters for videos that use multiple layers. The encoder can encode the HRD parameters for the top layer. The encoder can also encode the sublayer's CPB parameters presence flag (sublayer_cpb_params_present_flag). The sublayer_cpb_params_present_flag can be set to zero to indicate that all underlying layers should use the same HRD parameters as the top layer. In this context, the top layer has the highest layer identifier (ID), and the bottom layer is any layer that has a layer ID that is less than the layer ID of the top layer. In this way, the HRD parameters for the lower layers can be excluded from the bitstream. This makes it possible to reduce the size of the bit stream and therefore reduce the use of processor, memory and/or network resources in both the encoder and decoder.

Шестая проблема относится к использованию наборов параметров последовательности (SPS) для содержания синтаксических элементов, относящихся к каждой видеопоследовательности в видео. Системы кодирования видео могут кодировать видео в слоях и/или подслоях. Видеопоследовательности могут работать по-разному в разных слоях и/или подслоях. Следовательно, разные слои могут относиться к разным SPS. SEI-сообщение BP может указывать слои/подслои, подлежащие проверке на соответствие стандартам. Некоторые системы кодирования видео могут указывать то, что SEI-сообщение BP применяется к слоям/подслоям, указанным в SPS. Это может вызвать проблемы в том случае, когда разные слои ссылаются на разные SPS, так как такие SPS могут содержать противоречивую информацию, что приводит к непредвиденным ошибкам.The sixth issue relates to the use of sequence parameter sets (SPS) to contain syntactic elements related to each video sequence in a video. Video encoding systems may encode video in layers and/or sublayers. Video sequences may work differently in different layers and/or sublayers. Therefore, different layers may belong to different SPS. The BP SEI message may indicate the layers/sublayers to be tested for compliance with the standards. Some video encoding systems may indicate that the BP SEI message is applied to the layers/sublayers specified in the SPS. This can cause problems when different layers reference different SPSs, since those SPSs may contain conflicting information, leading to unexpected errors.

В шестом примере здесь раскрыты механизмы устранения ошибок, связанных с проверкой на соответствие, когда в видеопоследовательности используется несколько слоев. В частности, SEI-сообщение BP модифицируется с тем, чтобы указать то, что любое количество слоев/подслоев, описанных в VPS, может быть проверено на соответствие. Например, SEI-сообщение BP может содержать синтаксический элемент максимального количества подслоев BP минус один (bp_max_sublayers_minus1), который указывает количество слоев/подслоев, которые ассоциируются с данными в SEI-сообщении BP. Между тем, синтаксический элемент максимальное количество подслоев VPS минус один (vps_max_sublayers_minus1) в VPS указывает количество подслоев во всем видео. Синтаксический элемент bp_max_sublayers_minus1 может быть установлен на любое значение от нуля до значения синтаксического элемента vps_max_sublayers_minus1. Таким образом, любое количество слоев/подслоев в видео может быть проверено на соответствие во избежание проблем последовательности на основе слоев, связанных с непостоянством SPS. Соответственно, настоящее раскрытие позволяет избежать ошибок кодирования на основе слоев и, следовательно, увеличить функциональные возможности кодера и/или декодера. Кроме того, настоящий пример поддерживает кодирование на основе слоев, что может повысить эффективность кодирования. Таким образом, настоящий пример поддерживает уменьшенное использование процессора, памяти и/или сетевых ресурсов в кодере и/или декодере.The sixth example here reveals mechanisms for eliminating errors associated with consistency checking when multiple layers are used in a video sequence. In particular, the SEI message BP is modified to indicate that any number of layers/sublayers described in the VPS can be checked for compliance. For example, the BP SEI message may contain a maximum BP sublayers minus one syntax element (bp_max_sublayers_minus1), which specifies the number of layers/sublayers that are associated with data in the BP SEI message. Meanwhile, the VPS maximum number of sublayers minus one (vps_max_sublayers_minus1) syntax element in VPS specifies the number of sublayers in the entire video. The bp_max_sublayers_minus1 syntax element can be set to any value from zero to the value of the vps_max_sublayers_minus1 syntax element. This way, any number of layers/sublayers in a video can be checked for consistency to avoid layer-based consistency issues associated with SPS inconsistency. Accordingly, the present disclosure avoids layer-based coding errors and therefore increases the functionality of the encoder and/or decoder. In addition, the present example supports layer-based encoding, which can improve encoding efficiency. Thus, the present example supports reduced use of processor, memory and/or network resources in the encoder and/or decoder.

Седьмая проблема относится к слоям, которые включены в OLS. Каждый OLS содержит по меньшей мере один слой вывода, который выполнен с возможностью отображения в декодере. HRD в кодере может проверить каждый OLS на соответствие стандартам. Соответствующий OLS всегда можно декодировать и отобразить в соответствующем декодере. Процесс HRD может частично управляться SEI-сообщениями. Например, масштабируемое вкладывающее SEI-сообщение может содержать масштабируемые вложенные SEI-сообщения. Каждое масштабируемое вложенное SEI-сообщение может содержать данные, относящиеся к соответствующему слою. При выполнении проверки на соответствие HRD может выполнять процесс извлечения битового потока в целевом OLS. Данные, которые не относятся к слоям в OLS, как правило, удаляются до проверки на соответствие с тем, чтобы можно было проверить каждый OLS отдельно (например, перед передачей). Некоторые системы кодирования видео не удаляют масштабируемые вкладывающие SEI-сообщения во время процесса извлечения битового подпотока, так как такие сообщения относятся к нескольким слоям. Это может привести к тому, что масштабируемые вкладывающие SEI-сообщения останутся в битовом потоке после извлечения битового подпотока даже в том случае, если масштабируемые вкладывающие SEI-сообщения не относятся к какому-либо слою в целевом OLS (OLS, подлежащем извлечению). Это может увеличить размер конечного битового потока без предоставления каких-либо дополнительных функций.The seventh issue relates to the layers that are included in OLS. Each OLS contains at least one output layer, which is configured to be displayed in a decoder. The HRD in the encoder can check each OLS for compliance with the standards. The corresponding OLS can always be decoded and displayed in the corresponding decoder. The HRD process may be driven in part by SEI messages. For example, a scalable embedded SEI message may contain scalable embedded SEI messages. Each scalable embedded SEI message may contain data related to the corresponding layer. When performing a compliance check, the HRD may perform a bitstream extraction process on the target OLS. Data that does not belong to layers in the OLS is typically removed before compliance checks so that each OLS can be checked individually (for example, before transmission). Some video encoding systems do not remove scalable embedding SEI messages during the subbitstream extraction process because such messages belong to multiple layers. This may result in scalable nesting SEI messages remaining in the bitstream after the subbitstream is extracted, even if the scalable nesting SEI messages do not belong to any layer in the target OLS (OLS to be extracted). This can increase the size of the final bitstream without providing any additional functionality.

В седьмом примере здесь раскрыты механизмы для уменьшения размера многослойных битовых потоков. Во время извлечения битового подпотока масштабируемые вкладывающие SEI-сообщения могут быть рассмотрены для удаления из битового потока. Когда масштабируемое вкладывающее SEI-сообщение относится к одному или более OLS, проверяются масштабируемые вложенные SEI-сообщения в масштабируемом вкладывающем SEI-сообщении. Когда масштабируемые вложенные SEI-сообщения не относятся к какому-либо слою в целевом OLS, то масштабируемое вкладывающее SEI-сообщение может быть полностью удалено из битового потока. Это приводит к уменьшению размера битового потока, отправляемого в декодер. Соответственно, настоящие примеры повышают эффективность кодирования и уменьшают использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере.The seventh example here discloses mechanisms for reducing the size of multilayer bitstreams. During bitstream extraction, scalable nesting SEI messages may be considered for removal from the bitstream. When a scalable nested SEI message refers to one or more OLSs, the scaled nested SEI messages in the scalable nested SEI message are examined. When scalable nested SEI messages do not belong to any layer in the target OLS, then the scaled nested SEI message can be completely removed from the bitstream. This results in a reduction in the size of the bit stream sent to the decoder. Accordingly, the present examples improve encoding efficiency and reduce CPU, memory, and/or network resource usage in both the encoder and decoder.

На фиг. 1 показана блок-схема последовательности операций примерного способа 100 кодирования видеосигнала. В частности, видеосигнал кодируется в кодере. Процесс кодирования сжимает видеосигнал, используя различные механизмы, чтобы уменьшить размер видеофайла. Меньший размер файла позволяет передавать сжатый видеофайл пользователю, уменьшая при этом ассоциированные с этим издержки на полосу пропускания. Затем декодер декодирует сжатый видеофайл, чтобы восстановить исходный видеосигнал для отображения конечному пользователю. Процесс декодирования, как правило, повторяет процесс кодирования, что позволяет декодеру последовательно восстанавливать видеосигнал.In fig. 1 is a flowchart of an exemplary video encoding method 100. In particular, the video signal is encoded in the encoder. The encoding process compresses the video signal using various mechanisms to reduce the size of the video file. The smaller file size allows the compressed video file to be transmitted to the user while reducing the associated bandwidth overhead. The decoder then decodes the compressed video file to reconstruct the original video signal for display to the end user. The decoding process typically repeats the encoding process, allowing the decoder to reconstruct the video signal sequentially.

На этапе 101 видеосигнал вводится в кодер. Например, видеосигнал может быть несжатым видеофайлом, хранящимся в памяти. В качестве другого примера, видеофайл может быть захвачен устройством видеозахвата, таким как видеокамера, и кодирован для поддержки прямой потоковой передачи видео. Видеофайл может включать в себя как компонент аудио, так и компонент видео. Компонент видео содержит ряд кадров изображения, которые при последовательном просмотре создают визуальное впечатление движения. Кадры содержат пиксели, которые выражены с точки зрения света, называемого в данном документе компонентами яркости (или выборками яркости), и цвета, который упоминается как компоненты цветности (или выборки цвета). В некоторых примерах кадры могут также содержать значения глубины для поддержки трехмерного просмотра.At step 101, the video signal is input to the encoder. For example, the video signal may be an uncompressed video file stored in memory. As another example, a video file may be captured by a video capture device, such as a video camera, and encoded to support live video streaming. A video file may include both an audio component and a video component. The video component contains a series of image frames that, when viewed in sequence, create the visual impression of movement. Frames contain pixels that are expressed in terms of light, referred to herein as luminance components (or luminance samples), and color, which is referred to as chrominance components (or color samples). In some examples, frames may also contain depth values to support 3D viewing.

На этапе 103 видео разделяется на блоки. Разделение включает в себя разделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, в высокоэффективном кодировании видео (HEVC) (также известном как H.265 и MPEG-H часть 2) кадр может быть сначала разделен на единицы дерева кодирования (CTU), которые представляют собой блоки заданного размера (например, шестьдесят четыре пикселя на шестьдесят четыре пикселя). CTU содержат как выборки яркости, так и выборки цветности. Деревья кодирования могут использоваться для разделения CTU на блоки, и затем для рекурсивного подразделения блоков до тех пор, пока не будут достигнуты конфигурации, поддерживающие дальнейшее кодирование. Например, компоненты яркости кадра могут разделяться до тех пор, пока отдельные блоки не будут содержать относительно однородные значения света. Кроме того, компоненты цветности кадра могут разделяться до тех пор, пока отдельные блоки не будут содержать относительно однородные значения цвета. Соответственно, механизмы разделения различаются в зависимости от содержания видеокадров.At step 103, the video is divided into blocks. Dividing involves dividing the pixels in each frame into square and/or rectangular blocks for compression. For example, in High Efficiency Video Coding (HEVC) (also known as H.265 and MPEG-H part 2), a frame may first be divided into coding tree units (CTUs), which are blocks of a given size (for example, sixty-four pixels by sixty four pixels). CTUs contain both luma and chrominance samples. Encoding trees can be used to divide a CTU into blocks, and then recursively subdivide the blocks until configurations that support further encoding are reached. For example, the luminance components of a frame may be separated until the individual blocks contain relatively uniform light values. In addition, the chrominance components of a frame can be separated until the individual blocks contain relatively uniform color values. Accordingly, the separation mechanisms differ depending on the content of the video frames.

На этапе 105 используются различные механизмы сжатия для сжатия блоков изображения, разделенных на этапе 103. Например, может использоваться межкадровое предсказание и/или внутрикадровое предсказание. Межкадровое предсказание предназначено для использования того факта, что объекты в общей сцене имеют тенденцию появляться в виде следующих друг за другом кадрах. Соответственно, блок, изображающий объект в опорном кадре, не нужно повторно описывать в соседних кадрах. В частности, объект, такой как таблица, может оставаться в постоянной позиции в течение нескольких кадров. Следовательно, таблица описывается один раз, и соседние кадры могут ссылаться на опорный кадр. Механизмы сопоставления шаблонов могут использоваться для сопоставления объектов в нескольких кадрах. Кроме того, движущиеся объекты могут быть представлены в нескольких кадрах, например, из-за движения объекта или движения камеры. В качестве конкретного примера видео может показывать автомобиль, который движется на экране в течение нескольких кадров. Для описания такого движения можно использовать векторы движения. Вектор движения – это двумерный вектор, обеспечивающий смещение координат объекта в кадре до координат объекта в опорном кадре. Таким образом, межкадровое предсказание позволяет кодировать блок изображения в текущем кадре как набор векторов движения, указывающих смещение от соответствующего блока в опорном кадре.At step 105, various compression mechanisms are used to compress the image blocks divided at step 103. For example, inter-frame prediction and/or intra-frame prediction may be used. Inter-frame prediction is designed to take advantage of the fact that objects in the overall scene tend to appear in consecutive frames. Accordingly, a block representing an object in a reference frame does not need to be re-described in adjacent frames. In particular, an object such as a table may remain in a constant position for several frames. Therefore, the table is described once, and neighboring frames can refer to the reference frame. Pattern matching engines can be used to match objects across multiple frames. In addition, moving objects can be represented in multiple frames, for example due to object movement or camera movement. As a specific example, a video might show a car moving on screen for several frames. Motion vectors can be used to describe such motion. A motion vector is a two-dimensional vector that provides a displacement of the coordinates of an object in the frame to the coordinates of the object in the reference frame. Thus, inter-frame prediction allows an image block in the current frame to be encoded as a set of motion vectors indicating an offset from the corresponding block in the reference frame.

При внутрикадровом предсказании блоки кодируются в общем кадре. Внутрикадровое предсказание использует тот факт, что компоненты яркости и цветности имеют тенденцию группироваться в кадре. Например, участок зелени в части дерева имеет тенденцию располагаться рядом с аналогичными участками зелени. Внутрикадровое предсказание использует несколько режимов направленного предсказания (например, тридцать три в HEVC), планарный режим и режим постоянного тока (DC). Направленные режимы указывают, что текущий блок является аналогичным/таким же, как выборки соседнего блока в соответствующем направлении. Планарный режим указывает то, что последовательность блоков по строкам/столбцам (например, в плоскости) может быть интерполирована на основе соседних блоков на краях строки. Планарный режим по существу указывает на плавный переход света/цвета по строке/столбцу за счет использования относительно постоянного наклона при изменении значений. Режим DC используется для сглаживания границ и указывает то, что блок является аналогичным/таким же, как среднее значение, ассоциированное с выборками всех соседних блоков, ассоциированных с угловыми направлениями режимов направленного предсказания. Соответственно, блоки внутрикадрового предсказания могут представлять блоки изображений как различные относительные значения режима предсказания вместо фактических значений. Кроме того, блоки межкадрового предсказания могут представлять блоки изображений как значения векторов движения вместо фактических значений. Так или иначе, в некоторых случаях блоки предсказания могут не точно представлять блоки изображений. Любые различия сохраняются в остаточных блоках. Преобразования могут быть применены к остаточным блокам для дальнейшего сжатия файла.In intra-frame prediction, blocks are encoded in a common frame. Intra-frame prediction takes advantage of the fact that luma and chrominance components tend to cluster together within a frame. For example, a patch of greenery in a part of a tree tends to be located next to similar patches of greenery. Intra-frame prediction uses several directional prediction modes (e.g., thirty-three in HEVC), planar mode, and direct current (DC) mode. Directional modes indicate that the current block is similar/same as the samples of the neighboring block in the corresponding direction. Planar mode indicates that a sequence of blocks along rows/columns (eg, in a plane) can be interpolated based on adjacent blocks at the edges of the row. Planar mode essentially refers to a smooth transition of light/color across a row/column by using a relatively constant slope as values change. The DC mode is used to smooth edges and indicates that a block is the same as the average value associated with samples of all neighboring blocks associated with the angular directions of the directional prediction modes. Accordingly, the intra-frame prediction blocks may represent the image blocks as different relative prediction mode values instead of actual values. In addition, inter-frame prediction blocks may represent image blocks as motion vector values instead of actual values. However, in some cases, prediction blocks may not accurately represent image blocks. Any differences are stored in residual blocks. Transformations can be applied to the residual blocks to further compress the file.

На этапе 107 могут применяться различные технологии фильтрации. В HEVC фильтры применяются в соответствии со схемой внутриконтурной фильтрации. Предсказание на основе блоков, рассмотренное выше, может привести к созданию блочных изображений в декодере. Кроме того, схема предсказания на основе блоков позволяет кодировать блок, и затем восстанавливать кодированный блок для последующего использования в качестве опорного блока. Схема внутриконтурной фильтрации итеративно применяет к блокам/кадрам фильтры подавления шума, деблокирующие фильтры, адаптивные контурные фильтры и фильтры адаптивного смещения выборок (SAO). Эти фильтры уменьшают такие артефакты блокировки для того, чтобы можно было точно восстановить кодированный файл. Кроме того, эти фильтры уменьшают артефакты в восстановленных опорных блоках, так что артефакты с меньшей вероятностью создают дополнительные артефакты в последующих блоках, которые кодируются на основе восстановленных опорных блоков.At step 107, various filtering technologies may be used. In HEVC, filters are applied according to an in-loop filtering scheme. The block-based prediction discussed above can result in blocky images being produced in the decoder. In addition, the block-based prediction scheme allows a block to be encoded and then the encoded block to be recovered for later use as a reference block. The in-loop filtering scheme iteratively applies noise reduction filters, deblocking filters, adaptive loop filters, and sample adaptive offset (SAO) filters to blocks/frames. These filters reduce such blocking artifacts so that the encoded file can be accurately reconstructed. In addition, these filters reduce artifacts in the reconstructed reference blocks, so that artifacts are less likely to create additional artifacts in subsequent blocks that are encoded based on the reconstructed reference blocks.

После того, как видеосигнал был разделен, сжат и отфильтрован, результирующие данные кодируются в битовый поток на этапе 109. Битовый поток включает в себя данные, рассмотренные выше, а также любые данные сигнализации, необходимые для поддержки надлежащего восстановления видеосигнала в декодере. Например, такие данные могут включать в себя данные разделения, данные предсказания, остаточные блоки и различные флаги, предоставляющие декодеру инструкции по кодированию. Битовый поток может храниться в памяти для передачи в декодер по запросу. Битовый поток может быть также широковещательно и/или многоадресно передан в множество декодеров. Создание битового потока является итеративным процессом. Соответственно, этапы 101, 103, 105, 107 и 109 могут выполняться непрерывно и/или одновременно в многих кадрах и блоках. Порядок, показанный на фиг. 1, представлен для ясности и простоты обсуждения и не предназначен для ограничения процесса кодирования видео определенным порядком.After the video signal has been separated, compressed, and filtered, the resulting data is encoded into a bitstream at step 109. The bitstream includes the data discussed above as well as any signaling data necessary to support proper reconstruction of the video signal at the decoder. For example, such data may include partition data, prediction data, residual blocks, and various flags providing encoding instructions to the decoder. The bit stream can be stored in memory for transmission to the decoder on demand. The bitstream may also be broadcast and/or multicast to a plurality of decoders. Creating a bitstream is an iterative process. Accordingly, steps 101, 103, 105, 107 and 109 may be performed continuously and/or simultaneously across multiple frames and blocks. The order shown in FIG. 1 is presented for clarity and ease of discussion and is not intended to limit the video encoding process to a particular order.

Декодер принимает битовый потока и начинает процесс декодирования на этапе 111. В частности, декодер использует схему энтропийного декодирования для преобразования битового потока в соответствующий синтаксис и видеоданные. Декодер использует синтаксические данные из битового потока для определения разделов для кадров на этапе 111. Разделение должно совпадать с результатами разделения блоков на этапе 103. Теперь будет описано энтропийное кодирование/декодирование, используемое на этапе 111. В процессе сжатия кодер делает выбор из различных вариантов, например, выбирает схемы разделения блоков из нескольких возможных вариантов на основе пространственного позиционирования значений во входном(ых) изображении(ях). Сигнализация точного выбора может использовать большое количество бинов. В используемом в данном документе значении бин представляет собой двоичное значение, которое обрабатывается как переменная (например, битовое значение, которое может изменяться в зависимости от контекста). Энтропийное кодирование позволяет кодеру отбрасывать любые варианты, которые явным образом не подходят для конкретного случая, оставляя набор допустимых вариантов. Затем каждому допустимому варианту присваивается кодовое слово. Длина кодовых слов зависит от количества допустимых вариантов (например, один бин для двух вариантов, два бина для трех-четырех вариантов и т. д.). Затем кодер кодирует кодовое слово для выбранного варианта. Эта схема уменьшает размер кодовых слов, так как кодовые слова настолько велики, насколько это необходимо, чтобы однозначно указывать выбор из небольшого подмножества допустимых вариантов, в отличие от однозначного указания выбора из потенциально большого набора всех возможных вариантов. Затем декодер декодирует выбранный вариант, определяя набор допустимых опций аналогично кодеру. Определив набор допустимых вариантов, декодер может считать кодовое слово и определить выбор, сделанный кодером.The decoder receives the bit stream and begins the decoding process at step 111. Specifically, the decoder uses an entropy decoding scheme to convert the bit stream into appropriate syntax and video data. The decoder uses syntax data from the bitstream to determine partitions for frames at step 111. The partitioning should match the results of block partitioning at step 103. The entropy encoding/decoding used at step 111 will now be described. During the compression process, the encoder makes a selection from various options, for example, selects block partitioning schemes from several possible options based on the spatial positioning of values in the input image(s). Precise selection signaling can use a large number of bins. As used herein, a bean is a binary value that is treated as a variable (eg, a bit value that can change depending on the context). Entropy coding allows the encoder to discard any options that are clearly not suitable for a particular case, leaving a set of valid options. Each valid option is then assigned a code word. The length of the codewords depends on the number of valid options (for example, one bin for two options, two bins for three or four options, etc.). The encoder then encodes the codeword for the selected option. This scheme reduces the size of codewords because codewords are as large as necessary to unambiguously indicate a choice from a small subset of valid options, as opposed to unambiguously indicating a choice from a potentially large set of all possible options. The decoder then decodes the selected option, determining the set of valid options in a similar manner to an encoder. Having determined the set of valid options, the decoder can read the codeword and determine the choice made by the encoder.

На этапе 113 декодер выполняет блочное декодирование. В частности, декодер использует обратные преобразования для выработки остаточных блоков. Затем декодер использует остаточные блоки и соответствующие блоки предсказания для восстановления блоков изображения в соответствии с разделением. Блоки предсказания могут включать в себя как блоки внутрикадрового предсказания, так и блоки межкадрового предсказания, выработанные кодером на этапе 105. Блоки восстановленного изображения затем помещаются в кадры восстановленного видеосигнала в соответствии с данными разделения, определенными на этапе 111. Синтаксис на этапе 113 также может быть обозначен в битовом потоке с помощью энтропийного кодирования, как обсуждалось выше.At step 113, the decoder performs block decoding. In particular, the decoder uses inverse transforms to generate residual blocks. The decoder then uses the residual blocks and corresponding prediction blocks to reconstruct the image blocks according to the division. The prediction blocks may include both intra-prediction blocks and inter-prediction blocks generated by the encoder at step 105. The reconstructed image blocks are then placed into frames of the reconstructed video signal in accordance with the partitioning data determined at step 111. The syntax at step 113 may also be denoted in the bitstream using entropy encoding as discussed above.

На этапе 115 выполняется фильтрация кадров восстановленного видеосигнала способом, аналогичным этапу 107 в кодере. Например, фильтры подавления шума, фильтры устранения блочности, адаптивные контурные фильтры и фильтры SAO могут применяться к кадрам для удаления артефактов блочности. Как только кадры отфильтрованы, видеосигнал может быть выведен на дисплей на этапе 117 для просмотра конечным пользователем.At step 115, frames of the reconstructed video signal are filtered in a manner similar to step 107 in the encoder. For example, noise reduction filters, deblocking filters, adaptive edge filters, and SAO filters can be applied to frames to remove blocking artifacts. Once the frames are filtered, the video signal can be displayed at step 117 for viewing by the end user.

На фиг. 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 буфера декодированного изображения. Теперь эти компоненты будут описаны.In fig. 2 shows a schematic diagram of an exemplary encoding and decoding (codec) system 200 for video encoding. In particular, the encoding/decoding system 200 provides functionality to support the implementation of the method 100 of operation. The encoding/decoding system 200 is generalized to display components used in both the encoder and the decoder. The encoding/decoding system 200 receives and splits the video signal as described with respect to steps 101 and 103 in the operating method 100, resulting in a divided video signal 201. The encoding/decoding system 200 then compresses the divided video signal 201 into an encoded bit stream, acting as an encoder , as described with respect to steps 105, 107 and 109 in the method 100. When operating as a decoder, the encoding/decoding system 200 produces a video output signal from the bitstream, as described with respect to steps 111, 113, 115 and 117 in the method 100 of operation. The encoding/decoding system 200 includes a general encoder control component 211, a upscaling and quantization component 213, an intra-frame estimation component 215, an intra-frame prediction component 217, a motion compensation component 219, a motion estimation component 221, a scaling and inverse transform component 229, a 227 filter control analysis, in-loop filters component 225, decoded image buffer component 223, and header formatting and context adaptive binary arithmetic coding (CABAC) component 231. Such components are connected as shown in the drawing. In fig. 2, black lines indicate the movement of data to be encoded/decoded, and dotted lines indicate the movement of control data that controls the operation of other components. All components of the encoding/decoding system 200 may be present in the encoder. The decoder may include a subset of components of the encoding/decoding system 200. For example, the decoder may include an intra-frame prediction component 217, a motion compensation component 219, a scaling and inverse transform component 229, an in-loop filter component 225, and a decoded image buffer component 223. These components will now be described.

Разделенный видеосигнал 201 представляет собой захваченную видеопоследовательность, которая была разделена на блоки пикселей с помощью дерева кодирования. Дерево кодирования использует различные режимы разделения для разделения блока пикселей на более мелкие блоки пикселей. Затем эти блоки можно разделить на еще более мелкие блоки. Блоки могут называться узлами дерева кодирования. Более крупные родительские узлы разделяются на более мелкие дочерние узлы. Количество раз, когда узел подразделяется, называется глубиной узла/дерева кодирования. В некоторых случаях разделенные блоки могут быть включены в единицы кодирования (CU). Например, CU может быть частью CTU, которая содержит блок яркости, блок(и) красной разностной цветности (Cr) и блок(и) синей разностной цветности (Cb) вместе с соответствующими синтаксическими инструкциями для КР. Режимы разделения могут включать в себя двоичное дерево (BT), троичное дерево (TT) и квадродерево (QT), используемые для разделения узла на два, три или четыре дочерних узла, соответственно, различной формы в зависимости от используемых режимов разделения. Разделенный видеосигнал 201 направляется в компонент 211 общего управления кодером, компонент 213 преобразования с масштабированием и квантования, компонент 215 внутрикадровой оценки, компонент 227 анализа управления фильтром и компонент 221 оценки движения для сжатия.The divided video signal 201 is a captured video sequence that has been divided into blocks of pixels using a coding tree. The coding tree uses different partitioning modes to divide a block of pixels into smaller blocks of pixels. These blocks can then be divided into even smaller blocks. The blocks may be called nodes of the coding tree. Larger parent nodes are split into smaller child nodes. The number of times a node is subdivided is called the depth of the node/encoding tree. In some cases, the divided blocks may be included in coding units (CUs). For example, a CU may be part of a CTU that contains a luminance block, a red chrominance (Cr) block(s), and a blue chrominance (Cb) block(s), along with corresponding syntax instructions for the RK. Partitioning modes may include binary tree (BT), ternary tree (TT), and quadtree (QT), used to split a node into two, three, or four child nodes, respectively, of varying shapes depending on the partitioning modes used. The divided video signal 201 is sent to a general encoder control component 211, a scaling and quantization transform component 213, an intra-frame estimation component 215, a filter control analysis component 227, and a motion estimation component 221 for compression.

Компонент 211 общего управления кодером выполнен с возможностью принятия решений, ассоциированных с кодированием изображений видеопоследовательности в битовый поток в соответствии с ограничениями приложения. Например, компонент 211 общего управления кодером управляет оптимизацией размер битовой скорости/битового потока в зависимости от качества восстановления. Такие решения могут приниматься на основе наличия дискового пространства/пропускной способности и запросов разрешения изображения. Компонент 211 общего управления кодером также управляет использованием буфера в свете скорости передачи, чтобы смягчить проблемы опустошения и переполнения буфера. Чтобы справиться с этими проблемами, компонент 211 общего управления кодером управляет разделением, предсказанием и фильтрацией с помощью других компонентов. Например, компонент 211 общего управления кодером может динамически увеличивать сложность сжатия для увеличения разрешения и увеличения использования полосы пропускания или уменьшать сложность сжатия для уменьшения разрешения и использования полосы пропускания. Следовательно, компонент 211 общего управления кодером управляет другими компонентами системы 200 кодирования/декодирования, чтобы сбалансировать качество восстановления видеосигнала с проблемами скорости передачи битов. Компонент 211 общего управления кодером создает управляющие данные, которые управляют работой других компонентов. Управляющие данные также направляются в компонент 231 форматирования заголовка и CABAC для кодирования в битовый поток для сигнализации параметров для декодирования в декодере.The general encoder control component 211 is configured to make decisions associated with encoding images of a video sequence into a bitstream in accordance with application constraints. For example, the general encoder control component 211 controls the optimization of the bit rate/bit stream size depending on the reconstruction quality. Such decisions can be made based on disk space/bandwidth availability and image resolution requests. The general encoder control component 211 also controls buffer usage in light of the bit rate to mitigate buffer underrun and overflow problems. To cope with these problems, the general encoder control component 211 controls the division, prediction, and filtering with the help of other components. For example, the general encoder control component 211 may dynamically increase compression complexity to increase resolution and increase bandwidth utilization, or decrease compression complexity to decrease resolution and bandwidth utilization. Therefore, the general encoder control component 211 controls the other components of the encoding/decoding system 200 to balance the quality of the video signal reconstruction with bit rate issues. The encoder general control component 211 creates control data that controls the operation of other components. The control data is also sent to header and CABAC formatting component 231 for encoding into a bitstream to signal parameters for decoding at the decoder.

Разделенный видеосигнал 201 также отправляется в компонент 221 оценки движения и компонент 219 компенсации движения для межкадрового предсказания. Кадр или часть разделенного видеосигнала 201 может быть разделена на множество видеоблоков. Компонент 221 оценки движения и компонент 219 компенсации движения выполняют межкадровое кодирование с предсказанием принятого видеоблока относительно одного или более блоков в одном или более опорных кадрах для обеспечения временного предсказания. Система 200 кодирования/декодирования может выполнять несколько проходов кодирования, например, для выбора соответствующего режима кодирования для каждого блока видеоданных.The divided video signal 201 is also sent to the motion estimation component 221 and the motion compensation component 219 for inter-frame prediction. A frame or portion of the divided video signal 201 may be divided into multiple video blocks. The motion estimation component 221 and the motion compensation component 219 perform interframe predictive coding of a received video block with respect to one or more blocks in one or more reference frames to provide temporal prediction. The encoding/decoding system 200 may perform multiple encoding passes, for example, to select an appropriate encoding mode for each block of video data.

Компонент 221 оценки движения и компонент 219 компенсации движения могут быть в высокой степени интегрированы, но проиллюстрированы отдельно для концептуальных целей. Оценка движения, выполняемая компонентом 221 оценки движения, представляет собой процесс выработки векторов движения, в котором оценивается движение для видеоблоков. Например, вектор движения может указывать смещение кодированного объекта относительно блока предсказания. Блок предсказания – это блок, который точно соответствует кодируемому блоку с точки зрения разности пикселей. Блок предсказания также может упоминаться как опорный блок. Такая разность пикселей может быть определена с помощью суммы абсолютной разности (SAD), суммы квадратов разностей (SSD) или другими показателями разности. HEVC использует несколько кодированных объектов, включая CTU, блоки дерева кодирования (CTB) и CU. Например, CTU можно разделить на CTB, которые затем можно разделить на CB для включения в CU. CU может быть закодирована как единица предсказания (PU), содержащая данные предсказания, и/или единицу преобразования (TU), содержащую преобразованные остаточные данные для CU. Компонент 221 оценки движения вырабатывает векторы движения, PU и TU, используя анализ характеристики «скорость-искажение» как часть процесса оптимизации характеристики «скорость-искажение». Например, компонент 221 оценки движения может определить несколько опорных блоков, множество векторов движения и т. д. для текущего блока/кадра и может выбирать опорные блоки, векторы движения и т. д., имеющие наилучшие характеристики «скорость-искажение». Наилучшие характеристики «скорость-искажение» уравновешивают качество восстановления видео (например, объем потерь данных при сжатии) с эффективностью кодирования (например, размер окончательного кодирования).The motion estimation component 221 and the motion compensation component 219 may be highly integrated, but are illustrated separately for conceptual purposes. The motion estimation performed by the motion estimation component 221 is a motion vector generation process in which motion is estimated for video blocks. For example, the motion vector may indicate the offset of the encoded object relative to the prediction block. A prediction block is a block that exactly matches the block being coded in terms of pixel difference. The prediction block may also be referred to as a reference block. Such pixel difference may be determined by sum of absolute difference (SAD), sum of squared differences (SSD), or other difference measures. HEVC uses several encoded objects, including CTUs, coding tree blocks (CTBs), and CUs. For example, CTUs can be divided into CTBs, which can then be divided into CBs to be included in a CU. The CU may be encoded as a prediction unit (PU) containing prediction data and/or a transformation unit (TU) containing the transformed residual data for the CU. Motion estimation component 221 generates motion vectors, PUs and TUs, using velocity-distortion analysis as part of the velocity-distortion optimization process. For example, motion estimation component 221 may determine multiple reference blocks, multiple motion vectors, etc. for the current block/frame, and may select reference blocks, motion vectors, etc. having the best speed-distortion characteristics. The best rate-distortion performance balances video restoration quality (eg, amount of data lost during compression) with encoding efficiency (eg, final encoding size).

В некоторых примерах система 200 кодирования/декодирования может вычислять значения для позиций субцелых пикселей опорных изображений, сохраненных в компоненте 223 буфера декодированных изображений. Например, система 200 кодирования/декодирования видео может интерполировать значения позиций четверти пикселей, позиции одной восьмой пикселей или другие позиции дробных пикселей опорного изображения. Таким образом, компонент 221 оценки движения может выполнять поиск движения относительно позиций целых пикселей и позиций дробных пикселей и выводить вектор движения с точностью до дробных пикселей. Компонент 221 оценки движения вычисляет вектор движения для PU видеоблока в межкадровом кодированном слайсе путем сравнения позиции PU с позицией блока предсказания опорного изображения. Компонент 221 оценки движения выводит вычисленный вектор движения в виде данных движения для форматирования заголовка, и компонент 231 CABAC для кодирования и движения к компоненту 219 компенсации движения.In some examples, encoding/decoding system 200 may calculate values for sub-integer pixel positions of reference images stored in decoded image buffer component 223. For example, video encoding/decoding system 200 may interpolate quarter pixel position values, eighth pixel positions, or other fractional pixel positions of a reference image. Thus, the motion estimation component 221 can search for motion with respect to whole pixel positions and fractional pixel positions and output a motion vector with fractional pixel precision. Motion estimation component 221 calculates a motion vector for a video block PU in the inter-frame coded slice by comparing the position of the PU with the position of the reference picture prediction block. The motion estimation component 221 outputs the calculated motion vector as motion data for header formatting, and the CABAC component 231 for encoding and motion to the motion compensation component 219.

Компенсация движения, выполняемая компонентом 219 компенсации движения, может включать выборку или выработку блока предсказания на основе вектора движения, определенного компонентом 221 оценки движения. Опять же, в некоторых примерах компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего видеоблока компонент 219 компенсации движения может определить местонахождение блока предсказания, на который указывает вектор движения. Затем формируется остаточный видеоблок путем вычитания значений пикселей блока предсказания из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей. В общем, компонент 221 оценки движения выполняет оценку движения относительно компонентов яркости, и компонент 219 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок предсказания и остаточный блок направляются в компонент 213 преобразования с масштабированием и квантования.The motion compensation performed by the motion compensation component 219 may include sampling or generating a prediction block based on the motion vector determined by the motion estimation component 221 . Again, in some examples, motion estimation component 221 and motion compensation component 219 may be functionally integrated. After receiving the motion vector for the PU of the current video block, motion compensation component 219 can locate the prediction block pointed to by the motion vector. A residual video block is then generated by subtracting the pixel values of the prediction block from the pixel values of the current video block being encoded, generating pixel difference values. In general, motion estimation component 221 performs motion estimation with respect to luminance components, and motion compensation component 219 uses motion vectors calculated based on luminance components for both chrominance and luminance components. The prediction block and the residual block are sent to the scaling and quantization transform component 213.

Разделенный видеосигнал 201 также отправляется в компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания. Как и в случае компонента 221 оценки движения и компонента 219 компенсации движения, компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания могут быть сильно интегрированы, но они проиллюстрированы по отдельности для концептуальных целей. Компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания внутрикадрово предсказывают текущий блок относительно блоков в текущем кадре в качестве альтернативы межкадровому предсказанию, выполняемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 внутрикадровой оценки определяет режим внутрикадрового предсказания, который используется для кодирования текущего блока. В некоторых примерах компонент 215 внутрикадровой оценки выбирает соответствующий режим внутрикадрового предсказания для кодирования текущего блока из нескольких протестированных режимов внутрикадрового предсказания. Выбранные режимы внутрикадрового предсказания затем направляются в компонент форматирования заголовка и CABAC 231 для кодирования.The divided video signal 201 is also sent to the intra-frame estimation component 215 and the intra-frame prediction component 217. As with motion estimation component 221 and motion compensation component 219, intra-frame estimation component 215 and intra-frame prediction component 217 may be highly integrated, but they are illustrated separately for conceptual purposes. The intra-frame estimation component 215 and the intra-frame prediction component 217 intra-frame predict the current block relative to blocks in the current frame as an alternative to the inter-frame prediction performed by the motion estimation component 221 and the inter-frame motion compensation component 219 as described above. In particular, intra-frame estimation component 215 determines the intra-frame prediction mode that is used to encode the current block. In some examples, intra-frame estimation component 215 selects an appropriate intra-prediction mode for encoding the current block from several tested intra-prediction modes. The selected intra-prediction modes are then sent to the header formatting component and CABAC 231 for encoding.

Например, компонент 215 внутрикадровой оценки вычисляет значения скорости-искажения, используя анализ характеристики «скорость-искажение» для различных протестированных режимов внутрикадрового предсказания и выбирает режим внутрикадрового предсказания, имеющий наилучшие характеристики скорости-искажения среди протестированных режимов. Как правило, анализ характеристики «скорость-искажение» определяет степень искажения (или ошибки) между кодированным блоком и исходным некодированным блоком, который был закодирован для получения кодированного блока, а также битовой скорости (например, количества битов), используемой для получения кодированного блока. Компонент 215 внутрикадровой оценки вычисляет соотношения из искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутрикадрового предсказания демонстрирует наилучшее значение скорости-искажения для блока. В дополнение к этому, компонент 215 внутрикадровой оценки может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM) на основе оптимизации характеристики «скорость-искажение» (RDO).For example, intra-frame estimation component 215 calculates rate-distortion values using rate-distortion analysis for various tested intra-prediction modes and selects the intra-prediction mode having the best rate-distortion characteristics among the tested modes. Typically, rate-distortion analysis determines the degree of distortion (or error) between a coded block and the original uncoded block that was coded to produce the coded block, as well as the bit rate (eg, number of bits) used to produce the coded block. Intra-frame estimation component 215 calculates distortion-rate ratios for various coded blocks to determine which intra-prediction mode exhibits the best rate-distortion value for the block. In addition, the intra-frame estimation component 215 may be configured to encode the depth blocks of the depth map using a depth modeling mode (DMM) based on rate-distortion optimization (RDO).

Компонент 217 внутрикадрового предсказания может вырабатывать остаточный блок из блока предсказания на основе выбранных режимов внутрикадрового предсказания, определенных компонентом 215 внутрикадровой оценки, когда он реализован в кодере, или считывать остаточный блок из битового потока в случае реализации в декодере. Остаточный блок включает в себя разность значений между блоком предсказания и исходным блоком, представленным в виде матрицы. Затем остаточный блок направляется компоненту 213 преобразования с масштабированием и квантования. Компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания могут работать как с компонентами яркости, так и с компонентами цветности.The intra-frame prediction component 217 may produce a residual block from the prediction block based on selected intra-prediction modes determined by the intra-frame estimation component 215 when implemented in an encoder, or read the residual block from a bitstream when implemented in a decoder. The residual block includes the difference in values between the prediction block and the original block, represented as a matrix. The residual block is then sent to the scaling and quantization component 213 . The intra-frame estimation component 215 and the intra-frame prediction component 217 may operate on both luma and chrominance components.

Компонент 213 преобразования с масштабированием и квантования выполнен с возможностью дополнительного сжатия остаточного блока. Компонент 213 преобразования с масштабированием и квантования применяет преобразование, такое как дискретное косинусное преобразование (DCT), дискретное синусоидальное преобразование (DST) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий остаточные значения коэффициентов преобразования. Кроме того, можно также использовать вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. Преобразование позволяет преобразовать информацию остатка из области пиксельных значений в область преобразования, такую как частотная область. Компонент 213 преобразования с масштабированием и квантования также выполнен с возможностью масштабирования преобразованной остаточной информации, например, на основе частоты. Такое масштабирование включает применение коэффициента масштабирования к остаточной информации таким образом, чтобы информация о разных частотах квантовалась с разной степенью детализации, что может повлиять на конечное визуальное качество восстановленного видео. Компонент 213 преобразования с масштабированием и квантования также выполнен с возможностью квантования коэффициентов преобразования для дальнейшего снижения скорости передачи битов. Процесс квантования позволяет уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена посредством регулировки параметра квантования. В некоторых примерах компонент 213 преобразования с масштабированием и квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Квантованные коэффициенты преобразования направляются в компонент форматирования заголовка и CABAC 231 для кодирования в битовый поток.The scaling and quantization component 213 is configured to further compress the residual block. The scaling and quantization transform component 213 applies a transform, such as a discrete cosine transform (DCT), a discrete sine transform (DST), or a conceptually similar transform, to the residual block, creating a video block containing the residual values of the transform coefficients. In addition, wavelet transforms, integer transforms, subband transforms, or other types of transforms can also be used. The transform allows the residual information to be converted from the pixel value domain to a transform domain such as the frequency domain. The scaling and quantization component 213 is also configured to scale the transformed residual information, for example, based on frequency. Such scaling involves applying a scaling factor to the residual information such that information at different frequencies is quantized to different degrees of detail, which can affect the final visual quality of the reconstructed video. The scaling and quantization component 213 is also configured to quantize the transform coefficients to further reduce the bit rate. The quantization process allows the bit depth associated with some or all of the coefficients to be reduced. The degree of quantization can be changed by adjusting the quantization parameter. In some examples, the scaling and quantization component 213 may then scan a matrix including the quantized transform coefficients. The quantized transform coefficients are sent to the header formatting component and CABAC 231 for encoding into a bitstream.

Компонент 229 масштабирования и обратного преобразования применяет обратную операцию компонента 213 преобразования с масштабированием и квантования для поддержки оценки движения. Компонент 229 масштабирования и обратного преобразования применяет обратное масштабирование, преобразование и/или квантование для восстановления остаточного блока в пиксельной области, например, для последующего использования в качестве опорного блока, который может стать блоком предсказания для другого текущего блока. Компонент 221 оценки движения и/или компонент 219 компенсации движения могут вычислять опорный блок путем добавления остаточного блока обратно к соответствующему блоку предсказания для использования при оценке движения более позднего блока/кадра. К восстановленным опорным блокам применяются фильтры для устранения артефактов, возникающих во время масштабирования, квантования и преобразования. В противном случае такие артефакты могут вызвать неточное предсказание (и создать дополнительные артефакты) при предсказании последующих блоков.The scaling and inverse transform component 229 applies the inverse operation of the scaling and quantizing transform component 213 to support motion estimation. The scaling and detransforming component 229 applies descaling, transforming, and/or quantization to reconstruct a residual block in the pixel domain, for example, for later use as a reference block that can become a prediction block for another current block. Motion estimation component 221 and/or motion compensation component 219 may calculate a reference block by adding a residual block back to the corresponding prediction block for use in motion estimation of a later block/frame. Filters are applied to the reconstructed reference blocks to remove artifacts that occur during scaling, quantization, and transformation. Otherwise, such artifacts may cause inaccurate prediction (and create additional artifacts) when predicting subsequent blocks.

Компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров применяют фильтры к остаточным блокам и/или к восстановленным блокам изображения. Например, преобразованный остаточный блок из компонента 229 масштабирования и обратного преобразования может быть объединен с соответствующим блоком предсказания из компонента 217 внутрикадрового предсказания и/или компонента 219 компенсации движения для восстановления исходного блока изображения. Затем фильтры могут быть применены к восстановленному блоку изображения. В некоторых примерах вместо этого фильтры могут применяться к остаточным блокам. Как и в случае с другими компонентами, показанными на фиг. 2, компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров в высокой степени интегрированы и могут быть реализованы вместе, но изображены отдельно для концептуальных целей. Фильтры, применяемые к восстановленным опорным блокам, применяются к конкретным областям пространства и включают в себя несколько параметров для регулировки применения таких фильтров. Компонент 227 анализа управления фильтром анализирует восстановленные опорные блоки, чтобы определить то, где такие фильтры должны применяться, и устанавливает соответствующие параметры. Такие данные направляются в компонент 231 форматирования заголовка и CABAC в качестве данных управления фильтром для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе данных управления фильтром. Фильтры могут включать в себя фильтр устранения блочности, фильтр подавления шума, фильтр SAO и адаптивный контурной фильтр. В зависимости от примера такие фильтры могут применяться в пространственной/пиксельной области (например, к восстановленному блоку пикселей) или в частотной области.Filter control analysis component 227 and in-loop filter component 225 apply filters to residual blocks and/or reconstructed image blocks. For example, the transformed residual block from the upscaling and demapping component 229 may be combined with the corresponding prediction block from the intra-frame prediction component 217 and/or the motion compensation component 219 to restore the original image block. Filters can then be applied to the reconstructed image block. In some examples, filters may be applied to residual blocks instead. As with the other components shown in FIGS. 2, the filter control analysis component 227 and the in-loop filter component 225 are highly integrated and may be implemented together, but are depicted separately for conceptual purposes. Filters applied to reconstructed reference blocks apply to specific areas of space and include several parameters to control how those filters are applied. The filter control analysis component 227 analyzes the reconstructed reference blocks to determine where such filters should be applied and sets the appropriate parameters. Such data is sent to header formatting component 231 and CABAC as filter control data for encoding. The in-loop filter component 225 applies such filters based on filter control data. The filters may include a deblocking filter, a noise reduction filter, a SAO filter, and an adaptive loop filter. Depending on the example, such filters may be applied in the spatial/pixel domain (eg, to a reconstructed block of pixels) or in the frequency domain.

При работе в качестве кодера отфильтрованный восстановленный блок изображения, остаточный блок и/или блок предсказания сохраняются в компоненте 223 буфера декодированного изображения для последующего использования при оценке движения, как обсуждалось выше. При работе в качестве декодера компонент 223 буфера декодированных изображений сохраняет и пересылает восстановленные и отфильтрованные блоки в дисплей как часть выходного видеосигнала. Компонент 223 буфера декодированного изображения может быть любым запоминающим устройством, способным хранить блоки предсказания, остаточные блоки и/или блоки восстановленного изображения.When operating as an encoder, the filtered reconstructed image block, residual block, and/or prediction block are stored in the decoded image buffer component 223 for later use in motion estimation, as discussed above. When operating as a decoder, the decoded image buffer component 223 stores and forwards the reconstructed and filtered blocks to the display as part of the output video signal. The decoded image buffer component 223 may be any memory device capable of storing prediction blocks, residual blocks, and/or reconstructed image blocks.

Компонент 231 форматирования заголовка и CABAC принимает данные из различных компонентов системы 200 кодирования/декодирования и кодирует такие данные в кодированный битовый поток для передачи в декодер. В частности, компонент 231 форматирования заголовка и CABAC вырабатывает различные заголовки для кодирования данных управления, таких как общие данные управления и данные управления фильтром. Кроме того, данные предсказания, включая данные внутрикадрового предсказания и движения, а также остаточные данные в виде данных квантованных коэффициентов преобразования, кодируются полностью в битовый поток. Окончательный битовый поток включает в себя всю информацию, необходимую декодеру для восстановления исходного разделенного видеосигнала 201. Такая информация может также включать в себя таблицы индексов внутрикадрового режима предсказания (также называемые таблицами сопоставления кодовых слов), определения контекстов кодирования для различных блоков, указания наиболее вероятных режимов внутрикадрового предсказания, указание информации раздела и т. д. Такие данные могут быть закодированы с применением энтропийного кодирования. Например, информация может быть закодирована с использованием контекстно-адаптивного кодирования переменной длины (CAVLC), CABAC, основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), вероятностного межкадрового энтропийного кодирования (PIPE) или другого способа энтропийного кодирования. После энтропийного кодирования кодированный битовый поток может быть передан в другое устройство (например, видеодекодер) или заархивирован для последующей передачи или извлечения.The header and CABAC formatting component 231 receives data from various components of the encoding/decoding system 200 and encodes such data into a coded bitstream for transmission to the decoder. In particular, the header and CABAC formatting component 231 produces various headers for encoding control data such as general control data and filter control data. In addition, prediction data, including intra-frame prediction and motion data, as well as residual data in the form of quantized transform coefficient data, are encoded entirely into a bit stream. The final bitstream includes all information necessary for the decoder to reconstruct the original split video signal 201. Such information may also include intra-frame prediction mode index tables (also called codeword mapping tables), definitions of encoding contexts for various blocks, indications of the most likely modes intra-frame prediction, partition information indication, etc. Such data can be encoded using entropy coding. For example, the information may be encoded using context adaptive variable length coding (CAVLC), CABAC based on context adaptive binary arithmetic coding (SBAC) syntax, probabilistic interframe entropy encoding (PIPE), or other entropy encoding technique. After entropy encoding, the encoded bitstream can be transferred to another device (such as a video decoder) or archived for later transmission or retrieval.

На фиг. 3 показана блок-схема, иллюстрирующая примерный видеокодер 300. Видеокодер 300 может использоваться для реализации функций кодирования системы 200 кодирования/декодирования и/или реализации этапов 101, 103, 105, 107 и/или 109 способа 100 функционирования. Кодер 300 разделяет входной видеосигнал, в результате чего получается разделенный видеосигнал 301, который по существу аналогичен разделенному видеосигналу 201. Затем разделенный видеосигнал 301 сжимается и кодируется в битовый поток компонентами кодера 300.In fig. 3 is a block diagram illustrating an exemplary video encoder 300. The video encoder 300 may be used to implement encoding functions of the encoding/decoding system 200 and/or implement steps 101, 103, 105, 107 and/or 109 of the method 100 of operation. Encoder 300 splits the input video signal, resulting in split video 301, which is substantially the same as split video 201. The split video 301 is then compressed and encoded into a bitstream by components of encoder 300.

В частности, разделенный видеосигнал 301 направляется в компонент 317 внутрикадрового предсказания для внутрикадрового предсказания. Компонент 317 внутрикадрового предсказания может быть по существу аналогичен компоненту 215 внутрикадровой оценки и компоненту 217 внутрикадрового предсказания. Разделенный видеосигнал 301 также направляется в компонент 321 компенсации движения для межкадрового предсказания на основе опорных блоков в компоненте 323 буфера декодированных изображений. Компонент 321 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и компоненту 219 компенсации движения. Блоки предсказания и остаточные блоки из компонента 317 внутрикадрового предсказания и компонента 321 компенсации движения направляются в компонент 313 преобразования и квантования для преобразования и квантования остаточных блоков. Компонент 313 преобразования и квантования может быть по существу аналогичен компоненту 213 преобразования с масштабированием и квантования. Преобразованные и квантованные остаточные блоки и соответствующие блоки предсказания (вместе с соответствующими управляющими данными) направляются в компонент 331 энтропийного кодирования для кодирования в битовый поток. Компонент 331 энтропийного кодирования может быть по существу аналогичен компоненту 231 форматирования заголовка и CABAC. Specifically, the divided video signal 301 is sent to the intra prediction component 317 for intra prediction. The intra-frame prediction component 317 may be substantially similar to the intra-frame estimation component 215 and the intra-frame prediction component 217 . The divided video signal 301 is also sent to motion compensation component 321 for inter-frame prediction based on reference blocks in decoded image buffer component 323. The motion compensation component 321 may be substantially similar to the motion estimation component 221 and the motion compensation component 219 . The prediction blocks and residual blocks from the intra-frame prediction component 317 and the motion compensation component 321 are sent to the transform and quantize component 313 to transform and quantize the residual blocks. The transform and quantization component 313 may be substantially similar to the scaling and quantization component 213 . The transformed and quantized residual blocks and corresponding prediction blocks (along with corresponding control data) are sent to entropy encoding component 331 for encoding into a bit stream. The entropy encoding component 331 may be substantially similar to the header formatting component 231 and CABAC.

Преобразованные и квантованные остаточные блоки и/или соответствующие блоки предсказания также направляются из компонента 313 преобразования и квантования в компонент 329 обратного преобразования и квантования для восстановления в опорные блоки для использования компонентом 321 компенсации движения. Компонент 329 обратного преобразования и квантования может быть по существу аналогичен компоненту 229 масштабирования и обратного преобразования. Внутриконтурные фильтры в компоненте 325 внутриконтурных фильтров также применяются к остаточным блокам и/или восстановленным опорным блокам, в зависимости от примера. Компонент 325 внутриконтурных фильтров может быть по существу аналогичен компоненту 227 анализа управления фильтром и компоненту 225 внутриконтурных фильтров. Компонент 325 внутриконтурных фильтров может включать в себя множество фильтров, как описано в отношении компонента 225 внутриконтурных фильтров. Отфильтрованные блоки затем сохраняются в компоненте 323 буфера декодированных изображений для использования в качестве опорных блоков компонентом 321 компенсации движения. Компонент 323 буфера декодированных изображений может быть по существу аналогичен компоненту 223 буфера декодированных изображений.The transformed and quantized residual blocks and/or corresponding prediction blocks are also sent from the transform and quantization component 313 to the inverse transform and quantization component 329 for reconstruction into reference blocks for use by the motion compensation component 321 . The demapping and quantization component 329 may be substantially similar to the scaling and demapping component 229 . The in-loop filters in the in-loop filter component 325 are also applied to the residual blocks and/or recovered reference blocks, depending on the example. The in-loop filter component 325 may be substantially similar to the filter control analysis component 227 and the in-loop filter component 225 . The in-loop filter component 325 may include a plurality of filters, as described with respect to the in-loop filter component 225. The filtered blocks are then stored in the decoded image buffer component 323 for use as reference blocks by the motion compensation component 321 . The decoded image buffer component 323 may be substantially similar to the decoded image buffer component 223.

На фиг. 4 показана блок-схема, иллюстрирующая примерный видеодекодер 400. Видеодекодер 400 может использоваться для реализации функций декодирования системы 200 кодирования/декодирования и/или реализации этапов 111, 113, 115 и/или 117 способа 100 функционирования. Декодер 400 принимает битовый поток, например, из кодера 300, и вырабатывает восстановленный выходной видеосигнал на основе битового потока для отображения конечному пользователю.In fig. 4 is a block diagram illustrating an exemplary video decoder 400. The video decoder 400 may be used to implement decoding functions of the encoding/decoding system 200 and/or implement steps 111, 113, 115 and/or 117 of the method 100 of operation. Decoder 400 receives a bit stream, for example, from encoder 300, and produces a reconstructed video output based on the bit stream for display to an end user.

Битовый поток принимается компонентом 433 энтропийного декодирования. Компонент 433 энтропийного декодирования выполнен с возможностью реализации схемы энтропийного декодирования, такой как кодирование CAVLC, CABAC, SBAC, PIPE или другие технологии энтропийного кодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка для предоставления контекста для интерпретации дополнительных данных, кодированных как кодовые слова в битовый поток. Декодированная информация включает в себя любую требуемую информацию для декодирования видеосигнала, такую как общие данные управления, данные управления фильтром, информацию разделения, данные движения, данные предсказания и квантованные коэффициенты преобразования из остаточных блоков. Квантованные коэффициенты преобразования направляются в компонент 429 обратного преобразования и квантования для восстановления в остаточные блоки. Компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.The bitstream is received by entropy decoding component 433. The entropy decoding component 433 is configured to implement an entropy decoding scheme such as CAVLC, CABAC, SBAC, PIPE, or other entropy encoding technologies. For example, entropy decoding component 433 may use header information to provide context for interpreting additional data encoded as codewords into the bitstream. The decoded information includes any required information for decoding a video signal, such as general control data, filter control data, division information, motion data, prediction data, and quantized transform coefficients from residual blocks. The quantized transform coefficients are sent to the inverse transform and quantization component 429 for reconstruction into residual blocks. The inverse transform and quantization component 429 may be similar to the inverse transform and quantization component 329 .

Восстановленные остаточные блоки и/или блоки предсказания направляются в компонент 417 внутрикадрового предсказания для восстановления в блоки изображений на основе операций внутрикадрового предсказания. Компонент 417 внутрикадрового предсказания может быть аналогичен компоненту 215 внутрикадровой оценки и компоненту 217 внутрикадрового предсказания. В частности, компонент 417 внутрикадрового предсказания использует режимы предсказания для обнаружения опорного блока в кадре и применяет остаточный блок к результату для восстановления внутрикадрово предсказанных блоков изображения. Восстановленные внутрикадрово предсказанные блоки изображения, и/или остаточные блоки и соответствующие данные межкадрового предсказания направляются в компонент 423 буфера декодированных изображений через компонент 425 внутриконтурных фильтров, который может быть по существу аналогичен компоненту 223 буфера декодированных изображений и в компонент 225 внутриконтурных фильтров, соответственно. Компонент 425 внутриконтурных фильтров фильтрует восстановленные блоки изображений, остаточные блоки и/или блоки предсказания, и такая информация сохраняется в компоненте 423 буфера декодированного изображения. Восстановленные блоки изображений из компонента 423 буфера декодированного изображения направляются в компонент 421 компенсации движения для межкадрового предсказания. Компонент 421 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и/или компоненту 219 компенсации движения. В частности, компонент 421 компенсации движения использует векторы движения из опорного блока для формирования блока предсказания и применяет остаточный блок к результату для восстановления блока изображения. Результирующие восстановленные блоки также могут быть перенаправлены через компонент 425 внутриконтурных фильтров в компонент 423 буфера декодированных изображений. Компонент 423 буфера декодированных изображений продолжает хранить дополнительные восстановленные блоки изображений, которые могут быть восстановлены в кадры с использованием информации разделения. Такие кадры также могут быть помещены в последовательность. Последовательность выводится на дисплей в виде восстановленного выходного видеосигнала.The reconstructed residual blocks and/or prediction blocks are sent to intra-prediction component 417 for restoration into image blocks based on intra-prediction operations. The intra-prediction component 417 may be similar to the intra-frame estimation component 215 and the intra-prediction component 217 . Specifically, intra-prediction component 417 uses prediction modes to detect a reference block in a frame and applies a residual block to the result to reconstruct intra-predicted image blocks. The reconstructed intra-frame predicted image blocks and/or residual blocks and corresponding inter-prediction data are sent to the decoded image buffer component 423 through the in-loop filter component 425, which may be substantially similar to the decoded image buffer component 223 and to the in-loop filter component 225, respectively. The in-loop filter component 425 filters the reconstructed image blocks, residual blocks, and/or prediction blocks, and such information is stored in the decoded image buffer component 423. The reconstructed image blocks from the decoded image buffer component 423 are sent to the motion compensation component 421 for inter-frame prediction. Motion compensation component 421 may be substantially similar to motion estimation component 221 and/or motion compensation component 219 . Specifically, motion compensation component 421 uses motion vectors from the reference block to form a prediction block and applies the residual block to the result to reconstruct the image block. The resulting reconstructed blocks may also be forwarded through the in-loop filter component 425 to the decoded image buffer component 423. The decoded image buffer component 423 continues to store additional reconstructed image blocks that can be reconstructed into frames using the division information. Such frames can also be placed in a sequence. The sequence is displayed as a reconstructed video output.

На фиг. 5 показано схематичное представление, иллюстрирующее примерный HRD 500. HRD 500 может использоваться в кодере, таком как система 200 кодека и/или кодер 300. HRD 500 может проверить битовый поток, созданный на этапе 109 способа 100, прежде чем битовый поток будет направлен в декодер, такой как декодер 400. В некоторых примерах битовый поток может непрерывно пересылаться через HRD 500 по мере кодирования битового потока. В случае, если часть битового потока не соответствует ассоциированным ограничениям, HRD 500 может указать такой сбой кодеру, чтобы заставить кодер повторно кодировать соответствующую часть битового потока с помощью других механизмов.In fig. 5 is a schematic diagram illustrating an exemplary HRD 500. The HRD 500 may be used in an encoder, such as a codec system 200 and/or an encoder 300. The HRD 500 may examine the bitstream created in step 109 of the method 100 before the bitstream is sent to the decoder such as decoder 400. In some examples, the bit stream may be continuously sent through HRD 500 as the bit stream is encoded. In the event that a portion of the bitstream does not comply with the associated constraints, HRD 500 may indicate such a failure to the encoder to cause the encoder to re-encode the corresponding portion of the bitstream using other mechanisms.

HRD 500 включает в себя гипотетический планировщик потока (HSS) 541. HSS 541 представляет собой компонент, выполненный с возможностью выполнения гипотетического механизма доставки. Гипотетический механизм доставки используется для проверки на соответствие битового потока или декодера по отношению к таймированию и потоку данных битового потока 551, вводимого в HRD 500. Например, HSS 541 может принимать битовый поток 551, выходящий из кодера, и управлять процессом тестирования на соответствие битового потока 551. В конкретном примере HSS 541 может управлять скоростью, с которой кодированные изображения проходят через HRD 500, и верифицировать то, что битовый поток 551 не содержит несоответствующих данных.The HRD 500 includes a hypothetical flow scheduler (HSS) 541. The HSS 541 is a component configured to execute the hypothetical delivery mechanism. A hypothetical delivery mechanism is used to check the consistency of a bitstream or decoder with respect to the timing and data flow of the bitstream 551 input to the HRD 500. For example, the HSS 541 may receive the bitstream 551 output from the encoder and control the bitstream consistency testing process 551. In a specific example, HSS 541 may control the rate at which encoded images pass through HRD 500 and verify that bitstream 551 does not contain inappropriate data.

HSS 541 может переслать битовый поток 551 CPB 543 с заданной скоростью. HRD 500 может управлять данными в единицах декодирования (DU) 553. DU 553 представляет собой AU или поднабор AU и ассоциированные единицы слоя абстракции сети (NAL) слоя без кодирования видео (VCL). В частности, AU содержит одно или более изображений, ассоциированных с временем вывода. Например, AU может содержать одно изображение в однослойном битовом потоке и может содержать изображение для каждого слоя в многослойном битовом потоке. Каждое изображение AU может быть разделено на слайсы, каждый из которых включен в соответствующую единицу NAL VCL. Следовательно, DU 553 может содержать одно или более изображений, один или более слайсов изображения или их комбинации. Кроме того, параметры, используемые также для декодирования AU, изображений и/или слайсов, могут быть включены в единицы NAL без VCL. Таким образом, DU 553 содержит единицы NAL без VCL, которые содержат данные, необходимые для поддержки декодирования единиц NAL VCL в DU 553. CPB 543 является буфером обратного магазинного типа в HRD 500. CPB 543 содержит DU 553, в том числе видеоданные в порядке декодирования. CPB 543 сохраняет видеоданные для использования во время верификации соответствия битового потока.The HSS 541 can forward the bit stream 551 to the CPB 543 at a specified rate. The HRD 500 may manage data in decoding units (DUs) 553. A DU 553 is an AU or a subset of AUs and associated network abstraction layer (NAL) units of a video non-coding layer (VCL). In particular, the AU contains one or more images associated with an output time. For example, an AU may contain one image in a single-layer bitstream and may contain an image for each layer in a multi-layer bitstream. Each AU image can be divided into slices, each of which is included in the corresponding NAL VCL unit. Therefore, DU 553 may contain one or more images, one or more image slices, or combinations thereof. In addition, parameters also used for AU, picture and/or slice decoding can be included in NAL units without VCL. Thus, DU 553 contains non-VCL NAL units, which contain data necessary to support decoding of VCL NAL units in DU 553. CPB 543 is a reverse store type buffer in HRD 500. CPB 543 contains DU 553, including video data in decoding order . The CPB 543 stores video data for use during bitstream compliance verification.

CPB 543 пересылает DU 553 в компонент 545 процесса декодирования. Компонент 545 процесса декодирования является компонентом, который соответствует стандарту VVC. Например, компонент 545 процесса декодирования может эмулировать декодер 400, используемый конечным пользователем. Компонент 545 процесса декодирования декодирует DU 553 со скоростью, которая может быть достигнута примерным декодером конечного пользователя. Если компонент 545 процесса декодирования не может декодировать DU 553 достаточно быстро, чтобы предотвратить переполнение CPB 543, то битовый поток 551 не соответствует стандарту и должен быть повторно закодирован.The CPB 543 forwards the DU 553 to the decoding process component 545. The decoding process component 545 is a component that complies with the VVC standard. For example, decoding process component 545 may emulate a decoder 400 used by an end user. Decoding process component 545 decodes DU 553 at a rate that can be achieved by an exemplary end user decoder. If the decoding process component 545 cannot decode the DU 553 fast enough to prevent the CPB 543 from overflowing, then the bitstream 551 does not conform to the standard and must be re-encoded.

Компонент 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.The decoding process component 545 decodes the DU 553, which produces decoded DUs 555. The decoded DU 555 contains the decoded image. The decoded DUs 555 are forwarded to the DPB 547. The DPB 547 may be substantially similar to the decoded picture buffer component 223, 323 and/or 423. To support inter-frame prediction, pictures marked for use as reference pictures 556 that are obtained from decoded DUs 555 are returned to decoding process component 545 to support further decoding. The DPB 547 outputs the decoded video sequence as a sequence of images 557. The images 557 are reconstructed images that typically reflect the images encoded by the encoder into the bitstream 551.

Изображения 557 направляются в компонент 549 кадрирования вывода. Компонент 549 кадрирования вывода выполнен с возможностью применения окна кадрирования соответствия к изображениям 557. В результате получаются выходные кадрированные изображения 559. Соответственно, выходное кадрированное изображение 559 имитирует то, что конечный пользователь увидит при декодировании битового потока 551. Таким образом, кодер может просматривать выходные кадрированные изображения 559, чтобы гарантировать удовлетворительное кодирование.Images 557 are sent to output cropping component 549. The output cropping component 549 is configured to apply a matching crop window to the images 557. The result is output cropped images 559. Accordingly, the output cropped image 559 simulates what the end user would see when decoding the bitstream 551. Thus, the encoder can view the output cropped images 559 images to ensure satisfactory encoding.

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. Например, график 561 доставки CPB может описывать скорости передачи битов и размеры буфера для CPB 543, где такие скорости передачи данных и размеры буфера соответствуют конкретному классу декодера и/или состоянию сети. Следовательно, график 561 доставки CPB может указывать то, как долго данные могут оставаться в CPB 543 до вытеснения. Неспособность поддерживать график 561 доставки CPB в HRD 500 во время теста на соответствие является признаком того, что декодер, который соответствует графику 561 доставки CPB, не сможет декодировать соответствующий битовый поток. Следует отметить, что HRD 500 может использовать графики доставки DPB для DPB 547, которые аналогичны графикам доставки CPB 561.HRD 500 is initiated based on the HRD parameters in bitstream 551. For example, HRD 500 may read HRD parameters from VPS, SPS and/or SEI messages. The HRD 500 may then perform compliance testing operations on the bit stream 551 based on the information in such HRD parameters. As a specific example, HRD 500 may determine one or more CPB delivery schedules 561 from the HRD parameters. The delivery schedule determines the timing of delivery of video data to and/or from a memory location such as a CPB and/or DPB. Therefore, CPB delivery schedule 561 indicates the delivery time of AUs, DUs 553, and/or images to/from CPB 543. For example, CPB delivery schedule 561 may describe bit rates and buffer sizes for CPB 543, where such bit rates and buffer sizes correspond to specific decoder class and/or network state. Therefore, the CPB delivery schedule 561 may indicate how long data may remain in the CPB 543 before being evicted. Failure to maintain the CPB delivery schedule 561 in HRD 500 during a matching test is an indication that a decoder that matches the CPB delivery schedule 561 will not be able to decode the corresponding bitstream. It should be noted that the HRD 500 can use the DPB delivery schedules for the DPB 547, which are similar to the CPB 561 delivery schedules.

Видео может быть закодировано в различных слоях и/или OLS для использования декодерами с различными уровнями аппаратных возможностей, а также для различных сетевых условий. Графики 561 доставки CPB выбираются для отражения этих проблем. Соответственно, битовые подпотоки верхнего слоя назначаются для оптимальных аппаратных и сетевых условий, и, следовательно, верхние слои могут принимать один или более графиков 561 доставки CPB, которые используют большой объем памяти в CPB 543 и короткие задержки для передач DU 553 в DPB 547. Аналогичным образом, битовые подпотоки нижнего слоя предназначены для ограниченных аппаратных возможностей декодера и/или плохих сетевых условий. Следовательно, нижние слои могут принимать один или более графиков доставки CPB 561, которые используют небольшой объем памяти в CPB 543 и более длительные задержки для передач DU 553 в DPB 547. Затем OLS, слои, подслои или их комбинации могут быть протестированы в соответствии с соответствующим графиком 561 доставки, чтобы гарантировать, что результирующий битовый подпоток может быть правильно декодирован в условиях, которые ожидаются для битового подпотока. Каждый график 561 доставки CPB ассоциирован с индексом 563 графика (ScIdx). ScIdx 563 является индексом, который идентифицирует график доставки. Соответственно, параметры HRD в битовом потоке 551 могут указывать графики 561 доставки CPB с помощью ScIdx 563, а также включать в себя достаточно данных, которые позволяют HRD 500 определять графики 561 доставки CPB и сопоставлять графики 561 доставки CPB с соответствующими OLS, слоями и/или подслоями.Video can be encoded in different layers and/or OLS for use by decoders with different levels of hardware capabilities, as well as for different network conditions. CPB delivery schedules 561 are selected to reflect these issues. Accordingly, the upper layer's substreams are assigned for optimal hardware and network conditions, and therefore, the upper layers can receive one or more CPB delivery schedules 561 that use large amounts of memory in the CPB 543 and short delays for DU transmissions 553 in the DPB 547. Similarly, Thus, the lower layer bitstreams are designed for limited decoder hardware capabilities and/or poor network conditions. Consequently, the lower layers may receive one or more CPB 561 delivery schedules that use a small amount of memory in the CPB 543 and longer delays for DU 553 transmissions in the DPB 547. The OLS, layers, sublayers, or combinations thereof can then be tested according to the appropriate delivery schedule 561 to ensure that the resulting bit stream can be correctly decoded under conditions that are expected for the bit substream. Each CPB delivery schedule 561 is associated with a schedule index 563 (ScIdx). ScIdx 563 is an index that identifies the delivery schedule. Accordingly, the HRD parameters in the bitstream 551 may indicate the CPB delivery schedules 561 by ScIdx 563 and also include sufficient data that allows the HRD 500 to determine the CPB delivery schedules 561 and associate the CPB delivery schedules 561 with the corresponding OLS, layers and/or sublayers.

На фиг. 6 показано схематичное представление, иллюстрирующее примерную многослойную видеопоследовательность 600, выполненную с возможностью межслойного предсказания 621 слоя. Многослойная видеопоследовательность 600 может быть закодирована кодером, таким как система 200 кодека и/или кодер 300, и декодирована с помощью декодера, такого как система 200 кодека и/или декодер 400, например, согласно способу 100. Кроме того, многослойная видеопоследовательность 600 может быть проверена на соответствие стандарту с помощью HRD, такого как HRD 500. Многослойная видеопоследовательность 600 включена для того, чтобы проиллюстрировать примерное приложение для слоев в кодированной видеопоследовательности. Многослойная видеопоследовательность 600 представляет собой любую видеопоследовательность, которая использует множество слоев, таких как слой N 631 и слой N+1 632.In fig. 6 is a schematic diagram illustrating an example multi-layer video sequence 600 configured with inter-layer prediction 621 layers. The multilayer video sequence 600 may be encoded by an encoder, such as a codec system 200 and/or an encoder 300, and decoded by a decoder, such as a codec system 200 and/or a decoder 400, for example, according to method 100. Additionally, the multilayer video sequence 600 may be tested against the standard using an HRD such as HRD 500. A multi-layer video sequence 600 is included to illustrate an example application for layers in an encoded video sequence. Multilayer video sequence 600 is any video sequence that uses multiple layers, such as layer N 631 and layer 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 представляет собой группу изображений, ассоциированных с одинаковым значением характеристики, такой как одинаковый размер, качество, разрешение, отношение сигнал/шум, возможности и т. д. Слой может быть формально определен как набор единиц NAL VCL и ассоциированных единиц NAL без VCL. Единица NAL VCL представляет собой единицу NAL, кодированную таким образом, чтобы она содержала видеоданные, такие как кодированный слайс изображения. Единица NAL без VCL представляет собой единицу NAL, которая содержит данные, не относящиеся к видео, такие как синтаксис и/или параметры, которые поддерживают декодирование видеоданных, выполнение проверки на соответствие или другие операции.In an example, multi-layer video sequence 600 may use inter-layer prediction 621. Inter-layer prediction 621 is applied between images 611, 612, 613 and 614 and images 615, 616, 617 and 618 in different layers. In the example shown, images 611, 612, 613 and 614 are part of layer N+1 632, and images 615, 616, 617 and 618 are part of layer N 631. A layer such as layer N 631 and/or layer N+1 632 represents is a group of images associated with the same characteristic value, such as the same size, quality, resolution, signal-to-noise ratio, capabilities, etc. A layer can be formally defined as a set of VCL NAL units and associated non-VCL NAL units. A VCL NAL unit is a NAL unit encoded to contain video data, such as an encoded image slice. A non-VCL NAL unit is a NAL unit that contains non-video data, such as syntax and/or parameters that support decoding video data, performing conformance checking, or other operations.

В показанном примере слой 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 верхнего слоя, и он упоминается как верхний слой.In the example shown, layer N+1,632 is associated with an image size larger than layer N 631. Accordingly, in this example, images 611, 612, 613, and 614 in layer N+1,632 have a larger image size (e.g., greater height and width and therefore more samples) than images 615, 616, 617 and 618 in layer N 631. However, such images may be separated between layer N+1 632 and layer N 631 based on other characteristics. Although only two layers are shown, layer N+1 632 and layer N 631, the set of images can be divided into any number of layers based on associated characteristics. Layer N+1 632 and layer N 631 may also be designated by layer ID. A layer ID is a data element that is associated with an image and indicates that the image is part of the specified layer. Accordingly, each image 611-618 may be associated with a corresponding layer ID to indicate which layer N+1 632 or layer N 631 includes the corresponding image. For example, the layer ID may include a NAL unit header layer identifier (nuh_layer_id), which is a syntactic element indicating the identifier of a layer that includes the NAL unit (eg, that includes slices and/or image parameters in the layer). A layer associated with a lower bitstream quality/size, such as layer N 631, is typically assigned a lower layer ID and is referred to as a lower layer. In addition, a layer associated with higher bitstream quality/size, such as the N+1 632 layer, is typically assigned a top layer ID and is referred to as the top layer.

Изображения 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 и т. д.Images 611-618 in different layers 631-632 are configured to be displayed in an alternative embodiment. Thus, images in different layers 631-632 can share temporary ID 622 as long as the images are included in the same AU. Temporal ID 622 is a data element that indicates that the data corresponds to a temporal location in the video sequence. An AU is a collection of NAL units that interact with each other according to a specific classification rule and are assigned to one specific output time. For example, the AU may include one or more images in different layers, such as image 611 and image 615, when such images are associated with the same time ID 622. As a specific example, a decoder may decode and display image 615 at the current time display if a smaller image size is required, or the decoder may decode and display image 611 at the current display time if a larger image size is required. Thus, images 611-614 in the top layer N+1 632 contain substantially the same image data as the corresponding images 615-618 in the bottom layer N 631 (despite the difference in image size). In particular, image 611 contains substantially the same image data as image 615, and image 612 contains substantially the same image data as image 616, etc.

Изображения 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 531 в качестве ссылки, где одно изображение используется для однонаправленного межкадрового предсказания, и/или два изображения ссылаются на двунаправленное межкадровое предсказание. Когда изображение используется в качестве опорного изображения для другого изображения в одном и том же слое при выполнении межкадрового предсказания 623, это изображение может упоминаться как опорное изображение. Например, изображение 612 может быть опорным изображением, используемым для кодирования изображения 613 в соответствии с межкадровым предсказанием 623. Межкадровое предсказание 623 также может упоминаться как внутрислойное предсказание в многослойном контексте. Таким образом, межкадровое предсказание 623 представляет собой механизм кодирования выборок текущего изображения путем ссылки на указанные выборки в опорном изображении, которое отличается от текущего изображения, где опорное изображение и текущее изображение находятся в одном слое.Images 611-618 may be encoded by reference to other images 611-618 in the same layer N 631 or N+1 632. Encoding an image by reference to another image in the same layer results in inter-frame prediction 623. Inter-frame prediction 623 is shown by solid arrows. For example, picture 613 may be encoded using inter-picture prediction 623 using one or two pictures 611, 612 and/or 614 in the N+1 layer 632 as a reference, where one picture is used for unidirectional inter-picture prediction and/or two pictures are referenced for bidirectional interframe prediction. In addition, picture 617 may be encoded using inter-picture prediction 623 using one or two pictures 615, 616 and/or 618 in layer N 531 as a reference, where one picture is used for unidirectional inter-picture prediction and/or two pictures are referenced. bidirectional interframe prediction. When an image is used as a reference image for another image in the same layer when performing inter-frame prediction 623, that image may be referred to as a reference image. For example, picture 612 may be a reference picture used to encode picture 613 in accordance with inter-picture prediction 623. Inter-picture prediction 623 may also be referred to as intra-layer prediction in a multi-layer context. Thus, inter-picture prediction 623 is a mechanism for encoding samples of a current picture by referring to said samples in a reference picture that is different from the current picture, where the reference picture and the current picture are in the same layer.

Изображения 611-618 также могут быть закодированы путем ссылки на другие изображения 611-618 в других слоях. Этот процесс известен как межслойное предсказание 621 и показан пунктирными стрелками. Межслойное предсказание 621 представляет собой механизм кодирования выборок текущего изображения путем ссылки на указанные выборки в опорном изображении, где текущее изображение и опорное изображение находятся в разных слоях и, следовательно, имеют разные ID слоя. Например, изображение в нижнем слое N 631 может использоваться в качестве опорного изображения для кодирования соответствующего изображения в верхнем слое N+1 632. В качестве конкретного примера изображение 611 может быть закодировано путем ссылки на изображение 615 в соответствии с межслойным предсказанием 621. В таком случае изображение 615 используется как межслойное опорное изображение. Межслойное опорное изображение является опорным изображением, используемым для межслойного предсказания 621. В большинстве случаев межслойное предсказание 621 ограничено таким образом, чтобы текущее изображение, такое как изображение 611, могло использовать только межслойные опорные изображения, которые включены в одну и ту же AU и находятся в нижнем слое, таком как изображение 615. Когда доступно несколько слоев (например, более двух), межслойное предсказание 621 может кодировать/декодировать текущее изображение на основе нескольких межслойных опорных изображениях на белее низких уровнях, чем текущее изображение.Images 611-618 may also be encoded by referencing other images 611-618 in other layers. This process is known as interlayer prediction 621 and is shown by the dotted arrows. Inter-layer prediction 621 is a mechanism for encoding samples of a current image by reference to said samples in a reference image, where the current image and the reference image are in different layers and therefore have different layer IDs. For example, an image in the lower layer N+1 631 may be used as a reference image to encode a corresponding image in the upper layer N+1 632. As a specific example, the image 611 may be encoded by reference to the image 615 in accordance with the inter-layer prediction 621. In such a case, image 615 is used as an interlayer reference image. An inter-layer reference picture is a reference picture used for inter-layer prediction 621. In most cases, inter-layer prediction 621 is limited such that the current picture, such as picture 611, can only use inter-layer reference pictures that are included in the same AU and are in lower layer, such as image 615. When multiple layers are available (eg, more than two), inter-layer prediction 621 may encode/decode the current image based on multiple inter-layer reference images at lower levels than the current image.

Видеокодер может использовать многослойную видеопоследовательность 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. Таким образом, низкая эффективность кодирования внутрикадрового предсказания может быть ограничена изображениями наименьшего/самого низкого качества и, следовательно, ограничена кодированием наименьшего количества видеоданных. Изображения, используемые в качестве опорных изображений и/или межслойных опорных изображений, могут быть указаны в записях списка(ов) опорных изображений, содержащегося(ихся) в структуре списка опорных изображений.The video encoder may use the multi-layer video sequence 600 to encode images 611-618 using a variety of different combinations and/or permutations of inter-frame prediction 623 and inter-layer prediction 621. For example, image 615 may be encoded according to intra-frame prediction. Images 616-618 may then be encoded according to inter-frame prediction 623 using image 615 as a reference image. In addition, image 611 may be encoded in accordance with inter-layer prediction 621 using image 615 as an inter-layer reference image. Pictures 612-614 may then be encoded according to inter-frame prediction 623 using picture 611 as a reference picture. Thus, the reference image can serve as either a single-layer reference image or an inter-layer reference image for various encoding mechanisms. By encoding N+1632 top layer images based on N631 bottom layer images, the N+1632 top layer can avoid using intra-frame prediction, which has much lower coding efficiency than inter-frame prediction 623 and inter-layer prediction 621. Thus, low efficiency Intra prediction coding may be limited to the smallest/lowest quality images and therefore limited to encoding the least amount of video data. Pictures used as reference pictures and/or inter-layer reference pictures may be specified in reference picture list(s) entries contained in the reference picture list structure.

Для выполнения таких операций такие слои, как слой N 631 и слой N+1 632, могут быть включены в один или более OLS 625 и 626. В частности, изображения 611-618 кодируются как слои 631-632 в битовый поток 600, и затем каждый слой 631-632 изображений назначается одному или более OLS 625 и 626. Затем можно выбрать OLS 625 и/или 626, и соответствующие слои 631 и/или 632 можно передать в декодер, в зависимости от возможностей декодера и/или сетевых условий. OLS 625 представляет собой набор слоев, для которого один или более слоев указаны в качестве слоя вывода. Слой вывода представляет собой слой, предназначенный для вывода (например, на экран дисплея). Например, слой N 631 может быть включен исключительно для поддержки межслойного предсказания 621 и может никогда не выводиться. В таком случае слой N+1 632 декодируется на основе слоя N 631 и выводится. В таком случае OLS 625 включает в себя слой N+1 632 в качестве слоя вывода. Когда OLS содержит только слой вывода, OLS упоминается как 0-ой OLS 626. 0-ой OLS 626 представляет собой OLS, который содержит только нижний слой (слой с идентификатором нижнего слоя) и, следовательно, содержит только слой вывода. В других случаях OLS 625 может содержать множество слоев в различных комбинациях. Например, слой вывода в OLS 625 может быть закодирован в соответствии с межслойным предсказанием 621 на основе одного, двух или многих нижних слоев. Кроме того, OLS 625 может содержать более одного слоя вывода. Таким образом, OLS 625 может содержать один или более слоев вывода и любые вспомогательные слои, необходимые для восстановления слоев вывода. Хотя показаны только два OLS 625 и 626, многослойная видеопоследовательность 600 может быть закодирована с использованием множества различных OLS 625 и/или 626, каждая из которых использует различные комбинации слоев. Каждый из OLS 625 и 626 ассоциируется с индексом OLS 629, который является индексом, однозначно идентифицирующим соответствующие OLS 625 и 626.To perform such operations, layers such as layer N 631 and layer N+1 632 may be included in one or more OLS 625 and 626. Specifically, images 611-618 are encoded as layers 631-632 into bitstream 600, and then each image layer 631-632 is assigned to one or more OLS 625 and 626. The OLS 625 and/or 626 may then be selected, and the corresponding layers 631 and/or 632 may be passed to the decoder, depending on the capabilities of the decoder and/or network conditions. OLS 625 is a layer set for which one or more layers are specified as the output layer. The output layer is a layer intended for output (for example, to a display screen). For example, layer N 631 may be included solely to support inter-layer prediction 621 and may never be output. In such a case, layer N+1 632 is decoded based on layer N 631 and output. In such a case, OLS 625 includes layer N+1 632 as an output layer. When the OLS contains only the output layer, the OLS is referred to as the 0th OLS 626. The 0th OLS 626 is an OLS that contains only the bottom layer (the layer with the bottom layer ID) and therefore contains only the output layer. In other cases, OLS 625 may contain multiple layers in various combinations. For example, the output layer in OLS 625 may be encoded in accordance with interlayer prediction 621 based on one, two, or many lower layers. In addition, OLS 625 can contain more than one output layer. Thus, OLS 625 may contain one or more output layers and any auxiliary layers needed to reconstruct the output layers. Although only two OLSs 625 and 626 are shown, the multilayer video sequence 600 may be encoded using a variety of different OLSs 625 and/or 626, each using different combinations of layers. OLS 625 and 626 are each associated with an OLS index 629, which is an index that uniquely identifies the corresponding OLS 625 and 626.

Проверка многослойной видеопоследовательности 600 на соответствие стандартам в HRD 500 может усложниться в зависимости от количества слоев 631-632 и OLS 625 и 626. HRD 500 может разделить многослойную видеопоследовательность 600 на последовательность рабочих точек 627 для тестирования. OLS 625 и/или 626 идентифицируется с помощью индекса 629 OLS. Рабочая точка 627 является временным поднаборм OLS 625/626. Рабочая точка 627 может быть идентифицирована как по индексу 629 OLS соответствующей OLS 625/626, так и по наибольшему временному ID 622. В качестве конкретного примера первая рабочая точка 627 может включать в себя все изображения в первом OLS 625 от временного ID, равного нулю, до временного ID, равного двумстам, вторая рабочая точка 627 может включать в себя все изображения в первом OLS 625 от временного ID, равного двести одному, до временного ID, равного четыремстам, и т. д. В таком случае первая рабочая точка 627 описывается как индекс 629 OLS первого OLS 625 и временной ID, равный двумстам. Кроме того, вторая рабочая точка 627 описывается индексом 629 OLS первой OLS 625 и временным ID, равным четыремстам. Рабочая точка 627, выбранная для тестирования в указанный момент времени, упоминается как тестируемая OP (targetOp). Таким образом, targetOp представляет собой рабочую точку 627, которая выбирается для тестирования на соответствие в HRD 500.Testing the multi-layer video sequence 600 against standards in the HRD 500 can become more complex depending on the number of layers 631-632 and the OLS 625 and 626. The HRD 500 may split the multi-layer video sequence 600 into a sequence of operating points 627 for testing. OLS 625 and/or 626 are identified by OLS index 629. Operating point 627 is a temporary subset of OLS 625/626. The operating point 627 may be identified both by the OLS index 629 of the corresponding OLS 625/626 and by the highest temporary ID 622. As a specific example, the first operating point 627 may include all images in the first OLS 625 from the temporary ID of zero, to a temporary ID of two hundred, the second operating point 627 may include all of the images in the first OLS 625 from the temporary ID of two hundred and one to the temporary ID of four hundred, etc. In such a case, the first operating point 627 is described as the OLS index 629 of the first OLS 625 and a temporary ID of two hundred. In addition, the second operating point 627 is described by the OLS index 629 of the first OLS 625 and a temporary ID of four hundred. The operating point 627 selected for testing at a specified point in time is referred to as the OP under test (targetOp). Thus, targetOp is the operating point 627 that is selected for compliance testing in HRD 500.

На фиг. 7 показано схематичное представление, иллюстрирующее примерную многослойную видеопоследовательность 700, выполненную с возможностью временного масштабирования. Многослойная видеопоследовательность 700 может кодироваться кодером, таким как система 200 кодека и/или кодер 300, и декодироваться декодером, таким как система 200 кодека и/или декодер 400, например, согласно способу 100. Кроме того, многослойная видеопоследовательность 700 может быть проверена на соответствие стандарту с помощью HRD, такого как HRD 500. Многослойная видеопоследовательность 700 включена с той целью, чтобы проиллюстрировать еще одно примерное приложение для слоев в кодированной видеопоследовательности. Например, многослойная видеопоследовательность 700 может использоваться как отдельный вариант осуществления или может сочетаться со способами, описанными в отношении многослойной видеопоследовательности 600.In fig. 7 is a schematic diagram illustrating an exemplary multi-layer video sequence 700 capable of time scaling. The multi-layer video sequence 700 may be encoded by an encoder, such as a codec system 200 and/or an encoder 300, and decoded by a decoder, such as a codec system 200 and/or a decoder 400, for example, according to method 100. In addition, the multi-layer video sequence 700 may be checked for compliance standard using an HRD such as HRD 500. Multi-layer video sequence 700 is included to illustrate yet another exemplary application for layers in an encoded video sequence. For example, multi-layer video sequence 700 may be used as a stand-alone embodiment or may be combined with methods described with respect to multi-layer video sequence 600.

Многослойная видеопоследовательность 700 включает в себя подслои 710, 720 и 730. Подслой представляет собой масштабируемый по времени слой масштабируемого по времени битового потока, который включает в себя единицы NAL VCL (например, изображения) с конкретным значением временного идентификатора, а также ассоциированные единицы NAL без VCL (например, вспомогательные параметры). Например, слой, такой как слой N 631 и/или слой N+1 632, может быть дополнительно разделен на подслои 710, 720 и 730 для поддержки временной масштабируемости. Подслой 710 может называться базовым слоем, и подслои 720 и 730 могут называться слоями улучшения. Как показано, подслой 710 включает в себя изображения 711 с первой частотой кадров, такой как тридцать кадров в секунду. Подслой 710 является базовым слоем, так как подслой 710 включает в себя базовую/самую низкую частоту кадров. Подслой 720 содержит изображения 721, которые смещены по времени относительно изображений 711 подслоя 710. В результате подслой 710 и подслой 720 могут быть объединены, что приводит к частоте кадров, которая в совокупности выше, чем частота кадров только подслоя 710. Например, подслой 710 и 720 может иметь общую частоту кадров, равную шестидесяти кадрам в секунду. Соответственно, подслой 720 повышает частоту кадров подслоя 710. Кроме того, подслой 730 содержит изображения 731, которые также смещены по времени относительно изображений 721 и 711 подслоев 720 и 710. Таким образом, подслой 730 может быть объединен с подслоями 720 и 710 для дальнейшего улучшения подслоя 710. Например, подслои 710, 720 и 730 могут иметь общую частоту кадров девяносто кадров в секунду.Multilayer video sequence 700 includes sublayers 710, 720, and 730. A sublayer is a time-scaled time-scaled bitstream layer that includes VCL NAL units (e.g., images) with a specific temporal identifier value, as well as associated NAL units without VCL (for example, auxiliary parameters). For example, a layer such as layer N 631 and/or layer N+1 632 may be further divided into sublayers 710, 720 and 730 to support temporal scalability. Sublayer 710 may be referred to as a base layer, and sublayers 720 and 730 may be referred to as enhancement layers. As shown, sublayer 710 includes images 711 at a first frame rate, such as thirty frames per second. Sublayer 710 is a base layer, since sublayer 710 includes the base/lowest frame rate. Sublayer 720 contains images 721 that are offset in time from images 711 of sublayer 710. As a result, sublayer 710 and sublayer 720 can be combined, resulting in a frame rate that is collectively higher than the frame rate of sublayer 710 alone. For example, sublayer 710 and 720 can have a total frame rate of sixty frames per second. Accordingly, sublayer 720 improves the frame rate of sublayer 710. In addition, sublayer 730 contains images 731 that are also offset in time from images 721 and 711 of sublayers 720 and 710. Thus, sublayer 730 can be combined with sublayers 720 and 710 to further improve sublayer 710. For example, sublayers 710, 720, and 730 may have a total frame rate of ninety frames per second.

Представление 740 подслоя может быть создано динамически способом путем объединения подслоев 710, 720 и/или 730. Представление 740 подслоя является поднабором битового потока, содержащего единицы NAL конкретного подслоя и нижних подслоев. В показанном примере представление 740 подслоя содержит изображения 741, которые представляют собой объединенные изображения 711, 721 и 731 подслоев 710, 720 и 730. Соответственно, многослойная видеопоследовательность 700 может быть масштабирована во времени до требуемой частоты кадров путем выбора представления 740 подслоя, которое включает в себя желаемый набор подслоев 710, 720 и/или 730. Представление 740 подслоя может быть создано путем использования OLS, который включает в себя подслой 710, 720 и/или 730 в качестве слоев. В таком случае представление 740 подслоя выбирается в качестве слоя вывода. Таким образом, временная масштабируемость является одним из нескольких механизмов, которые могут быть реализованы с использованием многослойных механизмов.Sublayer representation 740 may be created dynamically by combining sublayers 710, 720 and/or 730. Sublayer representation 740 is a subset of a bitstream containing NAL units of a particular sublayer and lower sublayers. In the example shown, the sublayer view 740 contains images 741 that are the combined images 711, 721 and 731 of the sublayers 710, 720 and 730. Accordingly, the multi-layer video sequence 700 can be time scaled to the desired frame rate by selecting a sublayer view 740 that includes itself a desired set of sublayers 710, 720 and/or 730. Sublayer representation 740 can be created by using an OLS that includes sublayer 710, 720 and/or 730 as layers. In such a case, the sublayer representation 740 is selected as the output layer. Thus, temporal scalability is one of several mechanisms that can be implemented using multilayer mechanisms.

На фиг. 8 показано схематичное представление, иллюстрирующее пример битового потока 800. Например, битовый поток 800 может быть выработан системой 200 кодека и/или кодером 300 для декодирования системой 200 кодека и/или декодером 400 согласно способу 100. Кроме того, битовый поток 800 может включать в себя многослойную видеопоследовательность 600 и/или 700. В дополнение к этому, битовый поток 800 может включать в себя различные параметры для управления работой HRD, такого как HRD 500. На основе таких параметров HRD может проверять битовый поток 800 на соответствие стандартам перед передачей в декодер для декодирования.In fig. 8 is a schematic diagram illustrating an example of a bitstream 800. For example, the bitstream 800 may be generated by the codec system 200 and/or the encoder 300 for decoding by the codec system 200 and/or the decoder 400 according to the method 100. In addition, the bitstream 800 may include itself a multilayer video sequence 600 and/or 700. In addition, the bitstream 800 may include various parameters to control the operation of an HRD, such as the HRD 500. Based on such parameters, the HRD may check the bitstream 800 for compliance with standards before transmission to the decoder for decoding.

Битовый поток 800 включает в себя VPS 811, один или более SPS 813, множество наборов параметров изображения (PPS) 815, множество заголовков 817 слайсов, данные 820 изображения и SEI-сообщения 819. 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 может указывать инструменты кодирования, доступные для слайсов в соответствующих изображениях, параметры квантования, смещения и т. д.Bitstream 800 includes a VPS 811, one or more SPS 813, a plurality of picture parameter sets (PPS) 815, a plurality of slice headers 817, image data 820, and SEI messages 819. The VPS 811 contains data related to the entire bitstream 800. For example, VPS 811 may contain OLS data-related layers and/or sublayers used in bitstream 800. SPS 813 contains sequence data common to all images in the encoded video sequence contained in bitstream 800. For example, each layer may contain one or more encoded video sequences, and each encoded video sequence may reference SPS 813 for corresponding parameters. Parameters in the SPS 813 may include image size, bit depth, encoding tool parameters, bit rate limits, etc. It should be noted that while each sequence is specific to an SPS 813, in some examples one SPS 813 may contain data for multiple sequences. PPS 815 contains parameters that apply to the entire image. Therefore, each image in a video sequence may be assigned to a PPS 815. It should be noted that although each image is assigned to a PPS 815, in some examples, a single PPS 815 may contain data for multiple images. For example, several similar images may be encoded according to similar parameters. In such a case, one PPS 815 may contain data for such similar images. PPS 815 can specify the encoding tools available for slices in the corresponding images, quantization parameters, offsets, etc.

Заголовок 817 слайса содержит параметры, которые специфичны для каждого слайса в изображении. Следовательно, может быть один заголовок 817 слайса в расчете на слайс в видеопоследовательности. Заголовок 817 слайса может содержать информацию о типе слайса, POC, списки опорных изображений, весовые коэффициенты предсказания, точки ввода тайла, параметры деблокирования и т. д. Следует отметить, что в некоторых примерах битовый поток 800 может также включать в себя заголовок изображения, который представляет собой синтаксическую структуру, содержащую параметры, применимые ко всем слайсам в одном изображении. По этой причине заголовок изображения и заголовок 817 слайса могут использоваться взаимозаменяемо в некоторых контекстах. Например, некоторые параметры можно перемещать между заголовком 817 слайса и заголовком изображения в зависимости от того, являются ли такие параметры общими для всех слайсов в изображении.The slice header 817 contains parameters that are specific to each slice in the image. Therefore, there may be one slice header 817 per slice in a video sequence. The slice header 817 may contain information about the slice type, POC, reference picture lists, prediction weights, tile insertion points, release parameters, etc. It should be noted that in some examples, the bitstream 800 may also include a picture header that is a syntactic structure containing parameters that apply to all slices in a single image. For this reason, the image header and the slice header 817 may be used interchangeably in some contexts. For example, certain parameters may be moved between the slice header 817 and the image header depending on whether such parameters are common to all slices in the image.

Данные 820 изображения содержат видеоданные, кодированные в соответствии с межкадровым предсказанием и/или внутрикадровым предсказанием, а также соответствующие преобразованные и квантованные остаточные данные. Например, данные 820 изображения могут включать в себя AU 821, DU 822 и/или изображения 823. AU 821 представляет собой набор единиц NAL, которые взаимодействуют друг с другом в соответствии с заданным правилом классификации и относятся к одному конкретному времени вывода. DU 822 представляет собой AU или поднабор AU и ассоциированные единицы NAL без VCL. Изображение 823 представляет собой массив выборок яркости и/или массив выборок цветности, которые создают кадр или его поле. Проще говоря, AU 821 содержит различные видеоданные, которые могут отображаться в указанный момент времени в видеопоследовательности, а также вспомогательные синтаксические данные. Следовательно, AU 821 может содержать одно изображение 823 в однослойном битовом потоке или множество изображений из множества слоев, каждое из которых ассоциируется с одним и тем же моментом времени в многослойном битовом потоке. Между тем, изображение 823 представляет собой кодированное изображение, которое может быть выведено для отображения или использовано для поддержки кодирования другого изображения(й) 823 для вывода. DU 822 может содержать одно или более изображений 823 и любые поддерживающие синтаксические данные, необходимые для декодирования. Например, DU 822 и AU 821 могут использоваться взаимозаменяемо в простых битовых потоках (например, когда AU содержит одно изображение). Однако в более сложных многослойных битовых потоках DU 822 может содержать только часть видеоданных из AU 821. Например, AU 821 может содержать изображения 823 в нескольких слоях и/или подслоях, где некоторые из изображений 823 ассоциированы с разными OLS. В таком случае DU 822 может содержать изображение(я) 823 только из определенного OLS и/или определенного слоя/подслоя.The image data 820 includes video data encoded in accordance with inter-frame prediction and/or intra-frame prediction, as well as corresponding transformed and quantized residual data. For example, image data 820 may include AU 821, DU 822, and/or images 823. AU 821 is a set of NAL units that interact with each other according to a given classification rule and are associated with one specific output time. DU 822 is an AU or a subset of AUs and associated NAL units without VCL. Image 823 is an array of luma samples and/or an array of chroma samples that create a frame or field thereof. Simply put, AU 821 contains various video data that can be displayed at a specified point in time in a video sequence, as well as auxiliary syntax data. Therefore, AU 821 may contain a single image 823 in a single-layer bitstream or multiple images from multiple layers, each associated with the same point in time in a multi-layer bitstream. Meanwhile, image 823 is an encoded image that may be output for display or used to support the encoding of other image(s) 823 for output. The DU 822 may contain one or more pictures 823 and any supporting syntax data needed for decoding. For example, DU 822 and AU 821 may be used interchangeably in simple bitstreams (eg, when the AU contains a single image). However, in more complex multilayer bitstreams, DU 822 may contain only a portion of the video data from AU 821. For example, AU 821 may contain images 823 in multiple layers and/or sublayers, where some of the images 823 are associated with different OLSs. In such a case, DU 822 may contain image(s) 823 only from a specific OLS and/or a specific layer/sublayer.

Изображение 823 содержит один или более слайсов 825. Слайс 825 может быть определен как целое число полных слайсов или целое число последовательных полных строк единицы дерева кодирования (CTU) (например, в пределах тайла) изображения 823, где тайлы или строки CTU содержатся исключительно в одной единице 829 NAL. Следовательно, слайс 825 также содержится в одних единицах 829 NAL. Слайсы 825 дополнительно делятся на CTU и/или блоки дерева кодирования (CTB). CTU – это группа выборок заданного размера, которые могут быть разделены с использованием дерева кодирования. CTB является поднабором CTU и содержит компоненты яркости или компоненты цветности CTU. CTU/CTB далее делятся на блоки кодирования на основе деревьев кодирования. Затем блоки кодирования можно кодировать/декодировать в соответствии с механизмами предсказания.Image 823 contains one or more slices 825. Slice 825 may be defined as an integer number of full slices or an integer number of consecutive full coding tree unit (CTU) lines (e.g., within a tile) of image 823, where the tiles or CTU lines are contained exclusively in one unit 829 NAL. Therefore, slice 825 is also contained within the same NAL units 829. Slices 825 are further divided into CTUs and/or coding tree blocks (CTBs). A CTU is a group of samples of a given size that can be divided using a coding tree. CTB is a subset of CTU and contains the luma components or chrominance components of the CTU. CTU/CTB are further divided into coding blocks based on coding trees. The encoding blocks can then be encoded/decoded in accordance with the prediction mechanisms.

Битовый поток 800 представляет собой последовательность единиц 829 NAL. Единица 829 NAL представляет собой контейнер для видеоданных и/или поддерживающего синтаксиса. Единица 829 NAL может быть единицей NAL VCL или единицей NAL без VCL. Единица NAL VCL представляет собой единицу 829 NAL, кодированную для содержания видеоданных, таких как кодированный слайс 825 и ассоциированный с ним заголовок 817 слайса. Единица NAL без VCL представляет собой единицу 829 NAL, которая содержит данные, не относящиеся к видео, такие как синтаксис и/или параметры, которые поддерживают декодирование видеоданных, выполнение проверки на соответствие или другие операции. Например, единица NAL без VCL может содержать VPS 811, SPS 813, PPS 815, сообщение 819 SEI или другой поддерживаемый синтаксис.Bit stream 800 is a sequence of NAL ones 829. A NAL unit 829 is a container for video data and/or supporting syntax. The NAL unit 829 may be a VCL NAL unit or a non-VCL NAL unit. A VCL NAL unit is a NAL unit 829 encoded to contain video data, such as a coded slice 825 and an associated slice header 817. A non-VCL NAL unit is a NAL unit 829 that contains non-video data, such as syntax and/or parameters that support decoding video data, performing compliance checks, or other operations. For example, a NAL unit without a VCL may contain VPS 811, SPS 813, PPS 815, SEI message 819, or other supported syntax.

Сообщение 819 SEI представляет собой синтаксическую структуру с заданной семантикой, которая передает информацию, которая не требуется процессу декодирования для определения значений выборок в декодированных изображениях. Например, SEI-сообщения могут содержать данные для поддержки процессов HRD или другие вспомогательные данные, которые не имеют прямого отношения к декодированию битового потока 800 в декодере. Сообщение 819 SEI может включать в себя масштабируемые вкладывающие SEI-сообщения и/или немасштабируемые вложенные SEI-сообщения. Масштабируемое вложенное SEI-сообщение представляет собой сообщение, содержащее множество SEI-сообщений, которые соответствуют одному или более OLS или одному или более слоям. Немасштабируемое вложенное SEI-сообщение представляет собой сообщение, которое не является вложенным и, следовательно, содержит одно SEI-сообщение. SEI-сообщения 819 могут включать в себя SEI-сообщение BP, которое содержит параметры HRD для инициирования HRD с целью управления CPB. Сообщения 819 SEI могут также включать в себя SEI-сообщение PT, которое содержит параметры HRD для управления информацией доставки для AU 821 в CPB и/или DPB. Сообщения 819 SEI могут также включать в себя SEI-сообщение DUI, которое содержит параметры HRD для управления информацией доставки для DU 822 в CPB и/или DPB.SEI message 819 is a syntactic structure with defined semantics that conveys information that is not required by the decoding process to determine sample values in decoded images. For example, SEI messages may contain data to support HRD processes or other ancillary data that is not directly related to decoding the bitstream 800 at the decoder. The SEI message 819 may include scalable nested SEI messages and/or non-scalable nested SEI messages. A scalable nested SEI message is a message containing a plurality of SEI messages that correspond to one or more OLSs or one or more layers. A non-scalable nested SEI message is a message that is not nested and therefore contains a single SEI message. SEI messages 819 may include a BP SEI message that contains HRD parameters for initiating HRD for the purpose of CPB control. The SEI messages 819 may also include a PT SEI message that contains HRD parameters for managing delivery information for the AU 821 in the CPB and/or DPB. The SEI messages 819 may also include a DUI SEI message that contains HRD parameters for managing delivery information for the DU 822 in the CPB and/or DPB.

Битовый поток 800 включает в себя целое число (i) наборов параметров 833 HRD, которые представляют собой синтаксические элементы, которые инициируют и/или определяют условия работы HRD, такого как HRD 500. В некоторых примерах общие параметры HRD (синтаксическая структура general_hrd_parameters) может содержать параметры 833 HRD, которые применяются ко всем OLS, заданным VPS 811. В примере кодер может кодировать видеопоследовательность в слои. Затем кодер может кодировать параметры 833 HRD в битовый поток, чтобы должным образом сконфигурировать HRD для выполнения проверок на соответствие. Параметры 833 HRD также могут указывать декодеру то, что декодер способен декодировать битовый поток в соответствии с графиком доставки. Параметры 833 HRD могут быть включены в VPS 811 и/или SPS 813. Дополнительные параметры, используемые для конфигурирования HRD, также могут быть включены в сообщения 819 SEI.Bitstream 800 includes an integer number(i) of HRD parameter sets 833, which are syntactic elements that initiate and/or define operating conditions of an HRD, such as HRD 500. In some examples, general HRD parameters (general_hrd_parameters syntax structure) may comprise HRD parameters 833 that apply to all OLS defined by the VPS 811. In the example, the encoder may encode the video sequence into layers. The encoder can then encode the HRD parameters 833 into the bitstream to properly configure the HRD to perform compliance checks. The HRD parameters 833 may also indicate to the decoder that the decoder is capable of decoding the bitstream according to the delivery schedule. HRD parameters 833 may be included in VPS 811 and/or SPS 813. Additional parameters used to configure HRD may also be included in SEI messages 819.

Как отмечено выше, видеопоток может включать в себя множество OLS и множество слоев, таких как OLS 625, слой N 631, слой N+1 632, подслой 710, подслой 720 и/или подслой 730. Кроме того, некоторые слои могут быть включены в многочисленные OLS. Таким образом, многослойная видеопоследовательность, такая как многослойная видеопоследовательность 600 и/или 700, может стать довольно сложной. Это может привести к усложнению процесса проверки на соответствие битового потока в HRD. Некоторые системы кодирования видео используют специфичные для слоя параметры 833 HRD для каждого слоя/подслоя. HRD считывает специфичные для слоя параметры 833 HRD из битового потока 800, и затем выполняет тесты на соответствие битового потока для каждого слоя на основе параметров 833 HRD. В некоторых случаях некоторые из различных слоев/подслоев используют одни и те же параметры 833 HRD. Это приводит к кодированию избыточных параметров 833 HRD в битовый поток 800, что снижает эффективность кодирования. Кроме того, этот подход заставляет HRD повторно получать избыточную информацию из битового потока 800, что приводит к тратит впустую память и/или ресурсы процессора в кодере. Кроме того, этот подход заставляет HRD неоднократно получать избыточную информацию из битового потока 800, что в кодере тратятся впустую память и/или ресурсы процессора. Соответственно, избыточные параметры 833 HRD могут тратить впустую ресурсы процессора, памяти и/или сети в кодере и/или декодере.As noted above, the video stream may include multiple OLSs and multiple layers, such as OLS 625, layer N 631, layer N+1 632, sublayer 710, sublayer 720, and/or sublayer 730. In addition, some layers may be included in numerous OLS. Thus, a multi-layer video sequence, such as the multi-layer video sequence 600 and/or 700, can become quite complex. This can make the bitstream consistency check process in the HRD more complex. Some video encoding systems use layer-specific 833 HRD parameters for each layer/sublayer. The HRD reads the layer-specific HRD parameters 833 from the bitstream 800, and then performs bitstream consistency tests for each layer based on the HRD parameters 833. In some cases, some of the different layers/sublayers use the same 833 HRD parameters. This results in redundant HRD parameters 833 being encoded into the bitstream 800, which reduces encoding efficiency. Additionally, this approach causes the HRD to re-fetch redundant information from bitstream 800, which wastes memory and/or processor resources in the encoder. Additionally, this approach causes the HRD to repeatedly obtain redundant information from the bitstream 800, which wastes memory and/or processor resources in the encoder. Accordingly, redundant HRD parameters 833 may waste processor, memory, and/or network resources in the encoder and/or decoder.

Настоящее раскрытие включает в себя механизмы для уменьшения избыточности параметра 833 HRD для видео, в которых используется несколько слоев. Когда параметры 833 HRD являются одинаковыми для всех подслоев в представлении подслоя и/или OLS, кодер может кодировать параметры 833 HRD для верхнего слоя. Кодер также может кодировать sublayer_cpb_params_present_flag 831. Параметр sublayer_cpb_params_present_flag 831 является синтаксическим элементом, который указывает то, включает ли набор параметров 833 HRD (например, для OLS) параметры HRD для заданных подслоев/представлений подслоев. Параметр sublayer_cpb_params_present_flag 831 может быть установлен равным нулю, чтобы указать то, что все нижние слои должны использовать те же параметры HRD, что и верхний слой. Параметр sublayer_cpb_params_present_flag 831 также может быть установлен равным единице, чтобы указать то, что каждый слой включает в себя отдельные (например, разные) параметры 833 HRD. Соответственно, когда sublayer_cpb_params_present_flag 831 установлен равным нулю, можно сделать вывод относительно того, что параметры 833 HRD для нижних слоев равны параметрам HRD 833 для верхнего слоя. Таким образом, параметры 833 HRD для нижних подслоев могут быть исключены из битового потока 800, если они совпадают с параметрами 833 HRD для верхнего слоя, во избежание избыточной сигнализации. Этот механизм позволяет уменьшить размер битового потока 800. Соответственно, этот механизм уменьшает использование процессора, памяти и/или сетевых ресурсов как в кодере, так и в декодере. Кроме того, уменьшение количества параметров 833 HRD позволяет уменьшить использование ресурсов во время процесса HRD в кодере, так как просигнализированный набор параметров 833 HRD может быть считан и использован для полного набора подслоев.The present disclosure includes mechanisms to reduce the redundancy of HRD parameter 833 for videos that use multiple layers. When the HRD parameters 833 are the same for all sublayers in the sublayer and/or OLS representation, the encoder may encode the HRD parameters 833 for the top layer. The encoder may also encode sublayer_cpb_params_present_flag 831. The sublayer_cpb_params_present_flag parameter 831 is a syntax element that indicates whether the HRD parameter set 833 (eg, for OLS) includes HRD parameters for the given sublayers/sublayer views. The parameter sublayer_cpb_params_present_flag 831 can be set to zero to indicate that all underlying layers should use the same HRD parameters as the top layer. The sublayer_cpb_params_present_flag 831 may also be set to one to indicate that each layer includes separate (eg, different) HRD parameters 833 . Accordingly, when sublayer_cpb_params_present_flag 831 is set to zero, it can be concluded that the HRD parameters 833 for the lower layers are equal to the HRD parameters 833 for the upper layer. Thus, HRD parameters 833 for the lower sublayers may be excluded from the bitstream 800 if they match the HRD parameters 833 for the upper layer to avoid redundant signaling. This mechanism allows the size of the bit stream 800 to be reduced. Accordingly, this mechanism reduces the use of processor, memory and/or network resources in both the encoder and decoder. In addition, reducing the number of HRD parameters 833 allows for reduced resource usage during the HRD process in the encoder, since the signaled set of HRD parameters 833 can be read and used for the full set of sublayers.

Верхний слой/подслой – это слой в представлении OLS и/или подслоя, которое имеет самое высокое значение соответствующего ID слоя. Например, VPS 811 может включать в себя hrd_max_tid[ i ] 832. hrd_max_tid[ i ] 832 задает временной ID представления верхнего слоя, для которого параметры 833 HRD содержатся в i-м наборе параметров 833 HRD OLS. Таким образом, HRD может считать sublayer_cpb_params_present_flag 831. Затем HRD может определить то, что параметры 833 HRD применяются к верхнему слою/подслою, как указано параметром hrd_max_tid[ i ] 832 в VPS 811. HRD также может сделать вывод относительно того, что одни и те же параметры 833 HRD применяются ко всем нижним слоям/подслоям с ID меньше, чем hrd_max_tid[ i ] 832.The top layer/sublayer is the layer in the OLS and/or sublayer representation that has the highest value of the corresponding layer ID. For example, VPS 811 may include hrd_max_tid[ i ] 832. hrd_max_tid[ i ] 832 specifies the temporary ID of the top layer view for which the HRD parameters 833 are contained in the i-th HRD OLS parameter set 833. Thus, the HRD may read sublayer_cpb_params_present_flag 831. The HRD may then determine that the HRD parameters 833 apply to the top layer/sublayer as indicated by the hrd_max_tid[ i ] parameter 832 in the VPS 811. The HRD may also infer that the same the same 833 HRD parameters apply to all underlying layers/sublayers with an ID less than hrd_max_tid[ i ] 832.

Вышеупомянутый подход позволяет исключить различные избыточные параметры 833 HRD из битового потока 800 для нижних подслоев. Исключение избыточности может применяться к нескольким параметрам 833 HRD. В конкретном примере параметры 833 HRD могут включать в себя fixed_pic_rate_general_flag 835, sublayer_hrd_parameters 837 и general_vcl_hrd_params_present_flag 839, каждый из которых может быть применен к верхнему подслою, и предполагается, что эти параметры применяются эквивалентным образом к нижним подслоям. Параметр fixed_pic_rate_general_flag 835 представляет собой синтаксический элемент, который определяет то, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода другими параметрами 833 HRD. Например, fixed_pic_rate_general_flag 835 может быть установлен равным единице, чтобы указать то, что такие ограничения применяются или установлены на ноль, чтобы указать то, что такие ограничения не применяются. Параметр sublayer_hrd_parameters 837 представляет собой синтаксическую структуру, которая включает в себя параметры HRD для соответствующего подслоя, как указано ID подслоя. Параметр general_vcl_hrd_params_present_flag 839 представляет собой флаг, который указывает то, присутствуют ли параметры HRD VCL в синтаксической структуре общих параметров HRD. Например, general_vcl_hrd_params_present_flag 839 может быть установлен равным единице, чтобы указать то, что параметры HRD VCL, относящиеся к точке соответствия первого типа, присутствуют в синтаксической структуре общих параметров HRD, или может быть установлен равным нулю, чтобы указать то, что такие параметры HRD VCL отсутствуют (например, используется точка соответствия второго типа).The above approach eliminates various redundant HRD parameters 833 from the bitstream 800 for the lower sublayers. Redundancy elimination can be applied to multiple 833 HRD parameters. In a specific example, the HRD parameters 833 may include fixed_pic_rate_general_flag 835, sublayer_hrd_parameters 837, and general_vcl_hrd_params_present_flag 839, each of which may be applied to the top sublayer, and it is assumed that these parameters are applied in an equivalent manner to the lower sublayers. The fixed_pic_rate_general_flag 835 parameter is a syntax element that determines whether the temporal distance between the HRD output times of successive pictures in output order is limited by other HRD parameters 833 . For example, fixed_pic_rate_general_flag 835 may be set to one to indicate that such restrictions apply or set to zero to indicate that such restrictions do not apply. The sublayer_hrd_parameters 837 parameter is a syntactic structure that includes the HRD parameters for the corresponding sublayer, as indicated by the sublayer ID. The general_vcl_hrd_params_present_flag parameter 839 is a flag that indicates whether VCL HRD parameters are present in the HRD general parameters syntactic structure. For example, general_vcl_hrd_params_present_flag 839 may be set equal to one to indicate that the HRD VCL parameters related to a match point of the first type are present in the syntactic structure of the general HRD parameters, or may be set to zero to indicate that such HRD VCL parameters are missing (for example, a match point of the second type is used).

Предыдущая информация будет теперь более подробно описана ниже. Многослойное кодирование видео также называют масштабируемым кодированием видео или кодированием видео с возможностью масштабирования. Масштабируемость при кодировании видео может поддерживаться с помощью способов многослойного кодирования. Многослойный битовый поток содержит базовый слой (BL) и один или более слоев расширения (EL). Пример масштабируемости включает в себя пространственную масштабируемость, масштабируемость качества/отношения сигнал/шум (SNR), многовидовая масштабируемость, масштабируемость частоты кадров и т. д. Когда используется способ многослойного кодирования, изображение или его часть могут быть закодированы без использования опорного изображения (внутрикадрового предсказания) может быть закодировано путем ссылки на опорное изображение, которое находится в одном и том же слое (межкадровое предсказание), и/или может быть закодировано путем ссылки на опорное изображение, которое находится в другом(их) слое(ях) (межслойное предсказание). Опорное изображение, используемое для межслойного предсказания текущего изображения, называется межслойным опорным изображением (ILRP). На фиг. 6 показан пример многослойного кодирования для пространственной масштабируемости, в котором изображения в разных слоях имеют разное разрешение.The previous information will now be described in more detail below. Multilayer video encoding is also called scalable video encoding or scalable video encoding. Scalability in video encoding can be supported using multi-layer encoding techniques. The multilayer bitstream contains a base layer (BL) and one or more enhancement layers (EL). An example of scalability includes spatial scalability, quality/signal-to-noise ratio (SNR) scalability, multi-view scalability, frame rate scalability, etc. When a multi-layer encoding method is used, an image or a portion thereof can be encoded without using a reference image (intra-frame prediction ) may be encoded by reference to a reference image that is in the same layer (inter-picture prediction), and/or may be encoded by reference to a reference image that is in different layer(s) (inter-layer prediction) . The reference image used for inter-layer prediction of the current image is called inter-layer reference picture (ILRP). In fig. Figure 6 shows an example of multi-layer coding for spatial scalability, in which images in different layers have different resolutions.

Некоторые семейства кодирования видео обеспечивают поддержку масштабируемости в отдельном(ых) профиле(ях) из профиля(ей) для однослойного кодирования. Масштабируемое кодирование видео (SVC) – это масштабируемое расширение усовершенствованного кодирования видео (AVC), которое обеспечивает поддержку для пространственно-временной масштабируемости и масштабируемости качества. Для SVC в каждом макроблоке (MB) в изображениях EL сигнализируется флаг для указания того, прогнозируется ли MB EL с использованием совмещенного блока из нижнего слоя. Предсказание из совмещенного блока может включать в себя текстуру, векторы движения и/или режимы кодирования. Реализации SVC не могут напрямую повторно использовать немодифицированные реализации AVC в своей конструкции. Синтаксис макроблока EL SVC и процесс декодирования отличаются от синтаксиса AVC и процесса декодирования.Some video encoding families provide scalability support in a separate profile(s) from the profile(s) for single-layer encoding. Scalable Video Coding (SVC) is a scalable extension of Advanced Video Coding (AVC) that provides support for spatio-temporal scalability and quality scalability. For the SVC, a flag is signaled in each macroblock (MB) in the EL pictures to indicate whether the EL MB is predicted using a co-located block from the lower layer. The prediction from the combined block may include texture, motion vectors, and/or encoding modes. SVC implementations cannot directly reuse unmodified AVC implementations in their design. The EL SVC macroblock syntax and decoding process are different from the AVC syntax and decoding process.

Масштабируемое HEVC (SHVC) представляет собой расширение HEVC, которое обеспечивает поддержку для пространственной масштабируемости и масштабируемости качества. Многовидовое HEVC (MV-HEVC) – это расширение HEVC, которое обеспечивает поддержку для многовидовой масштабируемости. 3D HEVC (3D-HEVC) – это расширение HEVC, которое обеспечивает поддержку кодирования 3D-видео, которое является более совершенным и эффективным, чем MV-HEVC. Временная масштабируемость может быть включена как неотъемлемая часть однослойного кодека HEVC. При многослойном расширении HEVC декодированные изображения, используемые для межслойного предсказания, поступают только из одной и той же AU и обрабатываются как долгосрочные опорные изображения (LTRP). Таким изображениям назначаются опорные индексы в списке(ах) опорных изображений вместе с другими временными опорными изображениями в текущем слое. Межслойное предсказание (ILP) достигается на уровне единицы предсказания (PU) путем установки значения опорного индекса для ссылки на межслойное(ые) опорное(ые) изображение(я) в списке(ах) опорных изображений. Пространственная масштабируемость изменяет опорное изображение или его часть, когда ILRP имеет пространственное разрешение, отличное от текущего кодируемого или декодируемого изображения. Передискретизация опорного изображения может быть реализована либо на уровне изображения, либо на уровне блока кодирования.Scalable HEVC (SHVC) is an extension of HEVC that provides support for spatial and quality scalability. Multi-view HEVC (MV-HEVC) is an extension of HEVC that provides support for multi-view scalability. 3D HEVC (3D-HEVC) is an extension of HEVC that provides support for 3D video encoding, which is more advanced and efficient than MV-HEVC. Temporal scalability can be included as an integral part of a single-layer HEVC codec. In HEVC multi-layer extension, the decoded pictures used for inter-layer prediction come only from the same AU and are processed as long-term reference pictures (LTRP). These images are assigned reference indices in the reference image list(s) along with other temporary reference images in the current layer. Inter-layer prediction (ILP) is achieved at the prediction unit (PU) level by setting a reference index value to reference the inter-layer reference image(s) in the reference image list(s). Spatial scalability modifies the reference picture or part of it when the ILRP has a different spatial resolution from the current picture being encoded or decoded. Resampling of the reference image can be implemented either at the image level or at the encoding block level.

VVC также может поддерживать многослойное кодирование видео. Битовый поток VVC может включать в себя несколько слоев. Все слои могут быть независимыми друг от друга. Например, каждый слой может быть закодирован без использования межслойного предсказания. В этом случае слои также называются слоями одновременной передачи. В некоторых случаях некоторые слои кодируются с использованием ILP. Флаг в VPS может указывать то, являются ли слои слоями одновременной передачи, или используют ли некоторые слои ILP. Когда некоторые слои используют ILP, соотношение зависимости слоев между слоями также сигнализируется в VPS. В отличие от SHVC и MV-HEVC, VVC может не задавать OLS. OLS включает в себя заданный набор слоев, где один или более слоев в наборе слоев заданы как слои вывода. Слой вывода – это слой OLS, который осуществляет вывод. В некоторых реализациях VVC для декодирования и вывода может быть выбран только один слой, когда слои являются слоями одновременной передачи. В некоторых реализациях VVC весь битовый поток, включая все слои, указывается для декодирования тогда, когда любой слой использует ILP. Кроме того, определенные слои среди слоев задаются как слои вывода. Слои вывода могут быть указаны как только верхний слой, все слои или верхний слой плюс набор указанных нижних слоев.VVC can also support multi-layer video encoding. The VVC bitstream may include multiple layers. All layers can be independent of each other. For example, each layer can be encoded without using inter-layer prediction. In this case, the layers are also called simulcast layers. In some cases, some layers are encoded using ILP. A flag in the VPS may indicate whether the layers are simulcast layers, or whether some layers use ILP. When some layers use ILP, the layer dependency ratio between layers is also signaled to the VPS. Unlike SHVC and MV-HEVC, VVC may not specify OLS. OLS includes a specified set of layers, where one or more layers in the set of layers are specified as output layers. The output layer is the OLS layer that does the output. In some VVC implementations, only one layer may be selected for decoding and output when the layers are simulcast layers. In some VVC implementations, the entire bitstream, including all layers, is specified for decoding when any layer uses ILP. In addition, certain layers among the layers are set as output layers. Output layers can be specified as the top layer alone, all layers, or the top layer plus a set of specified bottom layers.

Стандарты кодирования видео могут задавать HRD для верификации соответствия битовых потоков с помощью заданных тестов на соответствие HRD. В SHVC и MV-HEVC используются три набора тестов на соответствие битового потока для проверки на соответствие битового потока. Битовый поток упоминается как весь битовый поток и обозначается как fullBitstream. Первый набор тестов на соответствие битового потока предназначен для тестирования на соответствие всего битового потока и соответствующих временных подмножеств. Такие тесты используются независимо от того, существует ли набор слоев, указанный активным VPS, который содержит все значения nuh_layer_id единиц NAL VCL, присутствующих во всем битовом потоке. Соответственно, весь битовый поток всегда проверяется на соответствие, даже если один или более слоев не включены в выходной набор. Второй набор тестов на соответствие битового потока используется для тестирования на соответствие наборов слоев, заданных активным VPS, и ассоциированных временных подмножеств. Для всех этих тестов декодируются и выводятся только изображения базового слоя (например, изображения с nuh_layer_id, равным нулю). Другие изображения игнорируются декодером при запуске процесса декодирования. Третий набор тестов на соответствие битового потока используется для тестирования на соответствие OLS, заданных частью расширения VPS активным VPS и ассоциированными временными поднаборами на основе OLS и разделов битового потока. Раздел битового потока включает в себя один или более слоев OLS многослойного битового потока.Video coding standards may specify HRDs to verify bitstream compliance using specified HRD compliance tests. SHVC and MV-HEVC use three sets of bitstream consistency tests to check the consistency of the bitstream. A bitstream is referred to as the entire bitstream and is denoted as fullBitstream. The first set of bitstream consistency tests is designed to test the consistency of the entire bitstream and the corresponding time subsets. Such tests are used regardless of whether there is a layer set specified by the active VPS that contains all nuh_layer_id values of NAL VCL units present in the entire bitstream. Accordingly, the entire bitstream is always checked for consistency, even if one or more layers are not included in the output set. A second set of bitstream consistency tests is used to test the consistency of the layer sets defined by the active VPS and the associated time subsets. For all these tests, only the base layer images (for example, images with nuh_layer_id equal to zero) are decoded and output. Other images are ignored by the decoder when the decoding process starts. The third set of bitstream compliance tests is used to test the compliance of the OLSs specified by the VPS extension portion of the active VPS and the associated temporary subsets based on the OLS and bitstream partitions. The bitstream section includes one or more OLS layers of the multilayer bitstream.

Предыдущие аспекты содержат некоторые проблемы. Например, первые два набора тестов на соответствие могут применяться к слоям, которые не декодируются и не выводятся. Например, слои, отличные от самого нижнего слоя, могут не декодироваться и не выводится. В реальных приложениях декодер может принимать только те данные, которые нужно декодировать. Таким образом, использование первых двух наборов тестов на соответствие усложняет конструкцию кодека и может привести к потере битов для переноса параметров как на уровне последовательности, так и на уровне изображения, используемых для поддержки тестов на соответствие. Третий набор тестов на соответствие включает в себя разделы битового потока. Такие разделы могут относиться к одному или более слоям OLS многослойного битового потока. HRD можно значительно упростить, если вместо этого всегда проводить тесты на соответствие отдельно для каждого слоя.The previous aspects contain some problems. For example, the first two sets of matching tests may be applied to layers that are not decoded or output. For example, layers other than the bottommost layer may not be decoded and output. In real applications, the decoder can only accept the data that needs to be decoded. Thus, using the first two sets of compliance tests adds complexity to the codec design and may result in wasted bits to carry both the sequence-level and image-level parameters used to support the compliance tests. The third set of conformance tests involves bitstream sections. Such sections may belong to one or more OLS layers of the multilayer bitstream. HRD can be greatly simplified by instead always performing compliance tests separately for each layer.

Сигнализация параметров HRD в слое последовательности может быть сложной. Например, параметры HRD в слое последовательности могут сигнализироваться в нескольких местах, например, как в SPS, так и в VPS. Кроме того, сигнализация параметров HRD в слое последовательности может включать в себя избыточность. Например, информация, которая, как правило, может быть одинаковой для всего битового потока, может повторяться в каждом слое каждого OLS. В дополнение к этому, пример схемы HRD позволяет выбирать разные графики доставки для каждого слоя. Такие графики доставки могут быть выбраны из списка графиков, переданных для каждого слоя для каждой рабочей точки, где рабочей точкой является OLS или временной поднабор OLS. Такая система является сложной. Кроме того, примерная схема HRD позволяет проассоциировать неполные AU с SEI-сообщениями периода буферизации. Неполная AU – это AU, которая не имеет изображений для всех слоев, присутствующих в CVS. Однако инициирование HRD в такой AU может быть проблематичным. Например, HRD может быть неправильно инициирован для слоев с единицами доступа слоя, которые отсутствуют в неполной AU. В дополнение к этому, процесс демультиплексирования для получения битового потока слоя может недостаточно эффективно удалять вложенные SEI-сообщения, которые не относятся к целевому слою. Битовый поток слоя возникает тогда, когда раздел битового потока содержит только один слой. Кроме того, для всего битового потока может быть заданы применяемый OLS немасштабируемого вложенного периода буферизации, таймирование изображения и SEI-сообщения информации единицы декодирования. Однако вместо этого к 0-му OLS должен применяться немасштабируемый вложенный период буферизации.Signaling HRD parameters in the sequence layer can be complex. For example, HRD parameters in the sequence layer may be signaled in multiple places, for example in both the SPS and the VPS. In addition, signaling of HRD parameters in the sequence layer may include redundancy. For example, information that would normally be the same throughout the entire bitstream may be repeated in each layer of each OLS. In addition to this, the example HRD design allows you to select different delivery schedules for each layer. Such delivery schedules may be selected from a list of schedules transmitted for each layer for each operating point, where the operating point is an OLS or a temporal subset of the OLS. Such a system is complex. In addition, the exemplary HRD scheme allows incomplete AUs to be associated with buffer period SEI messages. An incomplete AU is an AU that does not have images for all layers present in CVS. However, initiating HRD in such an AU may be problematic. For example, HRD may not be properly initiated for layers with layer access units that are not present in the incomplete AU. In addition, the demultiplexing process to obtain the layer bitstream may not be efficient enough to remove nested SEI messages that do not belong to the target layer. A layer bitstream occurs when a bitstream section contains only one layer. In addition, the OLS applied non-scalable nested buffering period, image timing, and decoding unit information SEI messages can be specified for the entire bitstream. However, a non-scalable nested buffering period must be applied to the 0th OLS instead.

Кроме того, некоторые реализации VVC могут не выводить параметры HDR, когда флаг sub_layer_cpb_params_present_flag равен нулю. Такой вывод позволяет обеспечить надлежащие операции HRD. В дополнение к этому, может потребоваться, чтобы значения bp_max_sub_layers_minus1 и pt_max_sub_layers_minus1 были равны значению sps_max_sub_layers_minus1. Однако SEI-сообщения периода буферизации и таймирования изображения могут быть вложены друг в друга и могут быть применимы к множеству OLS и множеству слоев каждого из множества OLS. В таких контекстах задействованные слои могут относиться к нескольким SPS. Следовательно, у системы могут возникнуть трудности с отслеживанием того, какой SPS является SPS, соответствующим каждому слою. Следовательно, значения этих двух синтаксических элементов должны быть ограничены на основе значения vps_max_sub_layers_minus1. Кроме того, так как разные слои могут иметь разное количество подслоев, значения этих двух синтаксических элементов не всегда могут быть равны конкретному значению во всех SEI-сообщениях периода буферизации и таймирования изображения.Additionally, some VVC implementations may not output HDR parameters when the sub_layer_cpb_params_present_flag flag is zero. This output helps ensure proper HRD operations. In addition, the values of bp_max_sub_layers_minus1 and pt_max_sub_layers_minus1 may be required to be equal to the value of sps_max_sub_layers_minus1. However, the image buffering and timing period SEI messages may be nested and may be applicable to multiple OLSs and multiple layers of each of the multiple OLSs. In such contexts, the layers involved may belong to multiple SPSs. Therefore, the system may have difficulty keeping track of which SPS is the SPS corresponding to each layer. Therefore, the values of these two syntax elements must be limited based on the value of vps_max_sub_layers_minus1. In addition, since different layers may have different numbers of sublayers, the values of these two syntax elements may not always be equal to a particular value in all SEI messages of the image buffering and timing period.

Кроме того, следующая проблема ассоциируется также с конструкцией HRD как в SHVC/MV-HEVC, так и в VVC. Процесс извлечения битового подпотока может не удалять единицы NAL SEI, содержащие вложенные SEI-сообщения, которые не нужны для целевого OLS.In addition, the following problem is also associated with the HRD design in both SHVC/MV-HEVC and VVC. The bitstream extraction process may not remove NAL SEI units containing nested SEI messages that are not needed by the target OLS.

В общем, в настоящем раскрытии описаны подходы для масштабируемых вкладывающих SEI-сообщений для наборов слоев вывода в многослойных битовых потоках видео. Описание технологий основано на VVC. Однако эти технологии также применимы к многослойному кодированию видео, основанному на других спецификациях видеокодека.In general, the present disclosure describes approaches for scalable embedding SEI messages for sets of output layers in multi-layer video bitstreams. The technology description is based on VVC. However, these technologies are also applicable to multi-layer video encoding based on other video codec specifications.

Одну или более из вышеупомянутых проблем можно решить следующим образом. В частности, настоящее раскрытие включает в себя способы проектирования HRD и связанные с этим аспекты, которые обеспечивают эффективную сигнализацию параметров HRD с гораздо более простыми операциями HRD по сравнению с SHVC и MV-HEVC. Каждое из описанных ниже решений соответствует проблемам, описанным выше. Например, вместо требования трех наборов тестов на соответствие настоящее раскрытие позволяет использовать только один набор тестов на соответствие для тестирования на соответствие OLS, заданных VPS. Кроме того, вместо схемы, основанной на разделах битового потока, раскрытые механизмы HRD всегда могут работать отдельно для каждого слоя OLS. Кроме того, параметры HRD на уровне последовательности, которые являются глобальными для всех слоев и подслоев всех OLS, могут сигнализироваться только один раз, например, в VPS. В дополнение к этому, единственное количество графиков доставки может сигнализироваться для всех слоев и подслоев всех OLS. Для всех слоев в OLS может также применяться один и тот же индекс графика доставки. В дополнение к этому, неполные AU могут не ассоциироваться с SEI-сообщением периода буферизации. Неполная AU – это AU, которая не включает в себя изображения для всех слоев, присутствующих в CVS. Это гарантирует то, что HRD всегда может быть правильно инициирован для всех слоев в OLS. Кроме того, раскрыт механизм для эффективного удаления вложенных SEI-сообщений, которые не применяются к целевому слою в OLS. Это поддерживает процесс демультиплексирования для получения битового потока слоя. В дополнение к этому, применимый OLS немасштабируемого вложенного периода буферизации, таймирования изображений и SEI-сообщений информации единицы декодирования может быть задан как 0-ой OLS. Кроме того, параметры HDR могут быть выведены тогда, когда значение sub_layer_cpb_params_present_flag равно 0, что может позволяет разрешить правильные операции HRD. Может потребоваться, чтобы значения bp_max_sub_layers_minus1 и pt_max_sub_layers_minus1 находились в диапазоне от нуля до vps_max_sub_layers_minus1. Таким образом, не требуется, чтобы такие параметры имели конкретное значение для всех SEI-сообщений периода буферизации и таймирования изображения. Кроме того, процесс извлечения битового подпотока может удалить единицы NAL SEI, содержащие вложенные SEI-сообщения, которые не применяются к целевому OLS.One or more of the above problems can be solved as follows. In particular, the present disclosure includes HRD design methods and related aspects that provide efficient signaling of HRD parameters with much simpler HRD operations compared to SHVC and MV-HEVC. Each of the solutions below addresses the issues described above. For example, instead of requiring three sets of compliance tests, the present disclosure allows only one set of compliance tests to be used to test the OLS compliance specified by the VPS. Moreover, instead of a scheme based on bitstream partitions, the disclosed HRD mechanisms can always operate separately for each OLS layer. In addition, sequence-level HRD parameters, which are global across all layers and sublayers of all OLSs, can only be signaled once, for example in a VPS. In addition to this, a single number of delivery schedules can be signaled for all layers and sublayers of all OLSs. All layers in OLS can also use the same delivery schedule index. In addition, incomplete AUs may not be associated with the buffer period SEI message. An incomplete AU is an AU that does not include images for all layers present in CVS. This ensures that HRD can always be initiated correctly for all layers in the OLS. In addition, a mechanism is disclosed for efficiently removing nested SEI messages that do not apply to the target layer in OLS. This supports the demultiplexing process to obtain the layer bitstream. In addition to this, the applicable OLS of the non-scalable nested period of buffering, picture timing and SEI messages of decoding unit information can be specified as the 0th OLS. Additionally, HDR parameters can be inferred when sub_layer_cpb_params_present_flag is set to 0, which can allow proper HRD operations. The bp_max_sub_layers_minus1 and pt_max_sub_layers_minus1 values may be required to range from zero to vps_max_sub_layers_minus1. Thus, such parameters are not required to have a specific meaning for all SEI messages of the image buffering and timing period. Additionally, the subbitstream extraction process may remove NAL SEI units containing nested SEI messages that do not apply to the target OLS.

Пример реализации предыдущих механизмов выглядит следующим образом. Слой вывода – это слой набора слоев вывода, который выводится. OLS – это набор слоев, включающий в себя заданный набор слоев, где один или более слоев в наборе слоев заданы как слои вывода. Индекс слоя OLS – это индекс слоя в OLS в списке слоев в OLS. Процесс извлечения битового подпотока представляет собой заданный процесс, с помощью которого единицы NAL в битовом потоке, который не принадлежит целевому набору, определяемому целевым индексом OLS и целевым наибольшим TemporalId, удаляются из битового потока с выходным битовым подпотоком, включающим в себя единицы NAL в битовый поток, которые принадлежат целевому набору.An example of the implementation of the previous mechanisms is as follows. An output layer is a layer of a set of output layers that is output. An OLS is a layer set comprising a specified layer set, where one or more layers in the layer set are specified as output layers. The OLS layer index is the index of the layer in OLS in the list of layers in OLS. The subbitstream extraction process is a predetermined process by which NAL units in a bitstream that do not belong to the target set defined by the target OLS index and the target largest TemporalId are removed from the bitstream with an output subbitstream including NAL units in the bitstream , which belong to the target set.

Примерный синтаксис набора параметров видео выглядит следующим образом.An example syntax for a video parameter set is as follows.

Пример синтаксиса RBSP набора параметров последовательности выглядит следующим образом.An example of the RBSP sequence parameter set syntax is as follows.

Ниже приведен пример синтаксиса параметров DPB.Below is an example of the DPB parameter syntax.

Ниже приведен пример синтаксиса общих параметров HRD.The following is an example of the syntax for common HRD parameters.

Примерная семантика RBSP набора параметров видео выглядит следующим образом. each_layer_is_an_ols_flag устанавливается равным единице для задания того, чтобы каждый набор слоев вывода содержал только один слой, и каждый слой непосредственно в битовом потоке являлся набором слоев вывода с единственным включенным слоем, являющимся единственным слоем вывода. each_layer_is_an_ols_flag устанавливается равным нулю для задания того, чтобы набор слоев вывода мог содержать более одного слоя. Если vps_max_layers_minus1 равно нулю, предполагается, что значение each_layer_is_an_ols_flag равно единице. В противном случае, когда vps_all_independent_layers_flag равно нулю, предполагается, что значение each_layer_is_an_ols_flag равно нулю.The approximate semantics of the RBSP video parameter set is as follows. each_layer_is_an_ols_flag is set to one to specify that each set of output layers contains only one layer, and each layer directly in the bitstream is a set of output layers with the only layer included being the only output layer. each_layer_is_an_ols_flag is set to zero to specify that an output layer set can contain more than one layer. If vps_max_layers_minus1 is zero, each_layer_is_an_ols_flag is assumed to be one. Otherwise, when vps_all_independent_layers_flag is zero, each_layer_is_an_ols_flag is assumed to be zero.

ols_mode_idc устанавливается равным нулю для задания того, чтобы общее количество OLS, заданное VPS, было равно vps_max_layers_minus1 + 1, i-ый OLS включал в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводился только верхний слой в OLS. Значение ols_mode_idc устанавливается равным единице для задания того, чтобы общее количество OLS, заданное VPS, было равно vps_max_layers_minus1 + 1, i-й OLS включал в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводились все слои в OLS. ols_mode_idc устанавливается равным двум для задания того, чтобы общее количество OLS, заданное VPS, передавалось в явном виде, и для каждого OLS выводился верхний слой и явно сигнализируемый набор нижних слоев в OLS. Значение ols_mode_idc должно находиться в диапазоне от нуля до двух включительно. Значение три параметра ols_mode_idc является резервным. Когда vps_all_independent_layers_flag равно единице, и ach_layer_is_an_ols_flag равно нулю, предполагается, что значение ols_mode_idc равно двум. num_output_layer_sets_minus1 плюс 1 задает общее количество OLS, заданное VPS, когда ols_mode_idc равно двум.ols_mode_idc is set to zero to specify that the total number of OLS given by the VPS is equal to vps_max_layers_minus1 + 1, the i-th OLS includes layers with layer indices from 0 to i inclusive, and for each OLS only the top layer in the OLS is output. The value of ols_mode_idc is set to one to specify that the total number of OLS specified by the VPS is equal to vps_max_layers_minus1 + 1, the i-th OLS includes layers with layer indices from 0 to i inclusive, and for each OLS all layers in the OLS are output. ols_mode_idc is set to two to cause the total number of OLSs specified by the VPS to be transmitted explicitly, and for each OLS to output a top layer and an explicitly signaled set of bottom layers in the OLS. The ols_mode_idc value must be between zero and two, inclusive. Value three of the ols_mode_idc parameter is a fallback. When vps_all_independent_layers_flag is one and ach_layer_is_an_ols_flag is zero, the value of ols_mode_idc is assumed to be two. num_output_layer_sets_minus1 plus 1 sets the total number of OLS set by the VPS when ols_mode_idc is two.

Переменная TotalNumOlss, указывающая общее количество OLS, заданных VPS, получается следующим образом.The TotalNumOlss variable indicating the total number of OLSs specified by the VPS is obtained as follows.

if( vps_max_layers_minus1 = = 0 )
TotalNumOlss = 1
else if( each_layer_is_an_ols_flag | | ols_mode_idc = = 0 | | ols_mode_idc = = 1 )
TotalNumOlss = vps_max_layers_minus1 + 1
else if( ols_mode_idc = = 2 )
TotalNumOlss = num_output_layer_sets_minus1 + 1
if( vps_max_layers_minus1 = = 0 )
TotalNumOlss = 1
else if( each_layer_is_an_ols_flag | | ols_mode_idc = = 0 | | ols_mode_idc = = 1 )
TotalNumOlss = vps_max_layers_minus1 + 1
else if( ols_mode_idc == 2 )
TotalNumOlss = num_output_layer_sets_minus1 + 1

layer_included_flag[ i ][ j ] указывает то, включен ли j-й слой (слой с nuh_layer_id, равным vps_layer_id[j]) в i-й OLS, когда ols_mode_idc равен двум. layer_included_flag[ i ][ j ] устанавливается равным единице для задания того, чтобы j-й слой был включен в i-й OLS. layer_included_flag[ i ][ j ] устанавливается равным нулю для задания того, чтобы j-й слой не был включен в i-й OLS.layer_included_flag[ i ][ j ] indicates whether the j-th layer (the layer with nuh_layer_id equal to vps_layer_id[j]) is included in the i-th OLS when ols_mode_idc is equal to two. layer_included_flag[ i ][ j ] is set to one to specify that the jth layer is included in the ith OLS. layer_included_flag[ i ][ j ] is set to zero to specify that the jth layer is not included in the ith OLS.

Переменная NumLayersInOls[i], задающая количество слоев в i-ом OLS, и переменная LayerIdInOls[i][j], задающая значение nuh_layer_id j-го слоя в i-ом OLS, получается следующим образом.The variable NumLayersInOls[i], which specifies the number of layers in the i-th OLS, and the variable LayerIdInOls[i][j], which specifies the nuh_layer_id value of the j-th layer in the i-th OLS, are obtained as follows.

NumLayersInOls[ 0 ] = 1
LayerIdInOls[ 0 ][ 0 ] = vps_layer_id[ 0 ]
for( i = 1, i < TotalNumOlss; i++ ) {
if( each_layer_is_an_ols_flag ) {
NumLayersInOls[ i ] = 1
LayerIdInOls[ i ][ 0 ] = vps_layer_id[ i ]
} else if( ols_mode_idc = = 0 | | ols_mode_idc = = 1 ) {
NumLayersInOls[ i ] = i + 1
for( j = 0; j < NumLayersInOls[ i ]; j++ )
LayerIdInOls[ i ][ j ] = vps_layer_id[ j ]
} else if( ols_mode_idc = = 2 ) {
for( k = 0, j = 0; k <= vps_max_layers_minus1; k++ )
if( layer_included_flag[ i ][ k ] )
LayerIdInOls[ i ][ j++ ] = vps_layer_id[ k ]
NumLayersInOls[ i ] = j
}
}
NumLayersInOls[ 0 ] = 1
LayerIdInOls[ 0 ][ 0 ] = vps_layer_id[ 0 ]
for( i = 1, i <TotalNumOlss; i++ ) {
if( each_layer_is_an_ols_flag ) {
NumLayersInOls[ i ] = 1
LayerIdInOls[ i ][ 0 ] = vps_layer_id[ i ]
} else if( ols_mode_idc = = 0 | | ols_mode_idc = = 1 ) {
NumLayersInOls[ i ] = i + 1
for( j = 0; j < NumLayersInOls[ i ]; j++ )
LayerIdInOls[ i ][ j ] = vps_layer_id[ j ]
} else if( ols_mode_idc == 2 ) {
for( k = 0, j = 0; k <= vps_max_layers_minus1; k++ )
if( layer_included_flag[ i ][ k ] )
LayerIdInOls[ i ][ j++ ] = vps_layer_id[ k ]
NumLayersInOls[ i ] = j
}
}

Переменная OlsLayeIdx[i][j], задающая индекс слоя OLS слоя с nuh_layer_id, равным LayerIdInOls[i][j], получается следующим образом.The OlsLayeIdx[i][j] variable, which specifies the OLS layer index of the layer with nuh_layer_id equal to LayerIdInOls[i][j], is obtained as follows.

for( i = 0, i < TotalNumOlss; i++ )
for j = 0; j < NumLayersInOls[ i ]; j++ )
OlsLayeIdx[ i ][ LayerIdInOls[ i ][ j ] ] = j
for( i = 0, i <TotalNumOlss; i++ )
for j = 0; j < NumLayersInOls[ i ]; j++ )
OlsLayeIdx[ i ][ LayerIdInOls[ i ][ j ] ] = j

Нижний слой в каждом OLS должен быть независимым слоем. Другими словами, для каждого i в диапазоне от нуля до TotalNumOlss - 1 включительно значение vps_independent_layer_flag[ GeneralLayerIdx[ LayerIdInOls[ i ][ 0 ] ] ] должно быть равно единице. Каждый слой должен быть включен по меньшей мере в один OLS, заданный VPS. Другими словами, для каждого слоя с конкретным значением nuh_layer_id nuhLayerId, равным единице из vps_layer_id[ k ] для k в диапазоне от нуля до vps_max_layers_minus1 включительно, должна быть как минимум одна пара значений i и j, где i находится в диапазоне от нуля до TotalNumOlss - 1 включительно, и j находится в диапазоне NumLayersInOls[ i ] - 1 включительно, так что значение LayerIdInOls[ i ][ j ] равно nuhLayerId. Любой слой в OLS должен быть слоем вывода OLS или опорным слоем (прямым или косвенным) слоя вывода OLS.The bottom layer in each OLS must be an independent layer. In other words, for every i in the range zero to TotalNumOlss - 1 inclusive, the value of vps_independent_layer_flag[ GeneralLayerIdx[ LayerIdInOls[ i ][ 0 ] ] ] must be equal to one. Each layer must be included in at least one OLS defined by the VPS. In other words, for each layer with a particular value nuh_layer_id nuhLayerId equal to one from vps_layer_id[ k ] for k ranging from zero to vps_max_layers_minus1 inclusive, there must be at least one pair of values i and j, where i is in the range zero to TotalNumOlss - 1 inclusive, and j is in the range NumLayersInOls[ i ] - 1 inclusive, so the value of LayerIdInOls[ i ][ j ] is nuhLayerId. Any layer in OLS must be an OLS output layer or a reference layer (direct or indirect) of an OLS output layer.

vps_output_layer_flag[ i ][ j ] задает то, получается ли j-й слой в i-ом OLS, когда значение ols_mode_idc равно двум. vps_output_layer_flag[ i ], равный единице, задает то, что получается j-й слой в i-ом OLS. vps_output_layer_flag[ i ] устанавливается равным нулю для задания того, чтобы j-й слой не выводился в i-ом OLS. Когда vps_all_independent_layers_flag равно единице, и ach_layer_is_an_ols_flag равно нулю, предполагается, что значение vps_output_layer_flag[ i ] равно единице. Переменная OutputLayerFlag[ i ][ j ], для которой значение единица задает то, что j-й слой выводится в i-ом OLS, и значение ноль указывает то, что j-й слой в i-ом OLS не выводится, выводится следующим образом.vps_output_layer_flag[ i ][ j ] specifies whether the j-th layer is obtained in the i-th OLS when the value of ols_mode_idc is two. vps_output_layer_flag[ i ], equal to one, specifies that the j-th layer in the i-th OLS is obtained. vps_output_layer_flag[ i ] is set to zero to specify that the j-th layer is not output to the i-th OLS. When vps_all_independent_layers_flag is equal to one and ach_layer_is_an_ols_flag is equal to zero, the value of vps_output_layer_flag[ i ] is assumed to be equal to one. The variable OutputLayerFlag[ i ][ j ], for which a value of one indicates that the j-th layer is output in the i-th OLS, and a value of zero indicates that the j-th layer is not output in the i-th OLS, is output as follows .

for( i = 0, i < TotalNumOlss; i++ ) {
OutputLayerFlag[ i ][ NumLayersInOls[ i ] − 1 ] = 1
for( j = 0; j < NumLayersInOls[ i ] − 1; j++ )
if( ols_mode_idc[ i ] = = 0 )
OutputLayerFlag[ i ][ j ] = 0
else if( ols_mode_idc[ i ] = = 1 )
OutputLayerFlag[ i ][ j ] = 1
else if( ols_mode_idc[ i ] = = 2 )
OutputLayerFlag[ i ][ j ] = vps_output_layer_flag[ i ][ j ]
}
for( i = 0, i <TotalNumOlss; i++ ) {
OutputLayerFlag[ i ][ NumLayersInOls[ i ] − 1 ] = 1
for( j = 0; j < NumLayersInOls[ i ] − 1; j++ )
if( ols_mode_idc[ i ] = = 0 )
OutputLayerFlag[ i ][ j ] = 0
else if( ols_mode_idc[ i ] = = 1 )
OutputLayerFlag[ i ][ j ] = 1
else if( ols_mode_idc[ i ] = = 2 )
OutputLayerFlag[ i ][ j ] = vps_output_layer_flag[ i ][ j ]
}

0-ой OLS содержит только нижний слой (слой с nuh_layer_id, равным vps_layer_id[0]), и для 0-го OLS выводится только включенный слой.The 0th OLS contains only the bottom layer (the layer with nuh_layer_id equal to vps_layer_id[0]), and for the 0th OLS only the included layer is output.

Флаг vps_extension_flag устанавливается равным нулю для задания того, чтобы синтаксические элементы vps_extension_data_flag отсутствовали в синтаксической структуре RBSP VPS. Параметр vps_extension_flag устанавливается равным единице для задания того, чтобы в синтаксической структуре RBSP VPS присутствовали синтаксические элементы vps_extension_data_flag. vps_extension_data_flag может иметь любое значение. Наличие и значение vps_extension_data_flag не влияют на соответствие декодера указанным профилям. Декодеры должны игнорировать все синтаксические элементы vps_extension_data_flag.The vps_extension_flag flag is set to zero to specify that vps_extension_data_flag syntax elements are not present in the VPS RBSP syntax structure. The vps_extension_flag parameter is set to one to specify that vps_extension_data_flag syntax elements are present in the VPS RBSP syntax structure. vps_extension_data_flag can have any value. The presence and value of the vps_extension_data_flag does not affect the decoder's compliance with the specified profiles. Decoders MUST ignore all vps_extension_data_flag syntax elements.

Примерная семантика параметров DPB выглядит следующим образом. Синтаксическая структура dpb_parameters( ) предоставляет информацию о размере DPB и, в качестве варианта, информацию о максимальном количестве переупорядочения изображений и максимальной задержке (MRML). Каждый SPS включает в себя одну или dpb_parameters( ) синтаксических структур. Первая синтаксическая структура dpb_parameters( ) в SPS содержит как информацию о размере DPB, так и информацию MRML. При наличии вторая синтаксическая структура dpb_parameters( ) в SPS содержит только информацию о размере DPB. Информация MRML в первой синтаксической структуре dpb_parameters( ) в SPS применяется к слою, относящемуся к SPS, независимо от того, является ли слой слоем вывода в OLS. Информация о размере DPB в первой синтаксической структуре dpb_parameters( ) в SPS применяется к слою, относящемуся к SPS, когда этот слой является слоем вывода OLS. Информация о размере DPB, включенная во вторую синтаксическую структуру dpb_parameters( ) в случае, если она присутствует в SPS, применяется к слою, относящемуся к SPS, тогда, когда этот слой не является слоем вывода OLS. Когда SPS включает в себя только одну синтаксическую структуру dpb_parameters( ), предполагается, что информация о размере DPB для слоя как слоя без вывода является той же самой, что и для слоя как слоя вывода.The approximate semantics of DPB parameters is as follows. The dpb_parameters( ) syntax structure provides DPB size information and, optionally, maximum image reordering and maximum latency (MRML) information. Each SPS includes one or dpb_parameters( ) syntax structures. The first syntax structure dpb_parameters( ) in SPS contains both DPB size information and MRML information. If present, the second syntax structure dpb_parameters( ) in SPS contains only information about the size of the DPB. The MRML information in the first dpb_parameters( ) syntax structure in the SPS applies to the layer related to the SPS, regardless of whether the layer is an output layer in the OLS. The DPB size information in the first dpb_parameters( ) syntax structure in the SPS is applied to the SPS-related layer when that layer is an OLS output layer. The DPB size information included in the second dpb_parameters( ) syntax structure, if present in the SPS, is applied to the SPS-related layer when that layer is not an OLS output layer. When the SPS includes only one dpb_parameters( ) syntax structure, it is assumed that the DPB size information for the layer as a non-output layer is the same as for the layer as an output layer.

Примерная общая семантика параметров HRD выглядит следующим образом. Синтаксическая структура general_hrd_parameters( ) предоставляет параметры HRD, используемые в операциях HRD. sub_layer_cpb_params_present_flag устанавливается равным единице для задания того, чтобы i-ая синтаксическая структура layer_level_hrd_parameters( ) содержала параметры HRD для представлений подслоев с TemporalId в диапазоне от нуля до hrd_max_temporal_id[ i ] включительно. sub_layer_cpb_params_present_flag устанавливается равным нулю для задания того, чтобы i-ая синтаксическая структура layer_level_hrd_parameters( ) содержала только параметры HRD для представлений подслоев с TemporalId, равным hrd_max_temporal_id[ i ]. Когда vps_max_sub_layers_minus1 равно нулю, предполагается, что значение sub_layer_cpb_params_present_flag равно нулю. Когда sub_layer_cpb_params_present_flag равно нулю, предполагается, что параметры HRD для представлений подслоев с TemporalId в диапазоне от нуля до hrd_max_temporal_id[ i ] - 1 включительно должны быть такими же, как и для представлений подслоев с TemporalId, равным в hrd_max_temporal_id[ i ]. Эти переменные включают в себя параметры HRD, начиная с синтаксического элемента fixed_pic_rate_general_flag[ i ] до синтаксической структуры sub_layer_hrd_parameters( i ) непосредственно при условии if( general_vcl_hrd_params_present_flag ) в синтаксической структуре layer_level_hrd_parameters. num_layer_hrd_params_minus1 плюс один задает количество синтаксических структур layer_level_hrd_parameters( ), присутствующих в синтаксической структуре general_hrd_parameters( ). Значение num_layer_hrd_params_minus1 должно находиться в диапазоне от нуля до шестидесяти трех включительно. Параметр hrd_cpb_cnt_minus1 плюс один определяет количество альтернативных спецификаций CPB в битовом потоке CVS. Значение hrd_cpb_cnt_minus1 должно находиться в диапазоне от нуля до тридцати одного включительно. hrd_max_temporal_id[ i ] задает TemporalId представления верхнего слоя, для которого параметры HRD содержатся в i-ой синтаксической структуре layer_level_hrd_parameters( ). Значение hrd_max_temporal_id[ i ] должно находиться в диапазоне от нуля до vps_max_sub_layers_minus1 включительно. Когда vps_max_sub_layers_minus1 равно нулю, предполагается, что значение hrd_max_temporal_id[ i ] равно нулю. layer_level_hrd_idx[ i ][ j ] задает индекс синтаксической структуры layer_level_hrd_parameters( ), которая применяется к j-му слою в i-ом OLS. Значение layer_level_hrd_idx[[ i ][ j ] должно находиться в диапазоне от нуля до num_layer_hrd_params_minus1 включительно. Если этот параметр отсутствует, значение layer_level_hrd_idx[[ 0 ][ 0 ] считается равным нулю.The approximate general semantics of HRD parameters is as follows. The general_hrd_parameters( ) syntax structure provides the HRD parameters used in HRD operations. sub_layer_cpb_params_present_flag is set to one to specify that the i-th syntax structure layer_level_hrd_parameters( ) contains HRD parameters for sublayer views with a TemporalId ranging from zero to hrd_max_temporal_id[ i ] inclusive. sub_layer_cpb_params_present_flag is set to zero to force the i-th syntax structure layer_level_hrd_parameters( ) to contain only HRD parameters for sublayer views with a TemporalId equal to hrd_max_temporal_id[ i ]. When vps_max_sub_layers_minus1 is zero, sub_layer_cpb_params_present_flag is assumed to be zero. When sub_layer_cpb_params_present_flag is zero, the HRD parameters for sublayer views with a TemporalId in the range zero to hrd_max_temporal_id[ i ] - 1, inclusive, are assumed to be the same as those for sublayer views with a TemporalId equal to hrd_max_temporal_id[ i ]. These variables include HRD parameters, starting from the syntax element fixed_pic_rate_general_flag[ i ] through the syntax structure sub_layer_hrd_parameters( i ) directly to the if( general_vcl_hrd_params_present_flag ) clause in the syntax structure layer_level_hrd_parameters. num_layer_hrd_params_minus1 plus one specifies the number of layer_level_hrd_parameters() syntax structures present in the general_hrd_parameters() syntax structure. The value of num_layer_hrd_params_minus1 must be between zero and sixty-three, inclusive. The parameter hrd_cpb_cnt_minus1 plus one specifies the number of alternative CPB specifications in the CVS bitstream. The hrd_cpb_cnt_minus1 value must be between zero and thirty-one, inclusive. hrd_max_temporal_id[ i ] specifies the TemporalId of the top layer representation for which the HRD parameters are contained in the i-th syntactic structure layer_level_hrd_parameters( ). The value of hrd_max_temporal_id[ i ] must be in the range from zero to vps_max_sub_layers_minus1 inclusive. When vps_max_sub_layers_minus1 is zero, hrd_max_temporal_id[ i ] is assumed to be zero. layer_level_hrd_idx[ i ][ j ] specifies the index of the layer_level_hrd_parameters() syntactic structure that applies to the j-th layer in the i-th OLS. The value of layer_level_hrd_idx[[ i ][ j ] must be in the range from zero to num_layer_hrd_params_minus1 inclusive. If this parameter is not present, the value of layer_level_hrd_idx[[ 0 ][ 0 ] is considered to be zero.

Примерный процесс извлечения битового подпотока выглядит следующим образом. Входными данными этого процесса являются битовый поток inBitstream, целевой индекс OLS targetOlsIdx и целевое наибольшее значение TemporalId tIdTarget. Выходными данными этого процесса являются битовый подпоток outBitstream. Требование соответствия битового потока для входного битового потока состоит в том, что любой выходной битовый подпоток, являющийся результатом процесса, заданного в этом пункте, с битовым потоком targetOlsIdx, равным индексу списка OLS, заданного VPS, и tIdTarget, равным любому значению в диапазоне от нуля до шести включительно в качестве входных данных, и который удовлетворяет следующим условиям, должен быть соответствующим битовым потоком. Выходной битовый подпоток должен содержать по меньшей мере одну единицу NAL VCL с nuh_layer_id, равным каждому из значений nuh_layer_id в LayerIdInOls[ targetOlsIdx ]. Выходной битовый подпоток должен содержать по меньшей мере одну единицу NAL VCL с TemporalId, равным tIdTarget. Соответствующий битовый поток содержит одну или более единиц NAL кодированного слайса с TemporalId, равным нулю, но не обязательно должен содержать единицы NAL кодированного слайса с nuh_layer_id, равным нулю.An example process for extracting a bit stream is as follows. The inputs to this process are the bitstream inBitstream, the target OLS index targetOlsIdx, and the target largest TemporalId tIdTarget. The output of this process is the outBitstream. The bitstream matching requirement for an input bitstream is that any output subbitstream resulting from the process specified in this clause with a bitstream targetOlsIdx equal to the index of the OLS list specified by the VPS and tIdTarget equal to any value in the range of zero up to and including six as input data, and which satisfies the following conditions must be a corresponding bitstream. The output bitstream must contain at least one VCL NAL unit with a nuh_layer_id equal to each of the nuh_layer_id values in LayerIdInOls[ targetOlsIdx ]. The output bitstream must contain at least one VCL NAL unit with a TemporalId equal to tIdTarget. The corresponding bitstream contains one or more coded slice NAL units with TemporalId equal to zero, but need not contain coded slice NAL units with nuh_layer_id equal to zero.

Выходной битовый подпоток OutBitstream получается следующим образом. Битовый поток outBitstream устанавливается идентичным битовому потоку inBitstream. Удалить из outBitstream все единицы NAL с TemporalId больше, чем tIdTarget. Удалить из outBitstream все единицы NAL с nuh_layer_id, не включенными в список LayerIdInOls[ targetOlsIdx ]. Удалить из outBitstream все единицы NAL SEI, которые содержат масштабируемое вкладывающее SEI-сообщение, значение nesting_ols_flag которого равно единице, и значение i не находится в диапазоне от нуля до nesting_num_olss_minus1 включительно, так что NestingOlsIdx[ i ] равно targetOlsIdx. Когда targetOlsIdx больше нуля, удалить из outBitstream все единицы NAL SEI, которые содержат немасштабируемое вложенное SEI-сообщение с payloadType, равным нулю (период буферизации), единице (таймирование изображения) или ста тридцати (информация о единице декодирования).The output bit stream OutBitstream is obtained as follows. The outBitstream bitstream is set to be identical to the inBitstream bitstream. Remove from outBitstream all NAL units with a TemporalId greater than tIdTarget. Remove from outBitstream all NAL units with nuh_layer_id not included in the LayerIdInOls[ targetOlsIdx ] list. Remove from outBitstream all NAL SEI units that contain a scalable nesting SEI message whose nesting_ols_flag value is one and the value of i is not in the range zero to nesting_num_olss_minus1 inclusive, such that NestingOlsIdx[ i ] is equal to targetOlsIdx. When targetOlsIdx is greater than zero, remove from outBitstream all NAL SEI units that contain an unscaled embedded SEI message with a payloadType of zero (buffering period), one (image timing), or one hundred thirty (decoding unit information).

Общие аспектов примерного HRD выглядит следующим образом. Этот раздел определяет HRD и его использование для проверки на соответствие битового потока и декодера. Набор тестов на соответствие битового потока используется для проверки на соответствие битового потока, который упоминается как полный битовый поток, обозначаемый как fullBitstream. Набор тестов на соответствие битового потока предназначен для тестирования на соответствие каждого OLS, заданного VPS, и временных поднаборов каждого OLS. Для каждого теста применяются следующие упорядоченные этапы в указанном порядке.The general aspects of an example HRD are as follows. This section defines HRD and its use for bitstream and decoder matching. A set of bitstream consistency tests are used to test the consistency of a bitstream, which is referred to as a full bitstream, denoted as fullBitstream. The bitstream consistency test suite is designed to test the consistency of each OLS defined by the VPS and the temporary subsets of each OLS. For each test, the following ordered steps apply in the order listed.

Тестируемая рабочая точка, обозначенная как targetOp, выбирается путем выбора целевого OLS с индексом OLS opOlsIdx и наибольшим значением OpTid TemporalId. Значение opOlsIdx находится в диапазоне от нуля до TotalNumOlss – единица включительно. Значение opTid находится в диапазоне от нуля до vps_max_sub_layers_minus1 включительно. Значения opOlsIdx и opTid являются такими, что битовый подпоток BitstreamToDecode, который является результатом вызова процесса извлечения битового подпотока с entireBitstream, opOlsIdx и opTid в качестве входных данных, удовлетворяет следующим условиям. Имеется по меньшей мере одна единица NAL VCL с nuh_layer_id, равным каждому из значений nuh_layer_id в LayerIdInOls[opOlsIdx] в BitstreamToDecode. Имеется по меньшей мере одна единица NAL VCL с TemporalId, равным opTid в BitstreamToDecode.The operating point to be tested, denoted targetOp, is selected by selecting the target OLS with the OLS index opOlsIdx and the largest OpTid TemporalId value. The opOlsIdx value ranges from zero to TotalNumOlss – one, inclusive. The opTid value ranges from zero to vps_max_sub_layers_minus1 inclusive. The values of opOlsIdx and opTid are such that the bitstream BitstreamToDecode, which is the result of calling the bitstream extraction process with the entireBitstream, opOlsIdx and opTid as input, satisfies the following conditions. There is at least one VCL NAL unit with nuh_layer_id equal to each of the nuh_layer_id values in LayerIdInOls[opOlsIdx] in BitstreamToDecode. There is at least one VCL NAL unit with a TemporalId equal to the opTid in BitstreamToDecode.

Значения TargetOlsIdx и Htid устанавливаются равными opOlsIdx и opTid, соответственно, для targetOp. Выбирается значение ScIdx. Выбранное значение ScIdx должно находиться в диапазоне от нуля до hrd_cpb_cnt_minus1 включительно. Единица доступа в BitstreamToDecode, ассоциированная с SEI-сообщениями периода буферизации (присутствующими в TargetLayerBitstream или доступными через внешний механизм, не указанный в данном описании), применяемыми к TargetOlsIdx, выбирается в качестве точки инициирования HRD и упоминается как нулевая единица доступа для каждого слоя в целевом OLS. The TargetOlsIdx and Htid values are set to opOlsIdx and opTid, respectively, for targetOp. ScIdx value is selected. The selected ScIdx value must be in the range from zero to hrd_cpb_cnt_minus1 inclusive. The access unit in BitstreamToDecode associated with the buffer period SEI messages (either present in the TargetLayerBitstream or accessible through an external mechanism not specified herein) applied to the TargetOlsIdx is selected as the HRD initiation point and is referred to as the zero access unit for each layer in the target OLS.

Последующие этапы применяются к каждому слою с индексом слоя OLS TargetOlsLayerIdx в целевом OLS. Если в целевом OLS имеется только один слой, тестируемый битовый поток слоя TargetLayerBitstream устанавливается идентичным BitstreamToDecode. В противном случае TargetLayerBitstream получается путем вызова процесса демультиплексирования для получения битового потока слоя с BitstreamToDecode, TargetOlsIdx и TargetOlsLayerIdx в качестве входных данных, и выходные данные назначаются TargetLayerBitstream.The following steps are applied to each layer with the OLS layer index TargetOlsLayerIdx in the target OLS. If there is only one layer in the target OLS, the layer's TargetLayerBitstream bitstream under test is set to be identical to BitstreamToDecode. Otherwise, the TargetLayerBitstream is obtained by calling the demultiplexing process to obtain the layer bitstream with BitstreamToDecode, TargetOlsIdx, and TargetOlsLayerIdx as input, and the output is assigned to the TargetLayerBitstream.

Синтаксическая структура layer_level_hrd_parameters( ) и синтаксическая структура sub_layer_hrd_parameters(), применимые к TargetLayerBitstream, выбираются следующим образом. Выбирается синтаксическая структура layer_level_hrd_idx[TargetOlsIdx][TargetOlsLayerIdx] layer_level_hrd_parameters( ) в VPS (или предоставляется через внешний механизм, такой как пользовательский ввод). В выбранной синтаксической структуре layer_level_hrd_parameters( ), если BitstreamToDecode является битовым потоком типа I, выбирается синтаксическая структура sub_layer_hrd_parameters(Htid ), которая следует сразу за условием if(general_vcl_hrd_params_present_flag ), и переменная NalHrdModeFlag устанавливается равной нулю. В противном случае (BitstreamToDecode является битовым потоком типа II), синтаксическая структура sub_layer_hrd_parameters(Htid ), которая сразу следует либо за условием if(general_vcl_hrd_params_present_flag ) (в этом случае переменная NalHrdModeFlag устанавливается равной нулю), либо за условием if(general_nal_hrd_params_present_flag) (в этом если переменная NalHrdModeFlag устанавливается равной единице). Когда BitstreamToDecode является битовым потоком типа II, и NalHrdModeFlag равно нулю, все единицы NAL без VCL, за исключением единиц NAL данных-заполнителей, и все синтаксические элементы leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes и trailing_zero_8bits, которые образуют байтовый поток из потока единиц NAL, если он присутствуют, отбрасываются из TargetLayerBitstream, и оставшийся битовый поток назначается TargetLayerBitstream.The syntax structure layer_level_hrd_parameters( ) and the syntax structure sub_layer_hrd_parameters() applicable to TargetLayerBitstream are selected as follows. The layer_level_hrd_idx[TargetOlsIdx][TargetOlsLayerIdx] layer_level_hrd_parameters( ) syntax structure is selected in the VPS (or provided through an external mechanism such as user input). In the selected syntax structure layer_level_hrd_parameters(), if BitstreamToDecode is a type I bitstream, the syntax structure sub_layer_hrd_parameters(Htid) is selected, which immediately follows the if(general_vcl_hrd_params_present_flag) condition, and the variable NalHrdModeFlag is set to zero. Otherwise (BitstreamToDecode is a Type II bitstream), the syntactic structure is sub_layer_hrd_parameters(Htid ), which immediately follows either the if(general_vcl_hrd_params_present_flag ) condition (in which case the variable NalHrdModeFlag is set to zero) or the if(general_nal_hrd_params_present_flag) condition (in which if the NalHrdModeFlag variable is set to one). When BitstreamToDecode is a Type II bitstream and NalHrdModeFlag is zero, all non-VCL NAL units except filler data NAL units, and all leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes, and trailing_zero_8bits syntax elements that form a byte stream from the NAL units stream, if it present are discarded from the TargetLayerBitstream, and the remaining bitstream is assigned to the TargetLayerBitstream.

Когда decoding_unit_hrd_params_present_flag равно единице, планируется что CPB будет функционировать либо на уровне единицы доступа (в этом случае переменная DecodingUnitHrdFlag устанавливается равной нулю), либо на уровне единицы декодирования (в этом случае переменная DecodingUnitHrdFlag устанавливается равной единице). В противном случае DecodingUnitHrdFlag устанавливается равным нулю, и CPB планируется работать на уровне модуля доступа. Для каждой единицы доступа в TargetLayerBitstream, начиная с нулевой единицы доступа, выбирается SEI-сообщение периода буферизации (присутствующее в TargetLayerBitstream или доступное через внешний механизм), которое ассоциируется с единицей доступа и применяется к TargetOlsIdx и TargetOlsLayerIdx, выбирается SEI-сообщение таймирования изображения (присутствующее в TargetLayerBitstream или доступное через внешний механизм), которое ассоциируется с блоком доступа и применяется к TargetOlsIdx и выбирается TargetOlsLayerIdx, и когда DecodingUnitHrdFlag равно единице, и decoding_unit_cpb_params_in_pic_timing_sei_flag равно нулю, SEI-сообщения информации единицы декодирования (присутствующие в TargetLayerBitstream или доступные через внешний механизм), которые ассоциируются с единицами декодирования в единице доступа и применяются к TargetOlsIdx и TargetOlsLayerIdx.When decoding_unit_hrd_params_present_flag is equal to one, the CPB is intended to operate either at the access unit level (in which case the DecodingUnitHrdFlag variable is set to zero) or at the decoding unit level (in which case the DecodingUnitHrdFlag variable is set to one). Otherwise, DecodingUnitHrdFlag is set to zero and CPB is scheduled to operate at the access unit level. For each access unit in TargetLayerBitstream, starting with access unit zero, a buffering period SEI message (present in TargetLayerBitstream or accessible through an external mechanism) is selected that is associated with the access unit and applied to TargetOlsIdx and TargetOlsLayerIdx, an image timing SEI message (present in TargetLayerBitstream or accessible through an external mechanism) that is associated with the access block and applied to TargetOlsIdx and TargetOlsLayerIdx is selected, and when DecodingUnitHrdFlag is one and decoding_unit_cpb_params_in_pic_timing_sei_flag is zero, SEI messages of decoding unit information (present in TargetLayerBitstream or accessible through an external mechanism) which are associated with decoding units in an access unit and apply to TargetOlsIdx and TargetOlsLayerIdx.

Каждый тест на соответствие включает в себя комбинацию одного варианта на каждом из вышеперечисленных этапов. Когда для этапа существует более одного варианта, для любого конкретного теста на соответствие выбирается только один вариант. Все возможные комбинации всех этапов образуют полный набор тестов на соответствие. Для каждой тестируемой рабочей точки количество выполняемых тестов на соответствие битового потока равно n0 * n1 * n2 * n3, где значения n0, n1, n2 и n3 задаются следующим образом. n1 равно hrd_cpb_cnt_minus1 + 1. n1 – количество единиц доступа в BitstreamToDecode, которые ассоциируются с SEI-сообщениями периода буферизации. n2 получается следующим образом. Если BitstreamToDecode является битовым потоком типа I, n0 равно единице. В противном случае (BitstreamToDecode является битовым потоком типа II) n0 равно двум. n3 получается следующим образом. Если decoding_unit_hrd_params_present_flag равно нулю, n3 равно единице. В противном случае n3 равно двум.Each matching test involves a combination of one option in each of the above steps. When more than one option exists for a step, only one option is selected for any given compliance test. All possible combinations of all stages form a complete set of compliance tests. For each operating point tested, the number of bitstream compliance tests performed is n0 * n1 * n2 * n3, where the values of n0, n1, n2 and n3 are specified as follows. n1 is equal to hrd_cpb_cnt_minus1 + 1. n1 is the number of access units in BitstreamToDecode that are associated with SEI messages of the buffering period. n2 is obtained as follows. If BitstreamToDecode is a type I bitstream, n0 is one. Otherwise (BitstreamToDecode is a Type II bitstream) n0 is two. n3 is obtained as follows. If decoding_unit_hrd_params_present_flag is zero, n3 is one. Otherwise n3 is equal to two.

HRD содержит демультиплексор битового потока (в качестве варианта, присутствует), буфер кодированного изображения (CPB) для каждого слоя, процесс мгновенного декодирования для каждого слоя, буфер декодированного изображения (DPB), который содержит под-DPB для каждого слоя, и выходное кадрирование.The HRD contains a bitstream demultiplexer (optionally present), a coded picture buffer (CPB) for each layer, a flash decoding process for each layer, a decoded picture buffer (DPB) that contains a sub-DPB for each layer, and output framing.

В примере HRD работает следующим образом. HRD инициируется при единице декодирования, равной нулю, причем каждый CPB и каждый под-DPB устанавливаются пустыми. Заполнение под-DPB для каждого под-DPB устанавливается равным нулю. После инициирования HRD не инициируется снова последующими SEI-сообщениями периода буферизации. Данные, ассоциированные с единицами декодирования, которые поступают в каждый CPB в соответствии с заданным графиком поступления, доставляются HSS. Данные, ассоциированные с каждым блоком декодирования, удаляются и декодируются мгновенно посредством процесса мгновенного декодирования во время удаления CPB единицы декодирования. Каждое декодированное изображение помещается в DPB. Декодированное изображение удаляется из DPB тогда, когда оно становится не нужным для межкадрового предсказания и ссылки для вывода.In the example, HRD works as follows. The HRD is initiated at a decode unit of zero, with each CPB and each sub-DPB set to empty. The sub-DPB padding for each sub-DPB is set to zero. Once initiated, the HRD is not initiated again by subsequent SEI messages of the buffering period. Data associated with decoding units that arrive at each CPB according to a specified arrival schedule are delivered to the HSS. Data associated with each decoding unit is removed and decoded instantly through the instantaneous decoding process at the time of decoding unit CPB deletion. Each decoded image is placed in the DPB. The decoded picture is removed from the DPB when it is no longer needed for inter-frame prediction and output reference.

В примере процесс демультиплексирования для получения битового потока слоя выглядит следующим образом. Входными данными для этого процесса являются битовый поток inBitstream, целевой индекс OLS targetOlsIdx и индекс целевого слоя OLS targetOlsLayerIdx. Выходными данными для этого процесса являются битовый поток слоя outBitstream. Битовый поток слоя вывода outBitstream получается следующим образом. Битовый поток outBitstream устанавливается равным битовому потоку inBitstream. Удалить из outBitstream все единицы NAL с nuh_layer_id, не равным LayerIdInOls[ targetOlsIdx ][ targetOlsLayerIdx ]. Удалить из outBitstream все единицы NAL SEI, которые содержат масштабируемое вкладывающее SEI-сообщение, которое имеет nesting_ols_flag, равный единице и у которого отсутствуют значения i и j в диапазоне от нуля до nesting_num_olss_minus1 включительно и от нуля до nesting_num_ols_layers_minus1[ i ] включительно соответственно, так что NestingOlsLayerIdx[ i ][ j ] равно targetOlsLayerIdx. Удалить из outBitstream все единицы NAL SEI, которые содержат масштабируемое вкладывающее SEI-сообщение, у которого nesting_ols_flag равно единице, и значения i и j находятся в диапазоне от нуля до nesting_num_olss_minus1 включительно и от нуля до nesting_num_ols_layers_minus1[ i ] включительно соответственно, чтобы NestingOlsLayerIdx[ i ][ j ] было меньше targetOlsLayerIdx. Удалить из outBitstream все единицы NAL SEI, которые содержат масштабируемое вкладывающее SEI-сообщение, у которого nesting_ols_flag равно нулю, и отсутствуют значения i в диапазоне от нуля до NestingNumLayers - 1 включительно, чтобы NestingLayerId[ i ] было равно LayerIdInOls[ targetOlsIdx][ targetOlsLayerIdx]. Удалить из outBitstream все единицы NAL SEI, которые содержат масштабируемое вкладывающее SEI-сообщение, у которого nesting_ols_flag равна нулю, и существует по меньшей мере одно значение i в диапазоне от нуля до NestingNumLayers - 1 включительно, чтобы NestingLayerId[ i ] было меньше LayerIdInOls[ targetOlsIdx][ targetOlsLayerIdx].In the example, the demultiplexing process to obtain the layer bitstream is as follows. The inputs to this process are the bitstream inBitstream, the OLS target index targetOlsIdx, and the OLS target layer index targetOlsLayerIdx. The output of this process is the bitstream of the outBitstream layer. The bitstream of the output layer outBitstream is obtained as follows. The bitstream outBitstream is set equal to the bitstream inBitstream. Remove from outBitstream all NAL units with nuh_layer_id not equal to LayerIdInOls[ targetOlsIdx ][ targetOlsLayerIdx ]. Remove from outBitstream all NAL SEI units that contain a scalable nesting SEI message that has a nesting_ols_flag equal to one and that does not have i and j values in the range zero to inclusive nesting_num_olss_minus1 and zero to nesting_num_ols_layers_minus1[ i ] respectively, so that NestingOlsLayerIdx[ i ][ j ] is equal to targetOlsLayerIdx. Remove from outBitstream all NAL SEI units that contain a scalable nesting SEI message whose nesting_ols_flag is equal to one and the values of i and j are in the range from zero to inclusive nesting_num_olss_minus1 and from zero to inclusive nesting_num_ols_layers_minus1[ i ] respectively, so that NestingOlsLayerIdx[ i ][ j ] was less than targetOlsLayerIdx. Remove from outBitstream all NAL SEI units that contain a scalable nesting SEI message that has nesting_ols_flag equal to zero and no i values in the range zero to NestingNumLayers - 1 inclusive, such that NestingLayerId[ i ] is equal to LayerIdInOls[ targetOlsIdx][ targetOlsLayerIdx] . Remove from outBitstream all NAL SEI units that contain a scalable nesting SEI message whose nesting_ols_flag is zero and there is at least one i value in the range zero to NestingNumLayers - 1 inclusive, such that NestingLayerId[ i ] is less than LayerIdInOls[ targetOlsIdx ][ targetOlsLayerIdx].

Пример синтаксиса SEI-сообщения периода буферизации выглядит следующим образом.An example buffer period SEI message syntax is as follows.

Пример синтаксиса масштабируемого вкладывающего SEI-сообщения выглядит следующим образом.An example syntax for a scalable SEI attachment message is as follows.

Примерная общая семантики полезной нагрузки SEI выглядит следующим образом. Следующее применимо к применяемым слоям (в контексте OLS или в общем случае) немасштабируемых вложенных SEI-сообщений. Для немасштабируемого вложенного SEI-сообщения, когда payloadType равно нулю (период буферизации), единице (таймирование изображения) или ста тридцати (информация единицы декодирования), немасштабируемое вложенное SEI-сообщение применяется только к нижнему слою в контексте 0-го OLS. Для немасштабируемого вложенного SEI-сообщения, когда payloadType равно любому значению из VclAssociatedSeiList, немасштабируемое вложенное SEI-сообщение применяется только к слою, для которого единицы NAL VCL имеют nuh_layer_id, равный nuh_layer_id единицы NAL SEI, содержащей SEI-сообщение.The approximate general semantics of an SEI payload is as follows. The following applies to applied layers (in the context of OLS or in general) of non-scalable nested SEI messages. For a non-scale nested SEI message, when payloadType is zero (buffering period), one (image timing) or one hundred thirty (decoding unit information), the non-scale nested SEI message is applied only to the bottom layer in the context of the 0th OLS. For a non-scaled nested SEI message, when payloadType is equal to any value in the VclAssociatedSeiList, the non-scaled nested SEI message applies only to the layer for which the VCL NAL units have a nuh_layer_id equal to the nuh_layer_id of the NAL SEI unit containing the SEI message.

Примерная семантика SEI-сообщения периода буферизации выглядит следующим образом. SEI-сообщение периода буферизации обеспечивает начальную задержку удаления CPB и информацию смещения начальной задержки удаления CPB для инициирования HRD в позиции ассоциированной единицы доступа в порядке декодирования. Когда SEI-сообщение периода буферизации присутствует, говорят, что изображение является изображением notDiscardablePic, когда изображение имеет TemporalId, равное нулю, и не является изображением RASL или декодируемым ведущим изображением с произвольным доступом (RADL). Когда текущее изображение не является первым изображением в битовом потоке в порядке декодирования, пусть prevNonDiscardablePic будет предыдущим изображением в порядке декодирования с TemporalId, равным нулю, который не является изображением RASL или RADL.The approximate semantics of a buffering period SEI message is as follows. The buffering period SEI message provides the CPB removal initial delay and CPB removal initial delay offset information for initiating an HRD at the associated access unit position in the decoding order. When the buffer period SEI message is present, the picture is said to be a notDiscardablePic picture when the picture has a TemporalId equal to zero and is not a RASL picture or a random access decodable leading (RADL) picture. When the current picture is not the first picture in the bitstream in decoding order, let prevNonDiscardablePic be the previous picture in decoding order with TemporalId equal to zero, which is not a RASL or RADL picture.

Наличие SEI-сообщений периода буферизации задается следующим образом. Если NalHrdBpPresentFlag равно единице или VclHrdBpPresentFlag равно единице, для каждой единицы доступа в CVS применяется следующее. Если единица доступа является единицей доступа IRAP или GDR, SEI-сообщение периода буферизации, применимое к рабочей точке, должно ассоциироваться с единицей доступа. В противном случае, если единица доступа содержит notDiscardablePic, SEI-сообщение периода буферизации, применяемое к рабочей точке, может ассоциироваться или не ассоциироваться с единицей доступа. В противном случае единица доступа не должна ассоциироваться с SEI-сообщением периода буферизации, применимым к рабочей точке. В противном случае (как NalHrdBpPresentFlag, так и VclHrdBpPresentFlag равны нулю) никакая единица доступа в CVS не должна ассоциироваться с SEI-сообщением периода буферизации. Для некоторых приложений может быть желательным частое присутствие SEI-сообщений периода буферизации (например, для произвольного доступа в изображении IRAP или изображении без IRAP, или для объединения битового потока). Когда изображение в единице доступа ассоциируется с SEI-сообщением периода буферизации, единица доступа должна иметь изображение в каждом из слоев, представленных в CVS, и каждое изображение в единице доступа должно быть с SEI-сообщением периода буферизации.The presence of SEI messages during the buffering period is set as follows. If NalHrdBpPresentFlag is equal to one or VclHrdBpPresentFlag is equal to one, the following applies for each access unit in CVS. If the access unit is an IRAP or GDR access unit, the buffer period SEI message applicable to the operating point shall be associated with the access unit. Otherwise, if the access unit contains notDiscardablePic, the buffer period SEI message applied to the operating point may or may not be associated with the access unit. Otherwise, the access unit shall not be associated with the buffer period SEI message applicable to the operating point. Otherwise (both NalHrdBpPresentFlag and VclHrdBpPresentFlag are zero), no CVS access unit shall be associated with the buffer period SEI message. For some applications, it may be desirable for SEI messages to be present frequently during the buffering period (eg, for random access in an IRAP picture or a non-IRAP picture, or for bitstream aggregation). When an image in an access unit is associated with a buffer period SEI message, the access unit must have an image in each of the layers represented in the CVS, and each image in the access unit must have a buffer period SEI message.

Параметр bp_max_sub_layers_minus1 плюс 1 задает максимальное количество временных подслоев, для которых задержка удаления CPB и смещение удаления CBP указаны в SEI-сообщении периода буферизации. Значение bp_max_sub_layers_minus1 должно находиться в диапазоне от нуля до vps_max_sub_layers_minus1 включительно. Параметр bp_cpb_cnt_minus1 плюс 1 задает количество пар синтаксических элементов nal_initial_cpb_removal_delay[ i ][ j ] и nal_initial_cpb_removal_offset[ i ][ j ] i-го временного подслоя, когда bp_nal_hrd_params_present_flag равно единице, и количество пар синтаксических элементов vcl_initial_cpb_removal_delay [ i ][ j ] и vcl_initial_cpb_removal_offset[ i ][ j ] i-го временного подслоя, когда bp_vcl_hrd_params_present_flag равно единице. Значение bp_cpb_cnt_minus1 должно находиться в диапазоне от нуля до тридцати одного включительно. Значение bp_cpb_cnt_minus1 должно быть равно значению hrd_cpb_cnt_minus1.The parameter bp_max_sub_layers_minus1 plus 1 specifies the maximum number of temporary sublayers for which the CPB removal delay and CBP removal offset are specified in the buffer period SEI message. The value of bp_max_sub_layers_minus1 must be in the range from zero to vps_max_sub_layers_minus1 inclusive. The bp_cpb_cnt_minus1 plus 1 specifies the number of pairs of syntax elements nal_initial_cpb_removal_delay[ i ][ j ] and nal_initial_cpb_removal_offset[ i ][ j ] of the i-th temporary sublayer, when bp_nal_hrd_params_present_flag is equal to one, and the number of pairs of syntax elements vcl_initial_cp b_removal_delay[ i ][ j ] and vcl_initial_cpb_removal_offset[ i ][ j ] of the i-th time sublayer, when bp_vcl_hrd_params_present_flag is equal to one. The value of bp_cpb_cnt_minus1 must be between zero and thirty-one, inclusive. The value of bp_cpb_cnt_minus1 must be equal to the value of hrd_cpb_cnt_minus1.

Примерная семантика сообщения таймирования изображения SEI выглядит следующим образом. SEI-сообщение таймирования изображения предоставляет информацию о задержке удаления CPB и задержке вывода DPB для единицы доступа, ассоциированной с SEI-сообщением. Если bp_nal_hrd_params_present_flag или bp_vcl_hrd_params_present_flag SEI-сообщения периода буферизации, применимого к текущей единице доступа, равны единице, переменная CpbDpbDelaysPresentFlag устанавливается равной единице. В противном случае CpbDpbDelaysPresentFlag устанавливается равным нулю. Наличие SEI-сообщений таймирования изображения определяется следующим образом. Если CpbDpbDelaysPresentFlag равно единице, SEI-сообщение таймирования изображения должно ассоциироваться с текущей единицей доступа. В противном случае (CpbDpbDelaysPresentFlag равно нулю) не должно быть SEI-сообщения таймирования изображения, ассоциированного с текущей единицей доступа. TemporalId в синтаксисе SEI-сообщения таймирования изображения представляет собой TemporalId единицы NAL SEI, содержащей SEI-сообщение таймирования изображения. pt_max_sub_layers_minus1 плюс 1 задает TemporalId представления верхнего слоя, для которого информация задержки удаления CPB содержится в сообщении SEI таймирования изображения. Значение pt_max_sub_layers_minus1 должно находиться в диапазоне от нуля до vps_max_sub_layers_minus1 включительно.The approximate semantics of an SEI image timing message is as follows. The picture timing SEI message provides information about the CPB removal delay and DPB output delay for the access unit associated with the SEI message. If bp_nal_hrd_params_present_flag or bp_vcl_hrd_params_present_flag SEI messages of the buffering period applicable to the current access unit is equal to one, the variable CpbDpbDelaysPresentFlag is set to one. Otherwise, CpbDpbDelaysPresentFlag is set to zero. The presence of SEI image timing messages is determined as follows. If CpbDpbDelaysPresentFlag is equal to one, a picture timing SEI message shall be associated with the current access unit. Otherwise (CpbDpbDelaysPresentFlag equals zero) there shall be no picture timing SEI message associated with the current access unit. The TemporalId in the image timing SEI message syntax is the TemporalId of the NAL SEI unit containing the image timing SEI message. pt_max_sub_layers_minus1 plus 1 specifies the TemporalId of the top layer representation for which the CPB removal delay information is contained in the image timing SEI message. The value of pt_max_sub_layers_minus1 must be in the range from zero to vps_max_sub_layers_minus1 inclusive.

Примерная семантика масштабируемого вкладывающего SEI-сообщения выглядит следующим образом. Масштабируемое вкладывающее SEI-сообщение обеспечивает механизм для ассоциирования SEI-сообщений со специфическими слоями в контексте специфических OLS или со специфическими слоями вне контекста OLS. Масштабируемое вкладывающее SEI-сообщение содержит одно или более SEI-сообщений. SEI-сообщения, содержащиеся в масштабируемом вкладывающем SEI-сообщении, также называются масштабируемыми вложенными SEI-сообщениями. Требование соответствия битового потока состоит в том, что следующие ограничения применяются к содержанию SEI-сообщений в масштабируемом вкладывающем SEI-сообщении. SEI-сообщение, которое имеет значение payloadType, равное ста тридцати двум (хэш декодированного изображения) или ста тридцати трем (масштабируемая вложенность), не должно содержаться в масштабируемом вкладывающем SEI-сообщении. Когда масштабируемое вкладывающее SEI-сообщение содержит период буферизации, таймирование изображения или SEI-сообщение информации единицы декодирования, масштабируемое вкладывающее SEI-сообщение не должно содержать никакого другого SEI-сообщения с payloadType, не равным нулю (период буферизации), единице (таймирование изображения) или ста тридцати (информация единицы декодирования).The approximate semantics of a scalable embedding SEI message is as follows. A scalable embedding SEI message provides a mechanism for associating SEI messages with specific layers within the context of a specific OLS or with specific layers outside the context of an OLS. A scalable embedding SEI message contains one or more SEI messages. SEI messages contained in a scalable nested SEI message are also called scalable nested SEI messages. The bitstream compliance requirement is that the following restrictions apply to the content of SEI messages in a scalable nesting SEI message. An SEI message that has a payloadType value of one hundred thirty-two (decoded image hash) or one hundred thirty-three (scalable nesting) shall not be contained in a scalable nesting SEI message. When a scalable embedding SEI message contains a buffer period, picture timing, or decoding unit information SEI message, the scalable embedding SEI message shall not contain any other SEI message with a payloadType not equal to zero (buffering period), one (image timing), or one hundred thirty (decoding unit information).

Требование соответствия битового потока состоит в том, что следующие ограничения применяются к значению nal_unit_type единицы NAL SEI, содержащего масштабируемое вкладывающее SEI-сообщение. Когда масштабируемое вкладывающее SEI-сообщение содержит SEI-сообщение, которое имеет значение payloadType, равное нулю (период буферизации), единице (хронометраж изображения), ста тридцати (информация единицы декодирования), ста сорока пяти (зависимая индикация RAP) или ста шестидесяти восьми (информация поля кадра), единица NAL SEI, содержащая масштабируемое вкладывающее SEI-сообщение, должна иметь nal_unit_type, равный PREFIX_SEI_NUT. Когда масштабируемое вкладывающее SEI-сообщение содержит SEI-сообщение, которое имеет значение payloadType, равное ста тридцати двум (хэш декодированного изображения), единица NAL SEI, содержащая масштабируемое вкладывающее SEI-сообщение, должна иметь nal_unit_type, равный SUFFIX_SEI_NUT.The bitstream compliance requirement is that the following restrictions apply to the nal_unit_type value of the NAL SEI unit containing the scalable nesting SEI message. When the scalable insert SEI message contains an SEI message that has a payloadType value of zero (buffering period), one (image timing), one hundred thirty (decoding unit information), one hundred forty-five (RAP dependent indication), or one hundred sixty-eight ( frame field information), a NAL SEI unit containing a scalable nesting SEI message shall have a nal_unit_type equal to PREFIX_SEI_NUT. When a scalable embedding SEI message contains an SEI message that has a payloadType value of one hundred thirty-two (the hash of the decoded image), the NAL SEI unit containing the scalable enclosing SEI message shall have a nal_unit_type equal to SUFFIX_SEI_NUT.

nesting_ols_flag устанавливается на единицу, чтобы задать то, что масштабируемые вкладываемые SEI-сообщения применяются к конкретным слоям в контексте конкретных OLS. nesting_ols_flag устанавливается равным нулю, чтобы задать то, что масштабируемые вложенные SEI-сообщения, как правило, применяются (не в контексте OLS) к определенным слоям. Требование соответствия битового потока состоит в том, что следующие ограничения применяются к значению nesting_ols_flag. Когда масштабируемое вкладывающее SEI-сообщение содержит SEI-сообщение, которое имеет значение payloadType, равное нулю (период буферизации), единице (таймирование изображения) или ста тридцати (информация единицы декодирования), значение nesting_ols_flag должно быть равно единице. Когда масштабируемое вкладывающее SEI-сообщение содержит SEI-сообщение, которое имеет payloadType, равный значению в VclAssociatedSeiList, значение nesting_ols_flag должно быть равно нулю. nesting_num_olss_minus1 плюс 1 определяет количество OLS, к которым применяются масштабируемые вложенные SEI-сообщения. Значение nesting_num_olss_minus1 должно находиться в диапазоне от нуля до TotalNumOlss − 1 включительно. nesting_ols_idx_delta_minus1[ i ] используется для получения переменной NestingOlsIdx[ i ], которая определяет индекс OLS i-го OLS, к которой применяются масштабируемые вложенные SEI-сообщения, когда nesting_ols_flag равно единице. Значение nesting_ols_idx_delta_minus1[ i ] должно находиться в диапазоне от нуля до TotalNumOlss минус два включительно. Переменная NestingOlsIdx[ i ] получается следующим образом:nesting_ols_flag is set to one to specify that scalable nesting SEI messages are applied to specific layers in the context of specific OLSs. nesting_ols_flag is set to zero to specify that scalable nested SEI messages are generally applied (not in the context of OLS) to specific layers. The bitstream compliance requirement is that the following restrictions apply to the nesting_ols_flag value. When a scalable nesting SEI message contains an SEI message that has a payloadType value of zero (buffering period), one (image timing), or one hundred and thirty (decoding unit information), the value of nesting_ols_flag shall be equal to one. When a scalable nesting SEI message contains an SEI message that has a payloadType equal to a value in VclAssociatedSeiList, the value of nesting_ols_flag must be zero. nesting_num_olss_minus1 plus 1 specifies the number of OLSs to which scalable nested SEI messages apply. The value of nesting_num_olss_minus1 must be in the range from zero to TotalNumOlss − 1, inclusive. nesting_ols_idx_delta_minus1[ i ] is used to obtain the variable NestingOlsIdx[ i ], which specifies the OLS index of the i-th OLS to which scaled nested SEI messages are applied when nesting_ols_flag is equal to one. The value of nesting_ols_idx_delta_minus1[ i ] must be in the range from zero to TotalNumOlss minus two, inclusive. The NestingOlsIdx[ i ] variable is obtained as follows:

if( i = = 0 )
NestingOlsIdx[ i ] = nesting_ols_idx_delta_minus1[ i ] (D-2)
else
NestingOlsIdx[ i ] = NestingOlsIdx[ i − 1 ] + nesting_ols_idx_delta_minus1[ i ] + 1
if( i == 0 )
NestingOlsIdx[ i ] = nesting_ols_idx_delta_minus1[ i ] (D-2)
else
NestingOlsIdx[ i ] = NestingOlsIdx[ i − 1 ] + nesting_ols_idx_delta_minus1[ i ] + 1

Nesting_num_ols_layers_minus1[i] плюс 1 задает количество слоев, к которым применяются масштабируемые вкладывающие SEI-сообщения в контексте NestingOlsIdx[i]-го OLS. Значение nesting_num_ols_layers_minus1[i] должно находиться в диапазоне от нуля до NumLayersInOls[NestingOlsIdx[i]] − 1 включительно. nesting_ols_layer_idx_delta_minus1[ i ][ j ] используется для получения переменной NestingOlsLayerIdx[ i ][ j ], которая задает индекс слоя OLS j-го слоя, к которому применяются масштабируемые вкладывающие SEI-сообщения в контексте NestingOlsIdx[ i ]-го OLS, когда nesting_ols_flag равно единице. Значение nesting_ols_layer_idx_delta_minus1[i] должно находиться в диапазоне от нуля до NumLayersInOls[nestingOlsIdx[i]] минус два включительно. Переменная NestingOlsLayerIdx[ i ][ j ] получается следующим образом:Nesting_num_ols_layers_minus1[i] plus 1 specifies the number of layers to which scalable nesting SEI messages are applied in the context of the NestingOlsIdx[i]th OLS. The value of nesting_num_ols_layers_minus1[i] must be in the range from zero to NumLayersInOls[NestingOlsIdx[i]] − 1, inclusive. nesting_ols_layer_idx_delta_minus1[ i ][ j ] is used to obtain the NestingOlsLayerIdx[ i ][ j ] variable, which specifies the OLS layer index of the jth layer to which scaled nesting SEI messages are applied in the context of the NestingOlsIdx[ i ]th OLS when nesting_ols_flag is equal to unit. The value of nesting_ols_layer_idx_delta_minus1[i] must be in the range from zero to NumLayersInOls[nestingOlsIdx[i]] minus two, inclusive. The NestingOlsLayerIdx[ i ][ j ] variable is obtained as follows:

if( j = = 0 )
NestingOlsLayerIdx[ i ][ j ] = nesting_ols_layer_idx_delta_minus1[ i ][ j ] (D-2)
else
NestingOlsLayerIdx[ i ][ j ] = NestingOlsLayerIdx[ i ][ j − 1 ] +
nesting_ols_layer_idx_delta_minus1[ i ][ j ] + 1
if( j == 0 )
NestingOlsLayerIdx[ i ][ j ] = nesting_ols_layer_idx_delta_minus1[ i ][ j ] (D-2)
else
NestingOlsLayerIdx[ i ][ j ] = NestingOlsLayerIdx[ i ][ j − 1 ] +
nesting_ols_layer_idx_delta_minus1[ i ][ j ] + 1

Наименьшее значение среди всех значений LayerIdInOls[ NestingOlsIdx[ i ] ] [ NestingOlsLayerIdx[ i ][ 0 ] ] для i в диапазоне от нуля до nesting_num_olss_minus1 включительно должно быть равно nuh_layer_id текущей единицы NAL SEI (единицы NAL SEI, содержащей масштабируемое вкладывающее SEI-сообщение). nesting_all_layers_flag устанавливается равным единице для задания того, чтобы масштабируемые вкладывающие SEI-сообщения применялись, как правило, ко всем слоям, у которых nuh_layer_id больше или равно nuh_layer_id текущей единицы SEI NAL. nesting_all_layers_flag устанавливается равным нулю для задания того, чтобы масштабируемые вкладывающие SEI-сообщения могли или не могли в целом применяться ко всем слоям, у которых nuh_layer_id больше или равно nuh_layer_id текущей единицы SEI NAL. nesting_num_layers_minus1 плюс 1 задает количество слоев, к которым, как правило, применяются масштабируемые вкладывающие SEI-сообщения. Значение nesting_num_layers_minus1 должно находиться в диапазоне от нуля до vps_max_layers_minus1 − GeneralLayerIdx[nuh_layer_id] включительно, где nuh_layer_id – это nuh_layer_id текущей единицы SEI NAL. nesting_layer_id[ i ] задает значение nuh_layer_id i-го слоя, к которому, как правило, применяются масштабируемые вкладывающие SEI-сообщения, когда nesting_all_layers_flag равно нулю. Значение nesting_layer_id[ i ] должно быть больше, чем nuh_layer_id, где nuh_layer_id – это nuh_layer_id текущей единицы SEI NAL. Когда nesting_ols_flag равно нулю, переменная NestingNumLayers, указывающая количество слоев, к которым, как правило, применяются масштабируемые вложенные SEI-сообщения, и список NestingLayerId[ i ] для i в диапазоне от нуля до NestingNumLayers – 1 включительно, определяющим список значений nuh_layer_id слоев, к которым, как правило, применяются масштабируемые вложенные SEI-сообщения, получаются следующим образом, где nuh_layer_id – это nuh_layer_id текущей единицы SEI NAL.The smallest value among all LayerIdInOls[ NestingOlsIdx[ i ] ] [ NestingOlsLayerIdx[ i ][ 0 ] ] for i in the range zero up to and including nesting_num_olss_minus1 must be equal to the nuh_layer_id of the current NAL SEI unit (the NAL SEI unit containing the scalable nesting SEI message) . nesting_all_layers_flag is set to one to cause scalable nesting SEI messages to apply generally to all layers that have a nuh_layer_id greater than or equal to the nuh_layer_id of the current SEI NAL unit. nesting_all_layers_flag is set to zero to specify that scalable nesting SEI messages may or may not be applied broadly to all layers whose nuh_layer_id is greater than or equal to the nuh_layer_id of the current SEI NAL unit. nesting_num_layers_minus1 plus 1 specifies the number of layers to which scalable nesting SEI messages are typically applied. The value of nesting_num_layers_minus1 must be in the range from zero to vps_max_layers_minus1 − GeneralLayerIdx[nuh_layer_id] inclusive, where nuh_layer_id is the nuh_layer_id of the current SEI NAL unit. nesting_layer_id[ i ] specifies the nuh_layer_id value of the i-th layer to which scaled nesting SEI messages are typically applied when nesting_all_layers_flag is zero. The value of nesting_layer_id[ i ] must be greater than nuh_layer_id, where nuh_layer_id is the nuh_layer_id of the current SEI NAL unit. When nesting_ols_flag is zero, a NestingNumLayers variable indicating the number of layers to which scaled nested SEI messages are typically applied, and a NestingLayerId[ i ] list for i ranging from zero to NestingNumLayers – 1 inclusive, defining a list of nuh_layer_id values for layers to which typically employ scalable nested SEI messages are obtained as follows, where nuh_layer_id is the nuh_layer_id of the current SEI NAL unit.

if( nesting_all_layers_flag ) {
NestingNumLayers = vps_max_layers_minus1 + 1 − GeneralLayerIdx[ nuh_layer_id ]
for( i = 0; i < NestingNumLayers; i ++)
NestingLayerId[ i ] = vps_layer_id[ GeneralLayerIdx[ nuh_layer_id ] + i ]
} else { (D-2)
NestingNumLayers = nesting_num_layers_minus1 + 1
for( i = 0; i < NestingNumLayers; i ++)
NestingLayerId[ i ] = ( i = = 0 ) ? nuh_layer_id : nesting_layer_id[ i ]
}
if( nesting_all_layers_flag ) {
NestingNumLayers = vps_max_layers_minus1 + 1 − GeneralLayerIdx[ nuh_layer_id ]
for( i = 0; i <NestingNumLayers; i++)
NestingLayerId[ i ] = vps_layer_id[ GeneralLayerIdx[ nuh_layer_id ] + i ]
} else { (D-2)
NestingNumLayers = nesting_num_layers_minus1 + 1
for( i = 0; i <NestingNumLayers; i++)
NestingLayerId[ i ] = ( i = = 0 ) ? nuh_layer_id : nesting_layer_id[ i ]
}

Параметр nesting_num_seis_minus1 плюс один задает количество масштабируемых вложенных SEI-сообщений. Значение nesting_num_seis_minus1 должно находиться в диапазоне от нуля до шестидесяти трех включительно. Значение nesting_zero_bit должно равняться нулю.The nesting_num_seis_minus1 plus one parameter specifies the number of nested SEI messages to scale. The nesting_num_seis_minus1 value must be between zero and sixty-three, inclusive. The value of nesting_zero_bit must be zero.

На фиг. 9 показано схематичное представление примерного устройства 900 для кодирования видео. Устройство 900 для кодирования видео подходит для реализации раскрытых примеров/вариантов осуществления, описанных в данном документе. Устройство 900 для кодирования видео содержит нисходящие порты 920, восходящие порты 950 и/или блоки 910 приемопередатчика (Tx/Rx), включающие в себя передатчики и/или приемники для передачи данных по восходящей линии связи и/или нисходящей линии связи через сеть. Устройство 900 для кодирования видео также включает в себя процессор 930, включающий в себя логический блок и/или центральный процессор (CPU) для обработки данных и память 932 для хранения данных. Устройство 900 для кодирования видео может также содержать электрические, оптико-электрические (OE) компоненты, электрооптические (EO) компоненты и/или компоненты беспроводной связи, подключенные к портам 920 восходящей линии связи и/или портам 920 нисходящей линии связи для передачи данных через электрические, оптические или беспроводные сети связи. Устройство 900 для кодирования видео может также включать в себя устройства 960 ввода и/или вывода (I/O) для передачи данных пользователю и от пользователя. Устройства 960 ввода/вывода могут включать в себя устройства вывода, такие как дисплей для отображения видеоданных, динамики для вывода аудиоданных и т. д. Устройства 1080 ввода/вывода также могут включать в себя устройства ввода, такие как клавиатура, мышь, шаровой манипулятор и т. д. и/или соответствующие интерфейсы для взаимодействия с такими устройствами вывода.In fig. 9 shows a schematic diagram of an exemplary video encoding apparatus 900. The video encoding apparatus 900 is suitable for implementing the disclosed examples/embodiments described herein. Video encoding apparatus 900 includes downlink ports 920, uplink ports 950, and/or transceiver (Tx/Rx) units 910 including transmitters and/or receivers for transmitting uplink and/or downlink data through the network. The video encoding apparatus 900 also includes a processor 930 including a logic unit and/or a central processing unit (CPU) for processing data and a memory 932 for storing data. Video encoding apparatus 900 may also include electrical, optical-electrical (OE) components, electro-optical (EO) components, and/or wireless communication components connected to uplink ports 920 and/or downlink ports 920 for transmitting data via electrical , optical or wireless communication networks. The video encoding device 900 may also include input and/or output (I/O) devices 960 for transmitting data to and from the user. Input/output devices 960 may include output devices such as a display for displaying video data, speakers for outputting audio data, etc. Input/output devices 1080 may also include input devices such as a keyboard, mouse, trackball, and etc. and/or appropriate interfaces for interacting with such output devices.

Процессор 930 реализован с помощью программно-аппаратных средств. Процессор 930 может быть реализован в виде одной или более микросхем CPU, ядер (например, в виде многоядерного процессора), программируемых пользователем вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 930 взаимодействует с портами 920 восходящей линии связи, Tx/Rx 910, портами 950 восходящей линии связи и памятью 932. Процессор 930 содержит модуль 914 кодирования. Модуль 914 кодирования реализует раскрытые варианты осуществления, описанные в настоящем документе, такие как способы 100, 1000 и 1100, которые могут использовать многослойную видеопоследовательность 600, многослойную видеопоследовательность 700 и/или битовый поток 800. Модуль 914 кодирования также может реализовывать любой другой способ/механизм, описанный в данном документе. Кроме того, модуль 914 кодирования может реализовать систему 200 кодека, кодер 300, декодер 400 и/или HRD 500. Например, модуль 914 кодирования можно использовать для реализации HRD. Кроме того, модуль 914 кодирования может использоваться для кодирования параметров в битовый поток для поддержки процессов проверки на соответствие HRD. Соответственно, модуль 914 кодирования может быть выполнен с возможностью выполнения механизмов для решения одной или более проблем, рассмотренных выше. Следовательно, модуль 914 кодирования заставляет устройство 900 для кодирования видео обеспечивать дополнительные функциональные возможности и/или эффективность кодирования при кодировании видеоданных. Таким образом, модуль 914 кодирования улучшает функциональные возможности устройства 900 для кодирования видео, а также решает проблемы, характерные для техники кодирования видео. Кроме того, модуль 914 кодирования осуществляет перевод устройства 900 для кодирования видео в другое состояние. Альтернативно модуль 914 кодирования может быть реализован в виде инструкций, хранящихся в памяти 932 и исполняемых процессором 930 (например, в виде компьютерного программного продукта, хранящегося на невременном носителе информации).The 930 processor is implemented using hardware and software. The processor 930 may be implemented as one or more CPU chips, cores (eg, a multi-core processor), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). Processor 930 interfaces with uplink ports 920, Tx/Rx 910, uplink ports 950, and memory 932. Processor 930 includes an encoding module 914. Encoding module 914 implements the disclosed embodiments described herein, such as methods 100, 1000, and 1100, which may use multilayer video sequence 600, multilayer video sequence 700, and/or bitstream 800. Encoding module 914 may also implement any other method/mechanism described in this document. In addition, encoding module 914 may implement codec system 200, encoder 300, decoder 400, and/or HRD 500. For example, encoding module 914 may be used to implement HRD. In addition, encoding module 914 may be used to encode parameters into a bitstream to support HRD compliance testing processes. Accordingly, encoding module 914 may be configured to implement mechanisms to solve one or more of the problems discussed above. Therefore, encoding module 914 causes video encoding apparatus 900 to provide additional functionality and/or encoding efficiency when encoding video data. Thus, encoding module 914 improves the functionality of video encoding apparatus 900 and also solves problems inherent in video encoding techniques. In addition, the encoding unit 914 converts the video encoding device 900 to another state. Alternatively, encoding module 914 may be implemented as instructions stored in memory 932 and executed by processor 930 (eg, as a computer program product stored on a non-transitory storage medium).

Память 932 содержит память одного или более типов, такую как диски, ленточные накопители, твердотельные накопители, постоянная память (RAM), оперативная память (ROM), флэш-память, троичная память с адресацией по содержимому (TCAM), статическая оперативная память (SRAM) и т. д. Память 932 может использоваться в качестве устройства хранения данных при переполнении для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы.Memory 932 includes one or more types of memory, such as disks, tape drives, solid state drives, read only memory (RAM), random access memory (ROM), flash memory, ternary content addressable memory (TCAM), static random access memory (SRAM). ) etc. The memory 932 can be used as an overflow storage device to store programs when such programs are selected for execution, and to store instructions and data that are read during program execution.

На фиг. 10 показана блок-схема последовательности операций примерного способа 1000 кодирования видеопоследовательности в битовый поток путем включения полученных параметров HRD для поддержки тестов на соответствие битового потока с помощью HRD. Способ 1000 может использоваться кодером, таким как система 200 кодека, кодер 300 и/или устройство 900 для кодирования видео, при выполнении способа 100. Кроме того, способ 1000 может выполняться в HRD 500 и, следовательно, может выполнять тесты на соответствие над многослойной видеопоследовательностью 600, многослойной видеопоследовательностью 700 и/или битовым потоком 800.In fig. 10 is a flowchart of an exemplary method 1000 for encoding a video sequence into a bitstream by incorporating received HRD parameters to support bitstream compliance tests using the HRD. Method 1000 may be used by an encoder, such as codec system 200, encoder 300, and/or video encoder 900, when performing method 100. Additionally, method 1000 may be executed on HRD 500 and therefore may perform compliance tests on a multi-layer video sequence 600, a multilayer video sequence 700, and/or a bitstream 800.

Способ 1000 может начинаться тогда, когда кодер принимает видеопоследовательность и определяет необходимость кодирования этой видеопоследовательности в многослойный битовый поток, например, на основе пользовательского ввода. На этапе 1001 кодер кодирует множество подслоев/представлений подслоев в битовый поток. Кодер определяет параметры HRD для подслоев. В этом примере все параметры HRD являются одинаковыми для множества подслоев/представлений подслоев. Кодер кодирует набор параметров HRD в битовый поток для максимального представления подслоя/подслоя. Далее кодер кодирует флаг sublayer_cpb_params_present_flag в битовый поток. Параметр sublayer_cpb_params_present_flag может быть установлен равным нулю, чтобы указать то, что параметры HRD для верхнего слоя/представления подслоя применяются ко всем подслоям/представлениям подслоев. Параметр sublayer_cpb_params_present_flag может быть закодирован в VPS в битовом потоке.Method 1000 may begin when an encoder receives a video sequence and determines whether to encode the video sequence into a multilayer bitstream, for example, based on user input. At step 1001, the encoder encodes the plurality of sublayers/sublayer representations into a bitstream. The encoder determines the HRD parameters for the sublayers. In this example, all HRD parameters are the same across multiple sublayers/sublayer views. The encoder encodes a set of HRD parameters into a bitstream to maximize sublayer/sublayer representation. Next, the encoder encodes the sublayer_cpb_params_present_flag flag into the bitstream. The sublayer_cpb_params_present_flag parameter can be set to zero to indicate that the HRD parameters for the top layer/sublayer view apply to all sublayers/sublayer views. The sublayer_cpb_params_present_flag parameter can be encoded in the VPS in the bitstream.

На этапе 1003 HRD считывает параметры HRD и sublayer_cpb_params_present_flag. Затем HRD может сделать вывод относительно того, что параметры HRD для всех нижних подслоев/представлений подслоев, которые имеют TemporalId, которые меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя/подслоя с максимальным TemporalId, когда sublayer_cpb_params_present_flag установлен равным нулю. Например, множество подслоев/представлений подслоев может ассоциироваться с временными ID (TemporalId), такими как временные ID 622. TemporalId максимального представления подслоя может быть выражен как максимальный TemporalId HRD (hrd_max_tid[ i ]), где i указывает синтаксическую структуру параметра i-го HRD. Следовательно, TemporalId нижних подслоев/представлений подслоев могут находиться в диапазоне от нуля до hrd_max_tid[ i ] минус один. hrd_max_tid[ i ] может быть закодирован в VPS. Параметры HRD, которые могут быть выведены, могут включать в себя, например, синтаксический элемент fixed_pic_rate_general_flag[ i ], синтаксическую структуру sublayer_hrd_parameters( i ) и/или general_vcl_hrd_params_present_flag. fixed_pic_rate_general_flag[ i ] представляет собой синтаксический элемент, который указывает то, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода. sublayer_hrd_parameters( i ) представляет собой синтаксическую структуру, которая содержит параметры HRD для одного или более подслоев. general_vcl_hrd_params_present_flag представляет собой флаг, который указывает то, присутствуют ли параметры HRD VCL, относящиеся к точке соответствия, в синтаксической структуре общих параметров HRD.At step 1003, the HRD reads the HRD parameters and sublayer_cpb_params_present_flag. HRD can then infer that the HRD parameters for all lower sublayers/sublayer views that have TemporalIds that are less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view/sublayer views with the maximum TemporalId when sublayer_cpb_params_present_flag is set to zero. For example, a plurality of sublayers/sublayer views may be associated with temporary IDs (TemporalId), such as temporary ID 622. The TemporalId of a maximum sublayer view may be expressed as the maximum TemporalId HRD (hrd_max_tid[ i ]), where i indicates the syntactic structure of the ith HRD parameter . Therefore, the TemporalId of lower sublayers/sublayer views can range from zero to hrd_max_tid[ i ] minus one. hrd_max_tid[ i ] can be encoded in the VPS. The HRD parameters that may be inferred may include, for example, the syntax element fixed_pic_rate_general_flag[ i ], the syntax structure sublayer_hrd_parameters( i ), and/or the general_vcl_hrd_params_present_flag. fixed_pic_rate_general_flag[ i ] is a syntax element that indicates whether the temporal distance between the HRD output times of successive pictures in output order is limited. sublayer_hrd_parameters( i ) is a syntactic structure that contains HRD parameters for one or more sublayers. general_vcl_hrd_params_present_flag is a flag that indicates whether the VCL HRD parameters related to the match point are present in the syntactic structure of the general HRD parameters.

На этапе 1005 HRD может выполнить набор тестов на соответствие битового потока для битового потока, используя параметры HRD. В частности, HRD может использовать параметры HRD из максимального подслоя/представления подслоя для выполнения тестов на соответствие для всех подслоев/представлений подслоев (включая нижние подуровни/представления).At step 1005, the HRD may perform a set of bitstream compliance tests for the bitstream using the HRD parameters. In particular, the HRD may use the HRD parameters from the maximum sublayer/sublayer view to perform compliance tests on all sublayers/sublayer views (including lower sublayers/views).

На этапе 1007 кодер может сохранить битовый поток для его дальнейшей передачи в декодер.At step 1007, the encoder may store the bitstream for further transmission to the decoder.

На фиг. 11 показана блок-схема последовательности операций примерного способа 1100 декодирования видеопоследовательности из битового потока, включающего в себя полученные параметры HRD, например, для использования в тестах на соответствие битового потока с помощью HRD, такого как HRD 500. Способ 1100 может использоваться декодером, таким как система 200 кодека, декодер 400 и/или устройство 900 для кодирования видео, при выполнении способа 100. Кроме того, способ 1100 может выполняться с использованием битового потока, таким как битовый поток 800, который включает в себя многослойную видеопоследовательность 600 и/или многослойную видеопоследовательность 700.In fig. 11 is a flowchart of an exemplary method 1100 for decoding a video sequence from a bitstream including received HRD parameters, for example, for use in bitstream compliance tests using an HRD such as HRD 500. The method 1100 may be used by a decoder such as codec system 200, decoder 400, and/or video encoding apparatus 900, when performing method 100. Additionally, method 1100 may be performed using a bitstream, such as bitstream 800, that includes a multilayer video sequence 600 and/or a multilayer video sequence 700.

Способ 1100 может начинаться тогда, когда декодер начинает прием битового потока кодированных данных, представляющих многослойную видеопоследовательность, например, в результате выполнения способа 1000. На этапе 1101 приемник принимает битовый поток, содержащий множество подслоев/ представлений подслоев. Битовый поток также содержит параметры HRD и sublayer_cpb_params_present_flag. sublayer_cpb_params_present_flag может быть установлен равным нулю, чтобы указать то, что параметры HRD для верхнего слоя/представления подслоя применяются ко всем подслоям/представлениям подслоев. sublayer_cpb_params_present_flag может быть закодирован в VPS в битовом потоке.Method 1100 may begin when a decoder begins receiving a bitstream of encoded data representing a multi-layer video sequence, for example, as a result of method 1000. At step 1101, the receiver receives a bitstream containing a plurality of sublayers/representations of sublayers. The bitstream also contains the HRD and sublayer_cpb_params_present_flag parameters. sublayer_cpb_params_present_flag can be set to zero to indicate that the HRD parameters for the top layer/sublayer view apply to all sublayers/sublayer views. sublayer_cpb_params_present_flag can be encoded in the VPS in the bitstream.

На этапе 1103 декодер делает вывод относительно того, что параметры HRD для всех представлений нижнего подслоя с TemporalId меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю. Например, множество подслоев/представлений подслоев может ассоциироваться с TemporalId, такими как временные ID 622. TemporalId максимального представления подслоя может быть выражен как максимальный TemporalId HRD (hrd_max_tid[ i ]), где i указывает синтаксическую структуру i-го параметра HRD. Следовательно, TemporalId нижних подслоев/представлений подслоев могут находиться в диапазоне от нуля до hrd_max_tid[ i ] минус один. hrd_max_tid[ i ] может быть закодирован в VPS. Параметры HRD, которые могут быть выведены, могут включать в себя, например, синтаксический элемент fixed_pic_rate_general_flag[ i ], синтаксическую структуру sublayer_hrd_parameters( i ) и/или general_vcl_hrd_params_present_flag. fixed_pic_rate_general_flag[ i ] представляет собой синтаксический элемент, который указывает то, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода. sublayer_hrd_parameters( i ) представляет собой синтаксическую структуру, которая содержит параметры HRD для одного или более подслоев. general_vcl_hrd_params_present_flag представляет собой флаг, который указывает то, присутствуют ли параметры HRD VCL, относящиеся к точке соответствия, в синтаксической структуре общих параметров HRD.At step 1103, the decoder concludes that the HRD parameters for all views of the lower sublayer with a TemporalId less than the maximum TemporalId are equal to the HRD parameters for the maximum view of the sublayer with the maximum TemporalId when the sublayer_cpb_params_present_flag is set to zero. For example, a plurality of sublayers/sublayer views may be associated with TemporalIds, such as temporary IDs 622. The TemporalId of a maximum sublayer view may be expressed as a maximum TemporalId HRD (hrd_max_tid[ i ]), where i indicates the syntactic structure of the i th HRD parameter. Therefore, the TemporalId of lower sublayers/sublayer views can range from zero to hrd_max_tid[ i ] minus one. hrd_max_tid[ i ] can be encoded in the VPS. The HRD parameters that may be inferred may include, for example, the syntax element fixed_pic_rate_general_flag[ i ], the syntax structure sublayer_hrd_parameters( i ), and/or the general_vcl_hrd_params_present_flag. fixed_pic_rate_general_flag[ i ] is a syntax element that indicates whether the temporal distance between the HRD output times of successive pictures in output order is limited. sublayer_hrd_parameters( i ) is a syntactic structure that contains HRD parameters for one or more sublayers. general_vcl_hrd_params_present_flag is a flag that indicates whether the VCL HRD parameters related to the match point are present in the syntactic structure of the general HRD parameters.

На этапе 1105 декодер декодирует изображение из подслоев/представлений подслоев. На этапе 1107 декодер направляет декодированное изображение для отображения в виде части декодированной видеопоследовательности.At step 1105, the decoder decodes the image from the sublayers/sublayer representations. At step 1107, the decoder directs the decoded image to be displayed as part of the decoded video sequence.

На фиг. 12 показано схематичное представление примерной системы 1200 для кодирования видеопоследовательности в битовом потоке путем включения полученных параметров HRD. Система 1200 может быть реализована посредством кодера и декодера, таких как система 200 кодека, кодер 300, декодер 400 и/или устройство 900 для кодирования видео. Кроме того, система 1200 может использовать HRD 500 для выполнения тестов на соответствие над многослойной видеопоследовательностью 600, многослойной видеопоследовательностью 700 и/или битовым потоком 800. В дополнение к этому, система 1200 может использоваться при реализации способа 100, 1000 и/или 1100.In fig. 12 shows a schematic representation of an exemplary system 1200 for encoding a video sequence into a bitstream by incorporating the learned HRD parameters. The system 1200 may be implemented by an encoder and decoder, such as a codec system 200, an encoder 300, a decoder 400, and/or a video encoder 900. In addition, system 1200 may use HRD 500 to perform compliance tests on multilayer video sequence 600, multilayer video sequence 700, and/or bitstream 800. In addition, system 1200 may be used in implementing method 100, 1000, and/or 1100.

Система 1200 включает в себя видеокодер 1202. Видеокодер 1202 содержит модуль 1203 кодирования для кодирования множества представлений подслоев в битовый поток. Модуль 1203 кодирования дополнительно предназначен для кодирования в битовый поток параметров HRD битового потока и sublayer_cpb_params_present_flag. Видеокодер 1202 дополнительно содержит модуль 1204 вывода для вывода относительно того, что параметры HRD для всех представлений подслоев с TemporalId меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю. Видеокодер 1202 дополнительно содержит модуль 1205 HRD для выполнения набора тестов на соответствие битового потока над битовым потоком на основе параметров HRD. Видеокодер 1202 дополнительно содержит модуль 1206 хранения, предназначенный для хранения битового потока для его дальнейшей передачи в декодер. Видеокодер 1202 дополнительно содержит модуль 1207 передачи, предназначенный для передачи битового потока в видеодекодер 1210. Видеокодер 1202 может быть дополнительно выполнен с возможностью выполнения любого из этапов способа 1000.System 1200 includes a video encoder 1202. Video encoder 1202 includes an encoding module 1203 for encoding a plurality of sublayer representations into a bitstream. The encoding module 1203 is further configured to encode the bitstream parameters HRD and sublayer_cpb_params_present_flag into the bitstream. Video encoder 1202 further includes an output module 1204 for outputting that the HRD parameters for all sublayer views with a TemporalId less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when the sublayer_cpb_params_present_flag flag is set to zero. Video encoder 1202 further includes an HRD module 1205 for performing a set of bitstream compliance tests on the bitstream based on HRD parameters. The video encoder 1202 further includes a storage module 1206 for storing the bit stream for further transmission to the decoder. Video encoder 1202 further includes a transmit module 1207 for transmitting a bit stream to video decoder 1210. Video encoder 1202 may be further configured to perform any of the steps of method 1000.

Система 1200 также включает в себя видеодекодер 1210. Видеодекодер 1210 содержит модуль 1211 приема для приема битового потока, содержащего множество представлений подслоев, параметры HRD и sublayer_cpb_params_present_flag. Видеодекодер 1210 дополнительно содержит модуль 1213 вывода для вывода относительно того, что параметры HRD для всех представлений подслоев с TemporalId меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю. Видеодекодер 1210 дополнительно содержит модуль 1215 декодирования для декодирования изображения из представлений подслоев. Видеодекодер 1210 дополнительно содержит модуль 1217 пересылки для пересылки изображения для отображения в виде части декодированной видеопоследовательности. Видеодекодер 1210 может быть дополнительно выполнен с возможностью выполнения любого из этапов способа 1100.System 1200 also includes a video decoder 1210. Video decoder 1210 includes a receive module 1211 for receiving a bitstream containing a plurality of sublayer representations, HRD parameters, and sublayer_cpb_params_present_flag. Video decoder 1210 further includes an output module 1213 for outputting that the HRD parameters for all sublayer views with a TemporalId less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when the sublayer_cpb_params_present_flag is set to zero. Video decoder 1210 further includes a decoding module 1215 for decoding an image from sublayer representations. The video decoder 1210 further includes a forwarding module 1217 for forwarding an image for display as part of the decoded video sequence. Video decoder 1210 may be further configured to perform any of the steps of method 1100.

Первый компонент напрямую связан со вторым компонентом, когда между первым компонентом и вторым компонентом нет промежуточных компонентов, за исключением линии, дорожки или другой среды. Первый компонент косвенно связан со вторым компонентом, когда между первым компонентом и вторым компонентом имеются промежуточные компоненты, отличные от линии, дорожки или другой среды. Термин «связанный» и его варианты включают в себя как напрямую связанный, так и косвенно связанный. Использование термина «приблизительно» означает диапазон, включающий в себя ± 10% от последующего числа, если не указано иное.The first component is directly connected to the second component when there is no intermediate component between the first component and the second component other than a line, track, or other medium. A first component is indirectly coupled to a second component when there are intermediate components other than a line, track, or other medium between the first component and the second component. The term “related” and its variations include both directly related and indirectly related. The use of the term “approximately” means a range including ± 10% of the following number unless otherwise noted.

Кроме того, следует также понимать, что этапы примерных способов, изложенных в данном документе, не обязательно должны выполняться в описанном порядке, и порядок этапов таких способов следует рассматривать только как примерный. Аналогичным образом, в такие способы могут быть включены дополнительные этапы, а некоторые этапы могут быть исключены или объединены в способах, соответствующих различным вариантам осуществления настоящего раскрытия.In addition, it should also be understood that the steps of the exemplary methods set forth herein need not be performed in the order described, and the order of the steps of such methods should be considered as exemplary only. Likewise, additional steps may be included in such methods, and some steps may be omitted or combined in methods consistent with various embodiments of the present disclosure.

Несмотря на то, что в настоящем раскрытии было представлено несколько вариантов осуществления, должно быть понятно, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах без отклонения от сущности или объема настоящего раскрытия. Настоящие примеры следует рассматривать как иллюстративные, а не ограничительные, и примеры не имеют намерения ограничивать изобретение деталями, приведенными в данном документе. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или некоторые функции могут быть опущены или не реализованы.Although several embodiments have been presented in the present disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered illustrative and not restrictive, and the examples are not intended to limit the invention to the details given herein. For example, various elements or components may be combined or integrated into another system, or some functionality may be omitted or not implemented.

В дополнение к этому, технологии, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как дискретные или отдельные, могут быть объединены или интегрированы с другими системами, компонентами, технологиями или способами, что не выходит за рамки объема настоящего раскрытия. Другие примеры изменений, замен и модификаций могут быть установлены специалистом в данной области техники и могут быть осуществлены без отклонения от сущности и объема, раскрытых в данном документе.In addition, the technologies, systems, subsystems, and methods described and illustrated in various embodiments as discrete or separate may be combined or integrated with other systems, components, technologies, or methods without departing from the scope of the present disclosure. Other examples of changes, substitutions and modifications may be ascertained by one skilled in the art and may be made without departing from the spirit and scope disclosed herein.

Claims (36)

1. Способ декодирования, реализуемый декодером, содержащий этапы, на которых:1. A decoding method implemented by a decoder, containing the stages of: принимают с помощью приемника декодера битовый поток, содержащий множество представлений подслоев, параметры гипотетического опорного декодера (HRD) и флаг наличия параметров буфера кодированных изображений (CPB) подслоя (sublayer_cpb_params_present_flag), причем представление подслоя представляет собой поднабор битового потока, содержащего единицы NAL конкретного подслоя и нижних подслоев;receiving, by a decoder receiver, a bitstream containing a plurality of sublayer representations, hypothetical reference decoder (HRD) parameters, and a sublayer coded picture buffer (CPB) parameter presence flag (sublayer_cpb_params_present_flag), wherein the sublayer representation is a subset of the bitstream containing the NAL units of the particular sublayer and lower sublayers; осуществляют с помощью процессора декодера вывод о том, что параметры HRD для всех представлений подслоев с временными идентификаторами (TemporalIds), меньшими максимального TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда sublayer_cpb_params_present_flag установлен равным нулю; иthe decoder processor determines that the HRD parameters for all sublayer representations with TemporalIds less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer representation with the maximum TemporalId when sublayer_cpb_params_present_flag is set to zero; And декодируют с помощью процессора изображение из представлений подслоев.decoding the image from the sublayer representations using the processor. 2. Способ по п. 1, в котором sublayer_cpb_params_present_flag содержится в наборе параметров видео (VPS) в битовом потоке.2. The method of claim 1, wherein the sublayer_cpb_params_present_flag is contained in a video parameter set (VPS) in the bitstream. 3. Способ по п. 1 или 2, в котором максимальный TemporalId максимального представления подслоя выражается как максимальный TemporalId HRD (hrd_max_tid[i]), где i указывает синтаксическую структуру i-го параметра HRD.3. The method of claim 1 or 2, wherein the maximum TemporalId of the maximum representation of the sublayer is expressed as the maximum TemporalId of the HRD (hrd_max_tid[i]), where i indicates the syntactic structure of the i-th HRD parameter. 4. Способ по любому из пп. 1-3, в котором TemporalId, которые меньше максимального TemporalId, находятся в диапазоне от нуля до hrd_max_tid[i] минус один.4. Method according to any one of paragraphs. 1-3, in which TemporalIds that are less than the maximum TemporalId are in the range from zero to hrd_max_tid[i] minus one. 5. Способ по любому из пп. 1-4, в котором параметры HRD включают в себя общий флаг фиксированной скорости вывода изображений (fixed_pic_rate_general_flag[i]), указывающий, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода.5. Method according to any one of paragraphs. 1-4, in which the HRD parameters include a general fixed picture output rate flag (fixed_pic_rate_general_flag[i]) indicating whether the time distance between the HRD output times of successive pictures in output order is limited. 6. Способ по любому из пп. 1-4, в котором параметры HRD включают в себя синтаксическую структуру параметров HRD подслоев (sublayer_hrd_parameters(i)), содержащую параметры HRD для одного или более подслоев.6. Method according to any one of paragraphs. 1-4, wherein the HRD parameters include a sublayer HRD parameters syntactic structure (sublayer_hrd_parameters(i)) containing HRD parameters for one or more sublayers. 7. Способ по любому из пп. 1-4, в котором параметры HRD включают в себя флаг наличия общих параметров HRD слоя кодирования видео (VCL) (general_vcl_hrd_params_present_flag), указывающий, присутствуют ли параметры HRD VCL, относящиеся к точке соответствия, в синтаксической структуре общих параметров HRD.7. Method according to any one of paragraphs. 1-4, wherein the HRD parameters include a video coding layer (VCL) general HRD parameters present flag (general_vcl_hrd_params_present_flag) indicating whether the VCL HRD parameters related to the match point are present in the syntactic structure of the general HRD parameters. 8. Способ кодирования, реализуемый кодером, содержащий этапы, на которых:8. An encoding method implemented by an encoder, containing stages in which: кодируют с помощью процессора кодера множество представлений подслоев в битовый поток;encoding, using the encoder processor, the plurality of sublayer representations into a bitstream; кодируют с помощью процессора в битовый поток параметры гипотетического опорного декодера (HRD) и флаг наличия параметров буфера кодированных изображений (CPB) подслоя (sublayer_cpb_params_present_flag), причем представление подслоя представляет собой поднабор битового потока, содержащего единицы NAL конкретного подслоя и нижних подслоев;encoding, by the processor, into a bit stream the hypothetical reference decoder (HRD) parameters and the coded picture buffer (CPB) parameters present flag of the sublayer (sublayer_cpb_params_present_flag), wherein the representation of the sublayer is a subset of the bit stream containing NAL units of the particular sublayer and lower sublayers; осуществляют с помощью процессора вывод, что параметры HRD для всех представлений подслоев с временными идентификаторами (TemporalIds) меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю.the processor determines that the HRD parameters for all sublayer representations with temporal identifiers (TemporalIds) less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer representation with the maximum TemporalId when the sublayer_cpb_params_present_flag flag is set to zero. 9. Способ по п. 8, в котором sublayer_cpb_params_present_flag кодируется в набор параметров видео (VPS) в битовом потоке.9. The method of claim 8, wherein the sublayer_cpb_params_present_flag is encoded into a video parameter set (VPS) in the bitstream. 10. Способ по любому из пп. 8, 9, в котором максимальный TemporalId максимального представления подслоя выражается как максимальный TemporalId HRD (hrd_max_tid[i]), где i указывает синтаксическую структуру i-го параметра HRD.10. Method according to any one of paragraphs. 8, 9, in which the maximum TemporalId of the maximum representation of the sublayer is expressed as the maximum TemporalId of the HRD (hrd_max_tid[i]), where i indicates the syntactic structure of the i-th HRD parameter. 11. Способ по любому из пп. 8-10, в котором TemporalId, которые меньше максимального TemporalId, находятся в диапазоне от нуля до hrd_max_tid[i] минус один.11. Method according to any one of paragraphs. 8-10, in which TemporalIds that are less than the maximum TemporalId are in the range from zero to hrd_max_tid[i] minus one. 12. Способ по любому из пп. 8-11, в котором параметры HRD включают в себя общий флаг фиксированной скорости вывода изображений (fixed_pic_rate_general_flag[i]), указывающий, ограничено ли временное расстояние между временами вывода HRD последовательных изображений в порядке вывода.12. Method according to any one of paragraphs. 8-11, in which the HRD parameters include a general fixed picture output rate flag (fixed_pic_rate_general_flag[i]) indicating whether the time distance between the HRD output times of successive pictures in output order is limited. 13. Способ по любому из пп. 8-12, в котором параметры HRD включают в себя синтаксическую структуру параметров HRD подслоев (sublayer_hrd_parameters(i)), содержащую параметры HRD для одного или более подслоев.13. Method according to any one of paragraphs. 8-12, wherein the HRD parameters include a sublayer HRD parameters syntactic structure (sublayer_hrd_parameters(i)) containing HRD parameters for one or more sublayers. 14. Способ по любому из пп. 8-13, в котором параметры HRD включают в себя флаг наличия общих параметров HRD слоя кодирования видео (VCL) (general_vcl_hrd_params_present_flag), указывающий, присутствуют ли параметры HRD VCL, относящиеся к точке соответствия, в синтаксической структуре общих параметров HRD.14. Method according to any one of paragraphs. 8-13, in which the HRD parameters include a video coding layer (VCL) general HRD parameters presence flag (general_vcl_hrd_params_present_flag) indicating whether the VCL HRD parameters related to the match point are present in the syntactic structure of the general HRD parameters. 15. Устройство кодирования видео, содержащее:15. A video encoding device comprising: процессор, приемник, соединенный с процессором, память, соединенную с процессором, и передатчик, соединенный с процессором, причем процессор, приемник, память и передатчик выполнены с возможностью реализации способа по любому из пп. 1-14.a processor, a receiver coupled to the processor, a memory coupled to the processor, and a transmitter coupled to the processor, wherein the processor, receiver, memory, and transmitter are configured to implement the method according to any one of claims. 1-14. 16. Энергонезависимый машиночитаемый носитель информации, хранящий компьютерный программный продукт, исполняемый устройством кодирования видео, причем компьютерный программный продукт содержит исполняемые компьютером инструкции, хранящиеся на энергонезависимом машиночитаемом носителе информации, вызывающие, при исполнении процессором, выполнение устройством кодирования видео способа по любому из пп. 1-14.16. A non-transitory computer-readable storage medium storing a computer program product executable by a video encoding device, wherein the computer program product contains computer-executable instructions stored on the non-transitory computer-readable storage medium that cause, when executed by a processor, the video encoding device to execute the method of any one of claims. 1-14. 17. Декодер, содержащий:17. Decoder containing: средство приема для приема битового потока, содержащего множество представлений подслоев, параметры гипотетического опорного декодера (HRD) и флаг наличия параметров буфера кодированных изображений (CPB) подслоя (sublayer_cpb_params_present_flag), причем представление подслоя представляет собой поднабор битового потока, содержащего единицы NAL конкретного подслоя и нижних подслоев;receiving means for receiving a bitstream comprising a plurality of sublayer representations, hypothetical reference decoder (HRD) parameters, and a sublayer coded picture buffer (CPB) parameter presence flag (sublayer_cpb_params_present_flag), wherein the sublayer representation is a subset of the bitstream containing the NAL units of the particular sublayer and lower sublayers; средство вывода для осуществления вывода, что параметры HRD для всех представлений подслоев с временными идентификаторами (TemporalIds) меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю;output means for inferring that the HRD parameters for all sublayer views with temporal identifiers (TemporalIds) less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when the sublayer_cpb_params_present_flag flag is set to zero; средство декодирования для декодирования изображения из представлений подслоев; иdecoding means for decoding the image from the sublayer representations; And средство пересылки для пересылки изображения для отображения в виде части декодированной видеопоследовательности.forwarding means for forwarding the image for display as part of the decoded video sequence. 18. Декодер по п. 17, характеризующийся тем, что дополнительно выполнен с возможностью реализации способа по любому из пп. 1-7.18. The decoder according to claim 17, characterized in that it is additionally configured to implement the method according to any of claims. 1-7. 19. Кодер, содержащий:19. Encoder containing: средство кодирования для:coding tool for: кодирования множества представлений подслоев в битовый поток, причем представление подслоя представляет собой поднабор битового потока, содержащего единицы NAL конкретного подслоя и нижних подслоев;encoding a plurality of sublayer representations into a bitstream, wherein the sublayer representation is a subset of the bitstream containing NAL units of the particular sublayer and lower sublayers; кодирования в битовый поток параметров гипотетического опорного декодера (HRD) и флага наличия параметров буфера кодированных изображений (CPB) подслоя (sublayer_cpb_params_present_flag);encoding into a bit stream the parameters of a hypothetical reference decoder (HRD) and a flag for the presence of parameters of the coded picture buffer (CPB) of the sublayer (sublayer_cpb_params_present_flag); средство осуществления вывода для осуществления вывода, что параметры HRD для всех представлений подслоев с временными идентификаторами (TemporalIds) меньше, чем максимальный TemporalId, равны параметрам HRD для максимального представления подслоя с максимальным TemporalId, когда флаг sublayer_cpb_params_present_flag установлен равным нулю; иinference means for inferring that the HRD parameters for all sublayer views with temporal identifiers (TemporalIds) less than the maximum TemporalId are equal to the HRD parameters for the maximum sublayer view with the maximum TemporalId when the sublayer_cpb_params_present_flag flag is set to zero; And средство хранения для хранения битового потока для его дальнейшей передачи в декодер.storage means for storing the bit stream for further transmission to the decoder. 20. Кодер по п. 19, характеризующийся тем, что дополнительно выполнен с возможностью реализации способа по любому из пп. 8-14.20. The encoder according to claim 19, characterized in that it is additionally configured to implement the method according to any of claims. 8-14.
RU2022110946A 2019-09-24 2020-09-08 Hrd parameters for layer-based conformity testing RU2821048C1 (en)

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024115612A Division RU2024115612A (en) 2019-09-24 2020-09-08 HRD PARAMETERS FOR LAYER-BASED COMPLIANCE TESTING

Publications (1)

Publication Number Publication Date
RU2821048C1 true RU2821048C1 (en) 2024-06-17

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014168893A1 (en) * 2013-04-08 2014-10-16 General Instrument Corporation Signaling for addition or removal of layers in video coding
WO2015056158A1 (en) * 2013-10-14 2015-04-23 Nokia Technologies Oy Multi-layer hypothetical reference decoder
US20160173887A1 (en) * 2013-07-10 2016-06-16 Sharp Kabushiki Kaisha Scaling list signaling and parameter sets activation
US9635369B2 (en) * 2012-07-02 2017-04-25 Qualcomm Incorporated Video parameter set including HRD parameters
RU2628215C2 (en) * 2012-09-24 2017-08-15 Квэлкомм Инкорпорейтед Buffering period and recovery point supplemental enhancement information messages
US10390087B2 (en) * 2014-05-01 2019-08-20 Qualcomm Incorporated Hypothetical reference decoder parameters for partitioning schemes in video coding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9635369B2 (en) * 2012-07-02 2017-04-25 Qualcomm Incorporated Video parameter set including HRD parameters
RU2628215C2 (en) * 2012-09-24 2017-08-15 Квэлкомм Инкорпорейтед Buffering period and recovery point supplemental enhancement information messages
WO2014168893A1 (en) * 2013-04-08 2014-10-16 General Instrument Corporation Signaling for addition or removal of layers in video coding
US20160173887A1 (en) * 2013-07-10 2016-06-16 Sharp Kabushiki Kaisha Scaling list signaling and parameter sets activation
WO2015056158A1 (en) * 2013-10-14 2015-04-23 Nokia Technologies Oy Multi-layer hypothetical reference decoder
US10390087B2 (en) * 2014-05-01 2019-08-20 Qualcomm Incorporated Hypothetical reference decoder parameters for partitioning schemes in video coding

Similar Documents

Publication Publication Date Title
US11800130B2 (en) SEI message dependency simplification in video coding
US20220217394A1 (en) HRD Parameters For Layer Based Conformance Testing
US20220217376A1 (en) Picture Timing And Decoding Unit Information For Temporal Scalability
US20220217375A1 (en) Scalable Nesting SEI Messages For OLSs
KR20220063261A (en) Concurrent Layer for Multiview in Video Coding
KR20210105980A (en) Video encoders, video decoders and corresponding methods
RU2821048C1 (en) Hrd parameters for layer-based conformity testing
RU2820076C1 (en) Hrd compliance tests for ols
RU2819201C1 (en) Information on synchronization of images and decoding units for temporal scalability
RU2822533C1 (en) Limiting set of parameters of nal units based on level