RU2787850C1 - Method for signaling of set of output layers in scalable video stream - Google Patents

Method for signaling of set of output layers in scalable video stream Download PDF

Info

Publication number
RU2787850C1
RU2787850C1 RU2021127569A RU2021127569A RU2787850C1 RU 2787850 C1 RU2787850 C1 RU 2787850C1 RU 2021127569 A RU2021127569 A RU 2021127569A RU 2021127569 A RU2021127569 A RU 2021127569A RU 2787850 C1 RU2787850 C1 RU 2787850C1
Authority
RU
Russia
Prior art keywords
output layer
output
layer
mode
layers
Prior art date
Application number
RU2021127569A
Other languages
Russian (ru)
Inventor
Беондоо ЧОЙ
Штефан ВЕНГЕР
Шань ЛЮ
Original Assignee
TEНСЕНТ АМЕРИКА ЭлЭлСи
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 TEНСЕНТ АМЕРИКА ЭлЭлСи filed Critical TEНСЕНТ АМЕРИКА ЭлЭлСи
Application granted granted Critical
Publication of RU2787850C1 publication Critical patent/RU2787850C1/en

Links

Images

Abstract

FIELD: video encoding/decoding.
SUBSTANCE: decoding of an encoded video bitstream, using at least one processor, includes obtainment of an encoded video sequence including multiple sets of output layers from the encoded video bitstream; obtainment of the first flag indicating, whether each set of output layers of multiple sets of output layers includes more than one layer; based on the first flag indicating that each set of output layers includes more than one layer, obtainment of the first syntax element indicating a mode of the set of output layers; selection of at least one layer from a number of layers included in multiple sets of output layers as at least one output layer based on at least one of the first flag and the first syntax element; and output of at least one output layer.
EFFECT: provision of a mechanism of signaling of a set of output layers for a scalable video stream.
17 cl, 7 dwg

Description

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

[1] Эта заявка испрашивает приоритет предварительной заявки на патент США №62/912 275, поданной 8 октября 2019 г., и заявки на патент США №17/030 950, поданной 24 сентября 2020 г., которые полностью включены в настоящий документ.[1] This application claims priority of U.S. Provisional Application No. 62/912,275, filed October 8, 2019, and U.S. Patent Application No. 17/030,950, filed September 24, 2020, which are incorporated herein in their entirety.

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

[2] Раскрытый предмет изобретения относится к кодированию и декодированию видео, а конкретнее, к механизму сигнализирования набора выходных слоев для масштабируемого потока видео.[2] The disclosed subject matter relates to video encoding and decoding, and more specifically, to a mechanism for signaling a set of output layers for a scalable video stream.

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

[3] ITU-T VCEG (Q6 / 16) и ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) опубликовали стандарт H.265 / HEVC (высокоэффективное кодирование видео) в 2013 г. (версия 1) 2014 г. (версия 2) 2015 г. (версия 3) и 2016 (версия 4). В 2015 году эти две организации по стандартизации совместно сформировали JVET (Joint Video Exploration Team), чтобы изучить потенциал разработки следующего стандарта кодирования видео помимо HEVC. В октябре 2017 года они объявили совместный конкурс предложений по сжатию видео с возможностями, выходящими за рамки HEVC (CfP). К 15 февраля 2018 г. было подано в общей сложности 22 ответа CfP по стандартному динамическому диапазону (SDR), 12 ответов CfP по расширенному динамическому диапазону (HDR) и 12 ответов CfP по категориям видео 360 градусов, соответственно. В апреле 2018 года все полученные ответы CfP были оценены на 122-м MPEG/10-м JVET заседании. В результате этой встречи JVET официально запустил процесс стандартизации кодирования видео следующего поколения за пределами HEVC. Новый стандарт получил название Versatile Video Coding (VVC), a JVET был переименован в Joint Video Expert Team.[3] ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) published the H.265/HEVC (High Efficiency Video Coding) standard in 2013 (version 1) 2014. (version 2) 2015 (version 3) and 2016 (version 4). In 2015, these two standards organizations jointly formed the JVET (Joint Video Exploration Team) to explore the potential of developing the next video coding standard beyond HEVC. In October 2017, they launched a joint call for proposals for video compression with capabilities beyond HEVC (CfP). By February 15, 2018, a total of 22 standard dynamic range (SDR) CfP responses, 12 high dynamic range (HDR) CfP responses, and 12 360-degree video category CfP responses had been submitted, respectively. In April 2018, all CfP responses received were evaluated at the 122nd MPEG/10th JVET meeting. As a result of this meeting, JVET officially launched the next generation video coding standardization process beyond HEVC. The new standard was named Versatile Video Coding (VVC), and JVET was renamed the Joint Video Expert Team.

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

[4] В одном из вариантов осуществления предложен способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий в себя получение кодированной видеопоследовательности, включающей в себя множество наборов выходных слоев, из кодированного битового потока видео; получение первого флага, указывающего, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя; на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, получение первого элемента синтаксиса, указывающего режим набора выходных слоев; выбирание по меньшей мере одного слоя из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя на основе по меньшей мере одного из первого флага и первого элемента синтаксиса; и выведение по меньшей мере одного выходного слоя.[4] In one embodiment, a method for decoding an encoded video bitstream using at least one processor is provided, including: deriving an encoded video sequence including a plurality of output layer sets from an encoded video bitstream; obtaining a first flag indicating whether each output layer set of the plurality of output layer sets includes more than one layer; based on the first flag indicating that each output layer set includes more than one layer, obtaining a first syntax element indicating the mode of the output layer set; selecting at least one layer from among the layers included in the plurality of output layer sets as at least one output layer based on at least one of the first flag and the first syntax element; and deriving at least one output layer.

[5] В одном из вариантов осуществления предложено устройство для декодирования кодированного битового потока видео, содержащее по меньшей мере один элемент памяти, сконфигурированный для хранения программного кода; и по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя: первый код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору получать кодированную видеопоследовательность, включающую в себя множество наборов выходных слоев, из кодированного битового потока видео; второй код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору получать первый флаг, указывающий, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя; третий код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, получать первый элемент синтаксиса, указывающий режим набора выходных слоев; код выбирания, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору выбирать слой из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя на основе по меньшей мере одного из первого флага и первого элемента синтаксиса; и код выведения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору выводить по меньшей мере один выходной слой.[5] In one embodiment, an apparatus for decoding an encoded video bitstream is provided, comprising at least one memory element configured to store program code; and at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: a first acquisition code configured to cause at least one processor to obtain an encoded video sequence including a plurality sets of output layers, from the encoded video bitstream; a second obtaining code configured to cause at least one processor to obtain a first flag indicating whether each output layer set of the plurality of output layer sets includes more than one layer; a third obtaining code configured to cause at least one processor, based on the first flag indicating that each output layer set includes more than one layer, to obtain the first syntax element indicating the mode of the output layer set; selection code configured to cause at least one processor to select a layer from among the layers included in the plurality of output layer sets as at least one output layer based on at least one of the first flag and the first syntax element; and output code configured to cause at least one processor to output at least one output layer.

[6] В одном из вариантов осуществления предлагается невременный машиночитаемый носитель, хранящий инструкции, содержащие одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам: получать кодированную видеопоследовательность, включающую в себя множество наборов выходных слоев, из кодированного битового потока видео; получать первый флаг, указывающий, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя; на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, получать первый элемент синтаксиса, указывающий режим набора выходных слоев; выбирать по меньшей мере один слой из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя, на основе по меньшей мере одного из первого флага и первого элемента синтаксиса; выводить по меньшей мере один выходной слой.[6] In one embodiment, a non-transitory computer-readable medium is provided that stores instructions containing one or more instructions that, when executed by one or more processors of a device for decoding an encoded video bitstream, cause one or more processors to: obtain an encoded video sequence including a plurality of sets of output layers, from the encoded video bitstream; receive a first flag indicating whether each output layer set of the plurality of output layer sets includes more than one layer; based on the first flag indicating that each output layer set includes more than one layer, obtain a first syntax element indicating the mode of the output layer set; select at least one layer from among the layers included in the plurality of output layer sets as at least one output layer based on at least one of the first flag and the first syntax element; output at least one output layer.

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

[7] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых:[7] Additional features, essence and various advantages of the disclosed subject matter will be better understood from the following detailed description and the accompanying drawings, in which:

[8] На фиг. 1 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.[8] FIG. 1 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment.

[9] На фиг. 2 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.[9] FIG. 2 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment.

[10] На фиг. 3 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления.[10] FIG. 3 is a schematic illustration of a simplified block diagram of a decoder according to an embodiment.

[11] На фиг. 4 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления.[11] FIG. 4 is a schematic illustration of a simplified block diagram of an encoder according to an embodiment.

[12] На фиг. 5 показана схематическая иллюстрация примеров таблицы синтаксиса в соответствии с вариантом осуществления.[12] FIG. 5 is a schematic illustration of examples of a syntax table according to an embodiment.

[13] На фиг. 6 показана блок-схема примерного процесса декодирования кодированного битового потока видео в соответствии с вариантом осуществления.[13] FIG. 6 shows a flowchart of an exemplary process for decoding an encoded video bitstream in accordance with an embodiment.

[14] На фиг. 7 показана схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления.[14] FIG. 7 is a schematic illustration of a computer system in accordance with an embodiment.

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

