RU2789520C1 - Method for signalling a picture header in a stream of encoded video data - Google Patents

Method for signalling a picture header in a stream of encoded video data Download PDF

Info

Publication number
RU2789520C1
RU2789520C1 RU2021132371A RU2021132371A RU2789520C1 RU 2789520 C1 RU2789520 C1 RU 2789520C1 RU 2021132371 A RU2021132371 A RU 2021132371A RU 2021132371 A RU2021132371 A RU 2021132371A RU 2789520 C1 RU2789520 C1 RU 2789520C1
Authority
RU
Russia
Prior art keywords
vcl nal
nal unit
picture
vcl
unit
Prior art date
Application number
RU2021132371A
Other languages
Russian (ru)
Inventor
Бёнду ЧОЙ
Шань ЛЮ
Стефан ВЕНГЕР
Original Assignee
Тенсент Америка Ллс
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Тенсент Америка Ллс filed Critical Тенсент Америка Ллс
Application granted granted Critical
Publication of RU2789520C1 publication Critical patent/RU2789520C1/en

Links

Images

Abstract

FIELD: video data processing.
SUBSTANCE: invention relates to video encoding tools. A network abstraction layer (NAL) unit of the video data encoding layer (VCL) is obtained. It is determined whether the VCL NAL unit is the first VCL NAL unit of the picture unit (PU) containing the VCL NAL unit. The VCL NAL unit is herein defined as the first VCL NAL unit of said PU based on determining that the VCL NAL unit is the first VCL NAL unit following the NAL unit of the picture header. Based on determining that the VCL NAL unit is the first VCL NAL unit of said PU and determining that the least significant bit of the VCL NAL unit picture sequence counter differs from the least significant bit of the picture sequence counter for the previous image, it is determined whether the VCL NAL unit is the first VCL NAL unit of the access unit (AU) containing the PU. Based on determining that the VCL NAL unit is the first VCL NAL unit of said AU, the AU is decoded based on the VCL NAL unit.
EFFECT: increased efficiency of video encoding.
7 cl, 9 dwg

Description

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

[1] По настоящей заявке испрашивается приоритет согласно предварительной заявке на выдачу патента США №63/005,640, поданной 6 апреля 2020 года, и заявке на выдачу патента США №17/096,168, поданной 12 ноября 2020 года, содержание которых полностью включено в настоящее описание посредством ссылки.[1] This application claims priority under U.S. Provisional Application No. 63/005,640, filed April 6, 2020, and U.S. Patent Application No. 17/096,168, filed November 12, 2020, the contents of which are incorporated herein in their entirety. through a link.

Область техникиTechnical field

[2] Изобретение относится к кодированию и декодированию видеоданных, а более конкретно, к сигнализации заголовка изображения в потоке кодированных видеоданных.[2] The invention relates to encoding and decoding video data, and more specifically, signaling a picture header in a coded video stream.

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

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

Сущность изобретенияThe essence of the invention

[4] В варианте осуществления изобретения предоставляется способ декодирования битового потока кодированных видеоданных с использованием по меньшей мере одного процессора, включающий получение блока уровня сетевой абстракции (NAL, network abstraction layer) уровня кодирования видеоданных (VCL, video coding layer); определение, является ли блок VCL NAL первым блоком VCL NAL блока изображения (PU, picture unit), содержащего блок VCL NAL; на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого PU, определение того, является ли блок VCL NAL первым блоком VCL NAL блока доступа (AU, access unit), содержащего PU; и на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого AU, декодирование AU на основе блока VCL NAL.[4] In an embodiment of the invention, a method is provided for decoding a bitstream of encoded video data using at least one processor, including obtaining a block of the network abstraction layer (NAL, network abstraction layer) of the video coding layer (VCL, video coding layer); determining whether the VCL NAL unit is the first VCL NAL unit of the picture unit (PU, picture unit) containing the VCL NAL unit; based on determining that the VCL NAL is the first VCL NAL of the PU, determining whether the VCL NAL is the first VCL NAL of the access unit containing the PU; and based on determining that the VCL NAL is the first VCL NAL of the AU, decoding the AU based on the VCL NAL.

[5] В варианте осуществления изобретения предоставляется устройство для декодирования битового потока кодированных видеоданных, содержащее по меньшей мере одну память, сконфигурированную для хранения программного кода, и по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, при этом программный код включает: первый код получения, сконфигурированный для обеспечения, по меньшей мере одним процессором, получения блока уровня сетевой абстракции (NAL) уровня кодирования видеоданных (VCL); первый код определения, сконфигурированный для обеспечения, по меньшей мере одним процессором, определения, является ли блок VCL NAL первым блоком VCL NAL блока изображения (PU), содержащего блок VCL NAL; второй код определения, сконфигурированный для обеспечения, по меньшей мере одним процессором, на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого PU, определения, является ли блок VCL NAL первым блоком VCL NAL блока доступа (AU), содержащего PU; и код декодирования, сконфигурированный для обеспечения, по меньшей мере одним процессором, на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого AU, декодирования AU на основе блока VCL NAL.[5] In an embodiment of the invention, there is provided an apparatus for decoding an encoded video bitstream, comprising at least one memory 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, wherein the program code includes: a first acquisition code configured to allow at least one processor to obtain a network abstraction layer (NAL) block of a video coding layer (VCL); a first determination code configured to allow at least one processor to determine whether the VCL NAL unit is the first VCL NAL unit of a picture unit (PU) containing the VCL NAL unit; a second determination code configured to provide at least one processor, based on determining that the VCL NAL unit is the first VCL NAL unit of said PU, determining whether the VCL NAL unit is the first VCL NAL unit of the access unit (AU) containing the PU ; and a decoding code configured to cause the at least one processor, based on determining that the VCL NAL unit is the first VCL NAL unit of said AU, to decode the AU based on the VCL NAL unit.

[6] В одном варианте осуществления изобретения предоставляется машиночитаемый носитель, на котором хранятся инструкции, включающие одну или более инструкций, которые при их исполнении одним или более процессорами устройства для декодирования битового потока кодированных видеоданных обеспечивают выполнение одним или более процессорами: получения блока уровня сетевой абстракции (NAL) уровня кодирования видеоданных (VCL); определения, является ли блок VCL NAL первым блоком VCL NAL блока изображения (PU), содержащего блок VCL NAL; на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого PU, определения, является ли блок VCL NAL первым блоком VCL NAL блока доступа (AU), содержащего PU; и на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого AU, декодирования AU на основе блока VCL NAL.[6] In one embodiment of the invention, a computer-readable medium is provided on which instructions are stored, including one or more instructions, which, when executed by one or more processors of a device for decoding a coded video bitstream, cause one or more processors to perform: (NAL) video coding level (VCL); determining whether the VCL NAL unit is the first VCL NAL unit of the picture unit (PU) containing the VCL NAL unit; based on determining that the VCL NAL is the first VCL NAL of the PU, determining whether the VCL NAL is the first VCL NAL of the access unit (AU) containing the PU; and based on determining that the VCL NAL is the first VCL NAL of the AU, decoding the AU based on the VCL NAL.

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

[7] Дополнительные особенности, характер и различные преимущества настоящего изобретения будут понятны из последующего подробного описания и прилагаемых чертежей.[7] Additional features, nature and various advantages of the present invention will be apparent from the following detailed description and the accompanying drawings.

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

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

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

[11] Фиг. 4 представляет собой схематическую иллюстрацию упрощенной структурной схемы кодера в соответствии с вариантом осуществления изобретения.[11] FIG. 4 is a schematic illustration of a simplified block diagram of an encoder in accordance with an embodiment of the invention.

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

[13] Фиг. 6А-6С представляют блок-схемы примеров способов декодирования битового потока кодированных видеоданных в соответствии с вариантом осуществления изобретения.[13] FIG. 6A-6C are flowcharts of examples of methods for decoding an encoded video bitstream in accordance with an embodiment of the invention.

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

Подробное описание изобретенияDetailed description of the invention

