RU2775489C1 - Access blocks separator signaling method - Google Patents

Access blocks separator signaling method Download PDF

Info

Publication number
RU2775489C1
RU2775489C1 RU2021128331A RU2021128331A RU2775489C1 RU 2775489 C1 RU2775489 C1 RU 2775489C1 RU 2021128331 A RU2021128331 A RU 2021128331A RU 2021128331 A RU2021128331 A RU 2021128331A RU 2775489 C1 RU2775489 C1 RU 2775489C1
Authority
RU
Russia
Prior art keywords
access
value
unit
nal unit
syntax
Prior art date
Application number
RU2021128331A
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 RU2775489C1 publication Critical patent/RU2775489C1/en

Links

Images

Abstract

FIELD: data processing.
SUBSTANCE: invention relates to the field of data processing. Proposed method and apparatus includes computer program code configured to ensure that the processor or processors perform the following: receiving video data; defining an access block delimiter syntax in at least one network abstraction layer (NAL) block in said video data; determining whether the access unit separator syntax indicates a slice type value for said NAL unit; determining whether the access unit delimiter syntax in said NAL unit indicates a video coding level (VCL) value and/or an access unit sequence number value for the NAL unit; and signaling access unit boundary values ​​for the NAL unit according to whether the access unit delimiter syntax indicates at least one of a slice type value, a VCL value, and an access unit sequence number value.
EFFECT: improving the display of random access block information and improving the reliability of access block boundary detection.
20 cl, 15 dwg

Description

Перекрестные ссылки на связанные заявкиCross-references to related applications

[1] Настоящая заявка ссылается на приоритет предварительной заявки на патент США №62/904361, зарегистрированной 23 сентября 2019 года, и заявки на патент США №17/023711, зарегистрированной 17 сентября 2020 года, при этом обе упомянутые заявки полностью включены в настоящий документ путем ссылки.[1] This application cites the priority of U.S. Provisional Application No. 62/904361, filed September 23, 2019, and U.S. Patent Application No. 17/023711, filed September 17, 2020, both of which are incorporated herein in their entirety. by reference.

Предпосылки создания изобретенияPrerequisites for the creation of the invention

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

[2] Настоящее изобретение призвано усовершенствовать индикацию информации блоков доступа (access unit, AU) произвольного доступа и повысить надежность обнаружения границ блока доступа.[2] The present invention aims to improve the indication of random access unit (AU) information and improve the reliability of access unit boundary detection.

2. Описание существующего уровня техники2. Description of the prior art