[15] На фиг. 1 проиллюстрирована упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего раскрытия. Система (100) может включать в себя по меньшей мере два терминала (110 и 120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.[15] FIG. 1 illustrates a simplified block diagram of a communication system (100) according to an embodiment of the present disclosure. System (100) may include at least two terminals (110 and 120) interconnected via network (150). For unidirectional data transmission, the first terminal (110) may encode video data at the local location for transmission to another terminal (120) via the network (150). The second terminal (120) may receive the encoded video data of another terminal from the network (150), decode the encoded data, and display the recovered video data. Unidirectional data transfer may be common in media serving applications and the like.

[16] На фиг. 1 показана вторая пара терминалов (130, 140), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.[16] FIG. 1 shows a second pair of terminals (130, 140) providing support for bi-directional encoded video transmission, such as may occur during a video conference call. For bi-directional data transmission, each terminal (130, 140) may encode video data captured at a local location for transmission to another terminal over a network (150). Each terminal (130, 140) may also receive the encoded video data transmitted by the other terminal, may decode the encoded data, and may display the recovered video data on a local display device.

[17] На фиг. 1 терминалы (110-140) могут быть изображены как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (150) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, сети проводной и/или беспроводной связи. Сеть (150) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего раскрытия, если это не объясняется в данном документе ниже.[17] FIG. 1, terminals (110-140) may be depicted as servers, personal computers, and smartphones, but the principles of the present disclosure cannot be limited to this. Embodiments of the present invention find application in laptop computers, tablet computers, media players and/or specialized video conferencing equipment. Network (150) is any number of networks that transmit encoded video data between terminals (110-140), including, for example, wired and/or wireless networks. The communication network (150) may communicate on circuit-switched and/or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks and/or the Internet. For the purposes of this discussion, the architecture and topology of the network (150) may not be essential to the operation of this disclosure, unless explained herein below.

[18] На фиг. 2 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.[18] FIG. 2 illustrates, as an example of application for the disclosed subject matter, the placement of a video encoder and a video decoder in a streaming environment. The disclosed subject matter may be equally applicable to other video-enabled applications including, for example, videoconferencing, digital television, storage of compressed video on digital media including CD, DVD, memory card, etc., and so on. .

[19] Система потоковой передачи может включать в себя подсистему (213) захвата, которая может включать в себя источник (201) видео, например цифровую камеру, создающую, например, поток (202) отсчетов несжатого видео. Данный поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми видеопотоками, может быть обработан кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированный битовый поток (204) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на сервере (205) потоковой передачи для будущего использования. Один или более клиентов (206, 208) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) кодированного битового видеопотока (204). Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию кодированного битового видеопотока (207) и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не изображено). В некоторых системах потоковой передачи битовые видеопотоки (204, 207, 209) могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию ITU-T Н.265. В стадии разработки находится стандарт кодирования видео, неофициально известный как универсальное кодирование видео или VVC. Раскрытый объект изобретения может использоваться в контексте VVC.[19] The streaming system may include a capture subsystem (213), which may include a video source (201), such as a digital camera, producing, for example, a stream (202) of uncompressed video samples. This stream (202) of samples, depicted with a thick line to emphasize the large amount of data compared to encoded video bitstreams, can be processed by an encoder (203) connected to a camera (201). The encoder (203) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream (204), drawn with a thin line to emphasize the smaller amount of data compared to the sample stream, may be stored on the streaming server (205) for future use. One or more streaming clients (206, 208) can access the streaming server (205) to extract copies (207, 209) of the encoded video bitstream (204). The client (206) may include a video decoder (210) that decodes an incoming copy of the encoded video bitstream (207) and produces an outgoing stream (211) of video samples that can be displayed on a display (212) or other visualization device (not shown). In some streaming systems, video bitstreams (204, 207, 209) may be encoded according to certain video coding/compression standards. Examples of these standards include ITU-T Recommendation H.265. A video coding standard is under development, informally known as Universal Video Coding or VVC. The disclosed subject matter may be used in the context of VVC.

[20] Фиг. 3 может быть функциональной блок-схемой видеодекодера (210) согласно варианту осуществления настоящего раскрытия.[20] FIG. 3 may be a functional block diagram of a video decoder (210) according to an embodiment of the present disclosure.

[21] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (210); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети между приемником (310) и энтропийным декодером/парсером (320) (далее «парсер») может быть подключена буферная память (315). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (315) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буфер (315), который может быть сравнительно большим и может быть предпочтительно адаптивного размера.[21] The receiver (310) may receive one or more encoded video sequences to be decoded by the decoder (210); in the same or another embodiment, one coded video sequence at a time, where the decoding of each coded video sequence is independent of other coded video sequences. An encoded video sequence may be received from a channel (312), which may be a hardware/software connection to a storage device that stores the encoded video data. The receiver (310) may receive encoded video data with other data, such as encoded audio data and/or ancillary data streams, which may be sent to their respective using entities (not shown). The receiver (310) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) can be connected between the receiver (310) and the entropy decoder/parser (320) (hereinafter "parser"). When the receiver (310) receives data from a storage/transfer device with sufficient bandwidth and controllability, or from an isosynchronous network, buffer memory (315) may not be needed or may be small. For use in best quality packet networks such as the Internet, a buffer (315) may be required, which may be relatively large and may preferably be of an adaptive size.

[22] Видеодекодер (210) может включать в себя синтаксический анализатор (320) для восстановления символов (321) из энтропийной кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как это было показано на фиг. 3. Управляющая информация для устройства (устройств) визуализации может быть в форме информации дополнительного улучшения (сообщения SEI) или фрагментов набора параметров информации о пригодности видео (VUI) (не изображены). Парсер (320) может выполнять парсинг/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в уровне техники, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, кирпичики, макроблоки, единицы дерева кодирования (CTU), единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Тайл может указывать прямоугольную область CU/CTU в конкретном столбце и ряде тайлов в изображении. Кирпичик может указывать на прямоугольную область рядов CU/CTU в пределах конкретного тайла. Слайс может указывать на один или более кирпичиков изображения, которые содержатся в единице NAL. Субизображение может указывать на прямоугольную область одного или более слайсов в изображении. Энтропийный декодер/парсер также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.[22] The video decoder (210) may include a parser (320) for recovering symbols (321) from the entropy encoded video sequence. The categories of these symbols include information used to control the operation of the decoder (210) and potentially information to control a visualization device such as a display (212) which is not an integral part of the decoder but can be connected to it as shown. in fig. 3. The control information for the rendering device(s) may be in the form of incremental enhancement information (SEI messages) or video usability information (VUI) parameter set fragments (not shown). The parser (320) may parse/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with a video coding technology or standard, and may follow principles well known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The parser (320) may extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include groups of pictures (GOPs), pictures, tiles, slices, bricks, macroblocks, coding tree units (CTUs), coding units (CUs), blocks, transform units (TUs), prediction units (PUs), and so on. . A tile may indicate a rectangular area of a CU/CTU in a particular column and row of tiles in an image. A brick may point to a rectangular area of CU/CTU rows within a particular tile. A slice may point to one or more image bricks that are contained in a NAL unit. A sub-image may indicate a rectangular region of one or more slices in an image. The entropy decoder/parser may also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

[23] Парсер (320) может выполнять операцию энтропийного декодирования/парсинга видеопоследовательности, принятой из буфера (315), чтобы создавать символы (321).[23] The parser (320) may perform an entropy decoding/parsing operation of the video sequence received from the buffer (315) to create symbols (321).

[24] Восстановление символов (321) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: внешнее и внутреннее изображение, внешний и внутренний блок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации подгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (320). Поток такой управляющей информации подгруппы между парсером (320) и множеством модулей ниже не показан для ясности.[24] Symbol recovery (321) may include many different modules depending on the type of encoded video image or parts thereof (such as: external and internal image, external and internal block) and other factors. Which modules are involved and how can be controlled by the subgroup control information parsed from the encoded video sequence by the parser (320). The flow of such subgroup control information between the parser (320) and the plurality of modules is not shown below for clarity.

[25] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.[25] In addition to the functional blocks already mentioned, the decoder 210 can be conceptually subdivided into a number of functional modules, as described below. In a practical implementation operating under commercial constraints, many of these modules interact closely with each other and can be at least partially integrated into each other. However, for purposes of describing the disclosed subject matter, the conceptual division into functional modules below is appropriate.

[26] Первым модулем является модуль (351) масштабирования/обратного преобразования. Модуль (351) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (321) от парсера (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).[26] The first module is the scaling/inverse transform module (351). The scaling/inverse transform module (351) receives the quantized transform coefficient, as well as control information, including which transform to use, block size, quantization factor, quantization scaling matrices, and so on, in the form of symbol(s) (321) from the parser ( 320). It can output blocks containing sample values that can be entered into the aggregator (355).

[27] В некоторых случаях выходные отсчеты модуля (351) масштабирования/обратного преобразования могут относиться к блоку с интракодированием; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (352) внутрикадрового предсказания. В некоторых случаях модуль (352) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (358). Агрегатор (355), в некоторых случаях, добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) интрапредсказания, к информации выходных отсчетов, предоставляемой модулем (351) масштабирования/обратного преобразования.[27] In some cases, the output samples of the scaling/inverse transform module (351) may refer to an intra-coded block; that is, to a block that does not use prediction information from previously restored images, but can use prediction information from previously restored portions of the current image. Such prediction information may be provided by the intra prediction module (352). In some cases, the intra-prediction module (352) generates a block of the same size and shape as the reconstructed block using the already reconstructed surrounding information extracted from the current (partially reconstructed) image (358). The aggregator (355), in some cases, adds for each sample the prediction information generated by the intra-prediction module (352) to the output sample information provided by the scaling/inverse transform module (351).

[28] В других случаях выходные отсчеты модуля (351) масштабирования/обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может обращаться к памяти (357) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу модуля масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.[28] In other cases, the output samples of the scaling/inverse transform module (351) may refer to a block with intercoding and potentially with motion compensation. In such a case, the motion compensation prediction module (353) may access the reference picture memory (357) to retrieve samples used for prediction. After compensating for the movement of the selected samples according to the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output of the scaler/demap module (in this case called residual samples or residual signal) to generate output information. readings. Reference picture memory addresses from where the motion compensation prediction module selects prediction samples may be driven by motion vectors available to the motion compensation prediction module in the form of symbols (321), which may have X, Y and reference picture components, for example. Motion compensation may also include interpolation of sample values retrieved from reference picture memory when accurate sub-sample motion vectors are used, motion vector prediction mechanisms, and so on.