[15] На фиг. 1 показана упрощенная структурная схема системы связи (100) согласно варианту осуществления настоящего изобретения. Система (100) может включать по меньшей мере два терминала (110-120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи на другой терминал (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.[15] FIG. 1 shows a simplified block diagram of a communication system (100) according to an embodiment of the present invention. The system (100) may include at least two terminals (110-120) interconnected via a 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 another terminal's encoded video data from the network (150), decode the encoded data, and display the recovered video data. One-way communication may be inherent in media service applications and the like.

[16] Фиг. 1 иллюстрирует вторую пару терминалов (130, 140), поддерживающих двунаправленную передачу кодированных видеоданных, которая может происходить, например, во время видеоконференций. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, снятые в локальном местоположении, для передачи другому терминалу по сети (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, передаваемые другим терминалом, декодировать кодированные данные и отображать восстановленные видеоданные на локальном устройстве отображения.[16] FIG. 1 illustrates a second pair of terminals (130, 140) supporting bidirectional transmission of coded video data, which may occur during video conferences, for example. 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) can also receive the encoded video data transmitted by the other terminal, decode the encoded data, and display the recovered video data on a local display device.

[17] В примере, приведенном на фиг. 1, терминалы (110-140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или оборудования, используемого для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между терминалами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Примеры сетей включают телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.[17] In the example shown in FIG. 1, terminals (110-140) can be illustrated as servers, personal computers, and smartphones, but this does not limit the principles of the present invention. Embodiments of the present invention find application in laptop computers, tablet computers, media players and/or equipment used for video conferencing. Network (150) represents any number of networks that carry encoded video data between terminals (110-140), including, for example, wired and/or wireless networks. The communication network (150) allows data to be exchanged in a circuit-switched and/or packet-switched mode. Examples of 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 relevant to the present invention unless specifically noted below.

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

[19] Система потоковой передачи может включать подсистему (213) захвата, которая может включать источник (201) видеоданных, например цифровую камеру, создающую, например, несжатый поток (202) отсчетов видеоданных. Этот поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с битовыми потоками кодированных видеоданных, может быть обработан кодером (203), соединенным с камерой (201). Кодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов настоящего изобретения, как более подробно описано ниже. Битовый поток (204) кодированных видеоданных, изображенный в виде тонкой линии, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может быть сохранен на сервере (205) потоковой передачи для дальнейшего использования. Один или более клиентов (206, 208) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) битового потока (204) кодированных видеоданных. Клиент (206) может включать в себя видеодекодер (210), декодирующий входящую копию битового потока (207) кодированных видеоданных и создающий исходящий поток (211) отсчетов видеоданных, который может быть отображен на дисплее (212) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи битовые потоки (204, 207, 209) видеоданных могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видеоданных. Примеры этих стандартов включают Рекомендацию МСЭ-Т Н.265. В стадии разработки находится стандарт кодирования видеоданных, неофициально известный как Универсальное кодирование видеоданных или VVC (Versatile Video Coding). Настоящее изобретение может использоваться в контексте VVC.[19] The streaming system may include a capture subsystem (213), which may include a source (201) of video data, such as a digital camera, creating, for example, an uncompressed stream (202) of video samples. This stream (202) of samples, depicted with a thick line to emphasize the large amount of data compared to the bitstreams of encoded video data, can be processed by an encoder (203) connected to a camera (201). The encoder (203) may include hardware, software, or a combination thereof to provide or implement aspects of the present invention, as described in more detail below. The encoded video data bitstream (204), depicted as a thin line to emphasize the smaller amount of data compared to the sample stream, may be stored on the streaming server (205) for later 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, bitstreams (204, 207, 209) of video data may be encoded according to certain video coding/compression standards. Examples of these standards include ITU-T Rec. H.265. A video coding standard is under development, informally known as Universal Video Coding or VVC (Versatile Video Coding). The present invention can be used in the context of VVC.

[20] На фиг. 3 показана функциональная схема видеодекодера (210) согласно варианту осуществления настоящего изобретения.[20] FIG. 3 is a functional diagram of a video decoder (210) according to an embodiment of the present invention.

[21] Приемник (310) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (210), в том же или другом варианте осуществления изобретения, по одной кодированной видеопоследовательности за раз, при этом декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут перенаправляться на соответствующие использующие их объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети между приемником (310) и энтропийным декодером / анализатором (320) (далее "анализатором") может быть подключена буферная память (315). Когда приемник (310) принимает данные от устройства хранения/перенаправления с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, таких как интернет, может потребоваться буфер (315), который может быть сравнительно большим и может предпочтительно иметь адаптивный размер.[21] The receiver (310) may receive one or more encoded video sequences for decoding by video decoder (210), in the same or another embodiment of the invention, one encoded video sequence at a time, with the decoding of each encoded video sequence independent of other encoded video sequences. The encoded video sequence may be received from a channel (312), which may be a hardware/software link to a storage device where the encoded video data is stored. The receiver (310) may receive encoded video data with other data, such as encoded audio data and/or auxiliary data streams, which may be redirected to their respective utilizing 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/analyzer (320) (hereinafter "analyzer"). When the receiver (310) receives data from a storage/redirector with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (315) may not be needed or may be small. For use in best effort packet networks such as the Internet, a buffer (315) may be required, which may be relatively large and may preferably have an adaptive size.

[22] Видеодекодер (210) может включать анализатор (320) для реконструкции символов (321) из энтропийно-кодированной видеопоследовательности. Категории этих символов включают информацию, используемую для управления работой декодера (210), и, возможно, информацию для управления устройством визуализации, например дисплеем (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг. 3. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации о возможности использования видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать принципам, известным специалисту в данной области техники, включая кодирование с переменной длиной серии, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать группы изображений (GOP, Groups of Pictures), изображения, субизображения, тайлы, слайсы, модули, макроблоки, единицы дерева кодирования (CTU, Coding Tree Unit), единицы кодирования (CU, Coding Unit), блоки, единицы преобразования (TU, Transform Unit), единицы предсказания (PU, Prediction Unit) и т.д. Тайл может указывать на прямоугольную область CU/CTU в определенном столбце и строке тайла на изображении. Модуль может указывать на прямоугольную область строк CU/CTU внутри определенного тайла. Слайс может указывать на один или более модулей изображения, которые содержатся в блоке NAL. Субизображение может указывать на прямоугольную область одного или более слайсов на изображении. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[22] The video decoder (210) may include an analyzer (320) for reconstructing the symbols (321) from the entropy-coded video sequence. The categories of these symbols include information used to control the operation of the decoder (210) and possibly information to control a visualization device such as a display (212) that is not an integral part of the decoder but may be connected to it, as shown in FIG. 3. The control information for the rendering device(s) may be Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The analyzer (320) may analyze/entropy decode the received encoded video sequence. The encoding of the video sequence may be in accordance with a video coding technology or standard and may follow principles known to those skilled in the art, including variable run length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The analyzer (320) can 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 (GOP, Groups of Pictures), pictures, sub-images, tiles, slices, modules, macroblocks, coding tree units (CTU, Coding Tree Unit), coding units (CU, Coding Unit), blocks, transformation units ( TU, Transform Unit), prediction units (PU, Prediction Unit), etc. A tile can point to a rectangular area of a CU/CTU in a specific column and row of a tile in an image. A module can point to a rectangular area of CU/CTU rows within a specific tile. A slice may point to one or more image units that are contained in a NAL unit. A sub-image may point to a rectangular area of one or more slices in an image. The entropy decoder/analyzer can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, etc.

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

[24] Для реконструкции символов (321) могут использоваться несколько различных модулей в зависимости от типа кодированного видеоизображения или его частей (например: изображения с внутренним и внешним кодированием, блоки с внутренним и внешним кодированием) и других факторов. Какие модули и как используются, может определяться информацией управления подгруппами, полученной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и модулями для простоты в дальнейшем не показан.[24] Several different modules may be used for symbol reconstruction (321) depending on the type of encoded video image or parts thereof (eg, intra- and inter-coded images, intra- and inter-coded blocks) and other factors. Which modules are used and how can be determined by the subgroup management information obtained from the encoded video sequence by the analyzer (320). The flow of such subgroup control information between the analyzer (320) and the modules is not shown hereinafter for simplicity.

[25] Помимо ранее упомянутых функциональных блоков, видеодекодер 210 может принципиально разделяться на несколько функциональных модулей, как описано ниже. В практической реализации в условиях коммерческих ограничений многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания настоящего изобретения уместно принципиальное разделение на перечисленные ниже функциональные модули.[25] In addition to the previously mentioned functional blocks, video decoder 210 can be fundamentally divided into several functional modules, as described below. In practical implementation under commercial constraints, many of these modules interact closely with each other and can, at least partially, be built into one another. However, for the purpose of describing the present invention, a fundamental division into the following functional modules 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 the transform used, block size, quantization factor, quantization scaling matrices, etc. as character(s) (321) from the analyzer (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, a block that does not use predicted information from previously reconstructed images, but can use predicted information from previously reconstructed parts of the current image . Such predicted information may be provided by the intra image prediction module (352). In some cases, the intra image prediction module (352) generates a block of the same size and shape as the block to be reconstructed using the already reconstructed environment 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 an intra-coded block, possibly 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 motion compensation has been applied to the extracted samples according to the symbols (321) associated with the block, these samples can be added by an aggregator (355) to the output of the scaler/demapper (in this case referred to as residual samples or residual signal) to generate output information. counts. Reference picture memory addresses from where the motion-compensated prediction module retrieves prediction samples may be driven by motion vectors available to the motion-compensated prediction module in the form of symbols (321), which may have, for example, X, Y, and reference picture components. . Motion compensation may also include interpolation of sample values retrieved from reference picture memory when accurate subsample motion vectors, motion vector prediction mechanisms, and so on are used.

[29] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле (356) контурного фильтра. Технологии сжатия видеоданных могут включать технологии контурного фильтра под управлением с помощью параметров, включенных в битовый поток кодированных видеоданных и доступных модулю (356) контурного фильтра в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.[29] Various loop filtering methods can be applied to the aggregator (355) output samples in the loop filter module (356). The video data compression technologies may include loop filter technologies controlled by parameters included in the encoded video bitstream and available to the loop filter module (356) as symbols (321) from the analyzer (320), but may also be responsive to metainformation obtained during decoding previous (in decoding order) parts of the encoded image or encoded video sequence, as well as responding to previously reconstructed and contour filtered sample values.

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

[31] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение полностью реконструировано и идентифицировано как опорное изображение (например, анализатором (320)), текущее опорное изображение (358) может становиться частью буферной памяти (357) опорных изображений, и может повторно выделяться свежая память для текущего изображения до начала реконструкции следующего кодированного изображения.[31] Some encoded pictures, when fully reconstructed, can be used as reference pictures for future prediction. For example, when the encoded picture is fully reconstructed and identified as a reference picture (e.g., by analyzer (320)), the current reference picture (358) may become part of the reference picture buffer memory (357), and fresh memory for the current picture may be re-allocated prior to reconstruction. next encoded picture.

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

[33] Согласно варианту осуществления изобретения, приемник (310) может принимать дополнительные (избыточные) данные с кодированными видеоданными. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, временные уровни улучшения, пространственные уровни улучшения или уровни улучшения отношения "сигнал/шум" (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.[33] According to an embodiment of the invention, the receiver (310) may receive additional (redundant) data with encoded video data. 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 properly decode the data and/or more accurately reconstruct the original video data. The side data may be, for example, temporal enhancement levels, spatial enhancement levels or signal noise ratio (SNR) enhancement levels, redundant slices, redundant images, forward error correction codes, and so on.

[34] На фиг. 4 показана функциональная схема видеокодера (203) согласно варианту осуществления настоящего изобретения.[34] FIG. 4 is a functional diagram of a video encoder (203) according to an embodiment of the present invention.

[35] Кодер (203) может принимать отсчеты видеоданных от источника (201) видеоданных (который не входит в состав кодера), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (203).[35] The encoder (203) may receive video data samples from a video data source (201) (which is not part of the encoder) that may capture the video image(s) to be encoded by the video 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 data source (201) may provide the source video sequence to be encoded by the video encoder (203) in the form of a digital video data sample stream of any suitable bit depth (eg: 8 bits, 10 bits, 12 bits, ...), any color space (eg , BT.601 Y CrCB, RGB,…) and any suitable sampling structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the source (201) of video data may be a storage device where previously prepared video is stored. In a videoconferencing system, the video data 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 give a sense of movement when viewed in sequence. The images themselves may be organized as a spatial array of pixels, where each pixel may contain one or more samples depending on the sampling structure used, color space, and so on. It is not difficult for a person skilled in the art to understand the relationship between pixels and samples. The following description is devoted to readings.

[37] Согласно варианту осуществления изобретения, кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально подключен к ним. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое в методах оптимизации "скорость-искажения", и т.д.), размер изображения, организацию групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Специалисту в данной области техники понятно, что контроллер (450) может иметь другие подходящие функции, относящиеся к видеокодеру (203), оптимизированному для конкретной конструкции системы.[37] According to an embodiment of the invention, the encoder (203) may encode and compress images of the source video sequence into the encoded video sequence (443) in real time or subject to any other time constraints imposed by the application. Setting the proper coding rate is one of the functions of the controller (450). The controller controls other functional modules as described below and is functionally connected to them. The connection is not shown for simplicity. The parameters set by the controller may include parameters related to frequency adjustment (picture skip, quantizer, lambda value used in rate-distortion optimization methods, etc.), image size, group of images (GOP, group of pictures), maximum motion vector search area, etc. One skilled in the art will appreciate that the controller (450) may have other suitable functions related to the video encoder (203) optimized for a particular system design.

[38] Некоторые видеокодеры могут работать в "контуре кодирования", как понятно специалисту в данной области техники. В качестве очень упрощенного описания, например, контур кодирования может включать кодирующую часть кодера (430) (называемую здесь "кодером источника") (отвечающую за создание символов, например, потока символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в кодер (203), который реконструирует символы для создания данных отсчетов, как это делал бы (удаленный) декодер (поскольку любое сжатие символов в битовый поток кодированных видеоданных происходит без потерь в технологиях сжатия видеоданных, рассматриваемых в данном описании). Реконструированный поток отсчетов поступает в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, которые не зависят от положения (локального или удаленного) декодера, содержимое буфера опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, часть предсказания кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) хорошо известен специалисту в данной области техники.[38] Some video encoders may operate in a "coding loop" as understood by one skilled in the art. As a very simplified description, for example, an encoding loop may include an encoder (430) encoding part (herein referred to as a "source encoder") (responsible for creating symbols, for example, a stream of symbols, based on the input image to be encoded and the reference image(s). (s)) and a (local) decoder (433) built into the encoder (203) that reconstructs the symbols to produce sample data as a (remote) decoder would (because any symbol compression into the encoded video bitstream is lossless in video compression technologies discussed in this description). The reconstructed stream of samples enters the memory (434) reference images. Since decoding a stream of symbols produces bit-accurate results that are independent of the position (local or remote) of the decoder, the contents of the reference picture buffer will also be the same bit-accuracy for the local encoder and the remote encoder. In other words, the prediction part of the encoder "sees" as reference picture samples exactly the same sample values as the decoder would "see" if using prediction during decoding. This fundamental principle of reference picture synchronism (and eventually 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 "local" decoder (433) may operate in the same manner as the "remote" decoder (210) detailed above with reference to FIG. However, again, as shown in FIG. 4, since the symbols are available and encoding/decoding of the symbols into the encoded video sequence by the entropy encoder (445) and parser (320) can be lossless, the entropy decoding portions of the decoder (210) including the channel (312) , receiver (310), buffer (315), and parser (320) may not be fully implemented in the local decoder (433).

[40] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа / энтропийного декодирования, также обязательно должна присутствовать по существу в идентичной функциональной форме в соответствующем кодере. По этой причине настоящее изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодирования. Лишь в некоторых областях требуется более подробное описание, которое приведено ниже.[40] In doing so, it can be concluded that any decoding technology present in a decoder, with the exception of analysis/entropy decoding, must also necessarily be present in essentially identical functional form in the corresponding encoder. For this reason, the present invention is focused on the operation of the decoder. The description of the encoding technologies can be abbreviated as they are the inverse of the decoding technologies described in detail. Only in some areas a more detailed description is required, which is given below.

[41] В ходе работы кодер (430) источника может осуществлять кодирование с предсказанием и компенсацией движения, при котором входной кадр кодируется с предсказанием на основе одного или более ранее кодированных кадров из видеопоследовательности, указанных как "опорные кадры". Таким образом, механизм (432) кодирования кодирует разности между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), который(ые) может(ут) выбираться в качестве ссылки(ок) предсказания на входной кадр.[41] In operation, the source encoder (430) may perform motion-compensated predictive coding in which an input frame is predictively encoded based on one or more previously encoded frames from the video sequence, referred to as "reference frames". Thus, the coding engine (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) to 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 indicated as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may be predominantly lossy methods. 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) duplicates the decoding processes that may be performed by the video decoder on the reference frames and may store the reconstructed reference frames in the reference picture cache (434). Thus, the encoder (203) can locally store copies of the reconstructed key frames having the same content as the reconstructed key frames that would be received by the remote video decoder (in the absence of transmission errors).

[43] Предсказатель (435) может осуществлять поиски предсказания для механизма (432) кодирования. Таким образом, для нового кадра, подлежащего кодированию, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных блоков пикселей) или конкретные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов × блоки пикселей" для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (434) опорных изображений.[43] The predictor (435) may perform prediction searches for the encoding engine (432). Thus, for a new frame to be encoded, the predictor (435) may search the reference picture memory (434) for sample data (as pixel reference block candidates) or specific metadata such as reference picture motion vectors, block shapes, etc. .d., which can serve as a proper reference for predicting new images. The predictor (435) may operate on a "blocks of samples×blocks of pixels" basis to find proper references for prediction. In some cases, according to the search results obtained by the predictor (435), the input picture may have prediction references extracted from the 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 as well as subgroup parameters used to encode video data.

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

[46] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную(ые) энтропийным кодером (445), для подготовки к передаче через канал (460) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, с кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).[46] The transmitter (440) may buffer the encoded video sequence(s) created by the entropy encoder (445) in preparation for transmission over a communication channel (460), which may be a hardware/software memory link. where the encoded video data is stored. The transmitter (440) may combine the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or auxiliary 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 one or another encoded picture type, which may determine the encoding methods applicable to the corresponding picture. For example, the following types of frames can often be assigned to images.

[48] Изображение с внутренним кодированием (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника для предсказания. Некоторые видеокодеки допускают разные типы изображений с внутренним кодированием, включая, например, изображения в формате независимого обновления декодера (IDR, Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.[48] An intra-coded picture (I-picture) that can be encoded and decoded without using any other frame in the sequence as a source for prediction. Some video codecs allow different types of intra-coded images, including, for example, images in the Independent Decoder Refresh (IDR) format. One skilled in the art will be aware of the I-image varieties and their respective uses and features.

[49] Изображение с предсказанием (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[49] A predictive picture (P-picture) 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) that can be encoded and decoded using intra prediction or inter prediction using no more than two motion vectors and reference indices to predict sample values of each block. Likewise, multi-prediction pictures may use more than two reference pictures and associated metadata to reconstruct a single block.

[51] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться с предсказанием со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (с пространственным предсказанием или внутренним предсказанием). Блоки пикселей Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[51] Source images typically allow for spatial division into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and coding on a block-by-block basis. The blocks may be predictively encoded with reference to other (previously coded) blocks defined by the coding assignment applied to the respective images of those blocks. For example, blocks of I-pictures may be encoded without prediction or predictively with reference to previously encoded blocks of the same picture (with spatial prediction or intra prediction). The pixel blocks of P-pictures may be encoded without prediction, either by spatial prediction or temporal prediction with reference to one previously encoded reference picture. Blocks of B-pictures may be encoded without prediction, by spatial prediction or 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 according to 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. Therefore, the encoded video data may follow the syntax given by the technology used or the video coding standard used.

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

[54] Варианты осуществления изобретения могут относиться к модификациям синтаксиса и семантики, относящихся к заголовкам изображений. По меньшей мере один вариант осуществления изобретения может относиться к сигнализации all_pic_coding_info_present_in_ph_flag в наборе параметров изображения (PPS, picture parameter set) в качестве флага шлюза для сохранения некоторых битов, чтобы указать, присутствует ли информация инструмента кодирования уровня изображения в заголовке изображения (РН, picture header) или заголовке слайса (SH, slice header). По меньшей мере один вариант осуществления изобретения может относиться к корректировке идентификации первого блока VCL NAL блока PU или AU. По меньшей мере один вариант осуществления изобретения может относиться к модификациям семантики gdr_or_irap_pic_flag, чтобы справиться со случаем, когда значение mixed_nalu_types_flag равно 1.[54] Embodiments of the invention may relate to modifications to the syntax and semantics related to image headers. At least one embodiment of the invention may relate to signaling all_pic_coding_info_present_in_ph_flag in a picture parameter set (PPS) as a gateway flag to store some bits to indicate whether picture level coding tool information is present in a picture header (PH). ) or slice header (SH, slice header). At least one embodiment of the invention may relate to correcting the identification of the first VCL NAL of the PU or AU. At least one embodiment of the invention may relate to modifications to the semantics of gdr_or_irap_pic_flag to deal with the case where the value of mixed_nalu_types_flag is 1.

[55] В вариантах осуществления изобретения набор параметров изображения (PPS) может относиться к синтаксической структуре, содержащей синтаксические элементы, которые не применяются или применяются к полным кодированным изображениям, как определено синтаксическим элементом, находящимся в каждом заголовке слайса.[55] In embodiments of the invention, a Picture Parameter Set (PPS) may refer to a syntax structure containing syntax elements that do not apply or apply to complete encoded pictures as defined by the syntax element found in each slice header.

[56] В вариантах осуществления изобретения заголовок изображения (РН) может относиться к синтаксической структуре, содержащей синтаксические элементы, которые применяются ко всем слайсам кодированного изображения.[56] In embodiments of the invention, a picture header (PH) may refer to a syntax structure containing syntax elements that apply to all slices of an encoded picture.

[57] В вариантах осуществления изобретения заголовок слайса (SH) может относиться к части кодированного слайса, содержащего элементы данных, относящиеся ко всем тайлам или строкам единицы дерева кодирования (CTU, coding tree unit) в тайле, представленном в слайсе.[57] In embodiments, a slice header (SH) may refer to a portion of an encoded slice containing data elements relating to all tiles or lines of a coding tree unit (CTU) in a tile represented in the slice.

[58] Варианты осуществления изобретения могут относиться к уровню кодирования видеоданных (VCL, Video Coding Layer).[58] Embodiments of the invention may relate to a video coding layer (VCL, Video Coding Layer).

[59] В вариантах осуществления изобретения блок уровня сетевой абстракции (NAL) может относиться к синтаксической структуре, содержащей указание типа данных, которые далее следуют, и байты, содержащие эти данные в виде полезной нагрузки необработанной последовательности байтов (RBSP, raw byte sequence payload), перемежающихся при необходимости с байтами предотвращения эмуляции.[59] In embodiments of the invention, a network abstraction layer (NAL) block may refer to a syntax structure containing an indication of the type of data that follows, and bytes containing this data in the form of a payload of a raw byte sequence payload (RBSP, raw byte sequence payload) , interspersed with emulation prevention bytes if necessary.

[60] В вариантах осуществления изобретения блок VCL NAL может относиться к собирающему термину для блоков NAL кодированных слайсов и подмножества блоков NAL, которые имеют зарезервированные значения nal_unit_type и классифицированы в данном описании как блоки VCL NAL.[60] In embodiments, a VCL NAL unit may refer to a collection term for coded slice NAL units and a subset of NAL units that have reserved nal_unit_type values and are classified herein as VCL NAL units.

[61] В вариантах осуществления изобретения блок изображения (PU) может относиться к набору блоков NAL, которые связаны друг с другом в соответствии с заданным правилом классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение.[61] In embodiments of the invention, a picture unit (PU) may refer to a set of NAL units that are related to each other according to a given classification rule, are sequential in decoding order, and contain exactly one encoded picture.

[62] В вариантах осуществления изобретения блок доступа (AU) может относиться к набору блоков PU, которые принадлежат разным уровням и содержат кодированные изображения, связанные с одним и тем же временем вывода из буфера декодированных изображений (DPB, decoded picture buffer).[62] In embodiments of the invention, an access unit (AU) may refer to a set of PUs that belong to different layers and contain encoded pictures associated with the same output time from the decoded picture buffer (DPB).

[63] Варианты осуществления изобретения могут относиться к адаптивному смещению отсчетов (SAO, sample adaptive offset).[63] Embodiments of the invention may relate to sample adaptive offset (SAO).

[64] В вариантах осуществления изобретения адаптивный контурный фильтр (ALF, adaptive loop filter) может относиться к процессу фильтрации, который применяется как часть процесса декодирования и управляется параметрами, передаваемыми в наборе параметров адаптации (APS, adaptation parameter set).[64] In embodiments of the invention, an adaptive loop filter (ALF) may refer to a filtering process that is applied as part of the decoding process and is controlled by parameters transmitted in an adaptation parameter set (APS).

[65] Варианты осуществления изобретения могут относиться к параметру квантования (QP, quantization parameter).[65] Embodiments of the invention may relate to a quantization parameter (QP, quantization parameter).

[66] Варианты осуществления изобретения могут относиться к внутренней точке произвольного доступа (IRAP, intra random access point).[66] Embodiments of the invention may relate to an internal random access point (IRAP, intra random access point).

[67] Варианты осуществления изобретения могут относиться к постепенному обновлению декодирования (GDR, gradual decoding refresh).[67] Embodiments of the invention may relate to gradual decoding refresh (GDR).

[68] В вариантах осуществления изобретения изображение GDR может относиться к изображению, для которого каждый блок VCL NAL имеет значение nal_unit_type, равное GDR NUT.[68] In embodiments of the invention, a GDR image may refer to an image for which each VCL NAL unit has a nal_unit_type value equal to GDR NUT.

[69] Согласно последней версии проекта VVC (JVET-Q2001-vE), может использоваться шесть флагов для указания, присутствует ли информация кодирования уровня изображения в заголовке изображения или заголовке слайса в синтаксической структуре PPS. Например, rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag и т.д. В большинстве случаев эти значения могут иметь одно и то же значение - 0 или 1. Маловероятно, что для каждого флага ххх_info_in_p>h будет другое значение.[69] According to the latest version of the VVC draft (JVET-Q2001-vE), six flags can be used to indicate whether image level encoding information is present in the image header or slice header in the PPS syntax. For example, rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag, etc. In most cases, these values can have the same value - 0 or 1. It is unlikely that each xxx_info_in_p>h flag will have a different value.

[70] Следовательно, в вариантах осуществления изобретения флаг шлюза all_pic__coding_info_present_in_ph_flag может указывать на присутствие этих флагов в PPS для сохранения битов в PPS. Если значение all_pic_coding_info_present_in_ph_flag равно 1, эти флаги ххх_info_in_ph не сигнализируются, и может быть сделан вывод, что значения этих флагов равны 1, потому что сигнализация информации кодирования уровня изображения в заголовке изображения может происходить чаще, чем сигнализация информации в заголовке слайса для управления на уровне слайса. Пример таблицы синтаксиса, соответствующей вариантам осуществления изобретения, показан на фиг. 5.[70] Therefore, in embodiments of the invention, the gateway flag all_pic__coding_info_present_in_ph_flag may indicate the presence of these flags in the PPS to store bits in the PPS. If the value of all_pic_coding_info_present_in_ph_flag is 1, these xxx_info_in_ph flags are not signaled, and it can be inferred that the values of these flags are 1 because the signaling of picture layer coding information in the picture header may occur more frequently than the signaling of slice header information for slice level control. . An example of a syntax table corresponding to embodiments of the invention is shown in FIG. 5.

[71] В вариантах осуществления изобретения значение all_pic_coding_info_present_in_ph_flag, равное 1, может указывать на то, что rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag, alf_info_in_ph_flag, wp_info_in_ph_flag и qp_ delta_info_in_ph_flag не присутствуют в PPS, значение all_pic_ coding_info_present_in_ph_flag, равное 0, может указывать на то, что rpl_info_in_ph_flag, dbf__info_in_ph_flag, sao_info_in_ph_flag, alf_info_in_ph_flag, wp_info_in_ph_flag и qp_delta_info_in_ph_flag присутствуют в PPS.[71] В вариантах осуществления изобретения значение all_pic_coding_info_present_in_ph_flag, равное 1, может указывать на то, что rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag, alf_info_in_ph_flag, wp_info_in_ph_flag и qp_ delta_info_in_ph_flag не присутствуют в PPS, значение all_pic_ coding_info_present_in_ph_flag, равное 0, может указывать на то, что rpl_info_in_ph_flag , dbf__info_in_ph_flag, sao_info_in_ph_flag, alf_info_in_ph_flag, wp_info_in_ph_flag and qp_delta_info_in_ph_flag are present in PPS.

[72] В вариантах осуществления изобретения значение rpl_info_ in_ph_flag, равное 1, может указывать на то, что информация списка опорных изображений присутствует в синтаксической структуре РН и не присутствует в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Значение rpl_info_in_ph_flag, равное 0, может указывать на то, что информация списка опорных изображений не присутствует в синтаксической структуре РН и может присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Когда значение rpl_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 1.[72] In embodiments, an rpl_info_in_ph_flag value of 1 may indicate that reference picture list information is present in the PH syntax structure and not present in PPS-related slice headers that do not contain the PH syntax structure. An rpl_info_in_ph_flag value of 0 may indicate that the reference picture list information is not present in the PH syntax structure and may be present in PPS-related slice headers that do not contain the PH syntax structure. When the value of rpl_info_in_ph_flag is missing, it can be inferred that it is equal to 1.

[73] В вариантах осуществления изобретения значение dbf_info_ in_ph_flag, равное 1, может указывать на то, что информация фильтра для устранения блочности присутствует в синтаксической структуре РН и не присутствует в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Значение dbf_info_in_ph_flag, равное 0, может указывать на то, что информация фильтра для устранения блочности не присутствует в синтаксической структуре РН и может присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Когда значение dbf_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 0. Когда значение dbf_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 1.[73] In embodiments, a dbf_info_in_ph_flag value of 1 may indicate that deblocking filter information is present in the PH syntax and not present in PPS-related slice headers that do not contain the PH syntax. A dbf_info_in_ph_flag value of 0 may indicate that deblocking filter information is not present in the PH syntax and may be present in PPS-related slice headers that do not contain the PH syntax. When the value of dbf_info_in_ph_flag is absent, it can be inferred that it is 0. When the value of dbf_info_in_ph_flag is absent, it can be inferred that it is equal to 1.

[74] Значение sao_info_in_ph_flag, равное 1, может указывать на то, что информация фильтра SAO присутствует в синтаксической структуре РН и не присутствует в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Значение sao_info_in_ph_flag, равное 0, может указывать на то, что информация фильтра SAO не присутствует в синтаксической структуре РН и может присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Когда значение sao_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 1.[74] A sao_info_in_ph_flag value of 1 may indicate that SAO filter information is present in the PH syntax structure and not present in PPS-related slice headers that do not contain the PH syntax structure. A sao_info_in_ph_flag value of 0 may indicate that the SAO filter information is not present in the PH syntax and may be present in PPS-related slice headers that do not contain the PH syntax. When the value of sao_info_in_ph_flag is missing, it can be inferred that it is equal to 1.

[75] Значение alf_info_in_ph_flag, равное 1, может указывать на то, что информация ALF присутствует в синтаксической структуре РН и не присутствует в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Значение alf_info_in_ph_flag, равное 0, может указывать на то, что информация ALF не присутствует в синтаксической структуре РН и может присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Когда значение alf_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 1.[75] An alf_info_in_ph_flag value of 1 may indicate that ALF information is present in the PH syntax structure and not present in PPS-related slice headers that do not contain the PH syntax structure. An alf_info_in_ph_flag value of 0 may indicate that ALF information is not present in the PH syntax and may be present in PPS-related slice headers that do not contain the PH syntax. When alf_info_in_ph_flag is missing, it can be inferred that it is 1.

[76] Значение wp_info_in_ph_flag, равное 1, может указывать на то, что информация взвешенного предсказания может присутствовать в синтаксической структуре РН и не присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Значение wp_info_in_ph_flag, равное 0, может указывать на то, что информация взвешенного предсказания не присутствует в синтаксической структуре РН и может присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Когда значение wp_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 0. Когда значение wp_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 1.[76] A wp_info_in_ph_flag value of 1 may indicate that weighted prediction information may be present in the PH syntax and not present in PPS-related slice headers that do not contain the PH syntax. A wp_info_in_ph_flag value of 0 may indicate that the weighted prediction information is not present in the PH syntax and may be present in PPS-related slice headers that do not contain the PH syntax. When the value of wp_info_in_ph_flag is absent, it can be inferred that it is 0. When the value of wp_info_in_ph_flag is absent, it can be inferred that it is equal to 1.

[77] Значение qp_delta_info_in_ph_flag, равное 1, может указывать на то, что информация о дельта QP присутствует в синтаксической структуре РН и не присутствует в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Значение qp_delta_info_in_ph_flag, равное 0, может указывать на то, что информация о дельта QP не присутствует в синтаксической структуре РН и может присутствовать в заголовках слайсов, относящихся к PPS, которые не содержат синтаксическую структуру РН. Когда значение qp_delta_info_in_ph_flag отсутствует, может быть сделан вывод, что оно равно 1.[77] A qp_delta_info_in_ph_flag value of 1 may indicate that delta QP information is present in the PH syntax and is not present in PPS slice headers that do not contain the PH syntax. A qp_delta_info_in_ph_flag value of 0 may indicate that delta QP information is not present in the PH syntax and may be present in PPS-related slice headers that do not contain the PH syntax. When the qp_delta_info_in_ph_flag value is missing, it can be inferred that it is equal to 1.

[78] Из последнего проекта спецификации VVC не ясно, как идентифицировать первый блок VCL NAL блока PU или AU. Варианты осуществления изобретения могут относиться к следующей модификации описания порядка блоков NAL.[78] It is not clear from the latest draft of the VVC specification how to identify the first VCL NAL of a PU or AU. Embodiments of the invention may relate to the following modification of the NAL unit order description.

[79] В вариантах осуществления изобретения блок VCL NAL является первым блоком VCL NAL блока AU (и, следовательно, PU, содержащий блок VCL NAL, является первым PU упомянутого AU), когда блок VCL NAL является первым блоком VCL NAL, который следует за блоком NAL заголовка РН или имеет значение picture_header_in_slice_header_flag, равное 1, и выполняется одно или более из следующих условий:[79] In embodiments, the VCL NAL is the first VCL NAL of the AU (and therefore the PU containing the VCL NAL is the first PU of said AU) when the VCL NAL is the first VCL NAL that follows the VCL NAL. PH header NAL or has picture_header_in_slice_header_flag equal to 1 and one or more of the following conditions are met:

- Значение nuh_layer_id блока VCL NAL меньше nuh_layer_id предыдущего изображения в порядке декодирования.- The nuh_layer_id value of the VCL NAL unit is less than the nuh_layer_id of the previous picture in decoding order.

- Значение ph_pic_order_cnt_lsb блока VCL NAL отличается от ph_pic_order_cnt_lsb предыдущего изображения в порядке декодирования.- The ph_pic_order_cnt_lsb value of the VCL NAL block is different from the ph_pic_order_cnt_lsb of the previous picture in decoding order.

- Значение PicOrderCntVal, полученное для блока VCL NAL, отличается от значения PicOrderCntVal предыдущего изображения в порядке декодирования.- The PicOrderCntVal value obtained for the VCL NAL block is different from the PicOrderCntVal value of the previous picture in the decoding order.

[80] В вариантах осуществления изобретения флаг gdr_or_irap_pic_flag в заголовке изображения указывает, является ли текущее изображение изображением IRAP или GDR. Когда значение gdr_or_irap_pic_flag равно 1, флаг no_output_of_prior_pics_flag также может присутствовать в заголовке изображения. При объединении битовых потоков субизображений значение no_output_of_prior_pics_flag субизображения IRAP необходимо сохранить для извлечения субизображения. Чтобы решить эту проблему, варианты осуществления изобретения могут относиться к следующей модификации семантики gdr_or_irap_pic_flag:[80] In embodiments, the gdr_or_irap_pic_flag flag in the picture header indicates whether the current picture is an IRAP or GDR picture. When the value of gdr_or_irap_pic_flag is 1, the no_output_of_prior_pics_flag flag may also be present in the image header. When concatenating sub-picture bitstreams, the no_output_of_prior_pics_flag value of the IRAP sub-picture needs to be stored to retrieve the sub-picture. To solve this problem, embodiments of the invention may refer to the following modification of the semantics of gdr_or_irap_pic_flag:

[81] В вариантах осуществления изобретения значение gdr_or_irap_pic_flag, равное 1, может указывать на то, что текущее изображение является изображением GDR или IRAP или изображением с блоком VCL NAL, равным IDR_W_RADL, IDR_N_LP или CRA_NUT и значением mixed_nalu_types_in_pic_flag, равным 1. Значение gdr_or_irap_pic_flag, равное 0, может указывать на то, что текущее изображение может или не может быть изображением GDR или IRAP.[81] In embodiments, a gdr_or_irap_pic_flag value of 1 may indicate that the current picture is a GDR or IRAP picture, or a picture with a VCL NAL unit equal to IDR_W_RADL, IDR_N_LP, or CRA_NUT and a mixed_nalu_types_in_pic_flag value of 1. A gdr_or_irap_pic_flag value of 0 may indicate that the current image may or may not be a GDR or IRAP image.

[82] В вариантах осуществления изобретения значение gdr_or_irap_pic_flag, равное 1, может указывать на то, что текущее изображение является изображением GDR или IRAP, или изображением, содержащим субизображение IRAP со значением mixed_nalu_types_in_pic_flag, равным 1. Значение gdr_or_irap_pic_flag, равное 0, может указывать на то, что текущее изображение может или не может быть изображением GDR или IRAP.[82] In embodiments, a gdr_or_irap_pic_flag value of 1 may indicate that the current image is a GDR or IRAP image, or an image containing an IRAP sub-image with a mixed_nalu_types_in_pic_flag value of 1. A gdr_or_irap_pic_flag value of 0 may indicate that that the current image may or may not be a GDR or IRAP image.

[83] В вариантах осуществления изобретения значение gdr_or_irap_pic_flag, равное 1, может указывать на то, что текущее изображение является изображением GDR или IRAP. Значение gdr_or_irap_pic_flag, равное 0, может указывать на то, что текущее изображение может или не может быть изображением GDR или IRAP.[83] In embodiments of the invention, a gdr_or_irap_pic_flag value of 1 may indicate that the current picture is a GDR or IRAP picture. A gdr_or_irap_pic_flag value of 0 may indicate that the current picture may or may not be a GDR or IRAP picture.

[84] Может использоваться требование соответствия битового потока, которое заключается в том, что значение gdr_or_irap_pic_flag равно 0, когда значение mix_nalu_types_in_pic_flag равно 1.[84] A bitstream matching requirement may be used, which is that the value of gdr_or_irap_pic_flag is 0 when the value of mix_nalu_types_in_pic_flag is 1.

[85] Фиг. 6А-6С представляют блок-схемы примеров способов 600А, 600В и 600С декодирования битового потока кодированных видеоданных. В некоторых реализациях один или более этапов способов, показанных на фиг. 6А-6С, могут выполняться декодером 210. В некоторых реализациях один или более этапов способов, показанных на фиг. 6А-6С, могут выполняться другим устройством или группой устройств, отдельных от декодера 210 или включающих декодер 210, например кодером 203.[85] FIG. 6A-6C are flowcharts of examples of methods 600A, 600B, and 600C for decoding an encoded video bitstream. In some implementations, one or more steps of the methods shown in FIG. 6A-6C may be performed by decoder 210. In some implementations, one or more steps of the methods shown in FIG. 6A-6C may be performed by another device or group of devices separate from or including decoder 210, such as encoder 203.

[86] В вариантах осуществления изобретения один или более этапов, показанных на фиг. 6А, могут соответствовать одному или более этапам, показанным на фиг. 6В и 6С, или могут выполняться совместно с ними.[86] In embodiments of the invention, one or more of the steps shown in FIG. 6A may correspond to one or more of the steps shown in FIG. 6B and 6C, or may be performed in conjunction with them.

[87] Как показано на фиг. 6А, способ 600А может включать получение блока уровня сетевой абстракции (NAL) уровня кодирования видеоданных (VCL) (этап 611).[87] As shown in FIG. 6A, method 600A may include obtaining a network abstraction layer (NAL) block of a video coding layer (VCL) (block 611).

[88] Как также показано на фиг. 6А, способ 600А может включать определение того, что блок VCL NAL является первым блоком VCL NAL блока изображения (PU), содержащего блок VCL NAL (этап 612).[88] As also shown in FIG. 6A, method 600A may include determining that the VCL NAL unit is the first VCL NAL unit of a picture unit (PU) containing the VCL NAL unit (block 612).

[89] Как также показано на фиг. 6А, способ 600А может включать, на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого PU, определение того, что блок VCL NAL является первым блоком VCL NAL блока доступа (AU), содержащего PU (этап 613).[89] As also shown in FIG. 6A, method 600A may include, based on determining that the VCL NAL is the first VCL NAL of the PU, determining that the VCL NAL is the first VCL NAL of the AU containing the PU (step 613).

[90] Как также показано на фиг. 6А, способ 600А может включать, на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого AU, декодирование AU на основе блока VCL NAL (этап 614).[90] As also shown in FIG. 6A, method 600A may include, based on determining that the VCL NAL unit is the first VCL NAL unit of the AU, decoding the AU based on the VCL NAL unit (block 614).

[91] В вариантах осуществления изобретения один или более этапов, показанных на фиг. 6В, могут соответствовать одному или более этапам, показанным на фиг. 6А и 6В, или могут выполняться совместно с ними.[91] In embodiments of the invention, one or more of the steps shown in FIG. 6B may correspond to one or more of the steps shown in FIG. 6A and 6B, or may be performed in conjunction with them.

[92] Как показано на фиг. 6В, способ 600 В может включать получение блока VCL NAL (этап 621).[92] As shown in FIG. 6B, method 600B may include obtaining a VCL NAL unit (block 621).

[93] Как также показано на фиг. 6В, способ 600 В может включать определение того, является ли блок VCL NAL первым блоком NAL VCL, следующим за блоком NAL заголовка изображения (этап 622).[93] As also shown in FIG. 6B, method 600B may include determining if the VCL NAL unit is the first VCL NAL unit following the picture header NAL unit (block 622).

[94] Как также показано на фиг. 6В, способ 600 В может включать, на основе определения того, что блок VCL NAL является первым блоком NAL VCL, следующим за блоком NAL заголовка изображения ("Да" на этапе 622), переход к этапу 623.[94] As also shown in FIG. 6B, method 600B may include, based on determining that the VCL NAL unit is the first VCL NAL unit following the picture header NAL unit ("Yes" in step 622), proceeding to step 623.

[95] Как также показано на фиг. 6В, способ 600 В может включать, на основе определения того, что блок VCL NAL не является первым блоком VCL NAL, следующим за блоком NAL заголовка изображения ("Нет" на этапе 623), переход к этапу 624. В вариантах осуществления изобретения способ 600 В может вместо этого перейти к этапу 625.[95] As also shown in FIG. 6B, method 600B may include, based on a determination that a VCL NAL unit is not the first VCL NAL unit following a picture header NAL unit ("No" in step 623), proceeding to step 624. In embodiments of the invention, method 600 B may instead proceed to block 625.

[96] Как также показано на фиг. 6В, способ 600 В может включать определение того, установлен ли в блоке VCL NAL флаг для указания на то, что заголовок изображения включен в заголовок слайса, включенный в блок VCL NAL (этап 624). В вариантах осуществления изобретения флаг может соответствовать picture_header_in_slice_header_flag.[96] As also shown in FIG. 6B, method 600B may include determining if a flag is set in the VCL NAL unit to indicate that a picture header is included in a slice header included in the VCL NAL unit (block 624). In embodiments of the invention, the flag may correspond to picture_header_in_slice_header_flag.

[97] Как также показано на фиг. 6В, способ 600 В может включать, на основе определения того, что в блоке VCL NAL установлен флаг для указания на то, что заголовок изображения включен в заголовок слайса, включенный в блок VCL NAL ("Да" на этапе 624), переход к этапу 623.[97] As also shown in FIG. 6B, method 600B may include, based on determining that a flag is set in the VCL NAL unit to indicate that a picture header is included in a slice header included in the VCL NAL unit ("Yes" in step 624), proceeding to step 623.

[98] Как также показано на фиг. 6В, способ 600 В может включать, на основе определения того, что флаг в блоке VCL NAL не установлен для указания на то, что заголовок изображения включен в заголовок слайса, включенный в блок VCL NAL ("Нет" на этапе 624), переход к этапу 625.[98] As also shown in FIG. 6B, method 600B may include, based on determining that a flag in the VCL NAL unit is not set to indicate that a picture header is included in a slice header included in the VCL NAL unit ("No" at 624), proceeding to step 625.

[99] Как также показано на фиг. 6В, способ 600 В может включать определение того, что блок VCL NAL является первым блоком VCL NAL упомянутого PU, содержащего блок VCL NAL (этап 623).[99] As also shown in FIG. 6B, method 600B may include determining that the VCL NAL unit is the first VCL NAL unit of the PU containing the VCL NAL unit (block 623).

[100] Как также показано на фиг. 6В, способ 600 В может включать определение того, что блок VCL NAL не является первым блоком VCL NAL упомянутого PU, содержащего блок VCL NAL (этап 625).[100] As also shown in FIG. 6B, method 600B may include determining that the VCL NAL unit is not the first VCL NAL unit of the PU containing the VCL NAL unit (block 625).

[101] В вариантах осуществления изобретения один или более этапов, показанных на фиг. 6С, могут соответствовать одному или более этапам, показанным на фиг. 6А и 6С, или могут выполняться совместно с ними.[101] In embodiments of the invention, one or more of the steps shown in FIG. 6C may correspond to one or more of the steps shown in FIG. 6A and 6C, or may be performed in conjunction with them.

[102] Как показано на фиг. 6С, способ 600С может включать определение того, что блок VCL NAL является первым блоком VCL NAL блока PU (этап 631).[102] As shown in FIG. 6C, method 600C may include determining that the VCL NAL is the first VCL NAL of the PU (block 631).

[103] Как также показано на фиг. 6С, способ 600С может включать определение того, меньше ли идентификатор уровня блока VCL NAL, чем идентификатор уровня предыдущего изображения (этап 632).[103] As also shown in FIG. 6C, method 600C may include determining if the VCL NAL unit's layer identifier is less than the previous picture's layer identifier (block 632).

[104] Как также показано на фиг. 6С, способ 600С может включать, на основе определения того, что идентификатор уровня блока VCL NAL меньше идентификатора уровня предыдущего изображения ("Да" на этапе 632), переход к этапу 633.[104] As also shown in FIG. 6C, method 600C may include, based on determining that the VCL NAL unit level identifier is less than the previous picture level identifier ("Yes" in step 632), proceeding to step 633.

[105] Как также показано на фиг. 6С, способ 600С может включать, на основе определения того, что идентификатор уровня блока VCL NAL не меньше идентификатора уровня предыдущего изображения ("Нет" на этапе 633), переход к этапу 634. В вариантах осуществления изобретения способ 600С может вместо этого перейти к этапу 635.[105] As also shown in FIG. 6C, method 600C may include, based on determining that the VCL NAL unit level identifier is not less than the previous picture level identifier ("No" in step 633), proceeding to step 634. In embodiments of the invention, method 600C may instead proceed to step 635.

[106] Как также показано на фиг. 6С, способ 600С может включать определение того, отличается ли счетчик последовательности изображений блока VCL NAL от счетчика последовательности изображений для предыдущего изображения (этап 634). В вариантах осуществления изобретения это может быть определено на основе младших значащих битов (LSB, least significant bit) счетчиков последовательности изображений.[106] As also shown in FIG. 6C, method 600C may include determining if the VCL NAL block picture sequence counter is different from the picture sequence counter for the previous picture (block 634). In embodiments of the invention, this can be determined based on the least significant bits (LSB, least significant bit) of the image sequence counters.

[107] Как также показано на фиг. 6С, способ 600С может включать, на основе определения того, что счетчик последовательности изображений блока VCL NAL отличается от счетчика последовательности изображений для предыдущего изображения ("Да" на этапе 634), переход к этапу 633.[107] As also shown in FIG. 6C, method 600C may include, based on determining that the VCL NAL unit's picture sequence count is different from the picture sequence count for the previous picture ("Yes" in step 634), proceeding to step 633.

[108] Как также показано на фиг. 6С, способ 600С может включать, на основе определения того, что счетчик последовательности изображений блока VCL NAL не отличается от счетчика последовательности изображений для предыдущего изображения ("Нет" на этапе 634), переход к этапу 635.[108] As also shown in FIG. 6C, method 600C may include, based on determining that the VCL NAL unit's picture sequence counter is the same as the previous picture's picture sequence counter ("No" at 634), proceeding to 635.

[109] Как также показано на фиг. 6С, способ 600С может включать определение того, что блок VCL NAL является первым блоком VCL NAL упомянутого AU, содержащего блок VCL NAL (этап 633).[109] As also shown in FIG. 6C, method 600C may include determining that the VCL NAL unit is the first VCL NAL unit of the AU containing the VCL NAL unit (block 633).

[110] Как также показано на фиг. 6С, способ 600С может включать определение того, что блок VCL NAL не является первым блоком VCL NAL упомянутого AU, содержащего блок VCL NAL (этап 635).[110] As also shown in FIG. 6C, method 600C may include determining that the VCL NAL unit is not the first VCL NAL unit of the AU containing the VCL NAL unit (block 635).

[111] В вариантах осуществления изобретения на основе флага, указывающего на то, что вся информация кодирования изображения присутствует в заголовке изображения, множество флагов, соответствующих информации кодирования изображения, может не сигнализироваться. В вариантах осуществления изобретения флаг может соответствовать all_pic_coding_info_present_in_ph_flag.[111] In embodiments of the invention, based on a flag indicating that all of the image encoding information is present in the image header, a plurality of flags corresponding to the image encoding information may not be signaled. In embodiments of the invention, the flag may correspond to all_pic_coding_info_present_in_ph_flag.

[112] Хотя на фиг. 6А-6С показаны примеры этапов способов 600А-600С, в некоторых реализациях способы 600А-600С могут включать дополнительные этапы, меньшее количество этапов, различные этапы или этапы, расположенные иначе, чем показано на фиг. 6А-6С. Дополнительно или альтернативно, два или более этапов способов 600А-600С могут выполняться параллельно.[112] Although FIG. 6A-6C show examples of steps in methods 600A-600C, in some implementations, methods 600A-600C may include additional steps, fewer steps, different steps, or steps arranged differently than shown in FIG. 6A-6C. Additionally or alternatively, two or more steps of methods 600A-600C may be performed in parallel.

[113] Кроме того, предлагаемые способы могут быть реализованы с помощью схем обработки (например, одного или более процессоров или одной или более интегральных схем). В одном из примеров один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе, для осуществления одного или более предлагаемых способов.[113] In addition, the proposed methods can be implemented using 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 computer-readable medium to implement one or more of the proposed methods.

[114] Вышеописанные способы могут быть реализованы в виде компьютерного программного обеспечения, использующего машиночитаемые инструкции и физически хранящегося на одном или более машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система 700, пригодная для осуществления некоторых вариантов осуществления изобретения.[114] The above methods may be implemented as 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 practicing some embodiments of the invention.

[115] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п., компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.[115] Computer software may be coded using any suitable machine code or computer language that may be assembled, compiled, linked, or similarly processed to produce code containing instructions that can be executed directly or through interpretation, microcode execution, etc. etc., computer central processing units (CPU, central processing units), graphic processors (GPU, Graphics Processing Units), etc.

[116] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.[116] 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.

[117] Компоненты компьютерной системы 700, показанные на фиг. 7, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым компонентом или комбинацией компонентов, показанных в примере осуществления компьютерной системы 700.[117] The components of computer system 700 shown in FIG. 7 are illustrative in nature and are not intended to impose any limitation on the scope of application or functionality of computer software implementing embodiments of the present invention. The component configuration should also not be interpreted as having any dependency or requirement in connection with any component or combination of components shown in the exemplary computer system 700.

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

[119] Входной человеко-машинный интерфейс устройства может включать одно или более из следующего (показано по одному): клавиатура 701, мышь 702, сенсорная панель 703, сенсорный экран 710 и связанный с ним графический адаптер 750, информационная перчатка, джойстик 705, микрофон 706, сканер 707 и камера 708.[119] The input human-machine interface of the device may include one or more of the following (shown one at a time): keyboard 701, mouse 702, touch pad 703, touch screen 710 and associated graphics adapter 750, data glove, joystick 705, microphone 706, scanner 707 and camera 708.

[120] Компьютерная система 700 также может включать в себя некоторые устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана 710, информационной перчатки или джойстика 705, а также устройства тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: динамики 709, наушники (не показаны)), устройства визуального вывода (например, экраны 710, в том числе экраны на электронно-лучевых трубках (CRT, cathode ray tube), жидкокристаллические экраны (LCD, liquid-crystal display), плазменные экраны, экраны на органических светодиодах (OLED, organic light-emitting diode), каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из них способны к двумерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографическому выводу, очки виртуальной реальности (не показаны), голо графические дисплеи, дымовые баки (не показаны) и принтеры (не показаны).[120] Computer system 700 may also include some human interface output devices. Such output devices may stimulate the senses of one or more users through, for example, tactile output, sound, light, and smell/taste. Such output devices may include tactile output devices (for example, haptic feedback via the 710 touch screen, information glove, or 705 joystick, as well as haptic feedback devices that do not serve as input devices), audio output devices (for example: speakers 709, headphones ( not shown)), visual output devices (e.g., 710 screens, including cathode ray tube (CRT) screens, liquid-crystal display (LCD), plasma screens, organic light-emitting diode screens ( OLED, organic light-emitting diode), each with or without touch screen input capabilities, each with or without tactile feedback capabilities, some of them are capable of two-dimensional visual output or more than three-dimensional output through, for example, stereographic output, glasses virtual reality (not shown), holographic displays, smoke tanks (not shown) and printers (not shown). cauldrons).

[121] Компьютерная система 700 также может включать доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие CD/DVD ROM/RW 720 с носителями 721 CD/DVD и т.п., карты 722 флэш-памяти, сменный жесткий диск или твердотельный диск 723, традиционные магнитные носители, например, ленту и магнитный диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[121] 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 media 721, etc., flash memory cards 722, removable hard drive or solid state drive 723, conventional magnetic media such as tape and magnetic disk (not shown), dedicated ROM/ASIC/PLD based devices such as security dongles (not shown), and the like.

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

[123] Компьютерная система 700 также может включать интерфейс(ы) к одной или более сетям (1155) связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть также локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают локальные сети, например, Ethernet, беспроводные сети LAN, сотовые сети, в том числе глобальные системы мобильной связи (GSM, global systems for mobile communications), сети поколений 3G, 4G и 5G, сети технологии долгосрочного развития (LTE, Long-Term Evolution) и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные сети, включающие CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров (1154) сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1149) (например, порты универсальной последовательной шины (USB, universal serial bus) компьютерной системы 700); другие обычно встраиваются в ядро компьютерной системы 700 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Например, сеть 755 может быть подключена к периферийной шине 749 с использованием сетевого интерфейса 754. Используя любую из этих сетей, компьютерная система 700 может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов (1154).[123] Computer system 700 may also include interface(s) to one or more communication networks (1155). Networks can be, for example, wireless, wired, optical. Networks can also be local, global, urban, transport and industrial, real-time, latency, etc. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks, including global systems for mobile communications (GSM), 3G, 4G, and 5G generation networks, Long Term Evolution (LTE, Long Term Evolution) -Term Evolution), etc., global digital networks of wired or wireless television, including cable television, satellite television and terrestrial television broadcasting, transport and industrial networks, including CANBus, etc. Some networks typically require external network interface adapters (1154) that are connected to some general purpose data ports or peripheral buses (1149) (eg, the USB universal serial bus ports of the computer system 700); others are typically built into the core of computer system 700 by connecting 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 may be unidirectional with receive-only capability (eg broadcast), unidirectional with transmit-only capability (eg CANbus to some CANbus devices), or bidirectional, eg to other computer systems using a local area network or a wide area digital network. Several protocols and protocol stacks may be used on each of these networks and the network interfaces described above (1154).

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