[3] Группы VCEG (Q6/16) и ISO/IЕС MPEG (JTC 1/SC 29/WG 11) ITU-T публиковали стандарт H.265/HEVC (High Efficiency Video Coding, высокоэффективное видеокодирование) в 2013 году (версия №1), в 2014 году (версия №2), в 2015 году (версия №3 и в 2016 году (версия №4). В 2015 году эти две стандартизирующие организации сформировали совместную группу по исследованию видео (Joint Video Exploration Team, JVET), задачей которой стало изучение потенциала разработки новых стандартов видекодирования, следующих за HEVC. В октябре 2017 году они опубликовали совместный конкурс заявок (Call for Proposals, Cfp) с предложениями по видеосжатию, которые бы позволили превзойти возможности HEVC. К 15 февраля 2018 года были поданы в общей сложности 22 заявки на конкурс, связанные со стандартным динамическим диапазоном (standard dynamic range, SDR), 12 заявок, связанных с расширенным динамическим диапазоном (standard dynamic range, SDR), и 12 заявок, связанных с 360-градусным видео. В апреле 2018 все принятые в ответ на CfP заявки были оценены в ходе 10-ой встречи JVET / MPEG. В результате этой встрече JVET официально запустила процесс стандартизации видекодирования следующего за HEVC поколения. Новый стандарт был назван универсальным видеокодированием (Versatile Video Coding, VVC), а группа JVET была переименована в объединенную группу экспертов по видео. Текущей версией стандарта VTM (тестовая модель VVC, VVC Test Model) является VTM 6.[3] VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) ITU-T published the H.265/HEVC (High Efficiency Video Coding) standard in 2013 (Version No. 1), in 2014 (Version #2), in 2015 (Version #3 and in 2016 (Version #4). In 2015, these two standardizing organizations formed a Joint Video Exploration Team (JVET) , whose mission was to explore the potential for developing new video coding standards beyond HEVC.In October 2017, they published a joint call for proposals (Call for Proposals, Cfp) with proposals for video compression that would surpass the capabilities of HEVC.By February 15, 2018, applications were submitted a total of 22 standard dynamic range (SDR) entries, 12 standard dynamic range (SDR) entries, and 12 360-degree video entries. 2018 all taken in response to CfP applications were evaluated during the 10th JVET / MPEG meeting. As a result of this meeting, JVET officially launched the next-generation video coding standardization process. The new standard was named Versatile Video Coding (VVC), and the JVET group was renamed the Joint Video Experts Group. The current version of the VTM standard (VVC Test Model, VVC Test Model) is VTM 6.

[4] В данной области техники по-прежнему не определено, нужно ли обязательно сигнализировать разделители блоков доступа (access unit delimiter, AUD) для указания на границу блока доступа, и следовательно, желательным представляется техническое решение, способное устранить такой недостаток надежности при сигнализации, а следовательно, повысить ее достоверность и эффективность.[4] It is still undetermined in the art whether access unit delimiters (AUD) need to be signaled to point to an access unit boundary, and therefore a solution is desirable that can address this lack of reliability in signaling, and consequently improve its reliability and efficiency.

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

[5] Предложены способ и устройство, включающее память, сконфигурированную для хранения компьютерного программного кода, и процессор, или процессоры, сконфигурированные для доступа к компьютерному программному коду и выполнения операций в соответствии с инструкциями компьютерного программного кода. Компьютерный программный код включает код получения, сконфигурированный для обеспечения получения, упомянутым по меньшей мере одним процессором, видеоданных, первый код определения, сконфигурированный для обеспечения определения, упомянутым по меньшей мере одним процессором, синтаксиса разделителя блоков доступа по меньшей мере в одном блоке уровня сетевой абстракции (network abstraction layer, NAL) в упомянутых видеоданных, второй код определения, сконфигурированный для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли упомянутый синтаксис разделителя блоков доступа на значение типа слайса для упомянутого блока NAL, третий код определения, сконфигурированный для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL на значение уровня видеокодирования (video coding layer, VCL) и/или назначение порядкового номера блока доступа для упомянутого блока NAL, и код сигнализации, сконфигурированный для обеспечения сигнализации, упомянутым по меньшей мере одним процессором, значений границ блока доступа для упомянутого блока NAL, в соответствии с тем, указывает ли синтаксис разделителя блоков доступа по меньшей мере на одно из следующего: значение типа слайса, значение VCL-уровня или значение порядкового номера блока доступа.[5] A method and apparatus is provided, including a memory configured to store computer program code and a processor or processors configured to access the computer program code and perform operations in accordance with instructions from the computer program code. The computer program code includes an acquisition code configured to cause said at least one processor to receive video data, a first determination code configured to cause said at least one processor to determine an access block delimiter syntax in at least one network abstraction layer block (network abstraction layer, NAL) in said video data, a second determination code configured to allow said at least one processor to determine whether said access block delimiter syntax indicates a slice type value for said NAL unit, a third determination code configured to provide determining by said at least one processor whether the access block separator syntax in said NAL unit indicates a video coding layer (VCL) value and/or an access unit sequence number assignment for said NAL unit, and a signal code lization, configured to signal, by said at least one processor, access unit boundary values for said NAL unit, according to whether the access unit delimiter syntax indicates at least one of the following: slice type value, VCL layer value or the value of the serial number of the access block.

[6] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, установлено ли по меньшей мере одно из значений VCL равным любому из следующих значений: 0, 1 или 2.[6] In accordance with embodiments of the present invention, the third determination code is further configured to allow said at least one processor to determine whether the access unit delimiter syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for said the NAL unit by determining if at least one of the VCL values is set to any of the following values: 0, 1, or 2.

[7] В соответствии с примерами осуществления настоящего изобретения код сигнализации дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, сигнализации значений границ блока доступа для упомянутого блока NAL путем сигнализации, если было определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 0, по меньшей мере одного из следующего: кодированного слайса значения запаздывающего изображения, кодированного слайса значения изображения пошагового доступа к временному подуровню (step-wise temporal sub-layer access, STSA), кодированного слайса значения опережающего пропускаемого изображения с произвольным доступом (Random Access Skipped Leading, RASL) и кодированного слайса значения опережающего декодируемого изображения с произвольным доступом (Random Access Decodable Leading, RADL).[7] In accordance with exemplary embodiments of the present invention, the signaling code is further configured to cause said at least one processor to signal the access block boundary values for said NAL unit by signaling if it has been determined that the access block delimiter indicates that said at least one VCL is set to 0, at least one of the following: a coded slice of a retarded picture value, a coded slice of a step-wise temporal sub-layer access (STSA) picture value, a coded slice of a forward skipped value image with random access (Random Access Skipped Leading, RASL) and the encoded slice of the value of the advanced decoded image with random access (Random Access Decodable Leading, RADL).

[8] В соответствии с примерами осуществления настоящего изобретения код сигнализации дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, сигнализации значений границы доступа для упомянутого блока NAL путем сигнализации, если было определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 1, по меньшей мере одного из следующего: кодированного слайса значения изображения мгновенного обновления декодера (instantaneous decoder reference, IDR), значения кодированного слайса изображения чистого произвольного доступа (Clean Random Access, CRA) и значение изображения кодированного слайса постепенного обновления декодера (gradual decoding reference, GDR).[8] In accordance with exemplary embodiments of the present invention, the signaling code is further configured to cause said at least one processor to signal access boundary values for said NAL unit by signaling if it has been determined that the access unit separator indicates that said at least one VCL is set to 1, at least one of the following: an instantaneous decoder reference (IDR) image value encoded slice, a Clean Random Access (CRA) encoded image slice value, and an encoded slice image value gradual decoder update (gradual decoding reference, GDR).

[9] В соответствии с примерами осуществления настоящего изобретения код сигнализации дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, сигнализации значений границы доступа для упомянутого блока NAL путем сигнализации, если было определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 2, множества значений VCL для множества слайсов кодированных изображений в блоке доступа.[9] In accordance with exemplary embodiments of the present invention, the signaling code is further configured to cause said at least one processor to signal access boundary values for said NAL unit by signaling if it has been determined that the access unit separator indicates that said at least one VCL is set to 2, the plurality of VCL values for the plurality of coded picture slices in the access block.

[10] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, идентифицирует ли значение порядкового номера блока доступа для упомянутого блока NAL блок доступа.[10] In accordance with embodiments of the present invention, the third determination code is further configured to allow said at least one processor to determine whether the access unit delimiter syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for said of the NAL unit by determining whether the access unit sequence number value for said NAL unit identifies an access unit.

[11] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, лежит ли значение порядкового номера блока доступа в диапазоне от 0 до 255.[11] In accordance with embodiments of the present invention, the third determination code is further configured to allow said at least one processor to determine whether the access unit delimiter syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for said NAL unit by determining whether the value of the access unit sequence number lies in the range from 0 to 255.

[12] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, идентифицирует ли значение порядкового номера блока доступа для упомянутого блока NAL упомянутый блок доступа среди соседних блоков доступа.[12] In accordance with embodiments of the present invention, the third determination code is further configured to allow said at least one processor to determine whether the syntax of the access unit delimiter in the NAL unit indicates a VCL value and/or an access unit sequence number value for said of the NAL unit by determining whether the access unit sequence number value for said NAL unit identifies said access unit among adjacent access units.

[13] В соответствии с примерами осуществления настоящего изобретения второй код определения дополнительно сконфигурирован для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение типа слайса для упомянутого блока NAL путем определения, установлено ли значение типа слайса равным любому из следующих значений: 0, 1 или 2.[13] In accordance with embodiments of the present invention, the second determination code is further configured to allow said at least one processor to determine whether the syntax of the access unit separator in the NAL unit indicates a slice type value for said NAL unit by determining whether the type value is set slice to any of the following values: 0, 1, or 2.

[14] В соответствии с примерами осуществления настоящего изобретения второй код определения дополнительно сконфигурирован для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение типа слайса, путем определения присутствия слайса с внутренним предсказанием и/или слайса с внешним предсказанием.[14] In accordance with embodiments of the present invention, the second determination code is further configured to allow said at least one processor to determine whether the access block separator syntax in the NAL unit indicates a slice type value by determining the presence of an intra prediction slice and/or slice with external prediction.

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

[15] Дополнительные признаки, сущность и различные преимущества предложенного изобретения могут быть уяснены более детально с помощью приведенного ниже подробного описания и приложенных чертежей, где:[15] Additional features, essence and various advantages of the proposed invention can be understood in more detail with the help of the following detailed description and the attached drawings, where:

[16] на фиг. 1 упрощенно проиллюстрирована эскизная схема в соответствии с вариантами осуществления настоящего изобретения;[16] in FIG. 1 is a simplified schematic diagram in accordance with embodiments of the present invention;

[17] на фиг. 2 показана эскизная блок-схема в соответствии с вариантами осуществления настоящего изобретения;[17] in Fig. 2 is a schematic block diagram in accordance with embodiments of the present invention;

[18] на фиг. 3 показана эскизная блок-схема в соответствии с вариантами осуществления настоящего изобретения;[18] in FIG. 3 is a schematic block diagram in accordance with embodiments of the present invention;

[19] на фиг. 4 показана эскизная блок-схема в соответствии с вариантами осуществления настоящего изобретения;[19] in FIG. 4 is a schematic block diagram in accordance with embodiments of the present invention;

[20] фиг. 5 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;[20] Fig. 5 is a sketch illustration in accordance with embodiments of the present invention;

[21] фиг. 6 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;[21] Fig. 6 is a sketch illustration in accordance with embodiments of the present invention;

[22] фиг. 7 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;[22] Fig. 7 is a sketch illustration in accordance with embodiments of the present invention;

[23] фиг. 8 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;[23] Fig. 8 is a sketch illustration in accordance with embodiments of the present invention;

[24] фиг. 9А представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;[24] Fig. 9A is a sketch illustration in accordance with embodiments of the present invention;

[25] фиг. 9 В представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;[25] Fig. 9B is a sketch illustration in accordance with embodiments of the present invention;

[26] на фиг. 10 показана упрощенная блок-схема алгоритма в соответствии с вариантами осуществления настоящего изобретения;[26] in FIG. 10 is a simplified flowchart in accordance with embodiments of the present invention;

[27] на фиг. 11 показана структура данных в соответствии с вариантами осуществления настоящего изобретения;[27] in FIG. 11 shows a data structure in accordance with embodiments of the present invention;

[28] на фиг. 12А показана упрощенная таблица в соответствии с вариантами осуществления настоящего изобретения;[28] in FIG. 12A shows a simplified table in accordance with embodiments of the present invention;

[29] на фиг. 12 В показана упрощенная таблица в соответствии с вариантами осуществления настоящего изобретения;[29] in FIG. 12B shows a simplified table in accordance with embodiments of the present invention;

[30] на фиг. 13 показана упрощенная блок-схема алгоритма в соответствии с вариантами осуществления настоящего изобретения;[30] in FIG. 13 is a simplified flowchart in accordance with embodiments of the present invention;

[31] на фиг. 14 показана упрощенная блок-схема алгоритма в соответствии с вариантами осуществления настоящего изобретения;[31] in FIG. 14 is a simplified flowchart in accordance with embodiments of the present invention;

[32] на фиг. 15 показана эскизная схема в соответствии с вариантами осуществления настоящего изобретения.[32] in FIG. 15 is a schematic diagram in accordance with embodiments of the present invention.

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

[33] Описанные ниже отличительные признаки настоящего изобретения могут использоваться как по отдельности, так и в различных сочетаниях, в любом их порядке. При этом варианты осуществления настоящего изобретения могут быть реализованы при помощи схем обработки данных (например, одного или более процессоров или одной или более интегральных схем). В одном из примеров один или более процессоров могут исполнять программу, хранящуюся на машиночитаемом носителе.[33] The features of the present invention described below may be used singly or in various combinations, in any order. However, embodiments of the present invention may be implemented using data processing circuits (eg, one or more processors or one or more integrated circuits). In one example, one or more processors may execute a program stored on a computer-readable medium.

[34] На фиг. 1 проиллюстрирована упрощенная блок-схема системы 100 связи в соответствии одним из примеров осуществления настоящего изобретения. Система 100 связи может включать по меньшей мере два терминала 102 и 103, связанных друг с другом сетью 105. При однонаправленной передаче данных первый терминал 103 может кодировать видеоданные локально для передачи во второй терминал 102 по сети 105. Второй терминал 102 может принимать кодированные видеоданные от первого терминала из сети 105, декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных широко применяется в приложениях медиасервисов и аналогичных приложениях.[34] FIG. 1 illustrates a simplified block diagram of a communications system 100 in accordance with one embodiment of the present invention. The communication system 100 may include at least two terminals 102 and 103 connected to each other by a network 105. In a unidirectional data transmission, the first terminal 103 may encode video data locally for transmission to the second terminal 102 over the network 105. The second terminal 102 may receive encoded video data from the first terminal from the network 105, decode the encoded data, and display the reconstructed video data. Unidirectional data transmission is widely used in media service applications and similar applications.

[35] На фиг. 1 проиллюстрирована вторая пара терминалов 101 и 104, сконфигурированных для поддержки двунаправленной передачи кодированного видео, которая может требоваться, например, при видеоконференцсвязи. При двунаправленной передаче данных оба терминала 101 и 104 могут кодировать локально захватываемые видеоданные для передачи в другой терминал по сети 105. Оба терминала 101 и 104 могут также принимать кодированные видеоданные, переданные другим терминалом, могут декодировать кодированные данные и отображать восстановленные видеоданные на локальном дисплейном устройстве.[35] FIG. 1 illustrates a second pair of terminals 101 and 104 configured to support bidirectional encoded video transmission, which may be required in video conferencing, for example. In bidirectional communication, both terminals 101 and 104 may encode locally captured video data for transmission to another terminal over network 105. Both terminals 101 and 104 may also receive encoded video data transmitted by the other terminal, may decode the encoded data, and display the reconstructed video data on a local display device. .

[36] В примере фиг. 1 терминалы 101, 102, 103 и 104 могут быть серверами, персональными компьютерами или смартфонами, однако без ограничения ими настоящего изобретения. Варианты осуществления настоящего изобретения могут применяться в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть 105 может представлять собой любое количество сетей, передающих кодированные видеоданные между терминалами 101, 102, 103 и 104, включая, например, проводные и/или беспроводные сети связи. Сеть 105 связи может обеспечивать обмен данными по линиям связи с коммутацией каналов и/или коммутацией пакетов. Примерами таких сетей могут быть телекоммуникационные сети, локальные вычислительные сети, глобальные вычислительные сети и/или Интернет. В настоящем описании архитектура и топология сети 105 не играют никакой роли в функционировании предложенного изобретения, если на это явно не указано.[36] In the example of FIG. 1, terminals 101, 102, 103, and 104 may be servers, personal computers, or smartphones, but the present invention is not limited thereto. Embodiments of the present invention may be applied to laptop computers, tablet computers, media players and/or dedicated video conferencing equipment. Network 105 may be any number of networks that transmit encoded video data between terminals 101, 102, 103, and 104, including, for example, wired and/or wireless networks. Communication network 105 may provide communication over circuit-switched and/or packet-switched links. Examples of such networks may be telecommunications networks, local area networks, wide area networks and/or the Internet. In the present description, the architecture and topology of the network 105 do not play any role in the operation of the proposed invention, unless explicitly indicated.

[37] На фиг. 2 проиллюстрировано, в качестве примера применения настоящего изобретения, размещение видеокодера и декодера в окружении потоковой передачи. Предложенное изобретение может применяться с равной эффективностью и в других областях, где используется видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранения сжатого видео на цифровых носителях, включая CD, DVD, карты памяти и т.п.[37] FIG. 2 illustrates, as an example of the application of the present invention, the placement of a video encoder and decoder in a streaming environment. The proposed invention can be applied with equal efficiency in other areas where video is used, including, for example, videoconferencing, digital television, storage of compressed video on digital media, including CDs, DVDs, memory cards, and the like.

[38] Система потоковой передачи может включать подсистему 203 захвата, которая может включать источник 201 видео, например, видеокамеру, которая формирует поток 213 несжатых отсчетов. Поток 213 отсчетов показан жирной линией, чтобы подчеркнуть больший объем данных по сравнению с кодированными видеопотоками, может обрабатываться кодером 202, связанным с камерой 201. Кодер 202 может включать аппаратное обеспечение, программное обеспечение, или их комбинацию, которые позволяют реализовать аспекты предложенного изобретения, в соответствии с последующим более подробным описанием. Кодированный видеопоток 204, показанной тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с несжатым потоком 202 видеоотсчетов, может сохраняться на сервере 205 потоковой передачи для последующего использования. Один или более клиентов 121 и 207 потоковой передачи могут осуществлять доступ к серверу 205 потоковой передачи для получения копий 208 и 206 битового потока 204 кодированного видео. Клиентское устройство 212 может включать видеодекодер 211, который декодирует принятую копию битового потока 208 кодированного видео и формировать выходной поток 210 видеотсчетов, который может отображаться на дисплее 209 или другом устройстве отображения (не показано на чертеже). В некоторых системах потоковой передачи битовые видеопотоки 204, 206 и 208 могут быть кодированы в соответствии с заданными стандартами видеокодирования/видеосжатия. Примеры подобных стандартов упоминались ниже и будут более подробно рассмотрены в дальнейшем описании.[38] The streaming system may include a capture subsystem 203, which may include a video source 201, such as a video camera, that generates a stream 213 of uncompressed samples. The sample stream 213, shown in bold to emphasize the larger amount of data compared to the encoded video streams, may be processed by the encoder 202 associated with the camera 201. The encoder 202 may include hardware, software, or a combination of both that allow aspects of the proposed invention to be implemented, in according to the following more detailed description. The encoded video stream 204, shown as a thin line to emphasize the smaller amount of data compared to the uncompressed video sample stream 202, may be stored on the streaming server 205 for later use. One or more streaming clients 121 and 207 may access the streaming server 205 to obtain copies 208 and 206 of the encoded video bitstream 204 . The client device 212 may include a video decoder 211 that decodes the received copy of the encoded video bitstream 208 and generates a video sample output stream 210 that can be displayed on a display 209 or other display device (not shown). In some streaming systems, video bitstreams 204, 206, and 208 may be encoded according to predetermined video coding/video compression standards. Examples of such standards have been mentioned below and will be discussed in more detail in the following description.

[39] Фиг. 3 является примером функциональной блок-схемы видеодекодера 300 соответствии с одним из вариантов осуществления настоящего изобретения.[39] FIG. 3 is an example of a functional block diagram of a video decoder 300 in accordance with one embodiment of the present invention.

[40] Приемник 302 может принимать одну или более кодированных видеопоследовательностей для декодирования при помощи декодера 300. В этом же или в альтернативном варианте осуществления настоящего изобретения прием видеопоследовательностей может выполняться поочередно, при этом декодирование каждой из кодированных видеопоследовательностей не зависит от декодирования остальных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала 301, который может представлять собой аппаратную и/или программную линию связи с запоминающим устройством, где хранят кодированные видеоданные. Приемник 302 может принимать кодированные видеоданные вместе с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут перенаправляться в соответствующие использующие их элементы (не показано на чертеже). Приемник 302 может отделять кодированную видеопоследовательность от остальных данных. Для борьбы с сетевым джиггером между приемником 302 и энтропийным декодером/анализатором 304 (далее, «анализатор») может быть установлена буферная память 303. Когда приемник 302 принимает данные из устройства хранения или передачи с достаточной полосой пропускания и управляемостью, или из сети с изосинхронной передачей, буфер 303 может не применяться или иметь малый объем. В случае применения пакетных сетей с негарантированной доставкой, таких как Интернет, буфер 303 необходим, может быть сравнительно объемным и, предпочтительно, иметь при этом адаптивный размер.[40] Receiver 302 may receive one or more encoded video sequences for decoding by decoder 300. In the same or alternative embodiment of the present invention, video sequences may be received in turn, with the decoding of each of the encoded video sequences independent of the decoding of the remaining video sequences. The encoded video sequence may be received from channel 301, which may be a hardware and/or software link to a storage device where the encoded video data is stored. The receiver 302 may receive encoded video data along with other data, such as encoded audio data and/or auxiliary data streams, which may be redirected to the respective elements using them (not shown). The receiver 302 may separate the encoded video sequence from the rest of the data. A buffer memory 303 may be installed between the receiver 302 and the entropy decoder/analyzer 304 (hereinafter referred to as the “analyzer”) to combat network jitter. transmission, the buffer 303 may not be used or may be small. In the case of non-guaranteed packet networks, such as the Internet, the buffer 303 is necessary, can be relatively large, and preferably still have an adaptive size.

[41] Видеодекодер 300 может содержать анализатор 304 для восстановления символов 313 из энтропийно-кодированной видеопоследовательности. Типы этих символов могут включать, например, информацию, используемую для управления работой декодера 300, а также, возможно, информацию для управления устройством отображения, такого как дисплей 312, который может быть связан с декодером, но не являться его неотъемлемой частью. Управляющая информация для устройств отображения может, например, иметь форму сообщений дополнительной уточняющей информации (Supplementary Enhancement Information, SEI) или фрагментов наборов параметров информации об используемости видео (Video Usability Information, VUI) (не показано на чертеже). Анализатор 304 может выполнять анализ/энтропийное декодирование принятой кодированной видеопоследовательности. Кодированная видеопоследовательность может быть кодирована в соответствии с некоторой технологией или стандартом видеокодирования, и может следовать принципам, хорошо известным специалистам в данной области техники, включая кодирование с переменной длиной кодового слова, кодирование Хаффмана, контекстно-зависимое или контекстно-независимое арифметическое кодирование и т.п. Анализатор 304 может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной подгруппы пикселей в видеодекодере, на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать группы изображений (Groups of Pictures, GOP), изображения, тайлы, слайсы, макроблоки, кодовые блоки (Coding Units, CU), блоки (blocks), блоки преобразования (Transform Units, TU), блоки предсказания (Prediction Units, PU) и т.п. Анализатор может также извлекать из кодированной видеопоследовательности такую информацию, как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.п.[41] Video decoder 300 may include a parser 304 for recovering symbols 313 from an entropy coded video sequence. The types of these symbols may include, for example, information used to control the operation of the decoder 300, and possibly also information to control a display device, such as display 312, which may be associated with, but not an integral part of, the decoder. The control information for display devices may, for example, be in the form of Supplementary Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The parser 304 may perform analysis/entropy decoding of the received encoded video sequence. The encoded video sequence may be encoded in accordance with some video coding technology or standard, and may follow principles well known to those skilled in the art, including variable length coding, Huffman coding, context-dependent or context-independent arithmetic coding, etc. P. The analyzer 304 may extract from the encoded video sequence a set of subgroup parameters for at least one subgroup of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups can include groups of pictures (Groups of Pictures, GOP), images, tiles, slices, macroblocks, code blocks (Coding Units, CU), blocks (blocks), transformation units (Transform Units, TU), prediction units (Prediction Units, PU) etc. The analyzer may also extract information such as transform coefficients, quantizer parameter values, motion vectors, and the like from the encoded video sequence.

[42] Анализатор 304 может выполнять операции энтропийного декодирования/анализа над видеопоследовательностью, принятой из буфера 303, и формировать символы 313. Анализатор 304 может принимать кодированные данные и избирательное декодировать некоторые из символов 313. Также, анализатор 304 может определять, должны ли некоторые из символов 313 быть переданы в блок 306 предсказания с компенсацией движения, блок 305 масштабирования / обратного преобразования, блок 307 внутреннего предсказания или в контурный фильтр 311.[42] Parser 304 may perform entropy decoding/analysis operations on the video sequence received from buffer 303 and generate symbols 313. Parser 304 may receive encoded data and selectively decode some of the symbols 313. Also, parser 304 may determine whether some of the symbols 313 be passed to a motion compensated prediction block 306, a scaler/inverse transform block 305, an intra prediction block 307, or a loop filter 311.

[43] При восстановлении символов 313 могут задействоваться различные блоки устройства, в зависимости от типа кодированных видеоизображений или их частей (например, внутренне и внешне предсказываемые изображения, внутренне и внешне предсказываемые блоки отсчетов), а также от других факторов То, какие блоки устройства будут задействованы, и каким образом, может определяться управляющей информацией подгруппы, извлеченной из кодированной видеопоследовательности анализатором 304. Для простоты поток такой управляющей информации подгруппы между анализатором 304 и множеством описанных ниже блоков устройства на чертеже не показан.[43] Different device blocks may be involved in symbol recovery 313, depending on the type of encoded video images or portions thereof (e.g., internally and externally predicted images, internally and externally predicted sample blocks), as well as other factors. are involved, and how, may be determined by the subgroup control information extracted from the encoded video sequence by the analyzer 304. For simplicity, the flow of such subgroup control information between the analyzer 304 and the plurality of device blocks described below is not shown in the figure.

[44] Помимо уже упомянутых функциональных блоков декодер 300 может быть концептуально подразбит на набор описанных ниже функциональных блоков. В практических реализациях, применяемых в коммерческих условиях, многие из этих блоков плотно взаимодействуют друг с другом и могут быть, по меньшей мере частично, взаимно интегрированы. Однако в целях описания предложенного изобретения подходит описанное ниже подразделение на функциональные блоки.[44] In addition to the functional blocks already mentioned, decoder 300 can be conceptually subdivided into a set of functional blocks described below. In commercial implementations, many of these blocks interact closely with each other and can be at least partially mutually integrated. However, for purposes of describing the present invention, the division into functional blocks described below is suitable.

[45] Первым из таких блоков может быть блок 305 масштабирования/обратного преобразования. Блок 305 масштабирования/обратного преобразования принимает квантованные коэффициенты преобразования, а также управляющую информацию, включая информацию о том, какое преобразование следует использовать, размер блока отсчетов, коэффициент квантования, масштабирующие матрицы квантования и т.п., в виде символов 313 из анализатора 304. Он выдает блоки отсчетов, включающие значения отсчетов, которые могут быть введены в агрегатор 310.[45] The first of these blocks may be the block 305 scaling/inverse transformation. The scaling/inverse transform unit 305 receives the quantized transform coefficients as well as control information, including information about which transform to use, sample block size, quantization factor, quantization scaling matrices, and the like, as symbols 313 from parser 304. It produces blocks of samples including sample values that can be entered into the aggregator 310.

[46] В некоторых случаях отсчеты на выходе из блока 305 масштабирования / обратного преобразования могут относиться к типу внутренне кодированных блоков отсчетов; то есть, блоков отсчетов, для которых не используют информацию предсказания из ранее восстановленных изображений, но могут использовать информацию из ранее восстановленных частей текущего изображения. Такая информация предсказания может предоставляться блоком 307 внутреннего предсказания изображений. В некоторых случаях блок 307 внутреннего предсказания изображений может формировать блоки отсчетов тех же размеров и формы, что и восстанавливаемый блок отсчетов, с использованием уже восстановленной информации его окружения, полученной из текущего (частично восстановленного) изображения в памяти 309 текущих изображений. Агрегатор 310 может в некоторых случаях добавлять информацию предсказания, сформированную блоком 307 внутреннего предсказания, к выходной информации отсчетов, предоставляемой блоком 305 масштабирования/обратного преобразования, индивидуально для каждого отсчета.[46] In some cases, the samples output from the scaler/demapper 305 may be of the type of intra-coded sample blocks; that is, blocks of samples that do not use prediction information from previously reconstructed images, but may use information from previously reconstructed portions of the current image. Such prediction information may be provided by the intra picture prediction block 307 . In some cases, the intra image prediction block 307 may generate blocks of samples of the same size and shape as the restored block of samples, using already restored information about its environment obtained from the current (partially restored) image in the current image memory 309. The aggregator 310 may, in some cases, add the prediction information generated by the intra prediction block 307 to the sample output provided by the scaling/inverse transform block 305 individually for each sample.

[47] В других случаях отсчеты на выходе блока 305 масштабирования/обратного преобразования могут относиться к внешне кодируемым блокам отсчетов, и потенциально, блокам отсчетов с компенсацией движения. В таких случаях блок 306 предсказания с компенсацией движения может осуществлять доступ к памяти 308 опорных изображений и получать отсчеты, используемые для предсказания. После компенсации движения полученные отсчеты, в соответствии с символами 321, относящимися к этому блоку отсчетов, могут быть добавлены агрегатором 355 к выходным данным блока 351 масштабирования/обратного преобразования (в этом случае их называют разностными отсчетами или разностным сигналом), в результате чего формируют выходную информацию отсчетов. Адреса в памяти опорных изображений, по которым блок предсказания с компенсацией движения получает предсказанные отсчеты, могут определяться векторами движения, доступными для блока предсказания с компенсацией движения в форме символов 313, которые могут иметь, например, Х-компоненту, Y-компоненту и компоненту опорного изображения. Компенсация движения может также включать интерполяцию значений отсчетов, полученных из памяти опорных изображений, когда применяют векторы движения, механизмы предсказания векторов движения и т.п., имеющие субпиксельную точность.[47] In other cases, the samples at the output of the scaler/demapper 305 may refer to externally encoded blocks of samples, and potentially, blocks of samples with motion compensation. In such cases, motion compensation predictor 306 may access reference picture memory 308 and obtain samples used for prediction. After motion compensation, the received samples, in accordance with the symbols 321 related to this block of samples, can be added by the aggregator 355 to the output data of the scaling / inverse transform block 351 (in this case they are called difference samples or a difference signal), resulting in an output counting information. Reference picture memory addresses from which the motion-compensated predictor obtains predicted samples may be determined by the motion vectors available to the motion-compensated predictor in the form of symbols 313, which may have, for example, an X-component, a Y-component, and a reference component. Images. Motion compensation may also include interpolation of sample values obtained from the reference picture memory when motion vectors, motion vector prediction mechanisms, and the like having sub-pixel accuracy are applied.

[48] Отсчеты на выходе из агрегатора 310 могут обрабатываться при помощи различных методов контурной фильтрации в блоке 311 контурной фильтрации. Технологии сжатия видео могут включать технологии внутриконтурной фильтрации, которые управляются параметрами, содержащимися в кодированном битовом видеопотоке, и предоставляемыми в блок 311 контурной фильтрации в виде символов 313 из анализатора 304. Они могут также зависеть от метаинформации, полученной при декодировании предшествующих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также от ранее восстановленных и прошедших контурную фильтрацию значений отсчетов.[48] The samples output from the aggregator 310 may be processed using various loop filtering techniques in the loop filter block 311 . The video compression technologies may include in-loop filtering technologies that are controlled by parameters contained in the encoded video bitstream and provided to the loop filtering block 311 as symbols 313 from parser 304. parts of the encoded image or encoded video sequence, as well as from previously restored and loop-filtered sample values.

[49] Выходными данными блока 311 контурной фильтрации может быть поток отсчетов, который подают в устройство 312 отображения, а также сохраняют в памяти 557 опорных изображений для использования при будущем внешнем предсказании изображений.[49] The output of the loop filter block 311 may be a sample stream that is fed to the display device 312 and also stored in the reference picture memory 557 for use in future inter-picture prediction.

[50] Отдельные кодированные изображения после их полного восстановления могут использоваться в качестве опорных для будущего предсказания. После полного восстановления кодированного изображения, и если оно было определено как опорное (например, анализатором 304), текущее опорное изображение 309 может быть помещено в буфер 308 опорных изображений, и перед началом восстановления следующего кодированного изображения может быть выделена новая память текущих изображений.[50] Individual encoded pictures, after they have been completely reconstructed, can be used as references for future prediction. Once the encoded picture has been completely reconstructed, and if it has been determined to be a reference (eg, by parser 304), the current reference picture 309 may be placed in the reference picture buffer 308, and a new current picture memory may be allocated before the next encoded picture is recovered.

[51] Видеодекодер 300 может выполнять операции декодирования в соответствии с заранее заданной технологий сжатия видео, которая может быть задокументирована в стандарте, например, рекомендации Н.265 ITU-T. Кодированная видеопоследовательность может удовлетворять синтаксису, заданному применяемой технологией или стандартом сжатия видео, в том смысле, что она удовлетворяет синтаксису, заданному в документе, или стандарте, технологии сжатия видео, и в частности, синтаксису специфицированных профилей стандарта. При этом, чтобы отвечать некоторым из технологий или стандартов сжатия видео, сложность кодированной видеопоследовательности должна быть в пределах ограничений, определяемых уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни стандарта ограничивают максимальный размер изображения, максимальную частоту смены кадров, максимальную частоту восстановления отсчетов (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.п. Накладываемые уровнями ограничения в некоторых случаях могут быть дополнительно лимитированы при помощи спецификаций гипотетического эталонного декодера (Hypothetical Reference Decoder, HRD) и метаданных для управления буфером HRD-декодера, сигнализируемых в кодированной видеопоследовательности.[51] Video decoder 300 may perform decoding operations in accordance with a predetermined video compression technology that may be documented in a standard such as ITU-T H.265 recommendation. The encoded video sequence may conform to the syntax given by the applicable video compression technology or standard in the sense that it conforms to the syntax given in the document or standard of the video compression technology, and in particular to the syntax of the specified profiles of the standard. However, in order to comply with some of the video compression technologies or standards, the complexity of the encoded video sequence must be within the limits determined by the level of video compression technology or standard. In some cases, the levels of the standard limit the maximum image size, the maximum frame rate, the maximum sampling rate (measured in millions of samples per second, for example), the maximum reference image size, and the like. Layer restrictions can in some cases be further limited by Hypothetical Reference Decoder (HRD) specifications and HRD buffer management metadata signaled in the encoded video sequence.

[52] В одном из вариантов осуществления настоящего изобретения приемник 302 может вместе с кодированным видео принимать дополнительные (избыточные) данные. Эти дополнительные данные могут быть составной частью кодированной видеопоследовательности (или видеопоследовательностей). Дополнительные данные могут использоваться видеодекодером 300 для корректного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут иметь форму, например, уточняющих временных и пространственных уровней, уровня улучшения соотношения сигнал/шум (signal noise ratio, SNR), избыточных слайсов, избыточных изображений, кодов упреждающей коррекции ошибок и т.п.[52] In one embodiment of the present invention, the receiver 302 may receive additional (redundant) data along with the encoded video. This additional data may be an integral part of the encoded video sequence (or video sequences). The additional data may be used by video decoder 300 to correctly decode the data and/or to more accurately reconstruct the original video data. The additional data may take the form of, for example, refinement temporal and spatial levels, signal-to-noise ratio (SNR) enhancement level, redundant slices, redundant images, forward error correction codes, and the like.

[53] На фиг. 4 показана функциональная блок-схема видеокодера 400 в соответствии с одним из вариантов осуществления настоящего изобретения.[53] FIG. 4 shows a functional block diagram of a video encoder 400 in accordance with one embodiment of the present invention.

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

[55] Источник 401 видео может подавать исходную видеопоследовательность для кодирования видеокодером (303) в форме цифрового потока видеоотсчетов, имеющих любую подходящую битовую глубину (например, 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отчетов (например, Y СrСb 4:2:0, Y СrСb 4:4:4). В системе медиасервиса источник 401 видео может быть запоминающим устройством, на котором хранят заранее подготовленное видео. В системе видеоконференцсвязи источник 401 видео может быть видеокамерой, которая захватывает информацию изображений локально в форме видеопоследовательности. Видеоданные могут иметь форму множества отдельных изображений, которые передают ощущение движения при их последовательном просмотре. Сами изображения могут быть организованы в виде пространственной матрицы пикселей, где каждый пиксель может включать один или более отсчетов, в зависимости от применяемой структуры отсчетов, цветового пространства и т.п. Специалистам в данной области техники должно быть очевидна связь между пикселями и отсчетами. Далее в настоящем описании будут рассматриваться отсчеты.[55] The video source 401 may supply the source video sequence for encoding by the video encoder (303) in the form of a digital stream of video samples having any suitable bit depth (e.g., 8 bits, 10 bits, 12 bits, ...), any color space (e.g., BT. 601 Y CrCB, RGB, ...) and any suitable reporting structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In a media service system, video source 401 may be a storage device that stores pre-prepared video. In a videoconferencing system, video source 401 may be a video camera that captures image information locally in the form of a video sequence. The video data may be in the form of multiple individual images that convey a sense of movement when viewed sequentially. The images themselves may be organized as a spatial array of pixels, where each pixel may include one or more samples, depending on the sample structure used, color space, and the like. Those skilled in the art should recognize the relationship between pixels and samples. Further in the present description will be considered readings.

[56] В соответствии с одним из вариантов осуществления настоящего изобретения кодер 400 может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность 410 в реальном времени, или в соответствии с другими временными ограничениями, накладываемыми практическим применением. Одной из функций контроллера 402 может быть обеспечение подходящей скорости кодирования. Контроллер управляет остальными функциональными блоками, описанными ниже, и быть функционально связан с этими блоками. Эта связь для простоты на чертеже не показана. Параметры, задаваемые контроллером, могут включать параметры, связанные с управлением скоростью (пропуск изображений, квантователь, значение λ для методов оптимизации скорость-искажения, …), размером изображений, компоновкой групп изображений (GOP), максимальным диапазоном поиска векторов движения и т.п. Специалистам в данной области техники должны быть очевидны и другие функции контроллера 402, поскольку они могут соответствовать видеокодеру 400, оптимизированному для конструкции конкретной системы.[56] In accordance with one embodiment of the present invention, encoder 400 may encode and compress images of the source video sequence into encoded video sequence 410 in real time, or in accordance with other time constraints imposed by practical application. One function of controller 402 may be to provide a suitable code rate. The controller controls the rest of the functional blocks described below and is functionally linked to these blocks. This relationship is not shown in the drawing for simplicity. Parameters set by the controller may include parameters related to speed control (skipping images, quantizer, λ value for rate-distortion optimization methods, ...), image size, GOP arrangement, maximum motion vector search range, etc. . Other functions of controller 402 should be apparent to those skilled in the art as they may correspond to video encoder 400 optimized for a particular system design.

[57] Некоторые из видеокодеров работают в конфигурации, которая знакома специалистам в данной области техники под названием «петля кодирования». Крайне упрощенно, петля кодирования может состоять из подсистемы кодирования в кодере 402 (далее «кодер источника»), отвечающей за формирование символов на основе входных кодируемых изображений, а также опорных изображений, и (локального) декодера 406, встроенного в кодер 400 и восстанавливающего символы, с формированием данных отсчетов, которые бы идентичным образом формировал (удаленный) декодер (поскольку сжатие символов в кодированный битовый видеопоток является сжатием без потерь, в технологиях сжатия видео, рассматриваемых в настоящем изобретении). Этот восстановленный поток отсчетов вводят в память 405 опорных изображений. Поскольку декодирование потока символов дает результатом одинаковые с точностью до бита результаты, независимо от декодера (локального или удаленного), содержимое буфера опорных изображений также одинаково с точностью до бита в локальном кодере и удаленном кодере. Другими словами, подсистема предсказания в кодере «видит» в качестве отсчетов опорных изображений в точности те же значения отсчетов, которые «увидит» декодер, используя предсказание при декодировании. Этот фундаментальный принцип синхронности опорных изображений (и результирующий дрейф, если синхронность не может быть обеспечена, например, из-за ошибок в канале) должен быть хорошо известен специалистам в данной области техники.[57] Some of the video encoders operate in a configuration that is familiar to those skilled in the art called "coding loop". Extremely simplified, the coding loop may consist of an encoding subsystem in the encoder 402 (hereinafter "source encoder") responsible for generating symbols based on the input encoded pictures as well as reference pictures, and a (local) decoder 406 built into the encoder 400 and recovering the symbols. , producing sample data that would be identically generated by a (remote) decoder (because the compression of symbols into an encoded video bitstream is lossless compression in the video compression technologies of the present invention). This reconstructed sample stream is entered into the reference picture memory 405 . Since the decoding of a symbol stream results in the same bit-accurate results regardless of the decoder (local or remote), the contents of the reference picture buffer are also the same bit-accurate at the local encoder and the remote encoder. In other words, the prediction subsystem in the encoder "sees" as reference picture samples exactly the same sample values that the decoder "sees" using prediction in decoding. This fundamental principle of reference picture synchronism (and the resulting drift if synchronism cannot be achieved due to, for example, channel errors) should be well known to those skilled in the art.

[58] Работа «локального» декодера 406 по существу идентична «удаленному» декодеру 300, которая уже была подробно описана выше в связи с фиг. 3. Однако, поскольку символы доступны, а кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером 408 и анализатором 304 может выполняться без потерь, в локальном декодере 406 могут не быть в полной мере реализованы подсистемы энтропийного декодирования из состава декодера 300, включая канал 301, приемник 302, буфер 303 и анализатор 304.[58] The operation of the "local" decoder 406 is essentially identical to the "remote" decoder 300, which has already been described in detail above in connection with FIG. 3. However, since the symbols are available, and the entropy encoder 408 and parser 304 can be losslessly encoded/decoded into the encoded video sequence, the entropy decoding subsystems of the decoder 300, including channel 301, may not be fully implemented in the local decoder 406. receiver 302, buffer 303 and analyzer 304.

[59] Здесь можно заметить, что любая технология декодирования, помимо анализа/энтропийного декодирования, имеющаяся в декодере, должна присутствовать в по существу идентичной функциональной форме в соответствующем кодере. Описание технологий кодирования может быть опущено, поскольку они могут быть обратными подробно описанным технологиям декодирования. Лишь в некоторых местах необходимо более подробное описание, и оно будет приведено ниже.[59] It can be seen here that any decoding technology other than analysis/entropy decoding available in a decoder must be present in a substantially identical functional form in a corresponding encoder. A description of the encoding technologies may be omitted as they may be the reverse of the decoding technologies described in detail. Only in some places a more detailed description is needed, and it will be given below.

[60] В числе своих операций кодер 403 источника может выполнять кодирование с предсказанием на основе компенсации движения, при котором входные кадры кодируют с предсказанием на основе одного или более ранее кодированных кадров видеопоследовательности, которые были помечены как «опорные кадры». Таким образом, подсистема 407 кодирования кодирует разности между блоками пикселей во входном кадре и блоками пикселей в опорном кадре (или кадрах), которые могут быть выбраны как опорные для предсказания входного кадра.[60] Among its operations, the source encoder 403 may perform motion compensation-based predictive coding in which input frames are predictively encoded based on one or more previously encoded frames of a video sequence that have been labeled "keyframes". Thus, the coding subsystem 407 encodes the differences between the pixel blocks in the input frame and the pixel blocks in the reference frame (or frames) that can be chosen as reference for predicting the input frame.

[61] Локальный видеодекодер 406 может декодировать кодированные видеоданные кадров, помеченные как опорные, в зависимости от символов, формируемых кодером 403 источника. Операции подсистемы 407 кодирования, предпочтительно, являются обработкой данных с потерями. Когда кодированные видеоданные декодируют в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность, как правило, является репликой исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер 406 в точности воспроизводит процесс декодирования, который мог бы выполняться удаленным видеодекодером, над опорными кадрами и помещает восстановленные опорные кадры в кэш 405 опорных изображений. Таким образом, кодер 400 может локально хранить копии восстановленных опорных кадров, содержимое которых совпадает с восстановленными опорными кадрами, получаемыми удаленным видеодекодером (при отсутствии ошибок передачи).[61] The local video decoder 406 may decode the encoded video data of the frames marked as reference, depending on the symbols generated by the source encoder 403. The operations of the encoding subsystem 407 are preferably lossy data processing. When the encoded video data is decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence is typically a replica of the original video sequence with some errors. The local video decoder 406 exactly reproduces the decoding process that could be performed by a remote video decoder on the reference frames and places the recovered reference frames in the reference picture cache 405 . Thus, the encoder 400 can locally store copies of the reconstructed key frames whose content matches the reconstructed key frames received by the remote video decoder (in the absence of transmission errors).

[62] Предсказатель 404 может выполнять поиск предсказаний для подсистемы 407 кодирования. То есть, для нового кодируемого кадра предсказатель 404 может выполнять поиск в памяти 405 опорных изображений, чтобы найти данные отсчетов (в качестве кандидатных опорных блоков пикселей), или метаданных, например, векторы движений опорных изображений, формы блоков и т.п., которые могут служить опорными для новых изображений. Предсказатель 404 может находить подходящие опорные данные для каждого отдельного блока пикселей. В некоторых случаях, в зависимости от результатов поиска, полученных предсказателем 404, опорные данные для предсказания входного изображения могут извлекаться из нескольких опорных изображений, хранимых в памяти 405 опорных изображений.[62] Predictor 404 may search for predictions for coding subsystem 407 . That is, for a new frame to be encoded, predictor 404 may search reference picture memory 405 to find sample data (as candidate pixel reference blocks) or metadata, such as reference picture motion vectors, block shapes, etc., that can serve as reference for new images. Predictor 404 can find suitable reference data for each individual block of pixels. In some cases, depending on the search results obtained by the predictor 404, the reference data for predicting the input image may be extracted from multiple reference pictures stored in the reference picture memory 405 .

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

[64] Выходные данные всех описанных выше функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере 408. Энтропийный кодер преобразует символы, формируемые различными функциональными блоками, в кодированную видеопоследовательность путем сжатия этих символов, без потерь, в соответствии с технологиями, известными специалистами в данной области техники, например, кодированием Хаффмана, кодированием с переменной длиной кодового слова, арифметическим кодированием и т.п.[64] The output of all the functional blocks described above may be entropy encoded in an entropy encoder 408. The entropy encoder converts the symbols generated by the various functional blocks into an encoded video sequence by compressing these symbols, losslessly, in accordance with techniques known to those skilled in the art. techniques such as Huffman coding, variable length coding, arithmetic coding, and the like.

[65] Передатчик 409 может буферизовать кодированную видеопоследовательность (или видеопоследовательности), формируемую энтропийным кодером 408, чтобы подготовить ее к передаче по каналу 411 связи, который может представлять собой аппаратную и/или программную линию связи с запоминающим устройством, где хранят кодированные видеоданные. Передатчик 409 может объединять кодированные видеоданные из видеокодера 403 с другими передаваемыми данными, например, потоками кодированных аудиоданных и/или служебных данных (их источники не показаны на чертеже).[65] The transmitter 409 may buffer the encoded video sequence (or video sequences) generated by the entropy encoder 408 to prepare it for transmission over the communication channel 411, which may be a hardware and/or software link to a storage device where the encoded video data is stored. The transmitter 409 may combine the encoded video data from the video encoder 403 with other transmitted data, such as encoded audio and/or ancillary data streams (their sources are not shown).

[66] Контроллер 402 может управлять работой кодера 400. При кодировании контроллер 405 может присваивать каждому кодированному изображению некоторый тип кодированного изображения, который может влиять на применяемые к нему методы кодирования. Например, изображениям может быть присвоен один из описанных ниже типов кадров.[66] The controller 402 may control the operation of the encoder 400. When encoding, the controller 405 may assign to each encoded picture some type of encoded picture, which may affect the encoding methods applied to it. For example, images can be assigned one of the frame types described below.

[67] Внутренне предсказываемым изображением (I-изображением) может быть изображение, которое кодируют и декодируют без использования, в качестве источника для предсказания, каких-либо других кадров видеопоследовательности. Некоторые видеокодеки поддерживают различные типы внутренне предсказываемых изображений, например, изображения независимого обновления декодирования (IDR). Специалисты в данной области техники должны быть осведомлены о подобных вариантах I-изображений, а также об их свойствах и применимости.[67] An intra predictive picture (I-picture) may be an image that is encoded and decoded without using any other frames of the video sequence as a source for prediction. Some video codecs support various types of intrinsically predictive pictures, such as independent decoding update (IDR) pictures. Those skilled in the art should be aware of such I-image variants, as well as their properties and applicability.

[68] Предсказываемое изображение (Р-изображение) - это изображение, которое может кодироваться и декодироваться при помощи внутреннего или внешнего предсказания с использованием максимум одного вектора движения и указателя на опорное изображение для предсказания значений отсчетов каждого блока отсчетов.[68] A predictive picture (P-picture) is an picture that can be encoded and decoded using intra or inter prediction using a maximum of one motion vector and a reference picture pointer to predict the sample values of each block of samples.

[69] Двунаправленно предсказываемое изображение (В-изображение) - это изображение, которое может кодироваться и декодироваться при помощи внутреннего или внешнего предсказания с использованием максимум двух векторов движения и указателей на опорное изображение для предсказания значений отсчетов каждого блока отсчетов. Аналогично, в случае множественно предсказываемых изображений могут применяться более чем два опорных изображения и соответствующих метаданных, чтобы восстановить один блок отсчетов.[69] A bi-directionally predictive picture (B-picture) is a picture that can be encoded and decoded using intra or inter prediction using a maximum of two motion vectors and reference picture pointers to predict the sample values of each block of samples. Similarly, in the case of multi-predicted images, more than two reference images and associated metadata may be used to reconstruct one block of samples.

[70] Исходные изображения обычно пространственно разбивают на множество блоков отсчетов (например, блоки размера 4×4, 8×8, 4×8 или 16×16 отсчетов в каждом) и кодируют поблочно. Блоки отсчетов могут кодироваться с предсказанием на основе других (уже кодированных) блоков, в зависимости от типов кодирования, назначенных соответствующим этим блоками изображениям. К примеру, блоки отсчетов в I-изображениях могут кодироваться без предсказания или с предсказанием на основе уже кодированных блоков того же изображения («пространственное предсказание» или «внутреннее предсказание»). Блоки пикселей в Р-изображениях могут кодироваться без предсказания, с помощью пространственного предсказания или с помощью временного предсказания на основе одного ранее кодированного опорного изображения. Блоки отсчетов в В-изображениях могут кодироваться без предсказания, с помощью пространственного предсказания или с помощью временного предсказания на основе одного или двух ранее кодированных опорных изображений.[70] Source images are usually spatially partitioned into a plurality of sample blocks (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded block by block. Blocks of samples may be predictively encoded based on other (already encoded) blocks, depending on the coding types assigned to the images corresponding to these blocks. For example, blocks of samples in I-pictures may be encoded without prediction or predicted based on already coded blocks of the same picture ("spatial prediction" or "intra prediction"). Blocks of pixels in P-pictures may be encoded without prediction, with spatial prediction, or with temporal prediction based on a single previously encoded reference picture. Sample blocks in B-pictures may be encoded without prediction, with spatial prediction, or with temporal prediction based on one or two previously encoded reference pictures.

[71] Видеокодер 400 может выполнять операции кодирования в соответствии с заранее заданной технологией или стандартом видеокодирования, которые могут быть задокументированы в стандарте, например, рекомендации Н.265 ITU-T. При своем функционировании видеокодер 400 может выполнять различные операции сжатия, включая операции кодирования с предсказанием, использующие временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, соответственно, могут удовлетворять синтаксису, заданному применяемой технологией или стандартом видеокодирования.[71] Video encoder 400 may perform encoding operations in accordance with a predetermined video coding technology or standard, which may be documented in a standard, such as ITU-T H.265 recommendation. In operation, video encoder 400 may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. The encoded video data may suitably follow the syntax given by the applied video coding technology or standard.

[72] В одном из вариантов осуществления настоящего изобретения передатчик 409 может, совместно с кодированным видео, передавать дополнительные данные. Кодер 403 источника может предоставлять такие данные, как фрагмент кодированной видеопоследовательности. Дополнительные данные могут включать данные уточняющих временных, пространственных или SNR-уровней, избыточных изображений или слайсов, сообщений дополнительной уточняющей информации (SEI) или фрагментов наборов параметров информации об используемости видео (VUI) и т.п.[72] In one embodiment of the present invention, the transmitter 409 may, in conjunction with the encoded video, transmit additional data. Source encoder 403 may provide data such as a fragment of an encoded video sequence. The additional data may include temporal, spatial, or SNR refinement data, redundant images or slices, supplemental refinement information (SEI) messages, or video usage information (VUI) parameter set fragments, and the like.

[73] На фиг. 5 проиллюстрированы режимы внутреннего предсказания, используемые в стандартах HEVC и JEM. Количество режимов внутреннего предсказания, используемых для захвата направлений контуров, которые в естественном видео могут иметь произвольные направление, было увеличено с 33, применяемых в HEVC, до 65. Дополнительные режимы направлений в JEM, по сравнению с HEVC, показаны пунктирными стрелками на фиг. 1(b), тогда как плоский режим и режим DC остаются неизменными. Увеличенная плотность направлений для режимов внутреннего предсказания доступна для блоков любых размеров, как для предсказаний яркости, так и цветности. В соответствии с иллюстрацией фиг. 5 режимы направленного внутреннего предсказания, показанные пунктирными стрелками, связаны с нечетными порядковыми номерами режима внутреннего предсказания, и их называют нечетными режимами внутреннего предсказания. Режимы направленного внутреннего предсказания, показанные сплошными стрелками, связаны с четными порядковыми номерами режима внутреннего предсказания. Их называют четными режимами внутреннего предсказания. В настоящем документе режимы направленного внутреннего предсказания, показанные на фиг. 5 как сплошными, так и пунктирными стрелками, также называют угловыми режимами.[73] FIG. 5 illustrates the intra prediction modes used in the HEVC and JEM standards. The number of intra prediction modes used to capture contour directions, which in natural video can have arbitrary directions, has been increased from 33 used in HEVC to 65. The additional direction modes in JEM compared to HEVC are indicated by dotted arrows in FIG. 1(b), while flat mode and DC mode remain unchanged. Increased direction density for intra prediction modes is available for blocks of any size, both for luminance and chrominance predictions. In accordance with the illustration of FIG. 5, the directional intra prediction modes shown by dotted arrows are associated with odd intra prediction mode sequence numbers and are referred to as odd intra prediction modes. The directional intra prediction modes shown by solid arrows are associated with even intra prediction mode sequence numbers. They are called even intra prediction modes. Herein, the directional intra prediction modes shown in FIG. 5 with both solid and dotted arrows, also referred to as angular modes.

[74] В стандарте JEM для внутреннего предсказания яркости применяют в общей сложности 67 режимов внутреннего предсказания. Для кодирования режима внутреннего предсказания формируют список из 6 элементов, называемый списком наиболее вероятных режимов (most probable mode, МРМ), на основе режимов внутреннего предсказания соседних блоков отчетов. Если режим внутреннего предсказания выбирается не из списка МРМ, сигнализируют специальный флаг, который указывает, принадлежит ли режим внутреннего предсказания к избранным режимам. В стандарте JEM-3.0 имеется 16 избранных режимов, выбираемых равномерно, как каждый четвертый угловой режим. В стандартах JVET-D0114 и JVET-G0060 вместо равномерно выбираемых режимов формируют 16 вторичных МРМ.[74] In the JEM standard, a total of 67 intra prediction modes are used for intra luminance prediction. To encode the intra prediction mode, a list of 6 elements, called the most probable mode (MPM) list, is formed based on the intra prediction modes of neighboring report blocks. If the intra prediction mode is not selected from the MPM list, a special flag is signaled that indicates whether the intra prediction mode belongs to the selected modes. In the JEM-3.0 standard, there are 16 favorite modes, chosen evenly, like every fourth corner mode. In the JVET-D0114 and JVET-G0060 standards, 16 secondary MRMs are formed instead of uniformly selected modes.

[75] На фиг. 6 показаны N опорных рядов, применяемых для режимов направленного внутреннего предсказания. Имеются блок 611, сегмент А 601, сегмент В 602, сегмент С 603, сегмент D 604, сегмент Е 605, сегмент F 606, первый опорный ряд 610, второй опорный ряд 609, третий опорный ряд 608 и четвертый опорный ряд 607.[75] FIG. 6 shows N reference rows used for directional intra prediction modes. There is block 611, segment A 601, segment B 602, segment C 603, segment D 604, segment E 605, segment F 606, first support row 610, second support row 609, third support row 608, and fourth support row 607.

[76] В обоих стандартах, HEVC и JEM, а также в некоторых других стандартах, например в H.264/AVC, опорные отсчеты, используемые для предсказания текущего блока отсчетов, ограничены ближайшей опорной линией (строкой или столбцом). В методе внутреннего предсказания на основе нескольких опорных линий количество кандидатных опорных линий (строк или столбцов) увеличено от одного (т.е. ближайшей линии) до N для режимов направленного внутреннего предсказания, где N - целое число большее или равное единице. На фиг. 2 в качестве примера для иллюстрации принципа метода направленного внутреннего предсказания на основе множества линий рассмотрен блок предсказания (prediction unit, PU) размером 4×4. Режим направленного внутреннего предсказания может произвольно выбирать один из N опорных рядов для формирования предсказаний. Другими словами, предсказание р(х,у) формируют на основе опорных отсчетов S1, S2, …, и SN. Сигнализируют флаг, указывающий, какой из опорных рядов выбран для режима направленного внутреннего предсказания. Если N установлено равным 1, метод направленного внутреннего предсказания идентичен традиционному методу, применяемому в JEM 2.0. На фиг. 6 опорные линии 610, 609, 608 и 607 состоят из шести сегментов 601, 602, 603, 604, 605 и 606, вместе с верхним левым опорным отсчетом. В настоящем документе опорный ряд также называют опорной линией. Координаты левого верхнего пикселя в текущем блоке равны (0,0), при этом левый верхний пиксель в 1-ой опорной линии имеет координаты (-1,-1).[76] In both HEVC and JEM, as well as some other standards such as H.264/AVC, the reference samples used to predict the current block of samples are limited to the nearest reference line (row or column). In the multiple reference line intra prediction method, the number of candidate reference lines (rows or columns) is increased from one (i.e., nearest line) to N for directional intra prediction modes, where N is an integer greater than or equal to one. In FIG. 2, a 4×4 prediction unit (PU) is considered as an example to illustrate the principle of the multi-line directional intra prediction method. The directional intra prediction mode may randomly select one of the N reference rows to generate predictions. In other words, the prediction p(x, y) is generated based on the reference samples S1, S2, ..., and SN. A flag indicating which of the reference rows is selected for the directional intra prediction mode is signaled. If N is set to 1, the directional intra prediction method is identical to the traditional method used in JEM 2.0. In FIG. 6, reference lines 610, 609, 608, and 607 are composed of six segments 601, 602, 603, 604, 605, and 606, along with an upper left reference. In this document, the reference row is also referred to as the reference line. The coordinates of the top left pixel in the current block are (0,0), while the top left pixel in the 1st reference line has coordinates (-1,-1).

[77] В стандарте JEM перед описанной процедурой формирования значения внутреннего предсказания отсчета, для составляющей яркости, соседние с ним отсчеты фильтруют. Фильтрация определяется заданным режимом внутреннего предсказания и размером блока преобразования. Если режимом внутреннего предсказания является режим DC, или если размер блока преобразования равен 4×4, соседние отсчеты не фильтруют. Если расстояние между заданным режимом внутреннего предсказания и вертикальным режимом (или горизонтальным режимом) больше, чем заранее заданный порог, процедура фильтрации активируется. Для фильтрации соседних отсчетов применяют фильтр [1, 2, 1] и билинейные фильтры.[77] In the JEM standard, prior to the described procedure for generating a sample's intra-prediction value, for a luminance component, samples adjacent to it are filtered. Filtering is determined by the given intra prediction mode and transform block size. If the intra prediction mode is DC mode, or if the transform block size is 4×4, adjacent samples are not filtered. If the distance between the predetermined intra prediction mode and the vertical mode (or horizontal mode) is greater than a predetermined threshold, the filtering procedure is activated. The filter [1, 2, 1] and bilinear filters are used to filter neighboring samples.

[78] Метод комбинирования внутренних предсказаний в зависимости от позиции (position dependent intra prediction combination, PDPC) - это метод внутреннего предсказания, в котором осуществляют комбинирование нефильтрованных граничных опорных отсчетов и предсказание типа применяемого в стандарте HEVC с фильтрованием граничных опорных отсчетов. Для каждого отсчета, расположенного по координатам (х, у), предсказание pred[x][y] вычисляют следующим образом:[78] The position dependent intra prediction combination (PDPC) method is an intra prediction method that combines unfiltered boundary reference samples and HEVC type prediction with boundary reference filtering. For each sample located at coordinates (x, y), the prediction pred[x][y] is calculated as follows:

Figure 00000001
Figure 00000001

где Rx,-1,R-1,y нефильтрованные опорные отсчеты, расположенные сверху и слева от текущего отсчета (х, у) соответственно, a R-1,-1 - нефильтрованный опорный отсчет, расположенный в верхнем левом углу текущего блока отсчетов. Весовые вычисляют следующим образом:where R x , -1 ,R -1 , y are unfiltered reference samples located above and to the left of the current sample (x, y), respectively, and R -1, -1 is the unfiltered reference sample located in the upper left corner of the current block of samples . Weights are calculated as follows:

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

[79] На фиг. 7 показана блок-схема 700, на которой метод PDPC в режиме DC определяет весовые коэффициенты (wL, wT, wTL) для позиций (0, 0) и (1, 0) внутри одного блока отсчетов размером 4x4. Если PDPC применяют в режиме DC, плоском, горизонтальном и вертикальном режимах внутреннего предсказания, дополнительные граничные фильтры, такие как граничный фильтр режима DC HEVC или краевые фильтры горизонтального или вертикального режимов, не требуются. На фиг. 7 показано определение опорных отсчетов Rx,-1, R-1,y и R-1,-1 для метода PDPC, применяемого для диагонального режима «направо вверх». Предсказание отсчета pred(x', у') находится в позиции (х', у') внутри блока предсказания. Координату х опорного отсчета Rx,-1 получают как х=х'+у'+1, а координату у опорного отсчета R-1,y аналогично, как у=х'+у'+1.[79] FIG. 7 shows a block diagram 700 in which the DC mode PDPC method determines the weights (wL, wT, wTL) for positions (0, 0) and (1, 0) within a single 4x4 sample block. If PDPC is applied in DC mode, planar, horizontal and vertical intra prediction modes, additional edge filters such as HEVC DC mode edge filter or horizontal or vertical mode edge filters are not required. In FIG. 7 shows the definition of the reference samples Rx ,-1 , R- 1,y, and R- 1,-1 for the PDPC method applied to the right-up diagonal mode. The count prediction pred(x', y') is at position (x', y') within the prediction block. The x-coordinate of the reference sample R x,-1 is obtained as x=x'+y'+1, and the y-coordinate of the reference sample R -1,y is similarly as y=x'+y'+1.

[80] На фиг. 8 показана блок-схема 800 локальной компенсации яркости (Local Illumination Compensation, LIC), которая основана на линейной модели изменения яркости, с использованием коэффициента а масштабирования и смещения b. Ее активируют или деактивируют адаптивно для каждого отдельного блока CU, кодированного в режиме внешнего предсказания.[80] FIG. 8 shows a block diagram 800 of Local Illumination Compensation (LIC) that is based on a linear brightness model using a scaling factor a and an offset b. It is enabled or disabled adaptively for each individual CU encoded in the inter prediction mode.

[81] Когда для блока кодирования применяют процедуру LIC, для вычисления параметров а и b задействуют метод наименьших квадратов, с использованием соседних отсчетов в текущем блоке кодирования и соответствующих им опорных отсчетов. В частности, в соответствии с иллюстрацией фиг. 8, используют подвыборку (с масштабированием 2:1) соседних отсчетов данного блока кодирования и соответствующие отсчеты (на которые указывает информация о движении текущего блока кодирования или подблока кодирования) в опорном изображении. Параметры компенсации яркости вычисляют и применяют для каждого направления предсказания независимо.[81] When the LIC procedure is applied to a coding block, the least squares method is used to calculate the parameters a and b, using adjacent samples in the current coding block and their corresponding reference samples. In particular, in accordance with the illustration of FIG. 8 use a subsample (with 2:1 scaling) of adjacent samples of a given coding block and corresponding samples (pointed to by motion information of the current coding block or sub-coding block) in a reference picture. Luminance compensation parameters are calculated and applied for each prediction direction independently.

[82] Когда блок кодирования кодируют в режиме слияния, флаг LIC копируют из соседних блоков, аналогично копированию информации о движении в режиме слияния. В противном случае для блока кодирования сигнализируют флаг LIC, чтобы указать на необходимости применения процедуры LIC.[82] When a coding block is encoded in merge mode, the LIC flag is copied from neighboring blocks, similar to copying motion information in merge mode. Otherwise, the LIC flag is signaled to the coding unit to indicate that the LIC procedure should be applied.

[83] На фиг. 9А проиллюстрированы режимы 900 внутреннего предсказания в стандарте HEVC. В стандарте HEVC имеются в общей сложности 35 режимов внутреннего предсказания, при этом режим 10 является горизонтальным режимом, режим 26 вертикальным, а режимы 2, 18 и 34 диагональными. Режимы внутреннего предсказания сигнализируют при помощи трех наиболее вероятных режимов (МРМ) и 32 остальных режимов.[83] FIG. 9A illustrates intra prediction modes 900 in the HEVC standard. There are a total of 35 intra prediction modes in the HEVC standard, with mode 10 being a horizontal mode, mode 26 being a vertical mode, and modes 2, 18, and 34 being diagonal. The intra prediction modes are signaled using the three most likely modes (MPMs) and 32 remaining modes.

[84] В вариантах осуществления стандарта VVC, в соответствии с иллюстрацией фиг. 9, имеются в общей сложности 87 режимов внутреннего предсказания, при этом режим 18 является горизонтальным режимом, режим 50 - вертикальным, а режимы 2, 34 и 66 - диагональными. Режимы -1 ~ -10 и режимы 67 ~ 76 называют режимами широкоугольного внутреннего предсказания (Wide-Angle Intra Prediction, WAIP).[84] In embodiments of the VVC standard, as illustrated in FIG. 9, there are a total of 87 intra prediction modes, with mode 18 being the horizontal mode, mode 50 being the vertical mode, and modes 2, 34, and 66 being the diagonal modes. Modes -1 ~ -10 and modes 67 ~ 76 are called Wide-Angle Intra Prediction (WAIP) modes.

[85] Предсказание pred(x,y) отсчета в позиции (х, у) находят с использованием режима внутреннего предсказания (DC, плоского, углового) и линейной комбинации опорных отсчетов в соответствии с выражением PDPC:[85] The prediction pred(x, y) of the sample at position (x, y) is found using the intra prediction mode (DC, flat, angular) and a linear combination of reference samples according to the PDPC expression:

Figure 00000006
Figure 00000006

где Rx,-1,R-1,y - опорные отсчеты, расположенные сверху и слева от текущего отсчета (х, у) соответственно, a R-1,-1 обозначен опорный отсчет, расположенный в верхнем левом углу текущего блока отсчетов.where R x, -1 ,R -1, y - reference samples located above and to the left of the current sample (x, y), respectively, and R -1, -1 denotes the reference sample located in the upper left corner of the current block of samples.

[86] Для режима DC весовые коэффициенты для блока размерностью width х height (ширина х высота) вычисляют следующим образом:[86] For DC mode, the weights for the width x height block are calculated as follows:

Figure 00000007
Figure 00000007

где

Figure 00000008
и где wT весовойwhere
Figure 00000008
and where wT is the weight

коэффициент для опорного отсчета, расположенного в опорной линии сверху с той же горизонтальной координатой, wL весовой коэффициент для опорного отсчета, расположенного в опорной линии слева с той же вертикальной координатой, wTL - весовой коэффициент для верхнего левого опорного отсчета для текущего блока, nScale определяет, как быстро весовые коэффициенты уменьшаются вдоль оси (wL уменьшается слева направо, wT уменьшается сверху вниз), то есть, скорость уменьшения весовых коэффициентов, которая в данной схема равна по оси х (слева направо) и по оси у (сверху вниз). Числом 32 обозначены исходные весовые коэффициенты для соседних отсчетов, при этом исходным также являются верхний (левый или левый-верхний) коэффициенты, присвоенные верхнему левому отсчету в текущем блоке кодирования, и при этом весовые коэффициенты для соседних отсчетов в процедуре должны быть меньше или равны этому исходному весовому коэффициенту.coefficient for the reference located at the top of the reference line with the same horizontal coordinate, wL weight for the reference located at the left of the reference line with the same vertical coordinate, wTL - weight for the top left reference for the current block, nScale defines, how fast the weights decrease along the axis (wL decreases from left to right, wT decreases from top to bottom), i.e., the rate of decrease in weights, which in this circuit is equal to the x-axis (left to right) and the y-axis (top to bottom). The number 32 denotes the original weights for neighboring samples, while the original weights are also the top (left or left-top) coefficients assigned to the top left sample in the current coding block, and the weights for neighboring samples in the procedure must be less than or equal to this original weighting factor.

[87] В плоском режиме wTL=0, тогда как в горизонтальном режиме wTL=wT, а в вертикальном режиме wTL=wL. Весовые коэффициенты для PDPC могут быть вычислены при помощи исключительно операций сложения и сдвига. Значение pred(x,y) может быть вычислено одним шагом с помощью ур. 1.[87] In flat mode wTL=0 while in horizontal mode wTL=wT and in vertical mode wTL=wL. The weighting coefficients for PDPC can be calculated using only addition and shift operations. The value of pred(x,y) can be computed in one step using eq. one.

[88] Предложенные здесь способы могут использоваться как по отдельности, так и в различных сочетаниях, в любом их порядке. При этом все способы (или варианты осуществления изобретения), кодер и декодер, предложенные в вариантах осуществления настоящего изобретения, могут быть реализованы при помощи схем обработки данных (например, одного или более процессоров или одной или более интегральных схем). В одном из примеров один или более процессоров могут исполнять программу, хранящуюся на энергонезависимом машиночитаемом носителе. В приведенном ниже описании термин «блок» можно понимать как блок предсказания, блок кодирования или блок кодирования, CU.[88] The methods proposed here can be used both individually and in various combinations, in any order. However, all methods (or embodiments of the invention), encoder and decoder proposed in the embodiments of the present invention can be implemented using data processing circuits (for example, one or more processors or one or more integrated circuits). In one example, one or more processors may execute a program stored on a non-volatile computer-readable medium. In the description below, the term "block" can be understood as a prediction block, coding block, or coding block, CU.

[89] На фиг. 10 показана упрощенная блок-схема 1000 алгоритма в соответствии с примерами осуществления настоящего изобретения. На шаге S10 кодер, например, описанный на примере кодера 400 фиг. 4, получает входные изображения, и на шаге S11 кодирует эти изображения, например, путем кодирования, включающего формирование блоков NAL (уровня сетевой абстракции), каждый из которых содержит заголовок и данные полезной нагрузки. Некоторые из блоков NAL содержат наборы параметров, а другие содержат кодированные отсчеты изображений, причем в этих изображениях различные блоки могут относиться к одному из или более из множества слайсов или сегментов слайсов, которые могут быть как зависимы, так и независимы друг от друга. На шаге S12 передают битовый поток блоков NAL, отдельно или вместе с другими данными, по сети, например, в декодер, к примеру, в декодер 300, показанный на фиг. 3.[89] FIG. 10 shows a simplified flowchart 1000 in accordance with exemplary embodiments of the present invention. In step S10, an encoder, such as that described with encoder 400 in FIG. 4 receives input images, and in step S11 encodes these images, for example, by encoding, including the formation of NAL (Network Abstraction Layer) units, each of which contains a header and payload data. Some of the NAL units contain parameter sets and others contain encoded picture samples, wherein in these pictures the various units may refer to one or more of a plurality of slices or slice segments, which may or may not be dependent on each other. In step S12, the NAL unit bitstream is transmitted, alone or together with other data, over the network, for example, to a decoder, such as decoder 300 shown in FIG. 3.

[90] На фиг. 13 показана блок-схема 1300 алгоритма, где, на шаге S30, аналогично шагу S11 на фиг. 10, формируют синтаксис разделителя блоков доступа, например, в соответствии с иллюстрацией фиг. 11. На шаге S31, в отношении синтаксической структуры 1101 pic_type, выполняют определение, должна ли эта синтаксическая структура быть задана, путем определения, сформированы ли соответствующие данные в результате кодирования или нет, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1101 pic_type. К примеру, может быть определено, указывает ли синтаксическая структура 1101 pic_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12, т.е. это означает, что одно или более значений slice_type могут присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа, и могут быть соответствующим образом установлены и сигнализированы на шаге S34.[90] FIG. 13 shows a flowchart 1300 where, in step S30, similar to step S11 in FIG. 10 form an access block separator syntax, for example, in accordance with the illustration of FIG. 11. In step S31, with respect to the syntax structure 1101 pic_type, a determination is made whether this syntax structure is to be specified by determining whether the corresponding data is generated as a result of encoding or not, and if so, what value can be signaled with this syntactic structure 1101 pic_type. For example, it can be determined whether the pic_type syntax structure 1101, if present, indicates a value of 0, 1, or 2, as illustrated in FIG. 12, i.e. this means that one or more slice_type values may be present in the slices of the encoded picture in the access block that contains the access block delimiter, and may be set and signaled appropriately in step S34.

[91] На шаге S32 фиг. 13, в отношении синтаксической структуры 1102 rap_type, определяют, должна ли эта синтаксическая структура быть задана, путем определения, сформированы ли соответствующие данные в результате кодирования или нет, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1102 rap_type. К примеру, может быть определено, указывает ли синтаксическая структура 1102 rap_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12 В, тем самым возможно указывая значение nuh_unit_type VCL для всех слайсов кодированного может присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа, и может быть соответствующим образом установлено и сигнализировано на шаге S34.[91] In step S32 of FIG. 13, with respect to the rap_type syntax structure 1102, it is determined whether this syntax structure is to be specified by determining whether the corresponding data is generated as a result of encoding or not, and if so, what value can be signaled with this rap_type syntax structure 1102. For example, it can be determined whether the rap_type syntax structure 1102, if present, indicates a value of 0, 1, or 2, as illustrated in FIG. 12V, thereby possibly indicating a nuh_unit_type VCL value for all encoded slices may be present in the encoded picture slices in the access unit that contains the access unit separator, and may be appropriately set and signaled in step S34.

[92] На шаге S43 фиг. 14, в отношении синтаксической структуры 1103 au_order_cnt, выполняют определение, должна ли эта синтаксическая структура быть задана, путем определения, сформированы ли соответствующие данные в результате кодирования или нет, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1103 au_order_cnt. К примеру, может быть определено, указывает ли синтаксическая структура 1103 au_order_cnt, если она присутствует, на значение порядкового номера блока доступа, которое идентифицирует соответствующий блок (или блоки) доступа среди соседних блоков доступа, и лежит ли оно в диапазоне от 0 до 255 включительно, и такая информация может быть соответствующим образом установлена и сигнализирована на шаге S34.[92] In step S43 of FIG. 14, with respect to the au_order_cnt syntax structure 1103, a determination is made whether this syntax structure is to be specified by determining whether the corresponding data is generated as a result of encoding or not, and if so, what value can be signaled with this au_order_cnt syntax structure 1103 . For example, it can be determined whether the au_order_cnt syntax structure 1103, if present, points to an access unit sequence number value that identifies the corresponding access unit(s) among neighboring access units, and whether it lies in the range 0 to 255 inclusive , and such information can be appropriately set and signaled in step S34.

[93] В соответствии с примерами осуществления настоящего изобретения, шаги S31, S32, и S33 могут выполняться последовательно или параллельно, в соответствии с иллюстрацией фиг. 13, и в зависимости от результатов определения на одном или более из этих шагов, S31, S32 и S33, описанная выше информация может быть задана на шаге S34 и задана как часть одного или более блоков доступа NAL, в связи с возможными синтаксическими элементами синтаксической структуры 1100 the access_unit_delimiter_rbsp, показанной на фиг. 11.[93] In accordance with the embodiments of the present invention, steps S31, S32, and S33 may be performed sequentially or in parallel, in accordance with the illustration of FIG. 13, and depending on the results of determination in one or more of these steps, S31, S32 and S33, the information described above may be specified in step S34 and specified as part of one or more NAL access units, in connection with possible syntax elements of the syntax structure. 1100 the access_unit_delimiter_rbsp shown in FIG. eleven.

[94] Также, на фиг. 10 один или более из блоков NAL могут быть кодированы и приняты на шаге S13 с данными, описанными на примере фиг. 11 и других соответствующих чертежей, таким образом, что разделитель блоков доступа может указывать на различную описанную здесь информацию, и на шаге S13 эти данные анализируют и декодируют, в результате чего на шаге S14 получают одно или более выходных изображений в соответствии с настоящим описанием.[94] Also, in FIG. 10, one or more of the NAL units may be encoded and received in step S13 with the data described in the example of FIG. 11 and other related drawings, so that the access block delimiter can point to various information described herein, and in step S13, these data are parsed and decoded, resulting in step S14, one or more output images are obtained in accordance with the present description.

[95] На фиг. 11 показана синтаксическая таблица 1100 последовательности исходных байтов полезной нагрузки (RBSP) для разделителя блоков доступа, который используют для сигнализации информации о начале видеокадра, в соответствии с примерами осуществления настоящего изобретения, а на фиг. 12 показана таблица 1200, иллюстрирующая значения slice_type.[95] FIG. 11 shows a payload source byte sequence (RBSP) parsing table 1100 for an access block delimiter that is used to signal video frame start information, in accordance with embodiments of the present invention, and FIG. 12 shows a table 1200 illustrating slice_type values.

[96] Синтаксическая структура 1101 pic_type указывает на то, что значения slice_type для всех слайсов кодированных изображений в блоке доступа, который содержит блок NAL с разделителем блоков доступа, являются элементами набора, перечисленного в таблице 1100 для заданного значения pic_type. В битовых потоках, соответствующих этой версии, значение pic_type должно быть равно 0, 1 или 2. Рассмотрим таблицу 1200 на фиг. 12. В соответствии с примерами осуществления настоящего изобретения, значение 0 pic_type может указывать на присутствие, в кодированном изображении, значения I slice_type (слайса с исключительно внутренним предсказанием), значение 0 pic_type может указывать на присутствие, в кодированном изображении, значения I slice_type (слайса с исключительно внутренним предсказанием), значение 1 pic_type может указывать на присутствие, в кодированном изображении, значения slice_type Р (слайса с внешним предсказанием на основе одного I- или Р-слайса) и I, и значение 2 pic_type может указывать на присутствие, в кодированном изображении, значения slice_type В (слайса с внешним предсказанием на основе двух I- или Р-слайсов) Р, и I. Остальные значения pic_type зарезервированы для будущего использования

Figure 00000009
Декодеры, отвечающие вариантам осуществления настоящего изобретения, должны игнорировать зарезервированные значения pic_type.[96] The pic_type syntax structure 1101 indicates that the slice_type values for all coded picture slices in an access block that contains the access block delimiter NAL unit are members of the set listed in table 1100 for a given pic_type value. In bitstreams conforming to this version, the value of pic_type must be 0, 1, or 2. Consider table 1200 in FIG. 12. In accordance with the embodiments of the present invention, a pic_type value of 0 may indicate the presence, in the encoded image, of an I slice_type value (a slice with exclusively intra prediction), a pic_type value of 0 may indicate the presence, in an encoded image, of an I slice_type value (of a slice exclusively intra-predictive), a pic_type value of 1 may indicate the presence, in the encoded picture, of a slice_type value of P (inter-predicted slice based on a single I- or P-slice) and I, and a pic_type value of 2 may indicate the presence, in the encoded image, slice_type values B (inter-prediction slice based on two I- or P-slices) P, and I. The remaining pic_type values are reserved for future use.
Figure 00000009
Decoders in accordance with embodiments of the present invention must ignore reserved pic_type values.

[97] На фиг. 14 показана блок-схема 1400 алгоритма, где, на шаге S40, аналогично шагу S13 на фиг. 10, получают и анализируют синтаксис разделителя блоков доступа, например, в соответствии с иллюстрацией фиг. 11. На шаге S41, в отношении синтаксической структуры 1101 pic_type, выполняют определение, присутствует ли эта синтаксическая структура, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1101 pic-type. К примеру, может быть определено, указывает ли синтаксическая структура 1101 pic_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12, т.е. это означает, что одно или более значений slice_type могут присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа.[97] FIG. 14 shows a flowchart 1400 where, in step S40, similar to step S13 in FIG. 10 receive and parse the syntax of the access block separator, for example, in accordance with the illustration of FIG. 11. In step S41, with respect to the pic_type syntax structure 1101, a determination is made whether this syntax structure 1101 is present, and if so, what value can be signaled with this pic-type syntax structure 1101. For example, it can be determined whether the pic_type syntax structure 1101, if present, indicates a value of 0, 1, or 2, as illustrated in FIG. 12, i.e. this means that one or more slice_type values may be present in the slices of the encoded image in an access block that contains the access block delimiter.

[98] Нужно понимать, что блок NAL, в соответствии с вариантами осуществления настоящего изобретения, может включать кодированные видеоданные, которые содержат байты, указывающие на тип данных в этом блоке NAL, а также данные полезной нагрузки, при этом они могут быть сформированы кодером, например, описанным выше кодером 400. Блок или блоки NAL уровня видеокодирования (VCL) могут содержать идентификатор, ссылающийся на набор параметров изображения (PPS), к примеру, ссылающийся на набор параметров последовательности (SPS), и могут быть переданы в качестве наборов параметров в основной полосе частот и/или вне ее, в различных схемах доставки в зависимости от канала несущей.[98] It is to be understood that a NAL unit, in accordance with embodiments of the present invention, may include encoded video data that contains bytes indicating the type of data in that NAL unit, as well as payload data, which may be generated by an encoder, encoder 400 described above. The video coding layer (VCL) NAL unit or units may contain an identifier referring to a Picture Parameter Set (PPS), such as referring to a Sequence Parameter Set (SPS), and may be transmitted as Parameter Sets in baseband and/or out of it, in different delivery schemes depending on the carrier channel.

[99] Нужно также понимать, что блок доступа может содержать множество блоков NAL, при этом декодирование каждого блока доступа может иметь результатом декодированное изображение. В соответствии с предшествующим описанием, может обеспечиваться префиксирование разделителя блоков доступа, и множество блоков NAL VCL в каждом блоке доступа может содержать первичное кодированное изображение, включающее слайсы или фрагменты данных слайсов, представляющие отсчеты видеоизображения.[99] It should also be understood that an access unit may contain multiple NAL units, and the decoding of each access unit may result in a decoded image. In accordance with the foregoing description, access block delimiter prefixing may be provided, and the plurality of VCL NAL units in each access block may contain a primary encoded picture including slices or slice data pieces representing video samples.

[100] Синтаксическая структура 1102 rap_type определяет, что значения nuh_unit_type VCL ("nuh"- NAL unit header, заголовок блока NAL) для всех слайсов кодированных изображений в блоке доступа, который содержит блок NAL с разделителем блоков доступа, являются элементами набора, перечисленного в таблице 1200 В для заданного значения rap_type. В битовых потоках, соответствующих вариантам осуществления настоящего изобретения, значение rap type должно быть равно 0, 1 или 2. Рассмотрим таблицу 1200 В на фиг. 12 В. В соответствии с примерами осуществления настоящего изобретения значение 0 rap type может указывать на присутствие, в кодированном изображении, значения nuh_layer_id, равного любому из следующего: TRAIL_NUT (заголовок запаздывающего блока NAL (trailing NAL unit header, NUT)), STSA_NUT (NUT пошагового доступа к временному подуровню (STSA)), RASL_NUT (NUT пропускаемого опережающего изображения (или изображений) произвольного доступа (RASL)), RADL_NUT (NUT декодируемого изображения произвольного доступа (RADL)), а значение 1 rap_type может указывать на присутствие, в кодированном изображении, значения nuh_layer_id, равного любому из следующего: IDR_W_RADL (мгновенное обновление декодера (IDR) с RADL (могут присутствовать опережающие изображения)), IDR_N_LP (без опережающих изображений), CRA_NUT (NUT точки чистого произвольного доступа (CRA)), GDR_NUT (NUT постепенного обновления декодера (GDR), и значение 2 rap_type может указывать на присутствие, в кодированном изображении, любых значений nuh_unit_type_values VCL. Остальные значения rap type зарезервированы для будущего использования ITU-T ISO/IEC. Декодеры, отвечающие вариантам осуществления настоящего изобретения, должны игнорировать зарезервированные значения rap_type. Значение rap_type может определять, содержат ли кодированные изображения в блоке доступа только блоки NAL, не являющиеся IRAP (точкой произвольного доступа внутреннего предсказания), только блоки NAL_IRAP, или одновременно IRAP и не-IRAP блоки NAL. Значение rap type может использоваться для указания, присутствует ли в блоке доступа точка произвольного доступа. В соответствии с примерами осуществления настоящего изобретения в HEVC могут присутствовать следующие классы изображений: IRAP-изображения (которые могут принадлежать временному подуровню 0 и кодироваться без использования содержимого других изображений в качестве опорных данных), опережающие изображения (следующие за IRAP-изображением в порядке декодирования, однако предшествующие в порядке вывода) и запаздывающие изображения (следующие за IRAP-изображение и в порядке декодирования, и в порядке вывода).[100] The rap_type syntax 1102 specifies that the nuh_unit_type VCL ("nuh" - NAL unit header, NAL unit header) values for all coded picture slices in an access unit that contains an access block delimiter NAL unit are members of the set listed in table 1200V for the given value of rap_type. In bitstreams according to embodiments of the present invention, the value of rap type must be 0, 1, or 2. Consider the 1200V table in FIG. 12 B. In accordance with embodiments of the present invention, a value of 0 rap type may indicate the presence, in the encoded image, of a nuh_layer_id value equal to any of the following: TRAIL_NUT (trailing NAL unit header (NUT)), STSA_NUT (NUT incremental temporal sublayer access (STSA)), RASL_NUT (NUT of skip ahead random access picture(s) (RASL)), RADL_NUT (NUT of decodable random access picture (RADL)), and a rap_type value of 1 may indicate the presence, in the encoded image, a nuh_layer_id value equal to any of the following: IDR_W_RADL (instantaneous decoder update (IDR) with RADL (leading pictures may be present)), IDR_N_LP (no leading pictures), CRA_NUT (Cure Random Access Point (CRA) NUT), GDR_NUT (NUT Gradual Decoder Update (GDR), and a rap_type value of 2 may indicate the presence, in the encoded picture, of any nuh_unit_type_values VCL values. The rest of the rap type values are reserved for future use by ITU-T ISO/IEC. Decoders complying with embodiments of the present invention should ignore reserved rap_type values. The rap_type value may determine whether the encoded pictures in the access block contain only NAL units that are not IRAP (Intra Prediction Random Access Point), only NAL_IRAP units, or both IRAP and non-IRAP NAL units. The rap type value can be used to indicate whether a random access point is present in the access block. In accordance with embodiments of the present invention, the following classes of pictures may be present in HEVC: IRAP pictures (which may belong to temporal sublayer 0 and be encoded without using the contents of other pictures as reference data), leading pictures (following the IRAP picture in decoding order, however, preceding in output order) and retarded images (following an IRAP image in both decoding order and output order).

[101] На шаге S42 на фиг. 14, в отношении синтаксической структуры 1102 rap_type, выполняют определение, присутствует ли эта синтаксическая структура, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1102 rap_type. К примеру, может быть определено, указывает ли синтаксическая структура 1102 rap_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12 В, тем самым возможно указывая значение nuh_unit_type VCL для всех слайсов кодированного может присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа.[101] In step S42 in FIG. 14, with respect to the rap_type syntax structure 1102, a determination is made whether that syntax structure is present, and if so, what value can be signaled with that rap_type syntax structure 1102. For example, it can be determined whether the rap_type syntax structure 1102, if present, indicates a value of 0, 1, or 2, as illustrated in FIG. 12 V, thereby possibly indicating a nuh_unit_type VCL value for all encoded slices may be present in the encoded picture slices in the access block that contains the access block delimiter.

[102] В соответствии с примерами осуществления настоящего изобретения для указания на границу блока доступа может быть обязательной сигнализация AUD. В AUD синтаксический элемент pic_type может сигнализироваться для указания, какие значение slice_type присутствуют в слайсах кодированных изображений в блоке доступа, который содержит блок NAL с разделителем блоков доступа, при этом pic_type может использоваться для определения, является ли блок доступа зависимым или независимым от других блоков доступа.[102] In accordance with embodiments of the present invention, AUD signaling may be required to indicate an access block boundary. In AUD, the pic_type syntax element may be signaled to indicate which slice_type values are present in the coded picture slices in an access unit that contains the access unit delimiter NAL unit, where pic_type may be used to determine whether the access unit is dependent or independent of other access units. .

[103] При этом синтаксическая структура 1103 au_order_cnt определяет значение порядкового номера блока доступа, который идентифицирует соответствующий блок доступа среди соседних блоков доступа. В соответствии с примерами осуществления настоящего изобретения значение au_order_cnt должно лежать в диапазоне от 0 до 255 включительно. Значение порядкового номера блока доступа может использоваться для определения границы блока доступа, в частности, когда один или более AUD утеряны.[103] In this case, the syntax structure 1103 au_order_cnt defines the value of the sequence number of the access unit, which identifies the corresponding access unit among neighboring access units. In accordance with the embodiments of the present invention, the value of au_order_cnt must be in the range from 0 to 255 inclusive. The access block sequence number value may be used to define the access block boundary, in particular when one or more AUDs are lost.

[104] На шаге S43 на фиг. 14, в отношении синтаксической структуры 1103 au_order_cnt, выполняют определение, присутствует ли эта синтаксическая структура, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1103 au_order_cnt. К примеру, может быть определено, указывает ли синтаксическая структура 1103 au_order_cnt, если она присутствует, на значение порядкового номера блока доступа, которое идентифицирует соответствующий блок (или блоки) доступа среди соседних блоков доступа, и может лежать в диапазоне от 0 до 255 включительно.[104] At step S43 in FIG. 14, with respect to the au_order_cnt syntax structure 1103, a determination is made whether this syntax structure is present, and if so, what value can be signaled with this au_order_cnt syntax structure 1103. For example, it may be determined whether the au_order_cnt syntax structure 1103, if present, indicates an access unit sequence number value that identifies the corresponding access unit(s) among adjacent access units, and may range from 0 to 255 inclusive.

[105] В соответствии с примерами осуществления настоящего изобретения, шаги S41, S42, и S43 могут выполняться последовательно или параллельно, в соответствии с иллюстрацией фиг. 14, и в зависимости от результатов определения на одном или более из этих шагов, S41, S42 и S43, описанная выше информация может быть установлена и сигнализирована на шаге S44, в связи с возможными синтаксическими элементами синтаксической структуры 1100 the access_unit_delimiter_rbsp, показанной на фиг. 11.[105] In accordance with the embodiments of the present invention, steps S41, S42, and S43 may be performed sequentially or in parallel, in accordance with the illustration of FIG. 14, and depending on the results of determination in one or more of these steps, S41, S42, and S43, the above-described information may be set and signaled in step S44, in connection with the possible syntax elements of the access_unit_delimiter_rbsp syntax structure 1100 shown in FIG. eleven.

[106] В соответствии с примерами осуществления настоящего изобретения, как уже отмечалось, могут присутствовать один или более аппаратных процессоров и компьютерных компонентов, таких как буферы, арифметико-логические устройства, инструкции в памяти, которые сконфигурированы для определения или хранения заранее заданных дельта-значений (разностей) для различных значений, описанных в данном документе.[106] In accordance with embodiments of the present invention, as already noted, there may be one or more hardware processors and computer components, such as buffers, arithmetic logic units, instructions in memory, which are configured to determine or store predetermined delta values (differences) for the various values described in this document.

[107] Соответственно, при помощи примеров осуществления настоящего изобретения, рассмотренных в данном документе, упомянутые выше технические проблемы могут быть эффективно решены, по меньшей мере частично, с помощью одного или более из предложенных технических решений. То есть, в соответствии с вариантами осуществления настоящего изобретения, для решения одной или более различных технических проблем в настоящем документе описаны новые технические аспекты, в которых, предпочтительно, может сигнализироваться разделитель блоков доступа (AUD) для указания на то, какие значения slice_type присутствуют в слайсах кодированных изображений в блоке доступа, содержащем блок NAL с разделителем блоков доступа. Структура pic_type может использоваться для определения, является ли блок доступа независимым или зависимым от других блоков доступа. Также, утверждается, что сигнализация упомянутых новых синтаксических элементов позволяет эффективно указывать на блоки доступа с произвольным доступом, и соответственно, позволяет повысить надежность определения границ блоков доступа, в соответствии с примерами осуществления настоящего изобретения, и следовательно, позволяет повысить точность и эффективность.[107] Accordingly, using the embodiments of the present invention discussed in this document, the above technical problems can be effectively solved, at least in part, using one or more of the proposed technical solutions. That is, in accordance with embodiments of the present invention, in order to solve one or more various technical problems, new technical aspects are described herein, in which, preferably, an access block delimiter (AUD) can be signaled to indicate which slice_type values are present in slices of encoded pictures in an access unit containing a NAL unit with an access unit delimiter. The pic_type structure can be used to determine whether an access block is independent or dependent on other access blocks. Also, it is claimed that the signaling of the mentioned new syntax elements allows to effectively point to random access blocks, and accordingly, allows to increase the reliability of the definition of access block boundaries, in accordance with the exemplary embodiments of the present invention, and therefore, allows to increase the accuracy and efficiency.

[108] Описанные выше методы могут быть реализованы в виде компьютерного программного обеспечения, где используются машиночитаемые инструкции, и которое физически хранят на одном или более машиночитаемых носителей, или при помощи специальным образом сконфигурированных одного или более аппаратных процессоров. К примеру, на фиг. 12 показана компьютерная система 1200 подходящая для реализации некоторых из вариантов осуществления настоящего изобретения.[108] The methods described above may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media, or using specially configured one or more hardware processors. For example, in FIG. 12 shows a computer system 1200 suitable for implementing some of the embodiments of the present invention.

[109] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка программирования, который может обрабатываться при помощи ассемблирования, компиляции, линкования или аналогичных механизмов, в результате чего получают код, включающий инструкции, выполняемые непосредственно или при помощи интерпретации, исполнения микрокода и т.п., центральными процессорами компьютера (computer central processing units, CPUs), графическими процессорами (Graphics Processing Units, GPU) и т.п.[109] Computer software may be encoded using any suitable machine code or programming language that can be processed by assembly, compilation, linking, or similar mechanisms, resulting in a code that includes instructions executed directly or by interpretation, execution microcode, etc., computer central processing units (CPUs), graphics processors (Graphics Processing Units, GPU), etc.

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

[111] Компоненты компьютерной системы 1500, показанные на фиг. 15, приведены исключительно для примера и не предполагают каких-либо ограничений на область применения или функциональность компьютерного обеспечения, реализующего варианты осуществления настоящего изобретения. Аналогично, показанная конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требования, связанные с любым компонентом, проиллюстрированным в примере осуществления компьютерной системы 1500, или комбинацией таких компонентов.[111] The components of the computer system 1500 shown in FIG. 15 are provided by way of example only and are not intended to suggest any limitation on the scope or functionality of the computer software implementing the embodiments of the present invention. Likewise, the component configuration shown is also not to be interpreted as having any dependency or requirement associated with any component illustrated in the exemplary computer system 1500, or combination of such components.

[112] Компьютерная система 1500 может включать устройства ввода из состава интерфейса пользователя. Устройства ввода в пользовательском интерфейсе могут реагировать на ввод от одного или более пользователей при помощи, к примеру, тактильного ввода (например, нажатий на клавиши, жестов скольжения пальцем по экрану, движений киберперчатки), аудиоввода (например, голоса, хлопков ладоней), визуального ввода (например, жестов), обонятельного ввода (не показано на чертеже). Устройства пользовательского интерфейса могут также применяться для захвата медиаданных различных типов, не обязательно связанных с сознательным вводом от человека, таких как аудио (например, голос, музыка, звуки окружающей среды), изображения (например, сканированные изображения, фотоизображения, полученные с фотокамеры), видео (например, двумерное видео, трехмерное видео, включая стереоскопическое видео).[112] Computer system 1500 may include input devices from the user interface. Input devices in a user interface may respond to input from one or more users using, for example, tactile input (eg, keystrokes, swipe gestures, cyber glove movements), audio input (eg, voice, handclaps), visual input (for example, gestures), olfactory input (not shown in the drawing). User interface devices may also be used to capture media of various types, not necessarily associated with conscious input from a human, such as audio (eg, voice, music, environmental sounds), images (eg, scanned images, still images taken from a camera), video (eg 2D video, 3D video including stereoscopic video).

[113] Устройства пользовательского интерфейса могут включать одно или более из следующего (на чертеже показано только по одному устройству каждого типа): клавиатура 150), мышь 1502, трекпад 1503, сенсорный экран 1510, джойстик 1505, микрофон 1506, сканер 1508, камера 1507.[113] User interface devices may include one or more of the following (the drawing shows only one device of each type): keyboard 150), mouse 1502, trackpad 1503, touch screen 1510, joystick 1505, microphone 1506, scanner 1508, camera 1507 .

[114] Компьютерная система 1500 может также иметь в своем составе устройства вывода пользовательского интерфейса. Устройства вывода пользовательского интерфейса могут воздействовать на органы чувств одного или более пользователей, например, при помощи тактильного вывода, звука, света и/или запаха/вкуса. Устройства вывода пользовательского интерфейса могут включать устройства тактильного вывода (например, тактильная обратная связь от сенсорного экрана 1510 или джойстика 1505, однако могут также присутствовать устройства тактильного вывода, не являющиеся при этом устройствами ввода). К примеру, подобными устройствами могут быть устройства аудиовывода (например, громкоговорители 1509, наушники (не показаны на чертеже)), устройства визуального вывода (например, экраны 1510, включая CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, как сенсорные, так и без функций сенсорного ввода, как с функциями тактильно обратной связи, так и без них, при этом некоторые из экранов могут быть способны выводить двумерную визуальную информацию или более чем трехмерную визуальною информацию, при помощи таких средств, как например, стереографический вывод; очки виртуальной реальности (не показаны на чертеже), голографические дисплеи, дымовые машины, а также принтеры (не показаны на чертеже).[114] Computer system 1500 may also include user interface output devices. User interface output devices may affect the senses of one or more users, such as through tactile output, sound, light, and/or smell/taste. User interface output devices may include tactile output devices (eg, tactile feedback from the touch screen 1510 or joystick 1505, but tactile output devices that are not input devices may also be present). For example, such devices can be audio output devices (for example, 1509 speakers, headphones (not shown)), visual output devices (for example, 1510 screens, including CRT screens, LCD screens, plasma screens, OLED screens, such as touch and non-touch, with or without haptic feedback, some of the screens may be capable of displaying 2D visual information or more than 3D visual information by means such as stereographic output ; virtual reality glasses (not shown in the drawing), holographic displays, smoke machines, and printers (not shown in the drawing).

[115] Компьютерная система 1500 может также включать запоминающие устройства, доступные для пользователей, и связанные с ними носители данных, например, оптические носители, включая CD/DVD ROM/RW 1520, с носителями 1511 CD/DVD или аналогичными им, флэш-привод 1522, съемный жесткий диск или твердотельный диск 1523, применяемые ранее магнитные носители, например, ленты или гибкие диски (не показаны на чертеже), специализированные устройства на основе ROM/ASIC/PLD, например, аппаратные ключи (не показаны на чертеже), и т.п.[115] The computer system 1500 may also include user-accessible storage devices and associated storage media, such as optical media including CD/DVD ROM/RW 1520, with CD/DVD media 1511 or the like, a flash drive 1522, removable hard drive or 1523 solid state drive, legacy magnetic media such as tapes or floppy disks (not shown), dedicated ROM/ASIC/PLD based devices such as dongles (not shown), and etc.

[116] Специалисты в данной области техники должны при этом понимать, что выражение «машиночитаемый носитель данных», используемое в связи с настоящим изобретением, не включает в себя среды передачи данных, несущие волны или другие энергозависимые сигналы.[116] Persons skilled in the art should understand that the term "computer-readable storage medium" as used in connection with the present invention does not include transmission media, carrier waves, or other energy dependent signals.

[117] Компьютерная система 1500 может также иметь интерфейс 1599 с одной или более сетями 1598 связи. Сети 1598 могут быть, например, беспроводными, проводными или оптическими. Сети 1598 также могут быть локальными, глобальными, городскими, размещаемыми на транспортных средствах или промышленных объектах, сетями реального времени, устойчивыми к задержкам и т.п. Примеры сетей 1598 включают такие локальные сети, как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные или беспроводные глобальные сети цифрового телевещания, включая кабельное телевидение, спутниковое телевидение и сети эфирного вещания, сети транспортных средств и промышленных объектов, включая CANBus, и т.п. Некоторые сети 1598 требуют наличия внешних адаптеров сетевых интерфейсов, подключаемых к портам данных или периферийным шинам (1550 и 1551) общего назначения (например, USB-портам компьютерной системы 1500. Другие сети могут быть интегрированы во внутреннюю структуру компьютерной системы 1500 за счет подключения к системной шине, в соответствии с приведенным ниже описанием (например, интерфейс Ethernet в системе персонального компьютера или интерфейс сети сотовой связи в компьютерной системе на базе смартфона). Применение любых из подобных сетей 1598 позволяет компьютерной системе 1500 осуществлять связь с другими объектами. Такая связь может быть однонаправленной, только на прием (например, телевещание), однонаправленной, только на передачу (например, сеть CANbus в некоторые устройства CANbus) или двунаправленной, например, в другие компьютерные системы с использованием локальных или глобальных цифровых сетей. В любой из сетей и сетевых интерфейсов, описанных выше, могут применяться соответствующие протоколы и стеки протоколов.[117] Computer system 1500 may also have an interface 1599 with one or more communication networks 1598. Networks 1598 may be wireless, wired, or optical, for example. Networks 1598 may also be local, wide area, metro, vehicle or industrial, real-time, delay tolerant, and the like. Examples of networks 1598 include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., wired or wireless digital broadcast wide area networks including cable television, satellite television, and terrestrial networks. broadcasting, vehicle and industrial networks, including CANBus, etc. Some 1598 networks require external network interface adapters connected to general purpose data ports or peripheral buses (1550 and 1551) (for example, the USB ports of the 1500 computer system. Other networks can be integrated into the internal structure of the 1500 computer system by connecting to the system bus, as described below (for example, an Ethernet interface on a personal computer system, or a cellular network interface on a smartphone-based computer system. The use of any of these networks 1598 allows computer system 1500 to communicate with other entities. Such communication may be unidirectional, receive only (for example, TV broadcast), unidirectional, transmit only (for example, a CANbus network to some CANbus devices) or bidirectional, for example, to other computer systems using local area networks or wide area networks On any of the networks and network interfaces described above can be applied relevant protocols and protocol stacks.

[118] Описанные выше устройства пользовательского интерфейса, доступные пользователям запоминающие устройства и сетевые интерфейсы могут быть подключены к базовой внутренней структуре 1540 компьютерной системы 1500.[118] The user interface devices, user-accessible storage devices, and network interfaces described above may be connected to the basic internal structure 1540 of the computer system 1500.

[119] Базовая внутренняя структура 1540 может включать один или более центральных процессоров (Central Processing Units, CPU) 1541, графических процессоров (Graphics Processing Units, GPU) 1542, специализированных программируемых блоков обработки данных в форме электрически программируемых вентильных матриц (Field Programmable Gate Areas, FPGA) 1543, аппаратных ускорителей 1544 для определенных задач и т.п. Эти устройства, вместе с памятью 1545 в режиме «только для чтения» (Read-only memory, ROM) 945, памятью 1546 с произвольным доступом, внутренней памятью большой емкости, например, внутренними, недоступными пользователю жесткими дисками, SSD-дисками и аналогичной памятью 1547, могут быть объединены системной шиной 1548. В некоторых компьютерных системах к системной шине 1548 может предоставляться доступ в виде одного или более физических разъемов, позволяющих расширять систему дополнительными CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к базовой системной шине 1548, либо к периферийной шине 1551. Примерами архитектур периферийной шины могут служить шины PCI, USB и т.п.[119] The basic internal structure 1540 may include one or more central processing units (Central Processing Units, CPU) 1541, graphics processors (Graphics Processing Units, GPU) 1542, specialized programmable data processing units in the form of electrically programmable gate arrays (Field Programmable Gate Areas , FPGA) 1543, hardware accelerators 1544 for certain tasks, etc. These devices, together with Read-only memory (ROM) 945 1545, Random Access Memory 1546, high capacity internal memory such as internal, non-user hard drives, SSD drives, and similar memory 1547 may be connected by system bus 1548. In some computer systems, system bus 1548 may be accessed in the form of one or more physical connectors, allowing the system to be expanded with additional CPUs, GPUs, and the like. Peripherals can be connected either directly to the 1548 core system bus or to the 1551 peripheral bus. Examples of peripheral bus architectures are PCI, USB, and the like.

[120] CPU 1541, GPU 1542, FPGA 1543 и ускорители 1544 могут выполнять инструкции, которые, в совокупности, могут составлять описанный выше компьютерный код. Компьютерный код может храниться в памяти ROM 1545 или RAM 1546. Временные данные при этом могут храниться в RAM 1546, тогда как постоянные данные могут храниться, например, во внутренней памяти 1547 большой емкости. Высокая скорость сохранения данных в запоминающие устройства и извлечения данных из них может обеспечиваться за счет применения кэш-памяти, которая может быть тесно связан с одним или более CPU 1541, GPU 1542, памятью 1547 большой емкости, ROM 1545, RAM 1546 и т.п.[120] CPU 1541, GPU 1542, FPGA 1543, and accelerators 1544 may execute instructions that, collectively, may constitute the computer code described above. The computer code may be stored in ROM 1545 or RAM 1546. Temporary data may be stored in RAM 1546, while permanent data may be stored in large capacity internal memory 1547, for example. A high speed of storing data in and retrieving data from memory devices can be achieved by using a cache memory that can be closely associated with one or more CPU 1541, GPU 1542, mass memory 1547, ROM 1545, RAM 1546, etc. .

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

[122] В качестве неограничивающего примера, компьютерная система с архитектурой 1500, и в частности, базовой структурой 1540, может предоставлять требуемую функциональность в результате исполнения, процессором (или процессорами) (включая CPU, GPU, FPGA, ускорители и т.п.), программного обеспечения, реализованного на одном или более материальных машиночитаемых носителях данных. Такие машиночитаемые носители данных могут быть носителями, связанными с описанными выше запоминающими устройствами большой емкости, которые доступны пользователям, или энергонезависимыми запоминающими устройствами в базовой структуре 1540, например, встроенным запоминающим устройством 1547 большой емкости или ROM 1545. Программное обеспечение, которое реализует различные варианты осуществления настоящего изобретения, может храниться в подобных устройствах и исполняться внутренней структурой 1540 компьютерной системы. Машиночитаемый носитель данных, в зависимости от конкретных требований, может включать одно или более запоминающих устройств или микросхем памяти. Программное обеспечение может обеспечивать выполнение, базовой структурой 1540, и в частности, процессорами из его состава (включая CPU, GPU, FPGA и т.п.), необходимых процедуры, или частей необходимых процедур, описанных в данном документе, включая создание структур данных, хранимых в RAM 1546, и модификацию этих структур данных в соответствии с процедурами, определенными программным обеспечением. В дополнение или альтернативно, компьютерная система может обеспечивать требуемую функциональность в результате работы логики, жестко запрограммированной или иным образом воплощенной в электрической схеме (например, ускорителе 1544), которая может работать вместе с программным обеспечением, или вместо него, для выполнения требуемых процедур или частей требуемых процедур, описанных в данном документе. Упоминание программного обеспечения, там, где это уместно, может подразумевать такую логику и наоборот. Упоминание машиночитаемого носителя, там, где это уместно, может подразумевать электрическую схему (например, интегральную схему), на которой хранится исполняемое программное обеспечение, электрическую схему, реализующую исполняемую логику или оба эти случая одновременно. В объем настоящего изобретения входят все соответствующие комбинации аппаратного и программного обеспечения.[122] As a non-limiting example, a computer system with architecture 1500, and in particular core structure 1540, can provide the desired functionality as a result of execution by a processor (or processors) (including CPUs, GPUs, FPGAs, accelerators, etc.) , software implemented on one or more tangible computer-readable storage media. Such computer-readable storage media can be media associated with mass storage devices described above that are available to users, or non-volatile storage devices in the base structure 1540, such as built-in mass storage device 1547 or ROM 1545. Software that implements various embodiments of the present invention may be stored in such devices and executed by the internal structure 1540 of the computer system. The computer-readable storage medium, depending on specific requirements, may include one or more storage devices or memory chips. The software may provide execution, by the underlying structure 1540, and in particular by its processors (including CPUs, GPUs, FPGAs, etc.), of the necessary procedures, or parts of the necessary procedures described in this document, including the creation of data structures, stored in RAM 1546 and modifying these data structures in accordance with procedures defined by the software. In addition or alternatively, the computer system may provide the desired functionality as a result of the operation of logic, hard-coded or otherwise embodied in an electrical circuit (for example, an accelerator 1544), which may work with or instead of software to perform the required procedures or parts. the required procedures described in this document. Reference to software, where appropriate, may imply such logic and vice versa. Reference to a computer-readable medium, where appropriate, may refer to an electrical circuit (eg, an integrated circuit) that stores executable software, an electrical circuit that implements executable logic, or both. All suitable combinations of hardware and software are within the scope of the present invention.

[123] В данном документе были описаны несколько примеров осуществления настоящего изобретения, однако при этом возможны модификации, изменения и эквивалентные замены, которые попадают в объем настоящего изобретения. Соответственно, нужно понимать, что специалисты в данной области техники способны создать множество систем и способов, которые хотя явно здесь и не описаны, реализуют замысел настоящего изобретения и соответственно, находятся в пределах его объема и сущности.[123] Several embodiments of the present invention have been described herein, however, modifications, changes and equivalent substitutions are possible and fall within the scope of the present invention. Accordingly, it is to be understood that those skilled in the art are capable of creating a variety of systems and methods that, while not expressly described herein, accomplish the intent of the present invention and are therefore within its scope and spirit.

Claims (40)

1. Способ видеокодирования, выполняемый по меньшей мере одним процессором и включающий:1. A video encoding method performed by at least one processor and including: получение видеоданных;receiving video data; определение синтаксиса разделителя блоков доступа по меньшей мере в одном блоке уровня сетевой абстракции (NAL) упомянутых видеоданных;defining an access block delimiter syntax in at least one network abstraction layer (NAL) block of said video data; определение, указывает ли синтаксис разделителя блоков доступа на значение типа слайса для упомянутого блока NAL;determining whether the access unit separator syntax indicates a slice type value for said NAL unit; определение, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL по меньшей мере одно из значения уровня видеокодирования (VCL) посредством синтаксиса точки произвольного доступа (RAP);determining whether an access block delimiter syntax in said NAL unit indicates at least one of a video coding level (VCL) value by means of a random access point (RAP) syntax; определение, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL значение порядкового номера блока доступа для упомянутого блока NAL, ассоциирующее блок доступа среди соседних блоков доступа посредством номера, указанного упомянутым значением порядкового номера блока доступа; иdetermining whether the access unit separator syntax in said NAL unit indicates an access unit sequence number value for said NAL unit associating an access unit among neighboring access units by a number indicated by said access unit sequence number value; and сигнализацию значений границ блока доступа для упомянутого блока NAL в соответствии с тем, указывает ли синтаксис разделителя блоков доступа по меньшей мере на одно из значения типа слайса, значения VCL и значения порядкового номера блока доступа.signaling access unit boundary values for said NAL unit according to whether the access unit delimiter syntax indicates at least one of a slice type value, a VCL value, and an access unit sequence number value. 2. Способ по п. 1, в котором определение, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL, включает определение, установлено ли по меньшей мере одно из значений VCL равным любому из следующих значений: 0, 1 или 2.2. The method of claim 1, wherein determining whether the access block separator syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for the NAL unit comprises determining whether at least one of the VCL values is set to any of the following values: 0, 1 or 2. 3. Способ по п. 2, в котором сигнализация значений границ блока доступа для блока NAL включает, если определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно значение VCL установлено равным 0, сигнализацию по меньшей мере одного из следующего: кодированного слайса значения запаздывающего изображения, кодированного слайса значения изображения пошагового доступа к временному подуровню (STSA), кодированного слайса значения опережающего пропускаемого изображения с произвольным доступом (RASL) и кодированного слайса значения опережающего декодируемого изображения с произвольным доступом (RADL).3. The method of claim 2, wherein signaling access block boundary values for the NAL unit includes, if it is determined that the access block separator indicates that said at least one VCL value is set to 0, signaling at least one of the following: : a coded delay picture value slice, a stepwise temporal sublayer access (STSA) coded picture value slice, a random access advance skip picture (RASL) coded value slice, and a random access advance decodable picture (RADL) coded value slice. 4. Способ по п. 2, в котором сигнализация значений границ блока доступа для блока NAL включает, если определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно значение VCL установлено равным 1, сигнализацию по меньшей мере одного из следующего: кодированного слайса значения изображения мгновенного обновления декодера (IDR), кодированного слайса значения изображения чистого произвольного доступа (CRA) и кодированного слайса значения изображения постепенного обновления декодера (GDR).4. The method of claim 2, wherein signaling the access block boundary values for the NAL unit comprises, if it is determined that the access block separator indicates that said at least one VCL value is set to 1, signaling at least one of the following: : decoder instantaneous update (IDR) image value coded slice, pure random access (CRA) image value coded slice, and decoder gradual update (GDR) image value coded slice. 5. Способ по п. 2, в котором сигнализация значений границ блока доступа для блока NAL включает, если определено, что разделитель блоков доступа указывает на то, что по меньшей мере одно значение VCL установлено равным 2, сигнализацию множества значений VCL для множества слайсов кодированных изображений в блоке доступа.5. The method of claim 2, wherein signaling access block boundary values for the NAL unit includes, if it is determined that the access block delimiter indicates that at least one VCL value is set to 2, signaling a plurality of VCL values for a plurality of coded slices. images in the access block. 6. Способ по п. 1, в котором определение, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL, включает определение, идентифицирует ли значение порядкового номера блока NAL блок доступа.6. The method of claim 1, wherein determining whether the NAL unit access unit separator syntax indicates a VCL value and/or an access unit sequence number value for the NAL unit comprises determining whether the NAL unit sequence number value identifies an access unit. 7. Способ по п. 6, в котором определение, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL, включает определение, лежит ли значение порядкового номера блока доступа в диапазоне от 0 до 225.7. The method of claim 6, wherein determining whether the access unit separator syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for the NAL unit comprises determining whether the access unit sequence number value lies in the range of 0 up to 225. 8. Способ по п. 6, в котором определение, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL, включает определение, идентифицирует ли значение порядкового номера блока доступа для блока NAL блок доступа среди соседних блоков доступа.8. The method of claim 6, wherein determining whether the NAL unit access unit separator syntax indicates a VCL value and/or an access unit sequence number value for the NAL unit includes determining whether the access unit sequence number value for the NAL unit identifies access among neighboring access blocks. 9. Способ по п. 1, в котором определение, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение типа слайса для упомянутого блока NAL, включает определение, установлено ли значение типа слайса равным любому из следующих значений: 0, 1 или 2.9. The method of claim 1, wherein determining whether the access block separator syntax in the NAL unit indicates a slice type value for said NAL unit comprises determining whether the slice type value is set to any of the following values: 0, 1, or 2. 10. Способ по п. 9, в котором определение, указывает ли синтаксис разделителя блоков доступа на значение типа слайса, также включает определение присутствия слайса с внутренним предсказанием и/или слайса с внешним предсказанием.10. The method of claim 9, wherein determining whether the access block separator syntax indicates a slice type value also includes determining the presence of an intra-predictive slice and/or an inter-predictive slice. 11. Устройство для видеокодирования, включающее:11. Device for video encoding, including: по меньшей мере одну память, сконфигурированную для хранения компьютерного программного кода;at least one memory configured to store computer program code; по меньшей мере один процессор, сконфигурированный для доступа к компьютерному программному коду и для выполнения операций согласно инструкциям компьютерного программного кода, при этом компьютерный программный код включает:at least one processor configured to access the computer program code and to perform operations according to the instructions of the computer program code, the computer program code including: код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать видеоданные;an acquisition code configured to cause at least one processor to acquire video data; первый код определения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор определять синтаксис разделителя блоков доступа по меньшей мере в одном блоке уровня сетевой абстракции (NAL) упомянутых видеоданных;a first determination code configured to cause at least one processor to determine an access block delimiter syntax in at least one network abstraction layer (NAL) block of said video data; второй код определения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор определять, указывает ли упомянутый синтаксис разделителя блоков доступа на значение типа слайса для упомянутого блока NAL;a second determination code configured to cause at least one processor to determine whether said access unit delimiter syntax indicates a slice type value for said NAL unit; третий код определения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL по меньшей мере одно из значения уровня видеокодирования (VCL) посредством синтаксиса точки произвольного доступа (RAP);a third determination code configured to cause at least one processor to determine whether an access block delimiter syntax in said NAL unit indicates at least one of a video coding level (VCL) value by means of a random access point (RAP) syntax; четвертый код определения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL значение порядкового номера блока доступа для упомянутого блока NAL, ассоциирующее блок доступа среди соседних блоков доступа посредством номера, указанного упомянутым значением порядкового номера блока доступа; иa fourth determination code configured to cause at least one processor to determine whether the access unit separator syntax in said NAL unit indicates an access unit sequence number value for said NAL unit associating an access unit among neighboring access units by a number indicated by said sequence value access block numbers; and код сигнализации, сконфигурированный так, чтобы заставлять по меньшей мере один процессор сигнализировать значения границ блока доступа для упомянутого блока NAL в соответствии с тем, указывает ли синтаксис разделителя блоков доступа по меньшей мере на одно из значения типа слайса, значения VCL и значения порядкового номера блока доступа.a signaling code configured to cause at least one processor to signal access unit boundary values for said NAL unit according to whether the access unit delimiter syntax indicates at least one of a slice type value, a VCL value, and a unit sequence number value access. 12. Устройство по п. 11, в котором третий код определения дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL, путем определения, установлено ли по меньшей мере одно из значений VCL равным любому из следующих значений: 0, 1 или 2.12. The apparatus of claim 11, wherein the third determination code is further configured to cause the at least one processor to determine whether the access unit separator syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for the NAL unit, by determining if at least one of the VCL values is set to any of the following values: 0, 1, or 2. 13. Устройство по п. 12, в котором код сигнализации дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор сигнализировать значения границ доступа для блока NAL, если было определено, что разделитель блоков доступа указывает на то, что по меньшей мере одно значение VCL установлено равным 0, путем сигнализации по меньшей мере одного из следующего: кодированного слайса значения запаздывающего изображения, кодированного слайса значения изображения пошагового доступа к временному подуровню (STSA), кодированного слайса значения опережающего пропускаемого изображения с произвольным доступом (RASL) и кодированного слайса значения опережающего декодируемого изображения с произвольным доступом (RADL).13. The apparatus of claim 12, wherein the signaling code is further configured to cause at least one processor to signal access boundary values for a NAL unit if it has been determined that the access unit separator indicates that at least one VCL value set to 0 by signaling at least one of the following: a coded slice of a late picture value, a coded slice of a stepwise temporal sublayer access (STSA) picture value, a coded slice of a forward random access skip picture (RASL), and a coded slice of a forward decodable picture value. random access images (RADL). 14. Устройство по п. 12, в котором код сигнализации дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор сигнализировать значения границ доступа для блока NAL, если определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 1, путем сигнализации по меньшей мере одного из следующего: кодированного слайса значения изображения мгновенного обновления декодера (IDR), кодированного слайса значения изображения чистого произвольного доступа (CRA) и кодированного слайса значения изображения постепенного обновления декодера (GDR).14. The apparatus of claim 12, wherein the signaling code is further configured to cause at least one processor to signal access boundary values for a NAL unit if it is determined that the access unit delimiter indicates that said at least one VCL is set. equal to 1 by signaling at least one of the encoded instant decoder update (IDR) image value slice, the pure random access (CRA) encoded image value slice, and the decoder incremental update (GDR) image value encoded slice. 15. Устройство по п. 12, в котором код сигнализации дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор сигнализировать значения границ доступа для блока NAL, если определено, что разделитель блоков доступа указывает на то, что по меньшей мере одно значение VCL установлено равным 2, путем сигнализации множества значений VCL для множества слайсов кодированных изображений в блоке доступа.15. The apparatus of claim 12, wherein the signaling code is further configured to cause at least one processor to signal access boundary values for the NAL unit if it is determined that the access unit separator indicates that at least one VCL value is set. equal to 2 by signaling a plurality of VCL values for a plurality of coded picture slices in the access block. 16. Устройство по п. 11, в котором третий код определения дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL, путем определения, идентифицирует ли блок доступа значение порядкового номера блока доступа для блока NAL.16. The apparatus of claim 11, wherein the third determination code is further configured to cause at least one processor to determine whether the syntax of the access unit delimiter in the NAL unit indicates a VCL value and/or an access unit sequence number value for the NAL unit, by determining whether the access unit identifies an access unit sequence number value for the NAL unit. 17. Устройство по п. 16, в котором третий код определения дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL путем определения, лежит ли значение порядкового номера блока доступа в диапазоне от 0 до 225.17. The apparatus of claim 16, wherein the third determination code is further configured to cause at least one processor to determine whether the syntax of the access unit delimiter in the NAL unit indicates a VCL value and/or an access unit sequence number value for the NAL unit by determining whether the value of the access block sequence number lies in the range from 0 to 225. 18. Устройство по п. 16, в котором третий код определения дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для блока NAL путем определения, идентифицирует ли значение порядкового номера блока доступа для блока NAL упомянутый блок доступа среди соседних блоков доступа.18. The apparatus of claim 16, wherein the third determination code is further configured to cause the at least one processor to determine whether the access unit delimiter syntax in the NAL unit indicates a VCL value and/or an access unit sequence number value for the NAL unit by determining whether the access unit sequence number value for the NAL unit identifies said access unit among neighboring access units. 19. Устройство по п. 11, в котором второй код определения дополнительно сконфигурирован так, чтобы заставлять по меньшей мере один процессор определять, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение типа слайса для блока NAL путем определения, установлено ли значение типа слайса равным любому из следующих значений: 0, 1 или 2.19. The apparatus of claim 11, wherein the second determination code is further configured to cause the at least one processor to determine whether the access unit delimiter syntax in the NAL unit indicates a slice type value for the NAL unit by determining whether the slice type value is set equal to any of the following values: 0, 1, or 2. 20. Машиночитаемый носитель данных, хранящий программу, которая обеспечивает выполнение компьютером способа, включающего:20. A computer-readable storage medium that stores a program that enables a computer to execute a method, including: получение видеоданных;receiving video data; определение синтаксиса разделителя блоков доступа по меньшей мере в одном блоке уровня сетевой абстракции (NAL) упомянутых видеоданных;defining an access block delimiter syntax in at least one network abstraction layer (NAL) block of said video data; определение, указывает ли синтаксис разделителя блоков доступа на значение типа слайса для упомянутого блока NAL;determining whether the access unit separator syntax indicates a slice type value for said NAL unit; определение, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL по меньшей мере одно из значения уровня видеокодирования (VCL) посредством синтаксиса точки произвольного доступа (RAP);determining whether an access block delimiter syntax in said NAL unit indicates at least one of a video coding level (VCL) value by means of a random access point (RAP) syntax; определение, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL значение порядкового номера блока доступа для упомянутого блока NAL, ассоциирующее блок доступа среди соседних блоков доступа посредством номера, указанного упомянутым значением порядкового номера блока доступа; иdetermining whether the access unit separator syntax in said NAL unit indicates an access unit sequence number value for said NAL unit associating an access unit among neighboring access units by a number indicated by said access unit sequence number value; and сигнализацию значений границ блока доступа для упомянутого блока NAL в соответствии с тем, указывает ли синтаксис разделителя блоков доступа по меньшей мере на одно из значения типа слайса, значения VCL и значения порядкового номера блока доступа.signaling access unit boundary values for said NAL unit according to whether the access unit delimiter syntax indicates at least one of a slice type value, a VCL value, and an access unit sequence number value.
RU2021128331A 2019-09-23 2020-09-22 Access blocks separator signaling method RU2775489C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/904,361 2019-09-23
US17/023,711 2020-09-17

Publications (1)

Publication Number Publication Date
RU2775489C1 true RU2775489C1 (en) 2022-07-01

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2619194C2 (en) * 2012-07-10 2017-05-12 Квэлкомм Инкорпорейтед Nal sei units encoding for video encoding
RU2646378C2 (en) * 2012-09-24 2018-03-02 Квэлкомм Инкорпорейтед Advanced determination of the decoding unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2619194C2 (en) * 2012-07-10 2017-05-12 Квэлкомм Инкорпорейтед Nal sei units encoding for video encoding
RU2646378C2 (en) * 2012-09-24 2018-03-02 Квэлкомм Инкорпорейтед Advanced determination of the decoding unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YE-KUI WANG, AHG12: On mixed NAL unit types within a picture, Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-O0140-v2, 15th Meeting: Gothenburg, 3-12 July 2019. *

Similar Documents

Publication Publication Date Title
CN113228633B (en) Video encoding and decoding method and device
US11483558B2 (en) Method for region-wise scalability with adaptive resolution change
CN110784711A (en) Method and device for generating merging candidate list for encoding or decoding video sequence
US11979586B2 (en) Method and apparatus for video coding
JP2021520150A (en) Methods and equipment to further improve the contextual design of predictive modes and coded block flags (CBFs)
JP7318087B2 (en) Method for generating mode list for multi-line intra prediction, its device and computer program
US20240007677A1 (en) Method for access unit delimiter signaling
US20230013085A1 (en) Region-wise scalability with adaptive resolution change
CN113348666A (en) Method for identifying group of graph blocks
JP2023165926A (en) Method, apparatus, medium, and computer program for video coding
JP7391198B2 (en) Intracoding using L-shaped partitioning tree
CN115428024A (en) Decoupled transform segmentation technique
CN115486078A (en) Low memory design for multiple reference row selection scheme
RU2775489C1 (en) Access blocks separator signaling method
RU2812762C1 (en) Adaptive colour conversion alarms for cu level and tu level
RU2775391C1 (en) Splitting into tiles and subimages
JP7439344B2 (en) Methods, devices and computer programs for video decoding
RU2775390C1 (en) Adaptive image size signaling in video bitstream
RU2787691C1 (en) Method for the output layer set mode in a multi-level video stream
CN110636296B (en) Video decoding method, video decoding device, computer equipment and storage medium
RU2785918C1 (en) Method for referencing a set of parameters in the bitstream of an encoded video
JP2023553921A (en) Method and apparatus for intra block copy mode coding using search range switching
JP2023543586A (en) Skip conversion flag encoding
CN115804089A (en) Zero residual flag coding and decoding