[29] Выходные отсчеты агрегатора (355) могут подвергаться различным методам петлевой фильтрации в модуле (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и предоставляются модулю (356) петлевой фильтрации как символы (321) из парсера (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные посредством петлевой фильтрации значения отсчетов.[29] The output samples of the aggregator (355) may be subjected to various loop filtering methods in the loop filter module (356). The video compression technologies may include in-loop filtering technologies that are controlled by parameters included in the encoded video bitstream and provided to the loop filtering module (356) as symbols (321) from the parser (320), but may also respond to metainformation received during decoding the previous (in the order of decoding) parts of the encoded image or encoded video sequence, as well as responding to previously restored and filtered by loop filtering sample values.

[30] Выходной сигнал модуля (356) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (212) визуализации, а также сохранен в памяти опорных изображений для использования в будущем межкадровом предсказании.[30] The output of the loop filter module (356) may be a stream of samples that can be output to the renderer (212) and also stored in reference picture memory for use in future inter-picture prediction.

[31] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, парсером (320)), текущее опорное изображение (358) может стать частью буфера (357) опорных изображений, и свежая память текущих изображений может быть перераспределена перед началом восстановления следующего кодированного изображения.[31] Certain encoded pictures after full recovery can be used as reference pictures for future prediction. Once the encoded picture has been completely reconstructed and the encoded picture has been identified as a reference picture (eg, by the parser (320)), the current reference picture (358) may become part of the reference picture buffer (357), and fresh current picture memory may be reallocated before the beginning of the reconstruction of the next encoded picture.

[32] Видеодекодер 210 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как ITU-T Rec. H.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях слои ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные слоями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического опорного декодера (HRD) и метаданных для управления буфером HRD, передаваемых в кодированной видеопоследовательности.[32] Video decoder 210 may perform decoding operations according to a predetermined video compression technology, which may be documented in a standard such as ITU-T Rec. H.265. The encoded video sequence may conform to the syntax given by the video compression technology or standard used, in the sense that it conforms to the syntax of the video compression technology or standard as specified in the video compression technology document or standard, and in particular their profile document. It may also be necessary for compliance that the complexity of the encoded video sequence be within limits defined by the level of technology or video compression standard. In some cases, layers limit the maximum image size, the maximum frame rate, the maximum recovery sampling rate (measured in megasamples per second, for example), the maximum reference image size, and so on. The limits set by the layers may, in some cases, be further constrained by hypothetical reference decoder (HRD) specifications and metadata for managing the HRD buffer transmitted in the encoded video sequence.

[33] В варианте осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.[33] In an embodiment, receiver (310) may receive additional (redundant) data with encoded video. Additional data may be included as part of the encoded video sequence(s). The additional data may be used by the video decoder (210) to correctly decode the data and/or to more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, and so on.

[34] Фиг. 4 может быть функциональной блок-схемой видеокодера (203) согласно варианту осуществления настоящего раскрытия.[34] FIG. 4 may be a functional block diagram of a video encoder (203) according to an embodiment of the present disclosure.

[35] Кодер (203) может принимать отсчеты видео от источника (201) видео (который не является частью кодера), который может захватывать видеоизображение(я) для кодирования кодером (203).[35] The encoder (203) may receive video samples from a video source (201) (which is not part of the encoder) that may capture video image(s) for encoding by the encoder (203).

[36] Источник (201) видео может предоставить исходную видеопоследовательность для кодирования кодером (203) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (203) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.[36] The video source (201) may provide the source video sequence for encoding by the encoder (203) in the form of a digital stream of video samples, which may have any suitable bit depth (eg: 8 bit, 10 bit, 12 bit, ...), any color space (eg, BT.601 Y CrCB, RGB, ...) and any suitable sample structure (eg, Y CrCb 4:2:0, Y CrCb 4:4:4). In a media serving system, the video source (201) may be a storage device storing pre-prepared video. In a videoconferencing system, the video source (203) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual images that, when viewed sequentially, convey motion. The images themselves can be organized as a spatial array of pixels, in which each pixel can contain one or more samples depending on the sample structure used, color space, and so on. One skilled in the art can easily understand the relationship between pixels and samples. The description below is based on readings.

[37] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально связан с этими модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером, могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной конструкции системы.[37] According to an embodiment, the encoder (203) may encode and compress images of the source video sequence into the encoded video sequence (443) in real time or with any other time constraints as required by the application. Providing an appropriate coding rate is one of the functions of the controller (450). The controller controls other functional modules, as described below, and is functionally associated with these modules. The connection is not shown for clarity. The parameters set by the controller may include parameters related to speed control (picture skip, quantizer, speed-distortion optimization methods lambda value, ...), image size, group of pictures (GOP) layout, maximum motion vector search range, and so on. . A person skilled in the art can easily determine other functions of the controller (450) as they may relate to a video encoder (203) optimized for a particular system design.

[38] Некоторые видеокодеры работают в том, что специалист в данной области легко распознает как «петля кодирования». В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (430) (далее «кодер источника») (ответственной за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения(й)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создать (поскольку любое сжатие между символами и кодированным битовым видеопотоком не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое буфера опорных изображений также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видел» бы при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалисту в данной области техники.[38] Some video encoders operate in what one of ordinary skill in the art would readily recognize as a "coding loop". As a simplified description, an encoding loop may consist of an encoder coding part (430) (hereinafter "source encoder") (responsible for creating symbols based on the input picture to be encoded and the reference picture(s)), and a (local) decoder (433) built into the encoder (203) that decompresses the symbols to create sample data that the (remote) decoder can also create (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies considered in the disclosed subject matter) . This reconstructed sample stream is entered into the reference picture memory (434). Because decoding a stream of symbols results in bit-accurate results, regardless of the location of the decoder (local or remote), the contents of the reference picture buffer are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction portion of the encoder "sees" as reference picture samples exactly the same sample values that the decoder would "see" using prediction during decoding. This fundamental principle of reference picture synchronism (and the resulting drift if synchronism cannot be maintained due to, for example, channel errors) is well known to those skilled in the art.

[39] Работа «локального» декодера (433) может быть такой же, как у «удаленного» декодера (210), который уже был подробно описан выше в описании к фиг. 3. Кратко ссылаясь также на фиг. 4, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и парсером (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и парсер (320), не могут быть полностью реализованы в локальном декодере (433).[39] The operation of the "local" decoder (433) may be the same as that of the "remote" decoder (210), which has already been described in detail above in the description of FIG. 3. Briefly referring also to FIG. 4, however, since the symbols are available and encoding/decoding of the symbols into the encoded video sequence by the entropy encoder (445) and the parser (320) can be lossless, the entropy decoding parts of the decoder (210), including the channel (312), the receiver (310), buffer (315) and parser (320) cannot be fully implemented in the local decoder (433).

[40] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме парсинга/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.[40] At this point, it can be observed that any decoding technology other than parsing/entropy decoding that is present in a decoder must also necessarily be present in a substantially identical functional form in the corresponding encoder. For this reason, the disclosed subject matter focuses on the operation of the decoder. The description of encoding technologies can be abbreviated as they are the inverse of fully described decoding technologies. Only in some areas a more detailed description is required, which is given below.

[41] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, подсистема (432) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.[41] As part of its operation, the source encoder (430) may perform motion-compensated predictive encoding that predictively encodes the input frame with reference to one or more previously encoded frames from the video sequence, which have been designated "reference frames". Thus, the coding subsystem (432) encodes the differences between the pixel blocks of the input frame and the pixel blocks of the reference frame(s) that can be selected as the prediction reference(s) for the input frame.

[42] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции подсистемы (432) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общий контент, в качестве восстановленных опорных кадров, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).[42] The local video decoder (433) may decode the encoded video data of the frames, which may be designated as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding subsystem (432) may preferably be lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (433) replicates the decoding processes that may be performed by the video decoder on the reference frames and may cause the recovered reference frames to be stored in the reference picture cache (434). Thus, the encoder (203) can locally store copies of the reconstructed reference frames that share content as the reconstructed reference frames to be received by the far-end video decoder (in the absence of transmission errors).

[43] Предиктор (435) может выполнять поиски с предсказанием для подсистемы (432) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (435) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.[43] The predictor (435) may perform predictive searches for the coding subsystem (432). That is, for a new picture to be encoded, the predictor (435) may search the reference picture memory (434) for sample data (as reference pixel block candidates) or certain metadata such as reference picture motion vectors, block shapes, and so on. further, which can serve as a suitable prediction reference for new images. The predictor (435) may operate on a block-by-pixel basis to find appropriate prediction references. In some cases, as determined by the search results obtained by the predictor (435), the input image may have prediction references taken from a plurality of reference pictures stored in the reference picture memory (434).

[44] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.[44] The controller (450) may control the encoding operations of the video encoder (430), including, for example, setting parameters and subgroup parameters used to encode video data.

[45] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия без потерь символов согласно технологиям, известным специалистам в данной области техники, как, например, кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.[45] The output signals of all the above functional modules can be entropy encoded in an entropy encoder (445). The entropy encoder translates symbols generated by various functional modules into an encoded video sequence by lossless symbol compression according to techniques known to those skilled in the art, such as Huffman coding, variable length coding, arithmetic coding, and so on.

[46] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал (460) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (440) может обеспечивать слияние кодированных видеоданных из видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).[46] The transmitter (440) may buffer the encoded video sequence(s) generated by the entropy encoder (445) to prepare it for transmission over a communication channel (460), which may be a hardware/software connection to a storage device that will store the encoded video data. . The transmitter (440) may merge the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or ancillary data streams (sources not shown).

[47] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов кадров:[47] The controller (450) may control the operation of the encoder (203). During encoding, the controller (450) may assign to each encoded picture a certain type of encoded picture, which may affect the encoding methods that can be applied to the corresponding picture. For example, images can often be assigned to one of the following frame types:

[48] Внутреннее изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы внутренних изображений, включая, например, изображения с независимым обновлением декодера. Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.[48] An intra-picture (I-picture) may be one that can be encoded and decoded without using any other frame in the sequence as a prediction source. Some video codecs allow various types of internal images, including, for example, images with independent decoder update. The person skilled in the art will be aware of these variants of I-images and their respective uses and features.

[49] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[49] A predictive picture (P-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction using at most one motion vector and a reference index to predict sample values of each block.

[50] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.[50] A bidirectional predictive picture (B-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction using at most two motion vectors and reference indices to predict the sample values of each block. Similarly, multi-prediction images may use more than two reference images and associated metadata to reconstruct a single block.

[51] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интрапредсказание). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[51] Source images can typically be spatially divided into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded on a block-by-block basis. The blocks may be predictively encoded with reference to other (already encoded) blocks, as determined by the coding assignment applied to the corresponding block images. For example, I-picture blocks may be predictively encoded or they may be predictively encoded with reference to already encoded blocks of the same picture (spatial prediction or intra prediction). P-picture pixel blocks may be encoded without prediction, by spatial prediction, or by temporal prediction with reference to one previously encoded reference picture. Blocks of B-pictures may be encoded without prediction, by spatial prediction, or by temporal prediction with reference to one or two previously encoded reference pictures.

[52] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендация МСЭ-Т Н.265. В своей работе видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.[52] The video encoder (203) may perform encoding operations in accordance with a predetermined video coding technology or standard, such as ITU-T Rec. H.265. In operation, the video encoder (203) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. The encoded video data may therefore follow the syntax given by the video coding technology or standard used.

[53] В варианте осуществления передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать в себя такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения информации дополнительного улучшения (SEI), фрагменты набора параметров информации о пригодности видео (VUI) и так далее.[53] In an embodiment, transmitter (440) may transmit additional data with encoded video. Video encoder (430) may include such data as part of an encoded video sequence. The additional data may comprise temporal/spatial/SNR enhancement layers, other forms of redundant data such as redundant images and slices, incremental enhancement information (SEI) messages, video usability information (VUI) parameter set fragments, and so on.

[54] Варианты осуществления могут относиться к механизму сигнализирования набора выходных слоев для масштабируемого видеопотока. Варианты осуществления могут относиться к способу получения соответствующих (напрямую зависимых/независимых) слоев каждого набора выходных слоев из информации слоя прямой опоры, когда выходные слои сигнализируют для каждого набора выходных слоев.[54] Embodiments may relate to a mechanism for signaling a set of output layers for a scalable video stream. Embodiments may relate to a method for deriving the respective (forward dependent/independent) layers of each set of output layers from the direct support layer information when output layers are signaled for each set of output layers.

[55] В вариантах осуществления выходной слой может относиться к слою из набора выходных слоев, который является выходным. В вариантах осуществления набор выходных слоев может относиться к заданному набору слоев, где один или более слоев в наборе слоев указаны в качестве выходных слоев. В вариантах осуществления, индекс слоя в наборе выходных слоев может относиться к индексу слоя в OUTPUTLAYERSET, к списку слоев в OUTPUTLAYERSET.[55] In embodiments, an output layer may refer to a layer from a set of output layers that is output. In embodiments, an output layer set may refer to a given layer set, where one or more layers in the layer set are specified as output layers. In embodiments, the layer index in the output layer set may refer to the layer index in the OUTPUTLAYERSET, to the list of layers in the OUTPUTLAYERSET.

[56] На фиг. 5 показан пример таблицы синтаксиса, относящейся к синтаксису полезной нагрузки необработанной последовательности байтов (RBSP) набора параметров видео (VPS), в соответствии с вариантом осуществления.[56] FIG. 5 shows an example of a syntax table related to the Video Parameter Set (VPS) raw byte sequence (RBSP) payload syntax, according to an embodiment.

[57] В вариантах осуществления, RBSP VPS может быть доступной для процесса декодирования до того, как быть опорной, включенной по меньшей мере в одну единицу доступа с TemporalId, равным 0, или предоставленным через внешние средства, а единица NAL VPS, содержащая RBSP VPS, может иметь nuh_layer_id равный vps_layer_id[0].[57] In embodiments, the VPS RBSP may be available to the decoding process prior to being a reference included in at least one access unit with TemporalId equal to 0 or provided through external means, and the VPS NAL unit containing the VPS RBSP , may have nuh_layer_id equal to vps_layer_id[0].

[58] Все единицы NAL VPS с определенным значением vps_video_parameter_set_id в CVS могут иметь одинаковое содержимое.[58] All VPS NAL units with a certain vps_video_parameter_set_id value in CVS may have the same content.

[59] vps_video_parameter_set_id предоставляет идентификатор VPS для ссылки другими элементами синтаксиса.[59] vps_video_parameter_set_id provides a VPS identifier for reference by other syntax elements.

[60] Значение vps_max_layers_minus1 плюс 1 может указывает максимально допустимое количество слоев в каждом CVS, ссылающемся на VPS.[60] The value of vps_max_layers_minus1 plus 1 may indicate the maximum allowed number of layers in each CVS referencing the VPS.

[61] Значение vps_all_independent_layers_flag, равное 1, может указывать, что все слои в CVS независимо кодируются без использования межслойного предсказания. Значение vps_all_independent_layers_flag, равное 0, может указывать, что один или более слоев в CVS могут использовать межслойное предсказание. При отсутствии, значение vps_all_independent_layers_flag может быть выведено равным 1. Когда vps_all_independent_layers_flag равно 1, значение vps_independent_layer_flag [i] может быть выведено равным 1.[61] A vps_all_independent_layers_flag value of 1 may indicate that all layers in CVS are independently encoded without using interlayer prediction. A vps_all_independent_layers_flag value of 0 may indicate that one or more layers in CVS may use interlayer prediction. If not present, the value of vps_all_independent_layers_flag may be inferred to be 1. When vps_all_independent_layers_flag is equal to 1, the value of vps_independent_layer_flag[i] may be inferred to be 1.

[62] vps_layer_id [i] может указывать значение nuh_layer_id i-го слоя. Для любых двух неотрицательных целочисленных значений m и n, когда m меньше n, значение vps_layer_id [m] может быть меньше vps_layer_id [n].[62] vps_layer_id [i] may indicate the value of the nuh_layer_id of the ith layer. For any two non-negative integer values m and n, when m is less than n, vps_layer_id[m] may be less than vps_layer_id[n].

[63] При этом vps_independent_layer_flag [i], равный 1, может указывать на то, что слой с индексом i не использует межслойное предсказание. При этом vps_independent_layer_flag [i], равный 0, может указывать, что слой с индексом i может использовать межслойное предсказание, а в VPS присутствует vps_layer_dependency_flag [i]. При отсутствии, значение vps_independent_layer_flag [i] может быть выведено равным 1.[63] In this case, vps_independent_layer_flag [i] equal to 1 may indicate that the layer with index i does not use interlayer prediction. In this case, vps_independent_layer_flag [i], equal to 0, may indicate that the layer with index i can use interlayer prediction, and vps_layer_dependency_flag [i] is present in the VPS. If absent, the vps_independent_layer_flag[i] value can be inferred to be 1.

[64] vps_direct_ref_layer_flag [i] [j], равное 0, может указывать, что слой с индексом j не является слоем прямой опоры для слоя с индексом i. При этом vps_direct_ref_layer_flag [i] [j], равное 1, может указывать, что слой с индексом j является прямым опорным слоем для слоя с индексом i. Когда vps_direct_ref_layer_flag [i] [j] не присутствует для i и j в диапазоне от 0 до vps_max_layers_minus 1 включительно, он может быть выведено равным 0.[64] vps_direct_ref_layer_flag [i] [j] equal to 0 may indicate that layer index j is not a direct reference layer for layer index i. Wherein vps_direct_ref_layer_flag [i] [j] equal to 1 may indicate that the layer with index j is a direct reference layer for the layer with index i. When vps_direct_ref_layer_flag[i][j] is not present for i and j in the range 0 to vps_max_layers_minus 1 inclusive, it may be output as 0.

[65] Переменные NumDirectRefLayers [i], DirectRefLayerIdx [i] [d], NumRefLayers [i] и RefLayerIdx [i] [г] могут быть получены следующим образом:

Figure 00000001
[65] The variables NumDirectRefLayers[i], DirectRefLayerIdx[i][d], NumRefLayers[i], and RefLayerIdx[i][r] can be retrieved as follows:
Figure 00000001

Figure 00000002
Figure 00000002

[66] Переменная GeneralLayerIdx [i], определяющая индекс слоя для слоя с nuh_layer_id, равным vps_layer_id [i], может быть получена следующим образом:[66] The variable GeneralLayerIdx[i], which defines the layer index for a layer with nuh_layer_id equal to vps_layer_id[i], can be obtained as follows:

Figure 00000003
Figure 00000003

[67] each_layer_is_an_outputLayerSet_flag, равный 1, может указывать, что каждый набор выходных слоев содержит только один слой, и каждый слой в потоке битов сам по себе является набором выходных слоев с единственным включенным слоем, являющимся выходным слоем. При этом each_layer_is_an_outputLayerSet_flag равно 0 может указывать, что набор выходных слоев может содержать более одного слоя. Если vps_max_layers_minus1 равно 0, значение vlaue для each_layer_is_an_outputLayerSet_flag может быть выведено равным 1. В противном случае, когда vps_all_independent_layers_flag равно 0, значение each_layer_is_an_outputLayerSet_flag может быть выведено равным 0.[67] each_layer_is_an_outputLayerSet_flag equal to 1 may indicate that each output layer set contains only one layer, and each layer in the bitstream is itself an output layer set with the only included layer being the output layer. With each_layer_is_an_outputLayerSet_flag equal to 0, it can indicate that the output layer set can contain more than one layer. If vps_max_layers_minus1 is 0, the vlaue value for each_layer_is_an_outputLayerSet_flag may be inferred to be 1. Otherwise, when vps_all_independent_layers_flag is 0, the value of each_layer_is_an_outputLayerSet_flag may be inferred to be 0.

[68] outputLayerSet_mode_idc, равный 0, может указывать, что общее количество OUTPUTLAYERSET, заданное VPS, равно vps_max_layers_minus1+1, i-й OUTPUTLAYERSET включает слои с индексами слоев от 0 до i включительно, и для каждого OUTPUTLAYERSET выводят только самый высокий слой OUTPUTLAYERSET.[68] outputLayerSet_mode_idc equal to 0 may indicate that the total number of OUTPUTLAYERSET set by the VPS is vps_max_layers_minus1+1, the i-th OUTPUTLAYERSET includes layers with layer indices from 0 to i inclusive, and only the highest OUTPUTLAYERSET layer is output for each OUTPUTLAYERSET.

[69] outputLayerSet_mode_idc, равный 1, может указывать, что общее количество OUTPUTLAYERSET, заданное VPS, равно vps_max_layers_minus1+1, i-й OUTPUTLAYERSET включает слои с индексами слоев от 0 до i включительно, и для каждого OUTPUTLAYERSETUTLAYERSET выводятся все слои в OUTPUTLAYERSETLAYERSET.[69] outputLayerSet_mode_idc equal to 1 may indicate that the total number of OUTPUTLAYERSET given by the VPS is vps_max_layers_minus1+1, the i-th OUTPUTLAYERSET includes layers with layer indices from 0 to i inclusive, and for each OUTPUTLAYERSETUTLAYERSET, all layers in the OUTPUTLAYERSETLAYERSET are output.

[70] outputLayerSet_mode_idc, равный 2, может указывать, что общее количество OUTPUTLAYERSET, заданное VPS, явно сигнализируется, и для каждого OUTPUTLAYERSET явно сигнализируются выходные слои, а другие слои являются слоями, которые являются слоями прямой или косвенной опоры выходных слоев OUTPUTLAYERSET.[70] outputLayerSet_mode_idc equal to 2 may indicate that the total number of OUTPUTLAYERSET set by the VPS is explicitly signaled, and for each OUTPUTLAYERSET, output layers are explicitly signaled, and the other layers are layers that are layers that directly or indirectly support output OUTPUTLAYERSET layers.

[71] Значение outputLayerSet_mode_idc может находиться в диапазоне от 0 до 2 включительно. Значение 3 outputLayerSet_mode_idc зарезервировано для будущего использования ITU-T | ISO/IEC.[71] The value of outputLayerSet_mode_idc can range from 0 to 2 inclusive. The value 3 outputLayerSet_mode_idc is reserved for future use by ITU-T | ISO/IEC.

[72] Когда vps_all_independent_layers_flag равен 1 и each_layer_is_an_outputLayerSet_flag равен 0, значение outputLayerSet_mode_idc может быть выведено равным 2.[72] When vps_all_independent_layers_flag is equal to 1 and each_layer_is_an_outputLayerSet_flag is equal to 0, the value of outputLayerSet_mode_idc may be output as 2.

[73] num_output_layer_sets_minus1 плюс 1 может указывать общее количество OUTPUTLAYERSET, указанных VPS, когда outputLayer_Set_mode_idc равно 2.[73] num_output_layer_sets_minus1 plus 1 can indicate the total number of OUTPUTLAYERSETs specified by the VPS when outputLayer_Set_mode_idc is 2.

[74] Переменная TotalNumOutputLayerSets, определяющая общее количество OUTPUTLAYERSET, заданных VPS, может быть получена следующим образом:[74] The TotalNumOutputLayerSets variable, which specifies the total number of OUTPUTLAYERSETs set by the VPS, can be obtained as follows:

Figure 00000004
Figure 00000004

[75] outputLayerSet_output_layer_flag [i] [j], равный 1, может указывать, что слой с nuh_layer_id, равным vps_layer_id [j], является выходным слоем i-го OUTPUTLAYERSET, когда outputLayerSet_mode_idc равен 2. При этом outputLayerSet_output_layer_flag[i][j] равный 0 может указывать, что слой с nuh_layer_id, равным vps_layer_id [j], не является выходным слоем i-го OUTPUTLAYERSET, когда outputLayerSet_mode_idc равно 2.[75] outputLayerSet_output_layer_flag [i] [j] equal to 1 may indicate that the layer with nuh_layer_id equal to vps_layer_id [j] is the i-th OUTPUTLAYERSET output layer when outputLayerSet_mode_idc is equal to 2. In this case, outputLayerSet_output_layer_flag[i][j] equal to 0 may indicate that the layer with nuh_layer_id equal to vps_layer_id[j] is not the output layer of the i-th OUTPUTLAYERSET when outputLayerSet_mode_idc is equal to 2.

[76] Переменная NumOutputLayersInOutputLayerSet [i], указывающая количество выходных слоев в i-м OUTPUTLAYERSET, и переменная OutputLayerldlnOutputLayerSet [i] [j], определяющая значение nuh_layer_id для j-го выходного слоя в i-м OUTPUTLAYERSET, получается следующим образом:[76] The NumOutputLayersInOutputLayerSet [i] variable indicating the number of output layers in the i-th OUTPUTLAYERSET and the OutputLayerldlnOutputLayerSet [i] [j] variable specifying the nuh_layer_id value for the j-th output layer in the i-th OUTPUTLAYERSET are obtained as follows:

Figure 00000005
Figure 00000005

Figure 00000006
Figure 00000006

[77] Переменная NumLayersInOutputLayerSet [i], указывающая количество слоев в i-м OUTPUTLAYERSET, и переменная LayerIdInOutputLayerSet [i] [j], определяющая значение nuh_layer_id для j-го слоя в i-м OUTPUTLAYERSET, получается следующим образом:[77] The NumLayersInOutputLayerSet [i] variable indicating the number of layers in the i-th OUTPUTLAYERSET and the LayerIdInOutputLayerSet [i] [j] variable specifying the nuh_layer_id value for the j-th layer in the i-th OUTPUTLAYERSET are obtained as follows:

Figure 00000007
Figure 00000007

Figure 00000008
Figure 00000008

[78] Переменная OutputLayerSetLayeIdx [i] [j], указывающая индекс слоя OUTPUTLAYERSET слоя с nuh_layer_id, равным LayerIdInOutputLayerSet[i][j], может быть получена следующим образом:[78] An OutputLayerSetLayeIdx[i][j] variable indicating the layer index OUTPUTLAYERSET of a layer with nuh_layer_id equal to LayerIdInOutputLayerSet[i][j] can be obtained as follows:

Figure 00000009
Figure 00000009

[79] Самый нижний слой в каждой OUTPUTLAYERSET может быть независимым слоем. Другими словами, для каждого i в диапазоне от 0 до TotalNumOutputLayerSets-1 включительно значение vps_independent_layer_flag [GeneralLayerIdx [LayerIdInOutputLayerSet [i] [0]]] может быть равно 1.[79] The bottommost layer in each OUTPUTLAYERSET may be an independent layer. In other words, for every i in the range 0 to TotalNumOutputLayerSets-1 inclusive, vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOutputLayerSet[i][0]]] may be equal to 1.

[80] Каждый слой может быть включен по крайней мере в один OUTPUTLAYERSET, указанный VPS. Другими словами, для каждого слоя с конкретным значением nuh_layer_id_nuhLayerId, равным одному из vps_layer_id [k] для k в диапазоне от 0 до vps_max_layers_minus1 включительно, может быть по крайней мере одна пара значений i и j, где i находится в диапазоне от 0 до TotalNumOutputLayerSets - 1 включительно, a j находится в диапазоне NumLayersInOutputLayerSet [i] - 1 включительно, так что значение LayerIdInOutputLayerSet [i] [j] равно nuhLayerId.[80] Each layer may be included in at least one OUTPUTLAYERSET specified by the VPS. In other words, for each layer with a particular nuh_layer_id_nuhLayerId value equal to one of vps_layer_id[k] for k in the range 0 to vps_max_layers_minus1 inclusive, there can be at least one pair of i and j values, where i is in the range 0 to TotalNumOutputLayerSets - 1 inclusive, a j is in the range NumLayersInOutputLayerSet[i] - 1 inclusive, so the value of LayerIdInOutputLayerSet[i][j] is nuhLayerId.

[81] vps_constraint_info_present_flag, равный 1, может указывать, что структура синтаксиса general_constraint_info () присутствует в VPS. При этом vps_constraint_info_present_flag, равный 0, может указывать, что структура синтаксиса general_constraint_info () отсутствует в VPS.[81] A vps_constraint_info_present_flag of 1 may indicate that a general_constraint_info() syntax structure is present in the VPS. However, a vps_constraint_info_present_flag of 0 may indicate that the general_constraint_info() syntax structure is not present in the VPS.

[82] vps_reserved_zero_7bits может быть равно 0 в битовых потоках, соответствующих этой версии данной спецификации. Другие значения vps_reserved_zero_7bits зарезервированы для будущего использования ITU-T | ISO/IEC. Декодеры могут игнорировать значение vps_reserved_zero_7bits.[82] vps_reserved_zero_7bits may be 0 in bitstreams conforming to this version of this specification. Other vps_reserved_zero_7bits values are reserved for future use by ITU-T | ISO/IEC. Decoders MAY ignore the vps_reserved_zero_7bits value.

[83] vps_extension_flag, равный 0, может указывать, что в структуре синтаксиса RBSP VPS нет элементов синтаксиса vps_extension_data_flag. При этом vps_extension_flag, равный 1, может указывать, что в структуре синтаксиса RBSP VPS присутствуют элементы синтаксиса vps_extension_data_flag.[83] A vps_extension_flag of 0 may indicate that there are no vps_extension_data_flag syntax elements in the VPS RBSP syntax structure. However, a vps_extension_flag of 1 may indicate that vps_extension_data_flag syntax elements are present in the VPS RBSP syntax structure.

[84] vps_extension_data_flag может иметь любое значение. Его наличие и значение не влияют на соответствие декодера профилям, указанным в этой версии данной Спецификации. Декодеры, соответствующие этой версии данной спецификации, могут игнорировать все элементы синтаксиса vps_extension_data_flag.[84] vps_extension_data_flag can be any value. Its presence and value do not affect the compliance of the decoder with the profiles specified in this version of this Specification. Decoders conforming to this version of this specification MAY ignore all elements of the vps_extension_data_flag syntax.

[85] На фиг. 6 показана примерная блок-схема процесса 600 декодирования кодированного битового потока видео. В некоторых реализациях один или более блоков процессов с фиг. 6 могут выполняться декодером 210. В некоторых реализациях один или более блоков процессов с фиг. 6 могут выполняться другим устройством или группой устройств, отдельной от декодера 210 или включающего в себя его, например кодером 203.[85] FIG. 6 shows an exemplary flowchart of a process 600 for decoding an encoded video bitstream. In some implementations, one or more of the process blocks of FIG. 6 may be performed by decoder 210. In some implementations, one or more of the process blocks of FIG. 6 may be performed by another device or group of devices separate from or including decoder 210, such as encoder 203.

[86] Как показано на фиг. 6, процесс 600 может включать в себя получение кодированной видеопоследовательности, включающей в себя множество наборов выходных слоев, из кодированного битового потока видеоданных (блок 601).[86] As shown in FIG. 6, process 600 may include deriving an encoded video sequence including a plurality of output layer sets from an encoded video bitstream (block 601).

[87] Как дополнительно показано на фиг. 6, процесс 600 может включать в себя получение первого флага (блок 602).[87] As further shown in FIG. 6, process 600 may include obtaining a first flag (block 602).

[88] Как дополнительно показано на фиг. 6, процесс 600 может включать в себя определение по первому флагу, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя (блок 603).[88] As further shown in FIG. 6, process 600 may include determining, based on a first flag, whether each output layer set of the multiple output layer sets includes more than one layer (block 603).

[89] Как дополнительно показано на фиг. 6, процесс 600 может включать в себя, на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя только один слой (НЕТ на блоке 603), выбирание одного слоя каждого набора выходных слоев в качестве по меньшей мере одного выходного слоя (блок 604) и выведение по меньшей мере одного выходного слоя (блок 608).[89] As further shown in FIG. 6, process 600 may include, based on a first flag indicating that each output layer set includes only one layer (NO at block 603), selecting one layer of each output layer set as at least one output layer ( block 604) and drawing at least one output layer (block 608).

[90] Как дополнительно показано на фиг. 6, на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя (ДА на блоке 603), процесс 600 может перейти к блоку 605, блоку 606, блоку 607 и блоку 608.[90] As further shown in FIG. 6, based on the first flag indicating that each output layer set includes more than one layer (YES at block 603), process 600 may proceed to block 605, block 606, block 607, and block 608.

[91] Как дополнительно показано на фиг. 6, процесс 600 может включать в себя получение первого элемента синтаксиса, указывающего режим набора выходных слоев (блок 605).[91] As further shown in FIG. 6, process 600 may include obtaining a first syntax element indicating the mode of the output layer set (block 605).

[92] Как дополнительно показано на фиг. 6, процесс 600 может включать в себя определение режима установки выходного слоя на основе первого элемента синтаксиса (блок 606).[92] As further shown in FIG. 6, process 600 may include determining an output layer setting mode based on the first syntax element (block 606).

[93] Как дополнительно показано на фиг. 6, процесс 600 может включать в себя выбирание по меньшей мере одного слоя из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя на основе режима набора выходных слоев (блок 607).[93] As further shown in FIG. 6, process 600 may include selecting at least one layer from among the layers included in the output layer set set as at least one output layer based on the output layer set mode (block 607).

[94] Как дополнительно показано на фиг. 6, процесс 600 может включать выведение по меньшей мере одного выходного слоя (блок 608).[94] As further shown in FIG. 6, process 600 may include drawing at least one output layer (block 608).

[95] В варианте осуществления первый флаг и первый элемент синтаксиса могут сигнализироваться в наборе параметров видео (VPS).[95] In an embodiment, the first flag and the first syntax element may be signaled in a video parameter set (VPS).

[96] В варианте осуществления один слой может выбираться в качестве по меньшей мере одного выходного слоя на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя только один слой.[96] In an embodiment, one layer may be selected as at least one output layer based on a first flag indicating that each output layer set includes only one layer.

[97] В варианте осуществления в качестве по меньшей мере одного выходного слоя может быть выбран самый верхний слой каждого набора выходных слоев на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является первым режимом.[97] In an embodiment, the topmost layer of each output layer set may be selected as at least one output layer based on the first syntax element indicating that the mode of the output layer set is the first mode.

[98] В варианте осуществления, в качестве по меньшей мере одного выходного слоя могут быть выбраны все слои, включенные во множество наборов выходных слоев, на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является вторым режимом.[98] In an embodiment, all layers included in the output layer set plurality may be selected as at least one output layer based on the first syntax element indicating that the output layer set mode is the second mode.

[99] В варианте осуществления, на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, из числа слоев, включенных во множество наборов выходных слоев, может быть выбран по меньшей мере один выходной слой на основе второго элемента синтаксиса, который сигнализируется в кодированном битовом потоке видео.[99] In an embodiment, based on the first syntax element indicating that the output layer set mode is the third mode, at least one output layer can be selected from among the layers included in the output layer set plurality based on the second syntax element, which is signaled in the encoded video bitstream.

[100] В варианте осуществления, на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, невыбранные слои из числа слоев, включенных во множество наборов выходных слоев, могут использоваться в качестве опорных слоев для по меньшей мере одного выходного слоя.[100] In an embodiment, based on the first syntax element indicating that the output layer set mode is the third mode, unselected layers from among the layers included in the multiple output layer sets can be used as reference layers for at least one output layer. .

[101] В варианте осуществления, режим набора выходных слоев может выведен как третий режим, на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, и второго флага, указывающего, что все слои, включенные во множество наборов выходных слоев, кодируются независимо.[101] In an embodiment, the output layer set mode may be derived as a third mode, based on a first flag indicating that each output layer set includes more than one layer, and a second flag indicating that all layers included in the set of output layers output layers are encoded independently.

[102] Хотя на фиг. 6 показаны примерные блоки процесса 600, в некоторых реализациях процесс 600 может включать в себя дополнительные блоки, меньшее количество блоков, разные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 6. Дополнительно или альтернативно, два или более блока процесса 600 могут выполняться параллельно.[102] Although FIG. 6 shows exemplary blocks of process 600, in some implementations process 600 may include additional blocks, fewer blocks, different blocks, or blocks arranged differently from those depicted in FIG. 6. Additionally or alternatively, two or more blocks of process 600 may be executed in parallel.

[103] Кроме того, предложенные способы могут быть реализованы схемами обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе, для осуществления одного или более из предложенных способов.[103] In addition, the proposed methods can be implemented by processing circuits (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute a program that is stored on a non-transitory computer-readable medium to implement one or more of the proposed methods.

[104] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система 700, подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.[104] The methods described above may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, in FIG. 7 shows a computer system 700 suitable for implementing certain embodiments of the disclosed subject matter.

[105] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т.п., центральными процессорами компьютера (ЦП), графическими процессорами (ГП) и т.п.[105] Computer software may be coded using any suitable machine code or computer language, which may be the object of assembly, compilation, linking, or similar mechanisms to produce code containing instructions that can be executed directly or through interpretation, execution of microcode, and and the like, computer central processing units (CPUs), graphics processing units (GPUs), and the like.

[106] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.[106] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, and the like.

[107] Компоненты, показанные на фиг. 7 для компьютерной системы 700, являются примерными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего раскрытия. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы 700.[107] The components shown in FIG. 7 for computer system 700 are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of computer software implementing embodiments of the present disclosure. The component configuration is also not to be interpreted as having any dependency or requirement relating to any one or combination of the components illustrated in the exemplary embodiment of computer system 700.

[108] Компьютерная система 700 может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).[108] Computer system 700 may include certain human-machine interface input devices. Such a human-machine interface input device may respond to input by one or more human users through, for example, tactile input (e.g., keystrokes, swipes, movement of a control glove), audio input (e.g., voice, handclaps), visual input (for example: gestures), olfactory input (not shown). HMI devices can also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, ambient sound), images (e.g. scanned images, photographic images taken from a camera for still images), video (eg 2D video, 3D video including stereoscopic video).