[125] Ядро 740 может включать один или более центральных процессоров (CPU) 741, графические процессоры (GPU) 742, специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) 743, аппаратные ускорители 744 для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) 745, оперативной памятью 746 (RAM), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, твердотельными накопителями (SSD, solid-state drives) и т.п.747, могут соединяться посредством системной шины 748. В некоторых компьютерных системах системная шина 748 может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных процессоров CPU, GPU и т.п.Периферийные устройства могут подключаться либо напрямую к системной шине 748 ядра, либо через периферийную шину 749. Архитектуры периферийной шины включают шину соединения периферийных компонентов (PCI, peripheral component interconnect), USB и т.п.[125] The core 740 may include one or more central processing units (CPUs) 741, graphics processing units (GPUs) 742, field programmable gate arrays (FPGAs) 743, hardware accelerators 744 for some tasks, etc. These devices, together with Read Only Memory (ROM) 745, Random Access Memory (RAM) 746, high capacity internal storage such as internal hard drives that are not user accessible, solid state drives (SSDs, solid-state drives), etc.747 , may be connected via the system bus 748. In some computer systems, the system bus 748 may be available in the form of one or more physical connectors to allow for expansions with additional CPUs, GPUs, etc. Peripheral devices may be connected either directly to the system bus 748 core, or via a peripheral bus 749. Peripheral bus architectures include a peripheral component interconnect (PCI) bus, USB, and the like.