[109] Устройства ввода с человеческо-машинным интерфейсом могут включать в себя одно или более из (только одно из каждого изображенного): клавиатура 701, мышь 702, трекпад 703, сенсорный экран 710 и связанный графический адаптер 750, управляющая перчатка, джойстик 705, микрофон 706, сканер 707, камера 708.[109] The human-machine interface input devices may include one or more of (only one of each depicted): a keyboard 701, a mouse 702, a trackpad 703, a touch screen 710 and an associated graphics adapter 750, a control glove, a joystick 705, microphone 706, scanner 707, camera 708.

[110] Компьютерная система 700 также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 710, управляющей перчатки 704 или джойстика 705, но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики 709, наушники (не изображены)), устройства вывода изображения (например, экраны 710, включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).[110] Computer system 700 may also include certain human interface output devices. Such human interface output devices can stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such human interface output devices may include haptic output devices (e.g., haptic feedback from a 710 touch screen, 704 control glove, or 705 joystick, but there may also be haptic feedback devices that do not serve as input devices) , audio output devices (for example: 709 speakers, headphones (not shown)), image output devices (for example, 710 screens, including CRT screens, LCD screens, plasma screens, OLED screens, each of which has or does not have the ability to touchscreen inputs, each with or without haptic feedback capability - some of which may be capable of outputting 2D visual output or more than 3D output by means such as stereographic output; virtual reality goggles (not shown), holographic displays and smoke tanks (not shown)) and printers (not shown).

[111] Компьютерная система 700 также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW 720 с CD/DVD или подобными носителями 721, флэш-накопитель 722, съемный жесткий диск или твердотельный накопитель 723, ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.[111] Computer system 700 may also include human accessible storage devices and associated media such as optical media including CD/DVD ROM/RW 720 with CD/DVD or similar media 721, flash drive 722, removable hard disk or solid state drive 723, previously developed magnetic media such as tape and floppy disk (not shown), dedicated ROM/ASIC/PLD based devices such as dongles (not shown), etc.

[112] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.[112] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other time signals.

[113] Компьютерная система 700 также может включать в себя интерфейс(ы) к одной или более коммуникационным сетям (1155). Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные вычислительные сети (LAN), сотовые сети, включая глобальные системы мобильной связи (GSM), третьего поколения (3G), четвертого поколения (4G), пятого поколения (5G), сети стандарта "Долгосрочное развитие" (LTE) и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное широковещательное телевидение, автомобильные и промышленные, включая CAN-шину, и так далее. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры (1154), которые подключены к определенным портам данных общего назначения или периферийным шинам (1149) (например, к портам универсальной последовательной шины (USB) компьютерной системы 700); другие обычно интегрированы в ядро компьютерной системы 700 путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Например, сеть 755 может быть подключена к периферийной шине 749 с использованием сетевого интерфейса 754. Используя любую из этих сетей, компьютерная система 700 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов (1154) могут использоваться определенные протоколы и стеки протоколов, как описано выше.[113] Computer system 700 may also include interface(s) to one or more communication networks (1155). Networks can be, for example, wireless, wired, optical. In addition, networks can be local, wide area, metropolitan, automotive, industrial, real-time, latency tolerant, and so on. Examples of networks include local area networks such as Ethernet, wireless local area networks (LANs), cellular networks including global systems for mobile communications (GSM), third generation (3G), fourth generation (4G), fifth generation (5G), Long Term Evolution (LTE) networks, etc., wired television or wireless wide area digital networks, including cable television, satellite television and terrestrial broadcast television, automotive and industrial networks, including CAN bus, and so on. Some networks typically require external network interface adapters (1154) that are connected to certain general purpose data ports or peripheral buses (1149) (for example, the universal serial bus (USB) ports of the 700 computer system); others are typically integrated into the core of computer system 700 by being attached to a system bus as described below (eg, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). For example, network 755 may be connected to peripheral bus 749 using network interface 754. Using any of these networks, computer system 700 may communicate with other entities. Such communication can be unidirectional, receive-only (for example, broadcast television), unidirectional, send-only (for example, CAN bus to certain CAN-bus devices), or bidirectional, for example, to other computer systems using a local or wide area digital network. . Each of these networks and network interfaces (1154) may use specific protocols and protocol stacks as described above.