[126] Устройства CPU 741, GPU 742, FPGA 743 и ускорители 744 могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в памяти ROM 745 или RAM 746. Временные данные также могут храниться в памяти RAM 746, тогда как постоянные данные могут храниться, например, во внутреннем хранилище 747 данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU 741, GPU 742, хранилищем 747 данных большой емкости, памятью ROM 745, RAM 746 и т.п.[126] The CPU 741, GPU 742, FPGA 743, and accelerators 744 may execute some instructions that together may constitute the aforementioned computer code. This computer code may be stored in ROM 745 or RAM 746. Temporary data may also be stored in RAM 746, while permanent data may be stored in, for example, internal high capacity data storage 747. Fast storage and retrieval from any storage device can be achieved through the use of a cache memory that can be tightly coupled to one or more CPU 741, GPU 742, mass storage 747, ROM 745, RAM 746, and the like.

[127] На машиночитаемых носителях может храниться компьютерный код для осуществления различных выполняемых компьютером операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.[127] Computer-readable media may store computer code for performing various computer-executable operations. The media and computer code may be specially created for the purposes of the present invention or may be well known and available to those skilled in the art of computer software.

[128] В порядке примера, но не ограничения изобретения, компьютерная система, имеющая архитектуру 700, и, в частности, ядро 740 может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных машиночитаемых носителей. Такие машиночитаемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым постоянным хранилищем ядра 740, например, внутренним хранилищем 747 данных большой емкости или ROM 745. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 740. Машиночитаемый носитель может включать одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру 740 и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные способы или конкретные части описанных здесь конкретных способов, включая задание структур данных, хранящихся в памяти RAM 746, и модификацию таких структур данных согласно способам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель 744), которая может действовать вместо программного обеспечения или совместно с программным обеспечением для выполнения конкретных способов или конкретных частей описанных здесь конкретных способов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на машиночитаемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе схемы, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.[128] By way of example, and not limitation of the invention, a computer system having architecture 700, and in particular core 740, can provide functionality by being executed by processor(s) (including(and) including CPUs, GPUs, FPGAs, accelerators etc.) software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with the user-accessible mass storage described above as well as some persistent storage of the core 740, such as internal mass storage 747 or ROM 745. Software implementing various embodiments of the present invention may stored in such devices and executed by the core 740. The computer-readable medium may include one or more storage devices or chips, as appropriate. The software may direct the core 740, and in particular its processors (including CPUs, GPUs, FPGAs, and the like), to perform specific methods or specific portions of the specific methods described herein, including setting data structures stored in RAM 746 and modifying such data structures according to the methods specified by the software. Additionally or alternatively, the computer system may provide functionality through logic hardwired or otherwise embodied in circuitry (e.g., accelerator 744) that may operate in place of or in conjunction with software to perform specific methods or specific portions of the specific methods described herein. A reference to software may cover logic, and vice versa when appropriate. Reference to computer-readable media may cover a circuit (eg, an integrated circuit (IC, integrated circuit)), where software is stored for execution, a circuit embodying logic for execution, or both circuits, when appropriate. The present invention encompasses any suitable combination of hardware and software.