[114] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру 740 компьютерной системы 700.[114] The aforementioned human-machine interface devices, human-accessible storage devices, and network interfaces may be attached to the core 740 of the computer system 700.

[115] Ядро 740 может включать в себя один или более центральных процессоров (ЦП) 741, графических процессоров (ГП) 742, специализированных программируемых процессоров в виде программируемых пользователем вентильных матриц (ППВМ) 743, аппаратных ускорителей 744 для определенных задач и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ROM) 745, оперативным запоминающим устройством (RAM) 746, внутренним ЗУ большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD) и т.п. 747, могут быть подключены через системную шину 748. В некоторых компьютерных системах системная шина 748 может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 748 ядра, либо через периферийную шину 749. Архитектура периферийной шины включает соединение периферийных компонентов (PCI), USB и т.п.[115] The core 740 may include one or more central processing units (CPUs) 741, graphics processing units (GPUs) 742, dedicated field programmable gate array (FPGA) processors 743, hardware accelerators 744 for certain tasks, etc. . These devices, along with Read Only Memory (ROM) 745, Random Access Memory (RAM) 746, internal mass storage such as internal non-user hard drives, solid state drives (SSDs), and the like. 747 may be connected via system bus 748. In some computer systems, system bus 748 may be available as one or more physical connectors to allow expansion with additional CPUs, GPUs, and the like. Peripherals may be connected either directly to the core system bus 748 or via a peripheral bus 749. Peripheral bus architecture includes Peripheral Component Interconnect (PCI), USB, and the like.

[116] ЦП 741, ГП 742, ППВМ 743 и ускорители 744 могут выполнять определенные инструкции, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ПЗУ 745 или ОЗУ 746. Переходные данные также могут храниться в ОЗУ 746, тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости 747. Быстрое хранение и извлечение на любое из запоминающих устройств могут быть доступны посредством использования кэш-памяти, которая может быть тесно связана с одним или более ЦП 741, ГП 742, ЗУ 747 большой емкости, ПЗУ 745, ОЗУ 746 и т.п.[116] CPU 741, GPU 742, FPGA 743, and accelerators 744 may execute certain instructions, which in combination may constitute the aforementioned computer code. This computer code may be stored in ROM 745 or RAM 746. Transient data may also be stored in RAM 746, while persistent data may be stored in, for example, internal mass storage 747. Rapid storage and retrieval to any of the storage devices may be accessed by the use of cache memory, which may be closely associated with one or more of the CPU 741, GPU 742, mass storage 747, ROM 745, RAM 746, and the like.

[117] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего раскрытия, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.[117] The computer-readable medium may contain computer code for performing various computer-implemented operations. The media and computer code may be specially designed and constructed for the purposes of this disclosure, or they may be well known and available to those skilled in the art of computer software.

[118] В качестве примера, а не ограничения, компьютерная система, имеющая архитектуру 700 и, в частности, ядро 740, может обеспечивать функциональность в результате наличия процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т.п.), выполняющего программное обеспечение, воплощенное на одном или более материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 740, которые имеют невременную природу, такими как внутреннее ЗУ 747 большой емкости или ПЗУ 745. Программное обеспечение, реализующее различные варианты осуществления настоящего раскрытия, может храниться в таких устройствах и выполняться ядром 740. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро 740 и, в частности, процессоры в нем (включая ЦП, ГП, ППВМ и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в ОЗУ 746 и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 744), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (ИС)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее раскрытие включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.[118] By way of example, and not limitation, a computer system having architecture 700, and in particular core 740, may provide functionality as a result of having processor(s) (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software embodied on one or more tangible, computer-readable media. Such computer-readable media can be media associated with user-accessible mass storage as described above, as well as certain core storage devices 740 that are of a non-transitory nature, such as internal mass storage 747 or ROM 745. implementation of the present disclosure may be stored in such devices and executed by the core 740. The computer-readable medium may include one or more memories or chips in accordance with specific needs. The software may cause the core 740, and in particular the processors therein (including the CPU, GPU, FPGA, etc.) to execute certain processes or certain parts of the specific processes described herein, including the definition of data structures stored in RAM 746 and modifying such data structures in accordance with processes defined by the software. In addition or alternatively, a computer system may provide functionality as a result of logic embedded in hardware circuitry or otherwise embodied in circuitry (e.g., an accelerator 744) that can operate in place of or in conjunction with software to perform certain processes or parts of specific processes described in this document. The link to the software may include logic and vice versa where applicable. A reference to a computer-readable medium may include circuitry (eg, an integrated circuit (IC)) storing software to execute, circuitry embodying logic to execute, or both, where applicable. The present disclosure includes any suitable combination of hardware and software.

[119] Хотя это раскрытие описывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем раскрытия. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы раскрытия и, таким образом, находятся в пределах его сущности и объема правовой охраны.[119] While this disclosure describes several exemplary embodiments, there are variations, permutations, and various replacement equivalents that fall within the scope of the disclosure. Thus, it will be appreciated that those skilled in the art will be able to develop numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the disclosure and thus fall within its spirit and scope.

Claims (17)

1. Способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий: получение кодированной видеопоследовательности, включающей в себя множество наборов выходных слоев, из кодированного битового потока видео; получение первого флага, указывающего, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя; на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, получение первого элемента синтаксиса, указывающего режим набора выходных слоев; выбирание по меньшей мере одного слоя из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя на основе по меньшей мере одного из первого флага и первого элемента синтаксиса; и выведение по меньшей мере одного выходного слоя для декодирования кодированного битового потока видео, причем на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, из числа слоев, включенных во множество наборов выходных слоев, выбирают по меньшей мере один выходной слой на основе второго элемента синтаксиса, который сигнализируют в кодированном битовом потоке видео.1. A method for decoding an encoded video bitstream using at least one processor, comprising: obtaining an encoded video sequence including a plurality of sets of output layers from an encoded video bitstream; obtaining a first flag indicating whether each output layer set of the plurality of output layer sets includes more than one layer; based on the first flag indicating that each output layer set includes more than one layer, obtaining a first syntax element indicating the mode of the output layer set; selecting at least one layer from among the layers included in the plurality of output layer sets as at least one output layer based on at least one of the first flag and the first syntax element; and deriving at least one output layer for decoding the encoded video bitstream, wherein based on the first syntax element indicating that the output layer set mode is the third mode, at least one output layer set is selected from among the layers included in the plurality of output layer sets. layer based on the second syntax element that is signaled in the encoded video bitstream. 2. Способ по п.1, в котором первый флаг и первый элемент синтаксиса сигнализируют в наборе параметров видео (VPS).2. The method of claim 1, wherein the first flag and the first syntax element are signaled in a video parameter set (VPS). 3. Способ по п.1, в котором один слой выбирают в качестве по меньшей мере одного выходного слоя на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя только один слой.3. The method of claim 1, wherein one layer is selected as at least one output layer based on a first flag indicating that each output layer set includes only one layer. 4. Способ по п.1, в котором в качестве по меньшей мере одного выходного слоя выбирают самый верхний слой каждого набора выходных слоев на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является первым режимом.4. The method of claim 1, wherein the topmost layer of each output layer set is selected as the at least one output layer based on a first syntax element indicating that the mode of the output layer set is the first mode. 5. Способ по п.1, в котором в качестве по меньшей мере одного выходного слоя выбирают все слои, включенные во множество наборов выходных слоев, на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является вторым режимом.5. The method of claim 1, wherein all layers included in the plurality of output layer sets are selected as the at least one output layer based on the first syntax element indicating that the mode of the output layer set is the second mode. 6. Способ по п.1, в котором на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, невыбранные слои из числа слоев, включенных во множество наборов выходных слоев, используют в качестве опорных слоев для по меньшей мере одного выходного слоя.6. The method of claim 1, wherein based on the first syntax element indicating that the output layer set mode is the third mode, unselected layers from among the layers included in the output layer set plurality are used as reference layers for at least one output layer. 7. Способ по п.1, в котором режим набора выходных слоев выводят как третий режим на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, и второго флага, указывающего, что все слои, включенные во множество наборов выходных слоев, кодируются независимо.7. The method of claim 1, wherein the output layer set mode is output as the third mode based on the first flag indicating that each output layer set includes more than one layer and the second flag indicating that all layers included in the set sets of output layers are encoded independently. 8. Устройство для декодирования кодированного битового потока видео, при этом устройство содержит: по меньшей мере один элемент памяти, сконфигурированный для хранения программного кода; и по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя: первый код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору получать кодированную видеопоследовательность, включающую в себя множество наборов выходных слоев, из кодированного битового потока видео; второй код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору получать первый флаг, указывающий, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя; третий код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, получать первый элемент синтаксиса, указывающий режим набора выходных слоев; код выбирания, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору выбирать по меньшей мере один слой из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя на основе по меньшей мере одного из первого флага и первого элемента синтаксиса; и код выведения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору выводить по меньшей мере один выходной слой для декодирования кодированного битового потока видео, причем на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, из числа слоев, включенных во множество наборов выходных слоев, выбирается по меньшей мере один выходной слой на основе второго элемента синтаксиса, который сигнализируется в кодированном битовом потоке видео.8. A device for decoding an encoded video bitstream, the device comprising: at least one memory element configured to store program code; and at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: a first acquisition code configured to cause at least one processor to obtain an encoded video sequence including a plurality sets of output layers, from the encoded video bitstream; a second obtaining code configured to cause at least one processor to obtain a first flag indicating whether each output layer set of the plurality of output layer sets includes more than one layer; a third obtaining code configured to cause at least one processor, based on the first flag indicating that each output layer set includes more than one layer, to obtain the first syntax element indicating the mode of the output layer set; selection code configured to cause at least one processor to select at least one layer from among the layers included in the plurality of output layer sets as at least one output layer based on at least one of the first flag and the first element syntax; and a derivation code configured to cause at least one processor to output at least one output layer for decoding the encoded video bitstream, moreover, based on the first syntax element indicating that the output layer set mode is the third mode, among the layers, included in the plurality of output layer sets, at least one output layer is selected based on a second syntax element that is signaled in the encoded video bitstream. 9. Устройство по п.8, в котором первый флаг и первый элемент синтаксиса сигнализируются в наборе параметров видео (VPS).9. The apparatus of claim 8, wherein the first flag and the first syntax element are signaled in a video parameter set (VPS). 10. Устройство по п.8, в котором один слой выбирается в качестве по меньшей мере одного выходного слоя на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя только один слой.10. The apparatus of claim 8, wherein one layer is selected as at least one output layer based on a first flag indicating that each output layer set includes only one layer. 11. Устройство по п.8, в котором в качестве по меньшей мере одного выходного слоя выбирается самый верхний слой каждого набора выходных слоев на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является первым режимом.11. The apparatus of claim 8, wherein the topmost layer of each output layer set is selected as the at least one output layer based on a first syntax element indicating that the mode of the output layer set is the first mode. 12. Устройство по п.8, в котором в качестве по меньшей мере одного выходного слоя выбираются все слои, включенные во множество наборов выходных слоев, на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является вторым режимом. 12. The apparatus of claim 8, wherein all layers included in the plurality of output layer sets are selected as the at least one output layer based on the first syntax element indicating that the output layer set mode is the second mode. 13. Устройство по п.8, в котором на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, невыбранные слои из числа слоев, включенных во множество наборов выходных слоев, используются в качестве опорных слоев для по меньшей мере одного выходного слоя.13. The apparatus of claim 8, wherein based on the first syntax element indicating that the output layer set mode is the third mode, unselected layers from among the layers included in the output layer set plurality are used as reference layers for at least one output layer. 14. Устройство по п.8, в котором режим набора выходных слоев выводится как третий режим на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, и второго флага, указывающего, что все слои, включенные во множество наборов выходных слоев, кодируются независимо.14. The apparatus of claim 8, wherein the output layer set mode is output as the third mode based on a first flag indicating that each output layer set includes more than one layer and a second flag indicating that all layers included in the set sets of output layers are encoded independently. 15. Невременный машиночитаемый носитель, хранящий инструкции, содержащие: одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам: получать кодированную видеопоследовательность, включающую в себя множество наборов выходных слоев, из кодированного битового потока видео; получать первый флаг, указывающий, включает ли каждый набор выходных слоев из множества наборов выходных слоев более одного слоя; на основе первого флага, указывающего, что каждый набор выходных слоев включает в себя более одного слоя, получать первый элемент синтаксиса, указывающий режим набора выходных слоев; выбирать по меньшей мере один слой из числа слоев, включенных во множество наборов выходных слоев, в качестве по меньшей мере одного выходного слоя, на основе по меньшей мере одного из первого флага и первого элемента синтаксиса; выводить по меньшей мере один выходной слой, причем на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является третьим режимом, из числа слоев, включенных во множество наборов выходных слоев, выбирается по меньшей мере один выходной слой на основе второго элемента синтаксиса, который сигнализируется в кодированном битовом потоке видео.15. A non-transitory computer-readable medium storing instructions containing: one or more instructions that, when executed by one or more processors of a device for decoding an encoded video bitstream, instruct one or more processors to: obtain an encoded video sequence including a plurality of sets of output layers from an encoded video bitstream; receive a first flag indicating whether each output layer set of the plurality of output layer sets includes more than one layer; based on the first flag indicating that each output layer set includes more than one layer, obtain a first syntax element indicating the mode of the output layer set; select at least one layer from among the layers included in the plurality of output layer sets as at least one output layer based on at least one of the first flag and the first syntax element; output at least one output layer, and based on the first syntax element indicating that the output layer set mode is the third mode, at least one output layer is selected from among the layers included in the plurality of output layer sets based on the second syntax element, which is signaled in the encoded video bitstream. 16. Невременный машиночитаемый носитель по п.15, в котором в качестве по меньшей мере одного выходного слоя выбирается самый верхний слой каждого набора выходных слоев на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является первым режимом.16. The non-transitory computer-readable medium of claim 15, wherein the topmost layer of each output layer set is selected as the at least one output layer based on a first syntax element indicating that the mode of the output layer set is the first mode. 17. Невременный машиночитаемый носитель по п.15, в котором в качестве по меньшей мере одного выходного слоя выбираются все слои, включенные во множество наборов выходных слоев, на основе первого элемента синтаксиса, указывающего, что режим набора выходных слоев является вторым режимом.17. The non-transitory computer-readable medium of claim 15, wherein all layers included in the output layer set plurality are selected as the at least one output layer based on the first syntax element indicating that the output layer set mode is the second mode.
RU2021127569A 2019-10-08 2020-09-29 Method for signaling of set of output layers in scalable video stream RU2787850C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/912,275 2019-10-08
US17/030,950 2020-09-24

Publications (1)

Publication Number Publication Date
RU2787850C1 true RU2787850C1 (en) 2023-01-13

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2324302C1 (en) * 2005-10-19 2008-05-10 Самсунг Электроникс Ко., Лтд. Method for encoding flags in layer using interlayer correlation, method and device for decoding encoded flags
US20140301476A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling change in output layer sets
US20150103926A1 (en) * 2013-10-15 2015-04-16 Nokia Corporation Video encoding and decoding
US20150319462A1 (en) * 2014-05-01 2015-11-05 Qualcomm Incorporated Hypothetical reference decoder parameters for partitioning schemes in video coding
US20170006300A1 (en) * 2014-03-14 2017-01-05 Huawei Technologies Co., Ltd. Image decoding apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2324302C1 (en) * 2005-10-19 2008-05-10 Самсунг Электроникс Ко., Лтд. Method for encoding flags in layer using interlayer correlation, method and device for decoding encoded flags
US20140301476A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling change in output layer sets
US20150103926A1 (en) * 2013-10-15 2015-04-16 Nokia Corporation Video encoding and decoding
US20170006300A1 (en) * 2014-03-14 2017-01-05 Huawei Technologies Co., Ltd. Image decoding apparatus
US20150319462A1 (en) * 2014-05-01 2015-11-05 Qualcomm Incorporated Hypothetical reference decoder parameters for partitioning schemes in video coding

Similar Documents

Publication Publication Date Title
US11394983B2 (en) Method and apparatus for merge mode with additional middle candidates in video coding
KR102558961B1 (en) Segment types in video coding
US10523963B1 (en) Method and apparatus for merge mode in video coding
EP4066491A1 (en) Signaling of video coding tools supporting various chroma formats
US20220141479A1 (en) Method for output layer set signaling in scalable video stream
US11765373B2 (en) Method for layerwise random access in a coded video stream
US20230336719A1 (en) Most probable mode list generation scheme
US20240007622A1 (en) Mode list generation for multi-line intra prediction
KR20200142067A (en) Method and apparatus for improved context design for prediction mode and coded block flag (CBF)
US11949856B2 (en) Intra mode selection in intra prediction
KR20210036408A (en) Method and apparatus for video coding
US11178418B2 (en) Method and apparatus for efficient signaling of picture size and partitioning information in video bitstream
RU2787850C1 (en) Method for signaling of set of output layers in scalable video stream
RU2791938C1 (en) Transmission of interlayer prediction in video bit stream
RU2775739C1 (en) Layered random access method in encoded video stream