[129] Хотя здесь были описаны некоторые варианты осуществления изобретения, возможны изменения, перестановки и различные эквивалентные замены в пределах объема изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.[129] Although some embodiments of the invention have been described here, variations, permutations, and various equivalent substitutions are possible within the scope of the invention. Thus, those skilled in the art can provide numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the invention and thus fall within its spirit and scope.

Claims (11)

1. Способ декодирования битового потока кодированных видеоданных с использованием по меньшей мере одного процессора, включающий:1. A method for decoding a bitstream of encoded video data using at least one processor, including: получение блока уровня сетевой абстракции (NAL) уровня кодирования видеоданных (VCL);obtaining a network abstraction layer (NAL) block of a video coding layer (VCL); определение, является ли блок VCL NAL первым блоком VCL NAL блока изображения (PU), содержащего блок VCL NAL;determining whether the VCL NAL unit is the first VCL NAL unit of the picture unit (PU) containing the VCL NAL unit; на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого PU, и определения того, что младший значащий бит счетчика последовательности изображений блока VCL NAL отличается от младшего значащего бита счетчика последовательности изображений для предыдущего изображения, определение того, является ли блок VCL NAL первым блоком VCL NAL блока доступа (AU), содержащего PU; иbased on determining that the VCL NAL is the first VCL NAL of the PU and determining that the least significant bit of the picture sequence counter of the VCL NAL is different from the least significant bit of the picture sequence counter for the previous picture, determining whether the VCL is NAL by the first VCL NAL of the access unit (AU) containing the PU; And на основе определения того, что блок VCL NAL является первым блоком VCL NAL упомянутого AU, декодирование AU на основе блока VCL NAL.based on determining that the VCL NAL is the first VCL NAL of the AU, decoding the AU based on the VCL NAL. 2. Способ по п.1, в котором блок VCL NAL определяют как первый блок VCL NAL упомянутого PU на основе определения того, что блок VCL NAL является первым блоком VCL NAL, следующим за блоком NAL заголовка изображения.2. The method of claim 1, wherein the VCL NAL unit is determined to be the first VCL NAL unit of said PU based on determining that the VCL NAL unit is the first VCL NAL unit following the picture header NAL unit. 3. Способ по п.1, в котором блок VCL NAL определяют как первый блок VCL NAL упомянутого PU на основе определения того, что в блоке VCL NAL установлен флаг для указания на то, что заголовок изображения включен в заголовок слайса, включенный в блок VCL NAL.3. The method of claim 1, wherein the VCL NAL unit is determined to be the first VCL NAL unit of said PU based on determining that a flag is set in the VCL NAL unit to indicate that a picture header is included in a slice header included in the VCL unit. NAL. 4. Способ по п.1, в котором блок VCL NAL определяют как первый блок VCL NAL упомянутого AU также на основе определения того, что идентификатор уровня блока VCL NAL меньше идентификатора уровня предыдущего изображения.4. The method of claim 1, wherein the VCL NAL unit is determined to be the first VCL NAL unit of said AU also based on determining that the VCL NAL unit level ID is less than the previous picture level ID. 5. Способ по п.1, в котором на основе флага, указывающего на то, что вся информация кодирования изображения присутствует в заголовке изображения, не сигнализируют множество флагов, соответствующих информации кодирования изображения.5. The method of claim 1, wherein, based on a flag indicating that all of the image encoding information is present in the image header, a plurality of flags corresponding to the image encoding information are not signaled. 6. Устройство для декодирования битового потока кодированных видеоданных, содержащее по меньшей мере одну память и по меньшей мере один процессор, при этом упомянутая по меньшей мере одна память хранит множество компьютерных программ, которые при их исполнении упомянутым по меньшей мере одним процессором обеспечивают выполнение устройством способа по любому из пп.1-5 посредством использования компьютерных программ.6. A device for decoding a bit stream of encoded video data, comprising at least one memory and at least one processor, while said at least one memory stores a plurality of computer programs that, when executed by said at least one processor, ensure that the device executes the method according to any one of claims 1 to 5 through the use of computer programs. 7. Машиночитаемый носитель, хранящий инструкции, включающие одну или более инструкций, которые при их исполнении одним или более процессорами устройства для декодирования битового потока кодированных видеоданных обеспечивают выполнение одним или более процессорами способа по любому из пп.1-5.7. A computer-readable medium storing instructions, including one or more instructions, which, when executed by one or more processors of the device for decoding the encoded video bitstream, causes the one or more processors to execute the method according to any one of claims 1-5.
RU2021132371A 2020-04-06 2021-04-01 Method for signalling a picture header in a stream of encoded video data RU2789520C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63/005,640 2020-04-06
US17/096,168 2020-11-12

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023102176A Division RU2023102176A (en) 2020-04-06 2021-04-01 Method for signaling a picture header in a coded video stream

Publications (1)

Publication Number Publication Date
RU2789520C1 true RU2789520C1 (en) 2023-02-06

Family

ID=

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130136176A1 (en) * 2011-11-30 2013-05-30 Qualcomm Incorporated Activation of parameter sets for multiview video coding (mvc) compatible three-dimensional video coding (3dvc)
US20140092994A1 (en) * 2012-09-28 2014-04-03 Qualcomm Incorporated Supplemental enhancement information message coding
US20150271529A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Generic use of hevc sei messages for multi-layer codecs
US20150381998A1 (en) * 2014-06-25 2015-12-31 Qualcomm Incorporated Multi-layer video coding
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
US9602841B2 (en) * 2012-10-30 2017-03-21 Texas Instruments Incorporated System and method for decoding scalable video coding
US10447990B2 (en) * 2012-02-28 2019-10-15 Qualcomm Incorporated Network abstraction layer (NAL) unit header design for three-dimensional video coding
US20200092570A1 (en) * 2018-09-13 2020-03-19 Tencent America LLC Method and device using an out of band end of stream nal unit in decoding

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130136176A1 (en) * 2011-11-30 2013-05-30 Qualcomm Incorporated Activation of parameter sets for multiview video coding (mvc) compatible three-dimensional video coding (3dvc)
US10447990B2 (en) * 2012-02-28 2019-10-15 Qualcomm Incorporated Network abstraction layer (NAL) unit header design for three-dimensional video coding
US20140092994A1 (en) * 2012-09-28 2014-04-03 Qualcomm Incorporated Supplemental enhancement information message coding
US9602841B2 (en) * 2012-10-30 2017-03-21 Texas Instruments Incorporated System and method for decoding scalable video coding
US20150271529A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Generic use of hevc sei messages for multi-layer codecs
US20150381998A1 (en) * 2014-06-25 2015-12-31 Qualcomm Incorporated Multi-layer video coding
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
US20200092570A1 (en) * 2018-09-13 2020-03-19 Tencent America LLC Method and device using an out of band end of stream nal unit in decoding

Similar Documents

Publication Publication Date Title
JP7342210B2 (en) Wraparound padding method for omnidirectional media encoding and decoding
KR102558961B1 (en) Segment types in video coding
CN113875242A (en) Signaling of video codec tools supporting various chroma formats
JP7434499B2 (en) Identifying tiles from network abstraction unit headers
AU2021251058B2 (en) Method for signaling picture header in coded video stream
US11765373B2 (en) Method for layerwise random access in a coded video stream
US12003747B2 (en) Method for output layer set signaling in scalable video stream
KR20200140364A (en) Simplified Best Probability Mode List Generation Method
KR102544105B1 (en) Generating a mode list for multi-line intra prediction
KR20210126740A (en) Method and apparatus for efficient signaling of picture size and partitioning information in a video bitstream
CN113491128B (en) Method and related apparatus for decoded picture memory management
RU2789520C1 (en) Method for signalling a picture header in a stream of encoded video data
RU2787850C1 (en) Method for signaling of set of output layers in scalable video stream
RU2775739C1 (en) Layered random access method in encoded video stream