RU2801112C1 - Coder, decoder and corresponding methods related to intra-frame prediction mode - Google Patents

Coder, decoder and corresponding methods related to intra-frame prediction mode Download PDF

Info

Publication number
RU2801112C1
RU2801112C1 RU2022104557A RU2022104557A RU2801112C1 RU 2801112 C1 RU2801112 C1 RU 2801112C1 RU 2022104557 A RU2022104557 A RU 2022104557A RU 2022104557 A RU2022104557 A RU 2022104557A RU 2801112 C1 RU2801112 C1 RU 2801112C1
Authority
RU
Russia
Prior art keywords
cbheight
intra
cbwidth
luminance
mode
Prior art date
Application number
RU2022104557A
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 RU2801112C1 publication Critical patent/RU2801112C1/en

Links

Abstract

FIELD: image processing.
SUBSTANCE: invention relates to performing an intraframe chrominance prediction mode derivation using the intra-frame prediction mode from a corresponding luminance component. The technical result is to increase the compression ratio with minimal or no effect on image quality. The result is achieved in that the encoding implemented by the decoding device or the encoding device comprises obtaining indication information for the position (cbWidth/2, cbHeight/2) of the brightness of the current encoding block relative to the top-left position (xCb, yCb) of the brightness sample of the current encoding block, in wherein cbWidth represents the width of the current coding block in luma samples, cbHeight represents the height of the current coding block in luma samples; setting the value of the luminance intraframe prediction mode associated with the current coding block as the first default value when the indication information indicates that the matrix-based Intra Prediction (MIP) mode is applied to the luminance samples at the position (cbWidth/2, cbHeight/2) brightness relative to the upper left position (xCb, yCb) of the brightness sample of the current coding block; and deriving an intra chroma prediction mode value based on the intra chroma prediction mode value of the current coding block.
EFFECT: increased compression ratio with minimal or no effect on image quality.
30 cl, 13 dwg, 4 tbl

Description

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

Настоящая заявка испрашивает приоритет в отношении заявки PCT № PCT/EP 2019/072611, поданной 23 августа 2019 г., которая испрашивает приоритет в отношении заявки PCT № PCT/EP 2019/069944, поданной 24 июля 2019 г. Обе заявки включены сюда посредством ссылки.This application claims priority over PCT Application No. PCT/EP 2019/072611 filed on August 23, 2019, which claims priority over PCT Application No. PCT/EP 2019/069944 filed on July 24, 2019. Both applications are hereby incorporated by reference .

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

Варианты осуществления, представленные в настоящей заявке (раскрытиия), в целом, относятся к области обработки изображений и, более конкретно, к выполнению получения режима внутрикадрового предсказания цветности, используя режим внутрикадрового предсказания, из соответствующего компонента яркости.The embodiments presented in the present application (disclosure) generally relate to the field of image processing, and more specifically to performing intra-frame chrominance prediction mode derivation using intra-frame prediction mode from a corresponding luminance component.

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

Видеокодирование (видеокодирование и видеодекодирование) используется в широком диапазоне приложений цифрового видео, например, в широковещательном цифровом телевидении, видеопередаче через Интернет и сети мобильной связи, диалоговых приложениях, работающих в реальном времени, таких как видеочат, видеоконференция, диски DVD и Blu-ray, системы получения и редактирования контента и видеокамеры приложений обеспечения безопасности. Video coding (video coding and video decoding) is used in a wide range of digital video applications, such as digital television broadcast, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat, video conferencing, DVD and Blu-ray discs, content acquisition and editing systems; and security application cameras.

Объем видеоданных, необходимый для показа даже относительно короткого видео, может быть существенным, что в результате может приводить к трудностям, когда данные должны передаваться потоком или как-либо иначе по сети связи с ограниченной шириной полосы пропускания. Таким образом, видеоданные, прежде чем передаваться через современные сети связи, обычно сжимаются. Размер видео также может быть проблемой, когда видео хранится в запоминающем устройстве, потому что ресурсы памяти могут быть ограничены. Устройства видеосжатия часто используют программное обеспечение и/или аппаратные средства в источнике сигнала для кодирования видеоданных перед передачей или хранением, уменьшая, таким образом, объем данных, необходимый для представления цифровых видеоизображений. Сжатые данные затем принимаются в месте назначения устройством видеораспаковки, которое декодирует видеоданные. При ограниченных сетевых ресурсах и постоянно растущем спросе на более высокое качество видео, желательны улучшенные технологии сжатия и распаковки, которые повышают степень сжатия при минимальном влиянии или отсутствии влияния на качество изображения.The amount of video data required to display even a relatively short video can be significant, which can result in difficulties when the data must be streamed or otherwise over a communication network with limited bandwidth. Thus, video data is usually compressed before being transmitted over modern communication networks. Video size can also be an issue when the video is stored on a storage device because memory resources can be limited. Video compression devices often use software and/or hardware at the signal source to encode video data prior to transmission or storage, thus reducing the amount of data required to represent digital video images. The compressed data is then received at the destination by a video decompressor which decodes the video data. With limited network resources and ever-increasing demand for higher quality video, improved compression and decompression technologies are desirable that increase compression rates with little or no impact on image quality.

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

Варианты осуществления настоящей заявки обеспечивают устройства и способы кодирования и декодирования, соответствующие независимыми пунктами формулы изобретения.Embodiments of the present application provide encoding and decoding devices and methods corresponding to the independent claims.

Перечисленные выше и другие задачи решаются предметом независимых пунктов формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.The above and other problems are solved by the subject of independent claims. Additional forms of implementation are obvious from the dependent claims, description and drawings.

Первый подход изобретения относится к способу кодирования, реализуемому устройством декодирования или устройством кодирования. Способ содержит этапы, на которых: получают информацию указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в компоненте яркости, cbHeight представляет высоту текущего блока кодирования в компоненте яркости. Соответственно, cbWidth/2 представляет половину ширины текущего блока кодирования в компоненте яркости, а cbHeight/2 представляет половину высоты текущего блока кодирования в компоненте яркости. Абсолютным положением (cbWidth/2, cbHeight/2) яркости является (xCb+cbWidth/2, yCb+cbHeight/2), то есть, "середина" соответствующего блока предсказания яркости. The first approach of the invention relates to an encoding method implemented by a decoding device or an encoding device. The method comprises the steps of: obtaining indication information for the position (cbWidth/2, cbHeight/2) of the brightness of the current coding block relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block, where cbWidth represents the width of the current coding block in the component brightness, cbHeight represents the height of the current encoding block in the brightness component. Accordingly, cbWidth/2 represents half the width of the current coding block in the luminance component, and cbHeight/2 represents half the height of the current coding block in the luma component. The absolute position (cbWidth/2, cbHeight/2) of the luminance is (xCb+cbWidth/2, yCb+cbHeight/2), that is, the "middle" of the corresponding luminance prediction block.

Способ дополнительно содержит этапы, на которых: устанавливают значение режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, как значение по умолчанию, когда информация указания указывает, что внутрикадровое предсказание, основанное на матрице (Matrix-based Intra Prediction, MIP) применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования; и получают значение режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования.The method further comprises: setting the value of the intra-frame luminance prediction mode associated with the current coding block as a default value when the indication information indicates that Matrix-based Intra Prediction (MIP) is applied to the component luminance at the luminance position (cbWidth/2, cbHeight/2) relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block; and obtaining an intra chroma prediction mode value based on the intra luma prediction mode value of the current coding block.

Получение информации о режиме предсказания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение MIP режима и положение режима внутрикадрового предсказания совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева), где положение режима MIP заменяет положение, в котором получают режим MIP, и положение режима внутрикадрового предсказания яркости заменяет положение, в котором получают режим внутрикадрового предсказания яркости.Obtaining prediction mode information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luminance component ensures that the MIP mode position and the intra frame prediction mode position match when, for a given block size, the luminance component separation is different from the chrominance component separation (e.g., when the binary tree coding method is enabled), where the position of the MIP mode replaces the position at which the MIP mode is obtained, and the position of the intra luminance prediction mode replaces the position at which the intra luminance prediction mode is obtained.

Второй подход изобретения относится к способу кодирования, реализуемому устройством декодирования или устройством кодирования. Способ содержит этапы, на которых: получают информацию указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в компоненте яркости, cbHeight представляет высоту текущего блока кодирования в компоненте яркости. Соответственно, cbWidth/2 представляет половину ширины текущего блока кодирования в компоненте яркости, а cbHeight/2 представляет половину высоты текущего блока кодирования в компоненте яркости. Абсолютным положением яркости (cbWidth/2, cbHeight/2) является (xCb+cbWidth/2, yCb+cbHeight/2), то есть, "середина" соответствующего блока предсказания яркости. The second approach of the invention relates to an encoding method implemented by a decoding device or an encoding device. The method comprises the steps of: obtaining indication information for the position (cbWidth/2, cbHeight/2) of the brightness of the current coding block relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block, where cbWidth represents the width of the current coding block in the component brightness, cbHeight represents the height of the current encoding block in the brightness component. Accordingly, cbWidth/2 represents half the width of the current coding block in the luminance component, and cbHeight/2 represents half the height of the current coding block in the luma component. The absolute position of the luminance (cbWidth/2, cbHeight/2) is (xCb+cbWidth/2, yCb+cbHeight/2), that is, the "middle" of the corresponding luminance prediction block.

Способ содержит этапы, на которых: устанавливают значение режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, как первое значение по умолчанию, когда информация указания указывает, что режим копирования внутрикадрового блока (Intra Block Copy, IBC) или режим палитры применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования; и получают значение режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования.The method comprises the steps of: setting the value of the intra block luminance prediction mode associated with the current coding block as the first default value when the indication information indicates that the intra block copy (Intra Block Copy, IBC) mode or palette mode is applied to the luminance component at the position (cbWidth/2, cbHeight/2) of the brightness relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block; and obtaining an intra chroma prediction mode value based on the intra luma prediction mode value of the current coding block.

Получение информации о режиме предсказания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение режима IBC и положение режима внутрикадрового предсказания совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева), где положение IBC режима заменяет положение, в котором получают режим IBC, и положение режима внутрикадрового предсказания яркости заменяет положение, в котором получают режим внутрикадрового предсказания яркости. Obtaining prediction mode information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luminance component ensures that the IBC mode position and the intra frame prediction mode position match when, for a given block size, the luma component separation is different from the chrominance component separation (e.g., when the binary tree coding method is enabled), where the position of the IBC mode replaces the position at which the IBC mode is obtained, and the position of the intra luma prediction mode replaces the position at which the intra luminance prediction mode is obtained.

Альтернативно, получение информации о режиме предсказания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение палитры режима и положение режима внутрикадрового предсказания яркости совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева), где положение палитры режима заменяет положение, в котором получают режим палитры, и положение режима внутрикадрового предсказания яркости заменяет положение, в котором получают режим внутрикадрового предсказания яркости. Alternatively, obtaining prediction mode information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luminance component ensures that the mode palette position and the intra-frame luminance prediction mode position match when, for a given block size, the luminance component separation is different from the chrominance component separation (for example, when the binary tree coding method is enabled), where the mode palette position replaces the position at which the palette mode is obtained, and the position of the intra-luma prediction mode replaces the position at which the intra-luma prediction mode is obtained.

Совпадение получения информации о режиме получения из положения (cbWidth/2, cbHeight/2) необходимо, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности. В противном случае, это может вызывать неопределенное поведение, как показано на фиг. 7.Coincidence of obtaining information about the mode of obtaining from position (cbWidth/2, cbHeight/2) is necessary when, for a given block size, the separation of the luminance component differs from the separation of the chrominance component. Otherwise, it may cause undefined behavior, as shown in FIG. 7.

Способ, соответствующий первому подходу изобретения, может выполняться устройством, соответствующим третьему подходу изобретения. Дополнительные признаки и формы осуществления устройства, соответствующего третьему подходу, соответствуют признакам и формам осуществления способа, соответствующего первому подходу изобретения.The method according to the first approach of the invention may be carried out by an apparatus according to the third approach of the invention. Additional features and embodiments of the device according to the third approach correspond to the features and embodiments of the method according to the first approach of the invention.

Способ по второму подходу изобретения может выполняться устройством, соответствующим четвертому подходу изобретения. Дополнительные признаки и формы осуществления устройства по четвертому подходу, соответствуют признакам и формам осуществления способа по второму подходу изобретения.The method according to the second approach of the invention can be performed by a device corresponding to the fourth approach of the invention. Additional features and embodiments of the device according to the fourth approach correspond to the features and embodiments of the method according to the second approach of the invention.

В соответствии с пятым подходом, вариант осуществления связан с устройством декодирования или кодирования видеопотока, содержащим процессор и память. Память хранит команды, заставляющие процессор выполнять способ в соответствии с первым подходом.According to the fifth approach, the embodiment is associated with a video stream decoding or encoding device, comprising a processor and a memory. The memory stores instructions that cause the processor to execute the method in accordance with the first approach.

В соответствии с шестым подходом, вариант осуществления изобретения связан с устройством декодирования или кодирования видеопотока, содержащим процессор и память. Память хранит команды, заставляющие процессор выполнять способ в соответствии с вторым подходом.According to the sixth approach, an embodiment of the invention is associated with a device for decoding or encoding a video stream, comprising a processor and a memory. The memory stores instructions that cause the processor to execute the method in accordance with the second approach.

В соответствии с седьмым подходом, обеспечивается считываемый компьютером носитель запоминающего устройства, на котором записаны команды, которые, когда исполняются, заставляют один или более конфигурированных процессоров кодировать видеоданные. Команды заставляют один или более процессоров выполнять способ, соответствующий первому или второму подходу, или любой возможный вариант осуществления первого или второго подхода.According to a seventh approach, a computer-readable storage medium is provided on which instructions are stored that, when executed, cause one or more configured processors to encode video data. The instructions cause one or more processors to execute the method corresponding to the first or second approach, or any possible embodiment of the first or second approach.

В соответствии с восьмым подходом, вариант осуществления изобретения связан с компьютерной программой, содержащей управляющую программу для выполнения способа, соответствующего первому или второму подходу или любому возможному варианту осуществления первого или второго подхода, при ее исполнении на компьютере.According to an eighth approach, an embodiment of the invention is associated with a computer program containing a control program for executing the method corresponding to the first or second approach, or any possible embodiment of the first or second approach, when executed on the computer.

В соответствии с девятым подходом, вариант осуществления изобретения связан с устройством для получения режима внутрикадрового предсказания цветности, содержащим: один или более процессоров; и считываемый компьютером носитель долговременного хранения данных, связанный с процессорами и хранящий программирование для его выполнения процессорами, где программирование, когда исполняется процессорами, конфигурирует декодер, чтобы: получать первую информацию указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в компоненте яркости, cbHeight представляет высоту текущего блока кодирования в компоненте яркости. Соответственно, cbWidth/2 представляет половину ширины текущего блока кодирования в компоненте яркости, а cbHeight/2 представляет половину высоты текущего блока кодирования в компоненте яркости. Абсолютным положением яркости (cbWidth/2, cbHeight/2) является (xCb+cbWidth/2, yCb+cbHeight/2), то есть, "середина" соответствующего блока предсказания яркости.According to the ninth approach, an embodiment of the invention is associated with an apparatus for obtaining an intra-frame chrominance prediction mode, comprising: one or more processors; and a computer-readable persistent storage medium associated with the processors and storing programming for execution by the processors, where the programming, when executed by the processors, configures the decoder to: obtain first indication information for the luminance position (cbWidth/2, cbHeight/2) of the current coding block relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block, where cbWidth represents the width of the current coding block in the luminance component, cbHeight represents the height of the current coding block in the luminance component. Accordingly, cbWidth/2 represents half the width of the current coding block in the luminance component, and cbHeight/2 represents half the height of the current coding block in the luma component. The absolute position of the luminance (cbWidth/2, cbHeight/2) is (xCb+cbWidth/2, yCb+cbHeight/2), that is, the "middle" of the corresponding luminance prediction block.

Один или более процессоров дополнительно выполнены с возможностью установки значения режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, в качестве первого значения по умолчанию, когда первая информация указания указывает, что внутрикадровое предсказание, основанное на матрице (Matrix-based Intra Prediction, MIP), применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования; или получения второй информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования, когда первая информация указания указывает, что MIP не применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) выборки яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока. The one or more processors are further configured to set the value of the intra-frame luminance prediction mode associated with the current coding block as the first default value when the first indication information indicates that Matrix-based Intra Prediction (MIP) , applied to the luminance component at the position (cbWidth/2, cbHeight/2) of the luminance relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block; or obtaining the second indication information for the luminance position (cbWidth/2, cbHeight/2) of the current coding block, when the first indication information indicates that MIP is not applied to the luminance component at the luminance sample position (cbWidth/2, cbHeight/2) relative to the top- left position (xCb, yCb) of the brightness sample of the current block.

Один или более процессоров дополнительно выполнены с возможностью установки значения режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, в качестве второго значения по умолчанию, когда вторая информация указания указывает, что режим копирования внутрикадрового блока (Intra Block Copy, IBC) или режим палитры применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования; и получают значение режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования.The one or more processors are further configured to set the value of the intra-frame luminance prediction mode associated with the current coding block as a second default value when the second indication information indicates that an intra block copy (IBC) mode or a palette mode is applied. for the luminance component at the luminance position (cbWidth/2, cbHeight/2) relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block; and obtaining an intra chroma prediction mode value based on the intra luma prediction mode value of the current coding block.

Получение первой информации указания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение MIP режима и положение режима внутрикадрового предсказания яркости совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева). Когда первая информация указания не указывает, что MIP применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости, получение второй информации указания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение IBC режима и положение режима внутрикадрового предсказания яркости совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева). Альтернативно, получение второй информации указания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение палитры режима и положение режима внутрикадрового предсказания яркости совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева).Obtaining the first indication information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luminance component ensures that the position of the MIP mode and the position of the intra-frame luminance prediction mode match when, for a given block size, the separation of the luma component differs from the separation of the chrominance component (for example, when the binary tree encoding method is allowed). When the first indication information does not indicate that MIP is applied to the luminance component at the position (cbWidth/2, cbHeight/2) of the luminance, obtaining the second indication information from the fixed position (cbWidth/2, cbHeight/2) at the corresponding luminance component ensures that the position The mode IBC and the position of the intra-frame luminance prediction mode are the same when, for a given block size, the luma component separation is different from the chrominance component separation (eg, when the binary tree coding method is enabled). Alternatively, obtaining the second indication information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luminance component ensures that the mode palette position and the intra-frame luminance prediction mode position match when, for a given block size, the luminance component separation is different from the chrominance component separation ( for example, when a binary tree encoding method is allowed).

Подробности одного или более вариантов осуществления изложены ниже на приложенных чертежах и в описании. Другие признаки, задачи и преимущества станут очевидны из описания, чертежей и формулы изобретения.Details of one or more embodiments are set forth in the accompanying drawings and description below. Other features, objectives and advantages will become apparent from the description, drawings and claims.

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

В дальнейшем варианты осуществления изобретения описываются более подробно со ссылкой на приложенные чертежи, на которых:In the following, embodiments of the invention are described in more detail with reference to the attached drawings, in which:

фиг. 1A - блок-схема примера системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1A is a block diagram of an example of a video coding system capable of implementing embodiments of the invention;

фиг. 1B - блок-схема другого примера системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1B is a block diagram of another example of a video coding system capable of implementing embodiments of the invention;

фиг. 2 - блок-схема примера видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 2 is a block diagram of an example video encoder capable of implementing embodiments of the invention;

фиг. 3 - блок-схема примера структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 3 is a block diagram of an exemplary structure of a video decoder capable of implementing embodiments of the invention;

фиг. 4 - блок-схема примера устройства кодирования или устройства декодирования;fig. 4 is a block diagram of an example of an encoder or decoder;

фиг. 5 - блок-схема другого примера устройства кодирования или устройства декодирования;fig. 5 is a block diagram of another example of an encoder or decoder;

фиг. 6 - пример режимов внутрикадрового кодирования;fig. 6 is an example of intra-frame coding modes;

фиг. 7 - блок-схема, показывающая потенциальную проблему неопределенного поведения при получении режима внутрикадрового предсказания цветности, используя текущую спецификацию;fig. 7 is a block diagram showing a potential problem of undefined behavior when obtaining an intra-frame chrominance prediction mode using the current specification;

фиг. 8 - пример значения местоположения яркости блока кодирования;fig. 8 is an example of a luminance location value of a coding block;

фиг. 9 - варианты осуществления способа 900, соответствующие настоящему изобретению;fig. 9 shows embodiments of a method 900 according to the present invention;

фиг. 10 - варианты осуществления устройства 1000 для использования в соответствии с настоящим изобретением;fig. 10 shows embodiments of an apparatus 1000 for use in accordance with the present invention;

фиг. 11 - блок-схема примерной структуры системы 3100 предоставления контента, реализующей услугу доставки контента;fig. 11 is a block diagram of an exemplary structure of a content providing system 3100 implementing a content delivery service;

фиг. 12 - блок-схема структуры примерного оконечного устройства.fig. 12 is a block diagram of the structure of an exemplary terminal.

В дальнейшем идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным признакам, если явно не определено иное.In the following, identical reference numerals refer to identical or at least functionally equivalent features, unless expressly defined otherwise.

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

В последующем описании ссылка делается на сопроводительные чертежи, которые составляют часть раскрытия и которые посредством иллюстрации показывают конкретные подходы вариантов осуществления изобретения или конкретные подходы, при которых могут использоваться варианты осуществления настоящего изобретения. Следует понимать, что варианты осуществления изобретения могут использоваться при других подходах и содержать структурные или логические изменения, не отображенные на чертежах. Последующее подробное описание поэтому не должно рассматриваться в ограничивающем смысле и объем защиты настоящего изобретения определяется приложенной формулой изобретения. In the following description, reference is made to the accompanying drawings, which form part of the disclosure and which, by way of illustration, show specific approaches of embodiments of the invention or specific approaches in which embodiments of the present invention may be used. It should be understood that embodiments of the invention may be used in other ways and contain structural or logical changes not shown in the drawings. The following detailed description is therefore not to be construed in a limiting sense and the protection scope of the present invention is defined by the appended claims.

Например, следует понимать, что раскрытие в связке с описанным способом может также оставаться действительным для соответствующего устройства или системы, выполненной с возможностью осуществления способа, и наоборот. Например, если описываются один или множество конкретных этапов способа, соответствующее устройство может содержать один или множество блоков, например, функциональных блоков, для выполнения описанных одного или множества этапов способа (например, один блок выполняет один или множество этапов или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такие один или более блоков явно не описаны или не проиллюстрированы на чертежах. С другой стороны, например, если конкретное устройство описывается на основе одного или множества блоков, например, функциональных блоков, соответствующий способ может содержать один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап выполняет функциональные возможности одного или множества блоков или каждый из множества этапов выполняет функциональные возможности одного или более из множества блоков), даже если такой один или множество этапов явно не описаны или не показаны на чертежах. Дополнительно подразумевается, что признаки различных примерных вариантов осуществления и/или подходов, описанные здесь, могут объединяться друг с другом, если конкретно не указано иное.For example, it should be understood that the disclosure in connection with the described method may also remain valid for the corresponding device or system configured to carry out the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may comprise one or more blocks, such as functional blocks, for performing the one or more method steps described (for example, one block performs one or more steps or multiple blocks, each of which performs one or more of a plurality of steps), even if such one or more blocks are not explicitly described or illustrated in the drawings. On the other hand, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functionality of one or more blocks (for example, one step performs the functionality of one or more blocks, or each from a plurality of steps performs the functionality of one or more of the plurality of blocks), even if such one or more steps are not explicitly described or shown in the drawings. It is further contemplated that the features of the various exemplary embodiments and/or approaches described herein may be combined with one another unless specifically noted otherwise.

Видеокодирование обычно относится к обработке последовательности изображений, которые формируют видео или видеопоследовательность. Вместо термина “изображение”, как синонимы в области видеокодирования, может использоваться термин “кадр” или “картинка”. Видеокодирование (или, в общем, кодирование) содержит две части: видеокодирование и видеодекодирование. Видеокодирование выполняется на стороне источника сигнала, обычно содержит обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, требующихся для представления видеоизображений (для более эффективного запоминающего устройства и/или передачи). Видеодекодирование выполняется на стороне места назначения и обычно содержит обратную обработку по сравнению с кодером для реконструкции видеоизображений. Варианты осуществления, относящиеся к “кодированию” видеоизображений (или, в общем, кадров) должны пониматься как относящиеся к “кодированию” или “декодированию” видеоизображений или соответствующих видеопоследовательностей. Сочетание части кодирования и части декодирования также упоминается как CODEC (Coding and Decoding, кодирование и декодирование, кодек).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. Instead of the term "image", as synonyms in the field of video coding, the term "frame" or "picture" can be used. Video coding (or, more generally, coding) contains two parts: video coding and video decoding. Video coding is performed at the source side, typically comprising processing (eg, by compressing) the original video images to reduce the amount of data required to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination side and usually contains inverse processing compared to the encoder for reconstructing video images. Embodiments relating to “coding” of video images (or, in general, frames) should be understood as referring to “coding” or “decoding” of video images or corresponding video sequences. The combination of the coding part and the decoding part is also referred to as CODEC (Coding and Decoding, encoding and decoding, codec).

В случае видеокодирования без потерь исходные видеоизображения могут быть реконструированы, т.е. реконструированные видеоизображения имеют то же самое качество, что и исходные видеоизображения (предполагая отсутствие потерь при передаче или другой потери данных во время хранения или передачи). В случае видеокодирования с потерями выполняется дополнительное сжатие, например, посредством квантования, для уменьшения объема данных, представляющих видеоизображения, которые не могут быть полностью реконструированы в декодере, т.е. качество реконструированных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений. In the case of lossless video coding, the original video images can be reconstructed, i.e. the reconstructed video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing video images that cannot be fully reconstructed in the decoder, i.e. the quality of the reconstructed video images is lower or worse than the quality of the original video images.

Несколько стандартов видеокодирования принадлежат к группе “гибридных видеокодеков с потерями” (т.е. объединяют пространственное и временное предсказание в области выборок и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно делится на ряд неперекрывающихся блоков и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, т.е. кодируется на уровне блоков (видеоблоков), например, используя пространственное (внутрикадровое) предсказание и/или временное (межкадровое) предсказание для формирования блока предсказания, вычитая блок предсказания из текущего блока (блока, обрабатываемого в настоящее время/который должен обрабатываться) для получения остаточного блока, преобразуя остаточный блок и квантуя остаточный блок в области преобразования для уменьшения объема данных, который должен передаваться (сжатие), тогда как в декодере, по сравнению с кодером, к кодированному или сжатому блоку для реконструкции текущего блока для презентации применяется обратная обработка. Дополнительно, кодер копирует цикл обработки декодера таким образом, что они вместе формируют идентичные предсказания (например, внутрикадровое и межкадровое предсказание) и/или реконструкции для обработки, т.е. кодирование последующих блоков. Several video coding standards belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform coding to apply transform-domain quantization). Each picture of a video sequence is typically divided into a number of non-overlapping blocks, and encoding is usually done at the block level. In other words, in the encoder, the video is usually processed, i.e. encoded at the block (video block) level, for example, using spatial (intra-frame) prediction and/or temporal (inter-frame) prediction to form a prediction block, subtracting the prediction block from the current block (the block currently being processed/to be processed) to obtain a residual block by transforming the residual block and quantizing the residual block in the transform domain to reduce the amount of data that must be transmitted (compression), while in the decoder, compared to the encoder, inverse processing is applied to the encoded or compressed block to reconstruct the current block for presentation. Additionally, the encoder copies the decoder processing cycle such that they together form identical predictions (eg, intra and inter predictions) and/or reconstructions for processing, i. coding of subsequent blocks.

В последующих вариантах осуществления системы 10 видеокодирования, видеокодер 20 и видеодекодер 30 описываются на основе фиг. 1-3.In the following embodiments of video coding system 10, video encoder 20 and video decoder 30 are described based on FIG. 1-3.

На фиг. 1A представлена блок-схема примера системы 10 кодирования, например, системы 10 видеокодирования (или, сокращенно, системы 10 кодирования), которая может использовать технологию настоящей заявки. Видеокодер 20 (или, сокращенно, кодер 20) и видеодекодер 30 (или, сокращенно, декодер 30) системы 10 видеокодирования представляют примеры устройств, которые могут быть выполнены с возможностью осуществления технологий в соответствии с различными примерами, описанными в настоящей заявке. In FIG. 1A is a block diagram of an exemplary coding system 10, such as a video coding system 10 (or coding system 10 for short), that may use the technology of the present application. Video encoder 20 (or encoder 20 for short) and video decoder 30 (or decoder 30 for short) of video coding system 10 represent examples of devices that can be configured to implement the technologies in accordance with the various examples described herein.

Как показано на фиг. 1A, система 10 кодирования содержит устройство 12 источника, выполненное с возможностью предоставления кодированных данных 21 изображения, например, устройству 14 назначения, для декодирования кодированных данных 13 изображения. As shown in FIG. 1A, the encoding system 10 includes a source device 12 configured to provide the encoded image data 21 to, for example, the destination device 14 to decode the encoded image data 13.

Устройство 12 источника содержит кодер 20 и может дополнительно, т.е. как вариант, содержать источник 16 изображения, предпроцессор (или блок предварительной обработки) 18, например, предпроцессор 18 изображения, и интерфейс связи или блок 22 связи. The source device 12 includes an encoder 20 and may additionally, i. e. optionally comprise an image source 16, a preprocessor (or preprocessor) 18, such as an image preprocessor 18, and a communication interface or communication unit 22.

Источник 16 изображения может содержать или быть любого рода устройством получения изображения, например, камерой для получения изображения реального мира и/или своего рода устройством формирования изображения, например, процессором компьютерной графики для формирования компьютерного изображения с анимацией или любого вида другим устройством для получения и/или предоставления изображения реального мира, формируемого компьютером изображения (например, контента экрана, изображения виртуальной реальности (virtual reality, VR)), и/или любым их сочетанием (например, изображением аугментированной реальности (augmented reality, AR)). Источник изображения может быть любым видом памяти или запоминающим устройством, хранящим любое из вышеупомянутых изображений.The image source 16 may comprise or be any kind of imaging device, such as a camera for capturing a real world image and/or some sort of imaging device, such as a computer graphics processor for generating a computer image with animation, or any kind of other device for capturing and/ or providing an image of the real world, a computer-generated image (e.g., screen content, virtual reality (VR) image), and/or any combination thereof (e.g., augmented reality (AR) image). The image source may be any kind of memory or storage device storing any of the above images.

В отличие от предпроцессора 18 и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения могут также упоминаться как необработанное изображение или данные 17 необработанного изображения.Unlike the pre-processor 18 and the processing performed by the pre-processor 18, the image or image data 17 may also be referred to as raw image or raw image data 17.

Предпроцессор 18 выполнен с возможностью приема (необработанных) данных 17 изображения и выполнения предварительной обработки данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая предпроцессором 18, может содержать, например, обрезку, преобразование цветового формата (например, из RGB в YCbCr), коррекцию цвета или подавление шумов. Следует понимать, что блок 18 предварительной обработки может быть необязательным компонентом.The pre-processor 18 is configured to receive (raw) image data 17 and perform pre-processing of the image data 17 to obtain a pre-processed image 19 or pre-processed image data 19. The preprocessing performed by the preprocessor 18 may include, for example, cropping, color format conversion (eg from RGB to YCbCr), color correction, or noise reduction. It should be understood that the pre-processing unit 18 may be an optional component.

Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 изображения и предоставления кодированных данных 21 изображения (более подробная информация будет описана ниже, например, основываясь на фиг. 2).Video encoder 20 is configured to receive pre-processed image data 19 and provide encoded image data 21 (more details will be described below, for example, based on Fig. 2).

Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью приема кодированных данных 21 изображения и передачи кодированных данных 21 изображения (или их любой дополнительно обработанной версии) по каналу 13 передачи к другому устройству, например, к устройству 14 назначения или к любому другому устройству для хранения или прямой реконструкции.The communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and transmit the encoded image data 21 (or any further processed version thereof) over the transmission channel 13 to another device, such as the destination device 14 or any other device for storage or direct reconstruction.

Устройство 14 назначения содержит декодер 30 (например, видеодекодер 30), и может дополнительно, т.е. необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 последующей обработки) и дисплей 34. Destination device 14 includes a decoder 30 (eg, video decoder 30) and may additionally, i. e. optionally, include a communication interface or communication unit 28, a post-processor 32 (or post-processing unit 32) and a display 34.

Интерфейс 28 связи устройства 14 назначения выполнен с возможностью приема кодированных данных 21 изображения (или любой другой их дополнительно обработанной версии), например, непосредственно от устройства 12 источника или от любого другого источника, например, от запоминающего устройства, например, от запоминающего устройства кодированных данных изображения, и предоставления кодированных данных 21 изображения декодеру 30.The communication interface 28 of the destination device 14 is configured to receive the encoded image data 21 (or any other further processed version thereof), for example, directly from the source device 12 or from any other source, for example, from a storage device, for example, from an encoded data storage device. image, and providing the encoded image data 21 to the decoder 30.

Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображения или кодированных данных 13 через канал прямой связи между устройством 12 источника и устройством 14 назначения, например, через прямое проводное или беспроводное соединение, или через любой вид сети, например, через проводную или беспроводную сеть, или любое их сочетание, или через любой вид частной сети и сети общего пользования или любой вид их сочетания. Communication interface 22 and communication interface 28 may be configured to transmit or receive encoded image data 21 or encoded data 13 via a direct link between source device 12 and destination device 14, such as via a direct wired or wireless connection, or via any kind of network. , for example, through a wired or wireless network, or any combination thereof, or through any kind of private network and public network, or any kind of combination thereof.

Интерфейс 22 связи может быть выполнен, например, с возможностью пакетирования кодированных данных 21 изображения в соответствующий формат, например, пакеты, и/или обработки кодированных данных изображения с помощью любого вида кодирования передачи или обработки для передачи по каналу связи или по сети связи. The communication interface 22 may be configured, for example, to package the encoded image data 21 into an appropriate format, such as packets, and/or process the encoded image data with any kind of transmission encoding or processing for transmission over a communication channel or over a communication network.

Интерфейс 28 связи, представляющий копию интерфейса 22 связи, может быть выполнен с возможностью, например, приема передаваемых данных и обработки данных передачи с помощью любого вида соответствующего декодирования передачи или обработки и/или распаковки для получения кодированных данных 21 изображения. The communication interface 28 representing a copy of the communication interface 22 may be configured to, for example, receive the transmission data and process the transmission data with any kind of appropriate transmission decoding or processing and/or decompression to obtain the encoded image data 21.

Оба интерфейса, интерфейс 22 связи и интерфейс 28 связи, могут быть выполнены как однонаправленные интерфейсы связи, как показано стрелкой для канала 13 связи на фиг. 1A, указывающей направление от устройства 12 источника к устройству 14 назначения, или как двунаправленные интерфейсы связи, и могут быть выполнены с возможностью, например, посылки и приема сообщений, например, для установки соединения, подтверждения приема и обмена любой другой информацией, связанной с каналом связи и/или передачей данных, например, передачей кодированных данных изображения. Both interfaces, communication interface 22 and communication interface 28, can be implemented as unidirectional communication interfaces, as indicated by the arrow for communication channel 13 in FIG. 1A indicating the direction from the source device 12 to the destination device 14, or as bidirectional communication interfaces, and can be configured to, for example, send and receive messages, for example, to establish a connection, acknowledge reception, and exchange any other information associated with the channel communication and/or data transmission, for example, transmission of encoded image data.

Декодер 30 выполнен с возможностью приема кодированных данных 21 изображения и предоставления декодированных данных 31 изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, основываясь на фиг. 3 или фиг. 5).The decoder 30 is configured to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (more details will be described below, for example, based on Fig. 3 or Fig. 5).

Постпроцессор 32 устройства 14 назначения выполнен с возможностью последующей обработки декодированных данных 31 изображения (также называемых реконструированными данными изображения), например, декодированного изображения 31, чтобы получить прошедшие последующую обработку данные 33 изображения, например, прошедшее последующую обработку изображение 33. Последующая обработка, выполняемая блоком 32 последующей обработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), коррекцию цвета, обрезку или вторичную выборку или любую другую обработку, например, для подготовки декодированных данных 31 изображения к отображению, например, на дисплее 34.The post-processor 32 of destination device 14 is configured to post-process decoded image data 31 (also referred to as reconstructed image data), such as decoded image 31, to obtain post-processed image data 33, such as post-processed image 33. Post-processing performed by the block 32 post-processing may include, for example, color format conversion (for example, from YCbCr to RGB), color correction, cropping or resampling, or any other processing, for example, to prepare the decoded image data 31 for display, for example, on the display 34.

Дисплей 34 устройства 14 назначения выполнен с возможностью приема прошедших последующую обработку данных 33 изображения для отображения изображения, например, пользователю или наблюдателю. Дисплей 34 может быть или содержать любой вид дисплея для представления реконструированного изображения, например, интегрированным или внешним дисплеем или монитором. Дисплеи могут, например, быть жидкокристаллическими дисплеями (liquid crystal display, LCD), дисплеями на органических светодиодах (organic light emitting diode, OLED), плазменными дисплеями, проекторами, микросветодиодными дисплеями, жидкокристаллическими кремниевыми (liquid crystal on silicon, LCoS) дисплеями, цифровым световым процессором (digital light processor, DLP) или любым другим видом дисплея.The display 34 of the destination device 14 is configured to receive post-processed image data 33 for displaying the image to, for example, a user or viewer. The display 34 may be or include any kind of display for presenting the rendered image, such as an integrated or external display or monitor. The displays may, for example, be liquid crystal displays (LCD), organic light emitting diode (OLED) displays, plasma displays, projectors, micro-LED displays, liquid crystal silicon (LCoS) liquid crystal displays, digital light processor (digital light processor, DLP) or any other type of display.

Хотя на фиг. 1A устройство 12 источника и устройство 14 назначения показаны как отдельные устройства, варианты осуществления устройств могут также содержать оба устройства или обе технические возможности, устройства 12 источника или его соответствующие функциональные возможности и устройства назначения 14 или его соответствующие функциональные возможности. В таких вариантах осуществления устройство 12 источника или его соответствующие функциональные возможности и устройство 14 назначения или его соответствующие функциональные возможности могут быть реализованы, используя одни и те же аппаратные средства и/или программное обеспечение или отдельные аппаратные средства и/или программное обеспечение или любое их сочетание.Although in FIG. 1A, source device 12 and destination device 14 are shown as separate devices, device embodiments may also comprise both devices or both capabilities, source device 12 or its corresponding functionality, and destination device 14 or its corresponding functionality. In such embodiments, source device 12 or its respective functionality and destination device 14 or its corresponding functionality may be implemented using the same hardware and/or software, or separate hardware and/or software, or any combination thereof. .

Как должно быть очевидно специалистам в данной области техники, на основе описания существование и (точное) разделение функциональных возможностей различных блоков или функциональных возможностей внутри устройства 12 источника и/или устройства 14 назначения, как показано на фиг. 1A, может варьироваться в зависимости от реального устройства и применения. As will be apparent to those skilled in the art, based on the description, the existence and (precise) separation of functionality of various blocks or functionality within source device 12 and/or destination device 14 as shown in FIG. 1A may vary depending on the actual device and application.

Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или кодер 20 и декодер 30 вместе могут быть реализованы схемой обработки, как показано на фиг. 1B, например, как один или более микропроцессоров, цифровые сигнальные процессоры (digital signal processor, DSP), специализированные прикладные интегральные схемы (application-specific integrated circuit, ASIC), программируемые логические интегральные схемы (field-programmable gate array, FPGA), дискретная логика, аппаратные средства, специализированное видеокодирование или любые их сочетания. Кодер 20 может быть реализован посредством схемы 46 обработки для осуществления различных модулей, как обсуждается в отношении кодера 20, показанного на фиг. 2, и/или любой другой системы кодера или подсистемы, описанных здесь. Декодер 30 может быть реализован схемой 46 обработки, чтобы осуществить различные модули, как обсуждалось в отношении декодера 30, показанного на фиг. 3, и/или любой другой системы декодера или подсистемы, описанных здесь. Схема обработки может быть выполнена с возможностью осуществления различных операций, как обсуждается далее. Как показано на фиг. 5, если технологии реализуются частично в программном обеспечении, устройство может хранить команды программного обеспечения на подходящем считываемом компьютером носителе долговременного хранения и может исполнять команды аппаратными средствами с помощью одного или более процессоров для выполнения технологий, соответствующих настоящему раскрытию. Видеокодер 20 или видеодекодер 30 могут быть интегрированы как часть объединенного кодера/декодера (encoder/decoder, CODEC) в едином устройстве, например, как показано на фиг. 1B.Encoder 20 (eg, video encoder 20) or decoder 30 (eg, video decoder 30), or encoder 20 and decoder 30 together may be implemented by a processing circuit as shown in FIG. 1B, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, custom video coding, or any combination thereof. Encoder 20 may be implemented by processing circuitry 46 to implement various modules as discussed with respect to encoder 20 shown in FIG. 2 and/or any other encoder system or subsystem described herein. Decoder 30 may be implemented by processing circuitry 46 to implement various modules as discussed with respect to decoder 30 shown in FIG. 3 and/or any other decoder system or subsystem described herein. The processing circuit may be configured to perform various operations, as discussed below. As shown in FIG. 5, if the technologies are implemented in part in software, the device may store the software instructions on a suitable machine-readable non-volatile storage medium and may execute the instructions in hardware using one or more processors to execute the technologies of the present disclosure. Video encoder 20 or video decoder 30 may be integrated as part of a combined encoder/decoder (CODEC) in a single device, for example, as shown in FIG. 1b.

Устройство 12 источника и устройство 14 назначения могут содержать любое устройство из широкого диапазона устройств, в том числе, любой вид переносных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, абонентские установки, телевизоры, дисплеи, цифровые медиаплееры, консоли видеоигр, устройства потоковой передачи видео (такие как серверы контент-услуг или серверы доставки контента), бытовой радиоприемник, широковещательный передатчик и т.п. и могут использовать или не использовать любого вида операционную систему. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для беспроводной связи. Таким образом, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи. Source device 12 and destination device 14 may comprise any of a wide range of devices, including any kind of portable or stationary devices such as laptops or laptops, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, indoor installations, televisions, displays, digital media players, video game consoles, video streaming devices (such as content service servers or content delivery servers), home radio, broadcast transmitter, and the like. and may or may not use any kind of operating system. In some cases, source device 12 and destination device 14 may be equipped for wireless communication. Thus, source device 12 and destination device 14 may be wireless communication devices.

В некоторых случаях система 10 видеокодирования, показанная на фиг. 1А, является просто примером и технологии, представленные в настоящей заявке, могут применяться к настройкам видеокодирования (например, видеокодирования или видеодекодирования), которые не обязательно содержат передачу данных между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются потоком через сеть и т.п. Устройство видеокодирования может кодировать и хранить данные в памяти и/или устройство видеодекодирования может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не связаны друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.In some cases, the video coding system 10 shown in FIG. 1A is merely an example, and the techniques presented herein may apply to video encoding settings (eg, video encoding or video decoding) that do not necessarily involve data communication between encoding and decoding devices. In other examples, data is retrieved from local memory, streamed over a network, and the like. The video encoder may encode and store data in memory and/or the video decoder may retrieve and decode data from memory. In some examples, encoding and decoding are performed by devices that are not connected to each other, but simply encode data into memory and/or retrieve and decode data from memory.

Для удобства описания варианты осуществления раскрытия описываются здесь, например, со ссылкой на высокоэффективное видеокодирование (High-Efficiency Video Coding, HEVC) или со ссылкой на программное обеспечение универсального видеокодирования (Versatile Video coding, VVC), стандарт видеокодирования следующего поколения, разработанный Объединенной группой сотрудничества по видеокодированию (Joint Collaboration Team on Video Coding, JCT-VC) Экспертной группы ITU-T по видеокодированию (Video Coding Experts Group, VCEG) ITU-T и Экспертной группой ISO/IEC по цифровой записи видео и звука (Motion Picture Experts Group, MPEG). Любой из специалистов в данной области техники должен понимать, что варианты осуществления изобретения не ограничиваются HEVC или VVC.For convenience of description, embodiments of the disclosure are described herein, for example, with reference to High-Efficiency Video Coding (HEVC) or with reference to Versatile Video coding (VVC) software, the next generation video coding standard developed by the Joint Collaboration Group. ITU-T Video Coding Experts Group (VCEG) and ISO/IEC Motion Picture Experts Group (Joint Collaboration Team on Video Coding, JCT-VC) MPEG). Any person skilled in the art should understand that embodiments of the invention are not limited to HEVC or VVC.

Кодер и способ кодированияEncoder and encoding method

На фиг. 2 показана блок-схема примера видеокодера 20, выполненного с возможностью реализации технологий настоящей заявки. В примере, показанном на фиг. 2, видеокодер 20 содержит вход 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обратного преобразования, блок 214 реконструкции, блок 220 контурного фильтра, буфер 230 декодированного изображения (decoded picture buffer, DPB) 230, блок 260 выбора режима, блок 270 энтропийного кодирования и выход 272 (или выходной интерфейс 272).In FIG. 2 shows a block diagram of an example video encoder 20 capable of implementing the technologies of the present application. In the example shown in FIG. 2, the video encoder 20 includes an input 201 (or input interface 201), a residual calculation block 204, a transform block 206, a quantizer 208, an inverse quantizer 210 and an inverse transform block 212, a reconstruction block 214, a loop filter block 220, a decoded image buffer 230 (decoded picture buffer, DPB) 230, mode selection block 260, entropy encoding block 270, and output 272 (or output interface 272).

Блок 260 выбора режима может содержать блок 244 межкадрового предсказания, блок 254 внутрикадрового предсказания и блок 262 разделения. Block 260 mode selection may contain block 244 inter-prediction, block 254 intra-prediction and block 262 division.

Блок 244 межкадрового предсказания может содержать блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, как показано на фиг. 2, может также упоминаться как гибридный видеокодер или видеокодер, соответствующий гибридному видеокодеку.The inter prediction block 244 may comprise a motion estimator and a motion compensation block (not shown). Video encoder 20, as shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder corresponding to a hybrid video codec.

Блок 204 вычисления остатка, блок 206 преобразования, блок 208 квантования, блок 260 выбора режима могут упоминаться как формирующие путь прямого прохождения сигнала кодера 20, тогда как блок 210 квантования, блок 212 обратного преобразования, блок 214 реконструкции, буфер 216, контурный фильтр 220, буфер 230 декодированного изображения (DPB), блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания могут упоминаться как формирующие путь обратного прохождения сигнала видеокодера 20, где путь обратного прохождения сигнала видеокодера 20 соответствует пути прохождения сигнала декодера (смотрите видеодекодер 30 на фиг. 3). Блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 реконструкции, контурный фильтр 220, буфер 230 декодированного изображения (DPB), блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания также относятся к формированию “встроенного декодера” видеокодера 20.Residual calculator 204, transform 206, quantizer 208, mode selector 260 may be referred to as forming the forward signal path of encoder 20, while quantizer 210, inverse transform 212, reconstructor 214, buffer 216, loop filter 220, decoded picture buffer (DPB) 230, inter prediction block 244, and intra prediction block 254 may be referred to as forming the reverse signal path of video encoder 20, where the reverse signal path of video encoder 20 corresponds to the signal path of the decoder (see video decoder 30 in FIG. 3). An inverse quantizer 210, an inverse transform 212, a reconstructor 214, a loop filter 220, a decoded image buffer (DPB) 230, an inter-predictor 244, and an intra-predictor 254 are also related to the formation of the "built-in decoder" of the video encoder 20.

Изображения и деление изображения (изображения и блоки)Images and image division (images and blocks)

Кодер 20 может быть выполнен с возможностью приема, например, через вход 201, изображения 17 (или данных 17 изображения), например, изображения последовательности изображений, формирующих видео или видеопоследовательность. Принятое изображение или данные изображения могут также быть предварительно обработанным изображением 19 (или предварительно обработанными данными 19 изображения). Для упрощения, нижеследующее описание относится к изображению 17. Изображение 17 может также упоминаться как текущее изображение или изображение, подлежащее кодированию (в частности, видеокодированию для различения текущего изображения от других изображений, например, ранее кодированных и/или декодированных изображений из той же самой видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущее изображение).The encoder 20 may be configured to receive, for example, via input 201, an image 17 (or image data 17), such as an image of a sequence of images forming a video or video sequence. The received image or image data may also be a pre-processed image 19 (or pre-processed image data 19). For simplicity, the following description refers to picture 17. Picture 17 may also be referred to as the current picture or the picture to be encoded (in particular video coding to distinguish the current picture from other pictures, e.g., previously encoded and/or decoded pictures from the same video sequence , i.e. a video sequence that also contains the current image).

(Цифровое) изображение является или может рассматриваться как двухмерный массив или матрица выборок со значениями интенсивности. Выборка в массиве может также упоминаться как пиксель (краткая форма элемента изображения) или элемент изображения. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, т.е. изображение может быть представлено или содержать три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий красный, зеленый и синий массив выборок. Однако при видеокодировании каждый пиксель обычно представлен в формате яркости и цветности или в цветовом пространстве, например, YCbCr, который содержит компонент яркости, обозначенный Y (иногда также вместо этого используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (luminance или, сокращенно, luma) представляет уровень яркости или интенсивность уровня серого (например, при полутоновом изображении), в то время как две компоненты цветности (chrominance или, сокращенно, chroma) Cb и Cr представляют компоненты информации о цвете или цветности. Соответственно, изображение в формате YCbCr содержит массив выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы или трансформированы в формат YCbCr и наоборот, этот процесс также известен как преобразование или трансформация цвета. Если изображение является монохромным, изображение может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.A (digital) image is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be referred to as a pixel (short form of picture element) or picture element. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are commonly used to represent a color, i.e. the image can be represented or contain three arrays of samples. In RBG format or color space, an image contains a corresponding red, green, and blue array of samples. However, in video coding, each pixel is typically represented in a luma and chrominance format or color space, such as YCbCr, which contains a luma component labeled Y (sometimes L is also used instead) and two chrominance components labeled Cb and Cr. The Y component of luminance (luminance or luma for short) represents the luminance level or gray level intensity (e.g. in a grayscale image), while the two chrominance components (chrominance or chroma for short) Cb and Cr represent color information components or chromaticity. Accordingly, an image in YCbCr format contains an array of luma samples (Y) and two arrays of chroma samples of chrominance values (Cb and Cr). RGB images can be converted or transformed to YCbCr format and vice versa, this process is also known as color conversion or transformation. If the image is monochrome, the image can only contain an array of brightness samples. Accordingly, the image may be, for example, an array of luminance samples in monochrome format, or an array of luminance samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2 and 4:4:4 color format.

Варианты осуществления видеокодера 20 могут содержать блок разделения изображения (не показан на фиг. 2), выполненный с возможностью разделения изображения 17 на множество (обычно неперекрывающихся) блоков 203 изображения. Embodiments of video encoder 20 may comprise an image splitter (not shown in FIG. 2) configured to split image 17 into multiple (typically non-overlapping) image blocks 203.

Эти блоки могут также упоминаться как корневые блоки, макроблоки (H.264/AVC) или блоки (block) дерева кодирования (coding tree block, CTB) или блоки (unit) дерева кодирования (coding tree unit, CTU) (H.265/HEVC и VVC). Блок разделения изображения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или поднаборами или группами изображений и разделения каждого изображения на соответствующие блоки.These blocks may also be referred to as root blocks, macroblocks (H.264/AVC), or coding tree blocks (CTBs) or coding tree units (CTUs) (H.265/ HEVC and VVC). The image dividing block may be configured to use the same block size for all images of the video sequence and the corresponding grid defining the block size, or to change the block size between images or subsets or groups of images and divide each image into appropriate blocks.

В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема напрямую блока 203 изображения 17, например, одного, нескольких или всех блоков, формирующих изображение 17. Блок 203 изображения может также упоминаться как блок текущего изображения или блок изображения, подлежащий кодированию. In additional embodiments, the video encoder may be configured to receive directly the image block 203 17, such as one, several or all of the blocks forming the image 17. The image block 203 may also be referred to as the current image block or the image block to be encoded.

Подобно изображению 17, блок 203 изображения является или может рассматриваться как двухмерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости luma в случае монохромного изображения 17 или массив цветности chroma в случае цветного изображения) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 17) или любое другое количество и/или виды массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или по оси) блока 203 определяет размер блока 203. Соответственно, блок может быть массивом выборок, например, MxN (M столбцов и N строк) или массивом MxN коэффициентов преобразования.Like image 17, image block 203 is or can be thought of as a two-dimensional array or matrix of samples with intensity values (sample values), albeit smaller than image 17. In other words, block 203 may contain, for example, one array of samples (for example, luminance array luma in the case of a monochrome image 17 or chroma array in the case of a color image) or three arrays of samples (for example, a luma array and two chrominance arrays in the case of a color image 17) or any other number and / or types of arrays depending on the applied color format. The number of samples in the horizontal and vertical direction (or axis) of block 203 determines the size of block 203. Accordingly, the block may be an array of samples, such as MxN (M columns and N rows) or an MxN array of transform coefficients.

Варианты осуществления видеокодера 20, как показано на фиг. 2, могут быть выполнены с возможностью поблочного кодирования изображения 17, например, кодирование и предсказание выполняются для каждого блока 203. Embodiments of video encoder 20, as shown in FIG. 2 may be configured to encode the image 17 block by block, for example, encoding and prediction are performed for each block 203.

Варианты осуществления видеокодера 20, показанного на фиг. 2, дополнительно могут быть выполнены с возможностью разделения и/или кодирования изображения, используя секции (также называемые видеосекциями), где изображение может быть разделено на части или кодировано, используя одну или более секций (обычно неперекрывающихся), и каждая секция может содержать один или более блоков (например, CTU).Embodiments of video encoder 20 shown in FIG. 2 may further be configured to split and/or encode the image using slices (also referred to as video slices), where the picture may be sliced or encoded using one or more slices (usually non-overlapping) and each slice may contain one or more blocks (for example, CTU).

Варианты осуществления видеокодера 20, показанного на фиг. 2, могут дополнительно быть выполнены с возможностью разделения и/или кодирования изображения, используя группы плиток (также называемые группами видеоплиток) и/или плитки (также называемые видеоплитками), в которых изображение может разделяться или кодироваться, используя одну или более (обычно неперекрывающихся) групп плиток, и каждая группа плиток может содержать один или более блоков (например, блоков CTU) или одну или более плиток, где каждая плитка может иметь, например, прямоугольную форму и может содержать один или более блоков (например, CTU), например, полных или дробных блоков.Embodiments of video encoder 20 shown in FIG. 2 may further be configured to split and/or encode the image using tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles) in which the image may be split or encoded using one or more (typically non-overlapping) tile groups, and each tile group may contain one or more blocks (eg, CTUs) or one or more tiles, where each tile may be, for example, rectangular in shape and may contain one or more blocks (eg, CTUs), for example, full or fractional blocks.

Вычисление остаткаRemainder Calculation

Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также называемого остатком 205), основываясь на блоке 203 изображения и блоке 265 предсказания (более подробная информация о блоке 265 предсказания представлена ниже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения повыборочно (попиксельно) для получения остаточного блока 205 в области выборок. Residual block 204 can be configured to calculate residual block 205 (also referred to as residual 205) based on image block 203 and prediction block 265 (more on predictor 265 is provided below), for example, by subtracting the sample values of predictor 265 from the sample values of the image block 203 sample-by-pixel (pixel-by-pixel) to obtain a residual block 205 in the sample area.

Преобразованиеtransformation

Блок 206 преобразования может быть выполнен с возможностью применения преобразования, например, дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусного преобразования (discrete sine transform, DST), на значениях выборок остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также упоминаться как остаточные коэффициенты преобразования и представлять остаточный блок 205 в области преобразования. The transform block 206 can be configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), on the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficients 207 may also be referred to as residual transform coefficients and represent the residual block 205 in the transform domain.

Блок 206 преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для H.265/HEVC. По сравнению с ортогональным DCT-преобразованием, такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Для сохранения нормы остаточного блока, которая обрабатывается прямыми и обратными преобразованиями, дополнительные масштабные коэффициенты применяются как часть процесса преобразования. Масштабные коэффициенты обычно выбираются на основе некоторых ограничений, таких как масштабные коэффициенты, являющиеся степенью два для операций сдвига, битовая глубина коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные масштабные коэффициенты определяются, например, для обратного преобразования, например, блоком 212 обратного преобразования (и соответствующим обратным преобразованием, например, блоком 312 обратного преобразования в видеодекодере 30), и соответствующие масштабные коэффициенты для прямого преобразования, например, блоком 206 преобразования в кодере 20, могут быть соответственно определены. Transformer 206 may be configured to apply DCT/DST integer approximations such as those specified for H.265/HEVC. Compared to the orthogonal DCT transform, such integer approximations are usually scaled by a certain factor. To preserve the residual block norm that is handled by the forward and inverse transforms, additional scale factors are applied as part of the transform process. The scaling factors are usually chosen based on some constraints such as the scaling factors being a power of two for shift operations, the bit depth of the transform coefficients, the trade-off between accuracy and implementation cost, and so on. Specific scaling factors are determined, for example, for inverse transform, for example, by inverse transform block 212 (and the corresponding inverse transform, for example, by inverse transform block 312 in video decoder 30), and corresponding scaling factors for direct transformation, for example, by transform block 206 in encoder 20 , can be defined accordingly.

Варианты осуществления видеокодера 20 (соответственно, блок 206 преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например, типа преобразования или преобразований, например, напрямую или кодированными или сжатыми через блок 270 энтропийного кодирования, так чтобы, например, видеодекодер 30 мог принимать и использовать параметры преобразования для декодирования.Embodiments of video encoder 20 (respectively, transform block 206) may be configured to output transform parameters, such as the type of transform or transforms, for example, directly or encoded or compressed via entropy encoding block 270, so that, for example, video decoder 30 can receive and use transform options for decoding.

КвантованиеQuantization

Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 могут также упоминаться, как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209. Quantizer 208 may be configured to quantize transform coefficients 207 to obtain quantized coefficients 209, for example by applying scalar quantization or vector quantization. The quantized coefficients 209 may also be referred to as quantized transform coefficients 209 or quantized residual coefficients 209.

Процесс квантования может уменьшать битовую глубину, связанную с некоторыми или со всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования во время квантования может округляться в меньшую сторону до m-битового коэффициента преобразования, где n больше, чем m. Степень квантования может модифицироваться, регулируя параметр квантования (quantization parameter, QP). Например, для скалярного квантования может применяться различное масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шага квантования соответствуют более тонкому квантованию, тогда как большие размеры шага квантования соответствуют более грубому квантованию. Применяемый размер шага квантования может указываться параметром квантования (quantization parameter, QP). Параметр квантования может быть, например, индексом заданного набора применяемых размеров шага квантования. Например, маленькие параметры квантования могут соответствовать тонкому квантованию (малые размеры шага квантования), а большие параметры квантования могут соответствовать крупному грубому (большие размеры шага квантования) или наоборот. Квантование может содержать деление на размер шага квантования и соответствующее и/или обратное деквантование, например, блоком 210 обратного квантования, может содержать умножение на размер шага квантования. Варианты осуществления, соответствующие некоторым стандартам, например, HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен, основываясь на параметре квантования с помощью аппроксимации с фиксированной точкой уравнения, содержащего деление. Дополнительные масштабные коэффициенты могут быть введены для квантования и деквантования, чтобы восстанавливать норму остаточного блока, которая может модифицироваться благодаря масштабированию, используемому при аппроксимации с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. Альтернативно, специализированные таблицы квантования могут использоваться и сообщаться от кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, где потери увеличиваются с увеличением размера шага квантования.The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207 . For example, an n-bit transform factor during quantization may be rounded down to an m-bit transform factor, where n is greater than m. The degree of quantization can be modified by adjusting the quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applied quantization step size may be indicated by a quantization parameter (QP). The quantization parameter may be, for example, an index of a given set of applied quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to coarse quantization (large quantization step sizes), or vice versa. The quantization may comprise dividing by the quantization step size and corresponding and/or inverse dequantization, for example by inverse quantizer 210, may comprise multiplying by the quantization step size. Embodiments following some standards, such as HEVC, may be configured to use a quantization parameter to determine the quantization step size. Typically, the quantization step size can be calculated based on the quantization parameter using a fixed-point approximation of an equation involving division. Additional scaling factors may be introduced for quantization and dequantization to recover the residual block rate, which may be modified by the scaling used in the fixed-point approximation of the equation for quantization step size and quantization parameter. In one exemplary implementation, inverse transform scaling and dequantization may be combined. Alternatively, specialized quantization tables may be used and communicated from the encoder to the decoder, eg in a bitstream. Quantization is a lossy operation where the loss increases as the quantization step size increases.

Варианты осуществления видеокодера 20 (соответственно, блока 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, непосредственно или кодированными через блок 270 энтропийного кодирования, так, чтобы, например, видеодекодер 30 мог принимать и применять параметры квантования для декодирования.Embodiments of video encoder 20 (respectively, quantizer 208) may be configured to output quantization parameters (QPs), for example, directly or encoded via entropy coding unit 270, so that, for example, video decoder 30 can receive and apply quantization parameters for decoding .

Обратное квантованиеInverse quantization

Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к коэффициентам квантования для получения деквантованных коэффициентов 211, например, применяя инверсию схемы квантования, применяемой блоком 208 квантования, на основе или используя тот же самый размер шага квантования, что и блок 208 квантования. Коэффициенты 211 деквантования могут также упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя обычно они не идентичны коэффициентам преобразования из-за потерь на квантование - коэффициентам 207 преобразования.Inverse quantizer 210 is configured to apply inverse quantization of quantizer 208 to quantization coefficients to obtain dequantized coefficients 211, for example, by inverting the quantization scheme applied by quantizer 208 based on or using the same quantization step size as quantizer 208 . The dequantization coefficients 211 may also be referred to as the dequantized residual coefficients 211 and correspond - although they are not usually identical to the transform coefficients due to quantization loss - to the transform coefficients 207.

Обратное преобразованиеReverse transformation

Блок 212 обратного преобразования выполнен с возможностью применения обратного преобразования для преобразования, применяемого блоком 206 преобразования, например, обратного дискретного косинусного преобразования (discrete cosine transform, DCT) или обратного дискретного синусного преобразования (inverse discrete sine transform, DST), или другого обратного преобразования для получения реконструированного остаточного блока 213 (или соответствующих деквантованных коэффициентов 213) в области выборок. Реконструированный остаточный блок 213 может также упоминаться, как блок 213 преобразования.The inverse transform block 212 is configured to apply an inverse transform to the transform applied by the transform block 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), or another inverse transform for obtaining a reconstructed residual block 213 (or corresponding dequantized coefficients 213) in the sample area. The reconstructed residual block 213 may also be referred to as the transformation block 213 .

РеконструкцияReconstruction

Блок 214 реконструкции (например, устройство сложения или сумматор 214) выполнен с возможностью сложения блока 213 преобразования (т. е. реконструированного остаточного блока 213) с блоком 265 предсказания, чтобы получить реконструированный блок 215 в области выборок, например, путем сложения - выборка с выборкой - значений выборки реконструированного остаточного блока 213 со значениями выборок блока 265 предсказания. Reconstructor 214 (e.g., adder or adder 214) is configured to add transform block 213 (i.e., reconstructed residual block 213) to prediction block 265 to obtain reconstructed block 215 in the sample domain, for example, by adding - sample with sample - sample values of the reconstructed residual block 213 with the sample values of the block 265 prediction.

ФильтрацияFiltration

Блок 220 контурного фильтра (или, сокращенно, “контурный фильтр” 220), выполнен с возможностью фильтрации реконструированного блока 215, чтобы получить отфильтрованный блок 221, или, в целом, отфильтровать реконструированные выборки для получения отфильтрованных выборок. Блок контурного фильтра, например, выполнен с возможностью сглаживания пиксельных переходов или какого-либо иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр адаптивного смещения выборок (sample-adaptive offset, SAO) или один или более других фильтров, например, билатеральный фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр, повышающий резкость, сглаживающий фильтр или коллаборативные фильтры или любое их сочетание. Хотя блок 220 контурного фильтра на фиг. 2 показан как являющийся контурным фильтром, в других конфигурациях блок 220 контурного фильтра может быть реализован как контурный фильтр последующей обработки. Отфильтрованный блок 221 может также упоминаться, как отфильтрованный реконструированный блок 221. The loop filter block 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221, or, in general, filter the reconstructed samples to obtain filtered samples. The loop filter block, for example, is configured to smooth out pixel transitions or otherwise improve video quality. The loop filter block 220 may comprise one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or one or more other filters, such as a bilateral filter, an adaptive loop filter (ALF). ), a sharpening filter, an anti-aliasing filter, or collaborative filters, or any combination thereof. Although the loop filter block 220 in FIG. 2 is shown as being a loop filter, in other configurations the loop filter unit 220 may be implemented as a post-processing loop filter. Filtered block 221 may also be referred to as filtered reconstructed block 221.

Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация об адаптивном смещении выборки), например, непосредственно или кодированными посредством блока 270 энтропийного кодирования, так чтобы, например, декодер 30 мог принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.Embodiments of video encoder 20 (respectively, loop filter block 220) may be configured to output loop filter parameters (such as adaptive sample offset information), for example, directly or encoded by entropy encoding block 270, so that, for example, decoder 30 can receive and apply the same loop filter parameters or corresponding loop filters for decoding.

Буфер декодированного изображенияDecoded image buffer

Буфер 230 декодированного изображения (decoded picture buffer, DPB) 230 может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений, для кодирования видеоданных видеокодером 20. DPB 230 может быть образован любым из множества запоминающих устройств, таким как динамическая оперативная память (dynamic random access memory, DRAM), в том числе, синхронная DRAM (SDRAM), магнитостойкая RAM (MRAM), резистивная RAM (RRAM) или другие типы устройств памяти. Буфер 230 декодирования изображения (DPB) 230 может быть выполнен с возможностью хранения одного или более отфильтрованных блоков 221. Буфер 230 декодированного изображения может быть дополнительно выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее реконструированных и отфильтрованных блоков 221 одного и того же текущего изображения или разных изображений, например, ранее реконструированных изображений, и может обеспечивать полностью ранее реконструированные, т.е. декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично реконструированное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового предсказания. Буфер 230 декодированного изображения (decoded picture buffer, DPB) может быть также выполнен с возможностью хранения одного или более нефильтрованных реконструированных блоков 215 или, в общем, нефильтрованных реконструированных выборок, например, если реконструированный блок 215 не отфильтрован блоком 220 контурного фильтра или нет никакой другой дополнительно обработанной версии реконструированных блоков или выборок.Decoded picture buffer (DPB) 230 230 may be a memory that stores reference pictures, or reference picture data in general, for encoding video data by video encoder 20. DPB 230 may be formed by any of a variety of memories, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetically resistant RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. Picture decoding buffer (DPB) 230 230 may be configured to store one or more filtered blocks 221. Decoded picture buffer 230 may be further configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221 of the same current images or different images, such as previously rendered images, and may provide fully previously reconstructed, ie. decoded pictures (and corresponding reference blocks and samples) and/or a partially reconstructed current picture (and corresponding reference blocks and samples), for example, for inter-picture prediction. The buffer 230 decoded image (decoded picture buffer, DPB) can also be configured to store one or more unfiltered reconstructed blocks 215 or, in general, unfiltered reconstructed samples, for example, if the reconstructed block 215 is not filtered by the loop filter block 220 or there is no other an additionally processed version of the reconstructed blocks or samples.

Выбор режима (деление и предсказание)Mode selection (division and prediction)

Блок 260 выбора режима содержит блок 262 разделения, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания и выполнен с возможностью приема или получения исходных данных изображения, например, с помощью исходного блока 203 (текущего блока 203 текущего изображения 17), и реконструированных данных изображения, например, отфильтрованных и/или нефильтрованных реконструированных выборок или блоков одного и того же (текущего) изображения и/или одного или более из числа ранее декодированных изображений, например, полученных из буфера 230 декодированных изображений или других буферов (например, из строчного буфера, который не показан). Реконструированные данные изображения используются в качестве данных опорного изображения для предсказания, например, межкадрового предсказания или внутрикадрового предсказания, чтобы получить блок 265 предсказания или предиктор 265.The mode selector 260 comprises a separating block 262, an inter-prediction block 244, and an intra-prediction block 254, and is configured to receive or obtain the original image data, for example, using the original block 203 (the current block 203 of the current image 17), and the reconstructed image data, e.g. filtered and/or unfiltered reconstructed samples or blocks of the same (current) picture and/or one or more previously decoded pictures, e.g. obtained from decoded picture buffer 230 or other buffers (e.g. not shown). The reconstructed image data is used as reference image data for prediction, such as inter-picture prediction or intra-picture prediction, to obtain prediction block 265 or predictor 265.

Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для режима предсказания текущего блока (в том числе, отсутствия разделения) и режима предсказания (например, режима внутрикадрового или межкадрового предсказания) и формирования соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для реконструкции реконструируемого блока 215. The mode selector 260 may be configured to determine or select a split for the current block prediction mode (including no split) and the prediction mode (e.g., intra frame or inter frame prediction mode) and generate a corresponding prediction block 265 that is used to calculate the residual block 205 and for the reconstruction of the reconstructed block 215.

Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора режима разделения и предсказания (например, из тех, которые поддерживаются или доступны для блока 260 выбора режима), которые обеспечивают наилучшее совпадение, или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения) или минимальные издержки на сигнализацию (минимальные издержки на сигнализацию означают лучшее сжатие для передачи или хранения), или которые рассматривают или балансируют то и другое. Блок 260 выбора режима может быть выполнен с возможностью определения режима разделения и предсказания, основываясь на оптимизации соотношения "искажение-скорость" (rate distortion optimization, RDO), т.е. выбора режима предсказания, который обеспечивает минимальное соотношение "искажение-скорость". Термины “наилучший”, “минимальный”, “оптимальный” и т.д. в этом контексте не обязательно относятся к общему пониманию “наилучшего”, “минимального”, “оптимального” и т.д., а могут также относиться к выполнению критерия завершения или выбора, такому как значения превышения порога или падения ниже порога, или других ограничений, потенциально ведущих к “субоптимальному выбору”, но уменьшающим сложность и время обработки.Embodiments of mode selector 260 may be configured to select a splitting and prediction mode (e.g., from those supported by or available to mode selector 260) that provides the best match, or in other words, minimum residual (lowest residual means best compression for transmission or storage) or minimum signaling overhead (lowest signaling overhead means better compression for transmission or storage), or which consider or balance both. The mode selector 260 may be configured to determine the partitioning and prediction mode based on rate distortion optimization (RDO), i. selecting a prediction mode that provides the minimum distortion-rate ratio. The terms “best”, “minimum”, “optimal”, etc. in this context does not necessarily refer to the general understanding of “best”, “minimum”, “optimal”, etc., but may also refer to the fulfillment of a completion or selection criterion, such as exceeding a threshold or falling below a threshold, or other constraints , potentially leading to a “suboptimal choice”, but reducing complexity and processing time.

Другими словами, блок 262 разделения может быть выполнен с возможностью разделения блока 203 на блоки меньшего размера или субблоки (которые снова образуют блоки), например, многократно используя деление квадродерева (quad-tree-partitioning, QT), деление двоичного дерева (binary-tree partitioning, BT) или деление троичного дерева (triple-tree-partitioning, TT) или любое их сочетание, и выполнения предсказания для каждой из частей блока или для каждого субблока, где выбор режима содержит выбор древовидной структуры разделенного блока 203 и режимы предсказания применяются к каждой из частей блока или к субблоку.In other words, partitioner 262 may be configured to partition block 203 into smaller blocks or sub-blocks (which again form blocks), for example, by repeatedly using quad-tree-partitioning (QT), binary tree partitioning (binary-tree partitioning, BT) or ternary tree division (triple-tree-partitioning, TT), or any combination thereof, and performing prediction for each of the block parts or for each sub-block, where the mode selection contains the selection of the tree structure of the divided block 203 and the prediction modes are applied to each part of the block or to a subblock.

В дальнейшем, процесс разделения (например, посредством блока 260 разделения) и предсказания (посредством блока 244 межкадрового предсказания 244 и блока 254 внутрикадрового предсказания), выполняемый в качестве примера видеокодером 20, будет объяснен более подробно.In the following, the separation process (for example, by the splitter 260) and prediction (by the inter predictor 244 244 and the intra predictor 254) performed by the video encoder 20 as an example will be explained in more detail.

Разделение на частиPartitioning

Блок 262 разделения может делить или разбивать текущий блок 203 на части меньшего размера, например, на более мелкие блоки квадратной или прямоугольной формы. Эти более мелкие блоки (который могут также упоминаться как субблоки) могут дополнительно разделяться на еще более мелкие части. Это также упоминается как древовидное деление или иерархическое древовидное деление, где корневой блок, например, на уровне 0 корня дерева (иерархия-уровень 0, глубина 0) может рекурсивно разделяться, например, делиться на два или более блоков следующего, более низкого уровня дерева, например, узлы на уровне 1 дерева (иерархия-уровень 1, глубина 1), где эти блоки могут быть снова разделены в два или более блоков следующего, более низкого уровня, например, уровня 2 дерева (иерархия-уровень 2, глубина 2), и т.д., пока деление не закончится, например, потому, что выполнен критерий завершения, например, достигнуты максимальная глубина дерева или минимальный размер блока. Блоки, которые далее не делятся, также упоминаются как листовые блоки или вершины дерева. Деление с использованием дерева на две части упоминается как двоичное дерево (binary-tree, BT), деление с использованием дерева на три части упоминается как троичное дерево (ternary-tree, TT) и деление с использованием дерева на четыре части упоминается как квадродерево (quad-tree, QT).Divider 262 may divide or split the current block 203 into smaller pieces, such as smaller square or rectangular blocks. These smaller blocks (which may also be referred to as sub-blocks) may further be subdivided into even smaller pieces. This is also referred to as tree division or hierarchical tree division, where a root block, e.g. at level 0 of the tree root (hierarchy-level 0, depth 0) can be recursively split, e.g. divided into two or more blocks of the next lower level of the tree, e.g., nodes at level 1 of the tree (hierarchy-level 1, depth 1), where these blocks can be split again into two or more blocks of the next lower level, e.g., level 2 of the tree (hierarchy-level 2, depth 2), and so on, until the division ends, eg because a termination criterion is met, eg the maximum tree depth or minimum block size is reached. Blocks that are not further divided are also referred to as leaf blocks or tree nodes. Division using a tree into two parts is referred to as a binary tree (binary-tree, BT), division using a tree into three parts is referred to as a ternary tree (ternary-tree, TT) and division using a tree into four parts is referred to as a quad tree (quad). -tree, QT).

Как упоминалось выше, термин "блок", как он используется здесь, может быть частью, в частности, квадратной или прямоугольной частью изображения. Со ссылкой, например, на HEVC и VVC, блок может быть или соответствовать блоку древовидного кодирования (coding tree unit, CTU), блоку кодирования (coding unit, CU), блоку предсказания (prediction unit, PU) или блоку преобразования (transform unit, TU) и/или соответствующим блокам, например, блоку древовидного кодирования (coding tree block, CTB), блоку кодирования (coding block, CB), блоку преобразования (transform block, TB) или блоку предсказания (prediction block, PB).As mentioned above, the term "block", as used here, may be a part, in particular, a square or rectangular part of the image. With reference to, for example, HEVC and VVC, a block can either be a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit. TU) and/or corresponding blocks, such as a coding tree block (CTB), a coding block (CB), a transform block (TB), or a prediction block (PB).

Например, блок дерева кодирования (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTB выборок цветности изображения, которые имеют три массива выборок или CTB выборок монохромного изображения или изображения, которое кодируется с помощью трех отдельных цветовых плоскостей и структур синтаксиса, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть блоком NxN выборок для некоторого значения N, так что разделение компонента на блоки CTB является делением. Блок кодирования (coding unit, CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с помощью трех отдельных цветовых плоскостей и структур синтаксиса, используемых для кодирования выборок. Соответственно, блок кодирования (coding block, CB) может быть блоком MxN выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является делением.For example, a coding tree unit (CTU) may be or contain a luminance sample CTB, two corresponding image chrominance sample CTBs that have three sample arrays, or a monochrome image sample CTB or an image that is encoded with three separate color planes and syntax structures used to sample coding. Accordingly, a coding tree block (CTB) may be an NxN block of samples for some value of N, such that splitting a component into CTBs is a division. A coding unit (CU) can be either a luminance sample coding unit, two corresponding chrominance sample coding units of an image that has three sample arrays, or a monochrome image sample coding unit or an image that is encoded with three separate color planes and structures. syntax used to encode selections. Accordingly, a coding block (CB) may be an MxN block of samples for some values of M and N, so dividing the CTB into coding blocks is a division.

В вариантах осуществлениях, например, соответствующих HEVC, блок дерева кодирования (CTU) может быть разделен на блоки CU при помощи структуры квадродерева, обозначенной как дерево кодирования. Решение, кодировать ли область изображения, используя межкадровое (временное) или внутрикадровое (пространственное) предсказание, принимается на уровне CU. Каждый CU может быть дополнительно разбит на один, два или четыре блока PU, соответственно типу разбиения PU. Внутри одного PU применяется один и тот же процесс предсказания и соответствующая информация передается декодеру на основе PU. После получения остаточного блока, применяя процесс предсказания на основе типа разбиения PU, CU может быть разделен на блоки преобразования (transform unit, TU) согласно другой структуре квадродерева, подобной дереву кодирования для CU. In HEVC-compliant embodiments, for example, a coding tree unit (CTU) may be partitioned into CUs using a quadtree structure referred to as a coding tree. The decision whether to encode a region of an image using inter-frame (temporal) or intra-frame (spatial) prediction is made at the CU level. Each CU may be further partitioned into one, two, or four PUs, according to the partition type of the PU. Within one PU, the same prediction process is applied and the corresponding information is transmitted to the decoder based on the PU. After obtaining the residual block, using a prediction process based on the partition type of the PU, the CU can be divided into transform units (TUs) according to another quadtree structure similar to the coding tree for the CU.

В вариантах осуществлениях, например, в соответствии с последним стандартом видеокодирования, который в настоящее время находится в разработке, который упоминается как универсальное видеокодирование (Versatile Video Coding, VVC), объединенное разделение с использованием квадродерева и двоичного дерева (combined quad-tree and binary-tree, QTBT) используется, например, для разделения блока кодирования. В структуре блока QTBT CU может иметь квадратную или прямоугольную форму. Например, блок дерева кодирования (CTU) сначала делится посредством структуры квадратичного дерева. Узлы квадратичного дерева дополнительно делятся с помощью структуры двоичного дерева или троичного дерева. Узлы дерева при делении называются блоками кодирования (coding unit, CU) и такая сегментация используется для процесса предсказания и преобразования без какого-либо дополнительного разделения. Это означает, что в структуре блоков кодирования QTBT CU, PU и TU имеют один и тот же размер блока. Параллельно, многочисленное разделение, например, разделение троичного дерева, может использоваться вместе со структурой блока QTBT. In embodiments, for example, in accordance with the latest video coding standard currently in development, referred to as Versatile Video Coding (VVC), combined quad-tree and binary- tree, QTBT) is used, for example, to separate an encoding block. In the QTBT block structure, the CU can be square or rectangular. For example, a coding tree unit (CTU) is first divided by a quadratic tree structure. The nodes of a quadratic tree are further divided by a binary tree structure or a ternary tree structure. The nodes of the tree when divided are called coding units (CU) and such segmentation is used for the prediction and transformation process without any additional division. This means that in the QTBT coding block structure, CUs, PUs and TUs have the same block size. In parallel, multiple partitioning, such as ternary tree partitioning, can be used in conjunction with the QTBT box structure.

В одном из примеров, блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью реализации любого сочетания описанных здесь технологий разделения.In one example, mode selector 260 of video encoder 20 may be configured to implement any combination of the separation technologies described herein.

Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, заранее определенного) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутрикадрового предсказания и/или режимы межкадрового предсказания. As described above, video encoder 20 is configured to determine or select the best or optimal prediction mode from a set (eg, predetermined) of prediction modes. The set of prediction modes may comprise, for example, intra-prediction modes and/or inter-prediction modes.

Внутрикадровое предсказаниеIntra-frame prediction

Набор режимов внутрикадрового предсказания может содержать 35 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, например, как определено для VVC. The set of intra-prediction modes may contain 35 different intra-prediction modes, for example, non-directional modes such as DC (or average) mode and planar mode, or directional modes, for example, as defined in HEVC, or may contain 67 different intra-prediction modes, for example , non-directional modes such as DC (or medium) mode and planar mode, or directional modes such as those defined for VVC.

Блок 254 внутрикадрового предсказания выполнен с возможностью использования реконструированных выборок соседних блоков одного и того же текущего изображения для формирования блока 265 внутрикадрового предсказания, соответствующего режиму внутрикадрового предсказания из набора режимов внутрикадрового предсказания.The intra prediction block 254 is configured to use reconstructed samples of neighboring blocks of the same current image to generate an intra prediction block 265 corresponding to an intra prediction mode from a set of intra prediction modes.

Блок 254 внутрикадрового предсказания (или, в целом, блок 260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутрикадрового предсказания (или, в целом, информации, указывающей выбранный режим внутрикадрового предсказания для блока) на блок 270 энтропийного кодирования в форме элементов 266 синтаксиса для включения в кодированные данные 21 изображения, так чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.The intra prediction block 254 (or mode selector 260 generally) is further configured to output intra prediction parameters (or information indicative of the selected intra prediction mode for the block in general) to the entropy encoding block 270 in the form of syntax elements 266 for included in the encoded image data 21 so that, for example, video decoder 30 can receive and use the prediction parameters for decoding.

Межкадровое предсказаниеInterframe prediction

Набор режимов (или возможных режимов) межкадрового предсказания зависит от доступных опорных изображений (т.е. от предыдущих, по меньшей мере, частично декодированных изображений, например, сохраненных в DPB 230) и других параметров межкадрового предсказания, например, используется ли опорное изображение полностью или только частично, например, область окна поиска вокруг области текущего блока опорного изображения для поиска наилучшим образом совпадающего опорного блока и/или например, применяется ли пиксельная интерполяция, например, половинная/полуэлементная, четвертьэлементная и/или 1/16-тиэлементная интерполяция.The set of inter prediction modes (or possible modes) depends on the available reference pictures (i.e., previous at least partially decoded pictures, such as those stored in DPB 230) and other inter prediction parameters, such as whether the reference picture is fully used or only partially, such as the area of the search window around the area of the current reference picture block to search for the best matching reference block, and/or, for example, whether pixel interpolation is applied, such as half/half-element, quarter-element, and/or 1/16-element interpolation.

Дополнительно к упомянутым выше режимам предсказания могут применяться режим пропуска и/или прямой режим.In addition to the prediction modes mentioned above, skip mode and/or direct mode may be applied.

Блок 244 межкадрового предсказания может содержать блок оценки движения (motion estimation, ME) и блок компенсации движения (motion compensation, MC) (оба не показаны в фиг. 2). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 17) и декодированного изображения 231 или по меньшей мере одного или множества из ранее реконструированных блоков, например, реконструированных блоков из одного или множества других/отличающихся ранее декодированных изображений 231, для компенсации движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут являться частью или формировать последовательность изображений, образующих видеопоследовательность.The inter prediction block 244 may comprise a motion estimation (ME) block and a motion compensation (MC) block (both not shown in FIG. 2). The motion estimator may be configured to receive or obtain an image block 203 (the current image block 203 of the current image 17) and a decoded image 231 or at least one or a plurality of previously reconstructed blocks, e.g., reconstructed blocks from one or a plurality of other/different previously decoded images 231, for motion compensation. For example, the video sequence may comprise the current picture and previously decoded pictures 231 or, in other words, the current picture and previously decoded pictures 231 may be part of or form a sequence of pictures that make up the video sequence.

Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же или разных изображений из множества других изображений и предоставления блоку оценки движения опорного изображения (или индекса опорного изображения) и/или смещения (пространственного смещения) между позицией (с координатами x, y) опорного блока и позицией текущего блока как параметров межкадрового предсказания. Это смещение также называют вектором движения (motion vector, MV). Encoder 20 may, for example, be configured to select a reference block from a plurality of reference blocks of the same or different pictures from a plurality of other pictures and provide the reference picture (or reference picture index) motion estimate and/or offset (spatial offset) between the position (with x, y coordinates) of the reference block and the position of the current block as inter-prediction parameters. This displacement is also called the motion vector (MV).

Блок компенсации движения выполнен с возможностью получения, например, приема, параметра межкадрового предсказания и выполнения межкадрового предсказания на основе или используя параметр межкадрового предсказания для получения блока 265 межкадрового предсказания. The motion compensation block is configured to obtain, for example, receive, an inter prediction parameter, and perform inter prediction based on or using the inter prediction parameter to obtain the inter prediction block 265 .

Компенсация движения, выполняемая блоком компенсации движения, может содержать выборку или формирование блока предсказания, основываясь на векторе движения/блока, определенном посредством оценки движения, возможно выполняя интерполяции до субпиксельной точности. Интерполяционная фильтрация может формировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая количество возможных блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для блока PU текущего изображения, блок компенсации движения может определить местоположение блока предсказания, на который направлен вектор движения в одном из списков опорных изображений. The motion compensation performed by the motion compensator may comprise sampling or generating a prediction block based on a motion/block vector determined by motion estimation, possibly performing interpolations to sub-pixel precision. Interpolation filtering can generate additional pixel samples from known pixel samples, thus potentially increasing the number of possible prediction blocks that can be used to encode an image block. After receiving the motion vector for the PU of the current picture, the motion compensator may locate the prediction block to which the motion vector is directed in one of the reference picture lists.

Блок компенсации движения может также формировать элементы синтаксиса, связанные с блоками и видеосекциями для использования видеодекодером 30 при декодировании блоков изображения видеосекции. Кроме того или как альтернатива секциям и соответствующим элементам синтаксиса, могут быть сформированы или использованы группы плиток и/или плитки и соответствующие элементы синтаксиса.The motion compensation block may also generate syntax elements associated with blocks and video sections for use by video decoder 30 when decoding image blocks of a video section. In addition, or as an alternative to sections and corresponding syntax elements, groups of tiles and/or tiles and corresponding syntax elements can be formed or used.

Энтропийное кодированиеEntropy coding

Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной слова (variable length coding, VLC), контекстной адаптивной схемы VLC (context adaptive VLC, CAVLC), схемы арифметического кодирования, бинаризации, контекстного адаптивного двоичного арифметического кодирования (context adaptive binary arithmetic coding, CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (syntax-based context-adaptive binary arithmetic coding, SBAC), энтропийного кодирования с разделением интервала вероятности (probability interval partitioning entropy, PIPE) или другой методологии или технологии энтропийного кодирования) или обхода (без сжатия) на квантованных коэффициентах 209, параметрах межкадрового предсказания, параметрах внутрикадрового предсказания, параметрах контурного фильтра и/или других элементах синтаксиса для получения кодированных данных 21 изображения, которые могут быть выведены через выход 272, например, в форме кодированного битового потока 21, так чтобы, например, видеодекодер 30 мог принимать и использовать параметры для декодирования. Кодированный битовый поток 21 может быть передан видеодекодеру 30 или быть запомнен в памяти для более поздней передачи или извлечения видеодекодером 30. Entropy encoding unit 270 is configured to apply, for example, an entropy coding algorithm or scheme (for example, variable length coding (VLC) coding scheme, context adaptive VLC (CAVLC) context adaptive scheme), arithmetic coding scheme, binarization , context adaptive binary arithmetic coding (CABAC), based on the syntax of context-adaptive binary arithmetic coding (syntax-based context-adaptive binary arithmetic coding, SBAC), entropy coding with probability interval partitioning entropy , PIPE) or other entropy coding methodology or technology) or traversal (no compression) on quantized coefficients 209, inter-prediction parameters, intra-prediction parameters, loop filter parameters, and/or other syntax elements to obtain encoded image data 21 that can be output via output 272, for example in the form of an encoded bitstream 21, so that, for example, video decoder 30 can receive and use the parameters for decoding. The encoded bitstream 21 may be transmitted to video decoder 30 or stored in memory for later transmission or retrieval by video decoder 30.

Для кодирования видеопотока могут использоваться и другие структурные изменения видеокодера 20. Например, кодер 20, основанный на отсутствии преобразования, может квантовать остаточный сигнал напрямую, без блока 206 преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.Other structural changes to video encoder 20 may also be used to encode the video stream. For example, a no-transform encoder 20 may quantize the residual signal directly without a transform unit 206 for certain blocks or frames. In another implementation, encoder 20 may have quantizer 208 and inverse quantizer 210 combined into a single block.

Декодер и способ декодированияDecoder and decoding method

На фиг. 3 показан пример видеодекодера 30, выполненного с возможностью реализации технологий настоящей заявки. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 изображения (например, кодированного битового потока 21), например, данных, кодированных кодером 20 для получения декодированного изображения 331. In FIG. 3 shows an example of a video decoder 30 capable of implementing the technologies of the present application. Video decoder 30 is configured to receive encoded image data 21 (e.g., encoded bitstream 21), such as data encoded by encoder 20 to obtain a decoded image 331.

Кодированные данные изображения или битовый поток содержат информацию для декодирования кодированных данных изображения, например, данных, которые представляют блоки изображения кодированной видеосекции (и/или групп плиток или плиток) и связанные с ними элементы синтаксиса.The encoded image data or bitstream contains information for decoding encoded image data, for example, data that represents image blocks of an encoded video section (and/or groups of tiles or tiles) and associated syntax elements.

В примере на фиг. 3 декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обратного преобразования, блок 314 реконструкции (например, сумматор 314), контурный фильтр 320, буфер 330 декодированного изображения (decoded picture buffer, DPB), блок 360 применения режима, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может быть или содержать блок компенсации движения. In the example in FIG. 3, decoder 30 includes an entropy decoder 304, an inverse quantizer 310, an inverse transform 312, a reconstructor 314 (e.g., adder 314), a loop filter 320, a decoded picture buffer (DPB) 330, a mode application 360, block 344 inter-prediction and block 354 intra-prediction. The inter prediction block 344 may be or comprise a motion compensation block.

Видеодекодер 30 в некоторых примерах может выполнять цикл декодирования, обычно обратный циклу кодирования, описанному со ссылкой на видеокодер 100, показанный на фиг. 2.Video decoder 30, in some examples, may perform a decoding loop, typically the reverse of the encoding loop described with reference to video encoder 100 shown in FIG. 2.

Как было объяснено со ссылкой на кодер 20, блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 реконструкции, контурный фильтр 220, буфер 230 декодированного изображения (DPB), блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания также упоминаются как формирующие “встроенный декодер” видеокодера 20. Соответственно, блок 310 обратного квантования может быть функционально идентичен блоку 110 обратного квантования, блок 312 обратного преобразования может быть функционально идентичен блоку 212 обратного преобразования, блок 314 реконструкции может быть функционально идентичен блоку 214 реконструкции, контурный фильтр 320 может быть функционально идентичен контурному фильтру 220, и буфер 330 декодированного изображения может быть функционально идентичен буферу 230 декодированного изображения. Поэтому объяснения, предоставленные для соответствующих блоков и функций видеокодера 20, применяются должным образом к соответствующим блокам и функциям видеодекодера 30.As has been explained with reference to encoder 20, inverse quantizer 210, inverse transform 212, reconstructor 214, loop filter 220, decoded picture buffer (DPB) 230, inter prediction 344, and intra prediction 354 are also referred to as generating “inline decoder" of the video encoder 20. Accordingly, inverse quantizer 310 may be functionally identical to inverse quantizer 110, inverse transform block 312 may be functionally identical to inverse transform block 212, reconstructor 314 may be functionally identical to reconstructor 214, loop filter 320 may be functionally identical to is identical to the loop filter 220, and the decoded image buffer 330 may be functionally identical to the decoded image buffer 230. Therefore, the explanations provided for the respective blocks and functions of video encoder 20 apply properly to the corresponding blocks and functions of video decoder 30.

Энтропийное декодированиеEntropy decoding

Блок 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, вообще говоря, кодированных данных 21 изображения) и выполнения, например, энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, любых или всех параметров межкадрового предсказания (например, индекса опорного изображения и вектора движения), параметра внутрикадрового предсказания (например, режима внутрикадрового предсказания или индекса), параметров преобразования, параметров квантования, параметров контурного фильтра и/или других элементов синтаксиса. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, описанным со ссылкой на блок 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью представления блоку 360 применения режима параметров межкадрового предсказания, параметров внутрикадрового предсказания и/или других элементов синтаксиса, а также других параметров другим блокам декодера 30. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеосекции и/или на уровне видеоблока. Кроме того, или как альтернатива секциям и соответствующим элементам синтаксиса, могут приниматься и/или использоваться группы плиток и/или плитки и соответствующие элементы синтаксиса.The entropy decoding unit 304 is configured to parse the bitstream 21 (or, generally speaking, the encoded image data 21) and perform, for example, entropy decoding of the encoded image data 21 to obtain, for example, quantized coefficients 309 and/or decoded coding parameters (not shown in Figure 3), such as any or all of the inter-prediction parameters (eg, reference picture index and motion vector), intra-prediction parameter (eg, intra-prediction mode or index), transform parameters, quantization parameters, loop filter parameters, and/ or other syntax elements. Entropy decoding unit 304 may be configured to apply decoding algorithms or schemes corresponding to the coding schemes described with reference to entropy encoding unit 270 of encoder 20. Entropy decoding unit 304 may be further configured to present to application unit 360 of the inter-frame prediction parameter mode, parameters intra-frame prediction and/or other syntax elements, as well as other parameters to other blocks of decoder 30. Video decoder 30 may receive syntax elements at the video section level and/or at the video block level. In addition, or as an alternative to sections and corresponding syntax elements, groups of tiles and/or tiles and corresponding syntax elements may be accepted and/or used.

Обратное квантованиеInverse quantization

Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (quantization parameter, QP) (или, в общем, информации, связанной с обратным квантованием) и квантованных коэффициентов из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, блоком 304 энтропийного декодирования) и применения, основываясь на параметрах квантования, обратного квантования на декодированных квантованных коэффициентах 309 для получения деквантованных коэффициентов 311, которые могут также упоминаться, как коэффициенты 311 преобразования. Процесс обратного квантования может содержать использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеосекции (или плитке или группе плиток) для определения степени квантования и, аналогично, степени обратного квантования, которая должна применяться. The inverse quantizer 310 may be configured to receive quantization parameters (QP) (or, in general, information related to inverse quantization) and quantized coefficients from the encoded image data 21 (for example, by parsing and/or decoding, for example, entropy decoding block 304) and applying, based on the quantization parameters, inverse quantization on the decoded quantized coefficients 309 to obtain dequantized coefficients 311, which may also be referred to as transform coefficients 311. The inverse quantization process may comprise using a quantization parameter determined by video encoder 20 for each video block in a video slice (or tile or group of tiles) to determine the amount of quantization and, likewise, the amount of inverse quantization to be applied.

Обратное преобразованиеReverse transformation

Блок 312 обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также упоминаемых как коэффициенты 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для получения реконструированных остаточных блоков 213 в области выборок. Реконструированные остаточные блоки 213 могут также упоминаться как блоки 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально подобным процессом обратного преобразования. Блок 312 обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, блоком 304 энтропийного декодирования) для определения преобразования, которое должно применяться к деквантованным коэффициентам 311.Inverse transform block 312 may be configured to receive the dequantized coefficients 311, also referred to as transform coefficients 311, and apply a transform to the dequantized coefficients 311 to obtain reconstructed residual blocks 213 in the sample area. The reconstructed residual blocks 213 may also be referred to as transform blocks 313 . The transformation may be an inverse transformation, eg, inverse DCT, inverse DST, inverse integer transformation, or a conceptually similar inverse transformation process. The inverse transform block 312 may be further configured to receive transform parameters or corresponding information from the encoded image data 21 (eg, by parsing and/or decoding, eg by entropy decoding block 304) to determine the transform to be applied to the dequantized coefficients 311 .

РеконструкцияReconstruction

Блок 314 реконструкции (например, устройство сложения или сумматор 314) может быть выполнен с возможностью сложения реконструированного остаточного блока 313 с блоком 365 предсказания для получения реконструированного блока 315 в области выборок, например, путем сложения значений выборок реконструированного остаточного блока 313 и значений выборок блока 365 предсказания. Reconstructor 314 (e.g., adder or adder 314) may be configured to add reconstructed residual block 313 to predictor 365 to obtain reconstructed block 315 in the sample region, for example, by adding the sample values of the reconstructed residual block 313 and the sample values of block 365 predictions.

ФильтрацияFiltration

Блок 320 контурного фильтра (в цикле кодирования или после цикла кодирования) выполнен с возможностью фильтрации реконструированного блока 315, чтобы получить отфильтрованный блок 321, например, для сглаживания пиксельные переходов или какого-либо иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр адаптивного смещения выборок (sample-adaptive offset, SAO) или один или более других фильтров, например, билатеральный фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр, повышающий резкость, сглаживающий фильтр или коллаборативные фильтры или любое их сочетание. Хотя блок 320 контурного фильтра на фиг. 3 показан как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как контурный фильтр последующей обработки.The loop filter block 320 (in the encoding cycle or after the encoding cycle) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve video quality. The loop filter block 320 may comprise one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or one or more other filters, such as a bilateral filter, an adaptive loop filter (ALF). ), a sharpening filter, an anti-aliasing filter, or collaborative filters, or any combination thereof. Although the loop filter block 320 in FIG. 3 is shown as a loop filter, in other configurations the loop filter unit 320 may be implemented as a post-processing loop filter.

Буфер декодированного изображенияDecoded image buffer

Декодированные видеоблоки 321 изображения затем запоминаются в буфере 330 декодированного изображения, который хранит декодированные изображения 331 в качестве опорных изображений для последующей компенсации движения в других изображениях и/или для вывода, соответственно, на дисплей. The decoded video blocks 321 of the picture are then stored in the decoded picture buffer 330, which stores the decoded pictures 331 as reference pictures for subsequent motion compensation in other pictures and/or for display, respectively.

Декодер 30 выполнен с возможностью вывода декодированного изображения 311, например, через выход 312, для предоставления или просмотра пользователем.The decoder 30 is configured to output the decoded image 311, for example, through the output 312, for presentation or viewing by the user.

ПредсказаниеPrediction

Блок 344 межкадрового предсказания может быть идентичен блоку 244 межкадрового предсказания (в частности, блоку компенсации движения), и блок 354 внутрикадрового предсказания функционально может быть идентичен блоку 254 внутрикадрового предсказания и выполняет решения о разбиении или разделении и предсказании, основываясь на параметрах разделения и/или предсказания или на соответствующей информации, полученной из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, блоком 304 энтропийного декодирования). Блок 360 применения режима может быть выполнен с возможностью осуществления предсказания (внутрикадрового или межкадрового) для каждого блока, основываясь на реконструированных изображениях, блоках или соответствующих выборках (фильтрованных или нефильтрованных) для получения блока 365 предсказания.The inter prediction block 344 may be identical to the inter prediction block 244 (in particular, the motion compensation block), and the intra prediction block 354 may be functionally identical to the intra prediction block 254, and makes splitting or splitting and prediction decisions based on splitting parameters and/or prediction or on the corresponding information obtained from the encoded image data 21 (for example, by parsing and/or decoding, for example, block 304 entropy decoding). Mode apply block 360 may be configured to perform prediction (intraframe or interframe) for each block based on reconstructed images, blocks, or corresponding samples (filtered or unfiltered) to obtain prediction block 365 .

Когда видеосекция кодируется как внутрикадрово кодированная (I) секция, блок 354 внутрикадрового предсказания из блока 360 применения режима конфигурируется, чтобы сформировать блок 365 предсказания для блока изображения текущей видеосекции, основываясь на сообщенном режиме внутрикадрового предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как межкадрово кодированная (т.е. B или P) секция, блок 344 межкадрового предсказания (например, блок компенсации движения) блока 360 применения режима конфигурируется для создания блоков 365 предсказания для видеоблока текущей видеосекции, основываясь на векторах движения и других элементах синтаксиса, полученных от блока 304 энтропийного декодирования. Для межкадрового предсказания блоки предсказания могут формироваться из одного из опорных изображений в пределах одного из списков опорных изображений. Видеодекодер 30 может создавать списки ссылочных кадров, List 0 и List 1, используя технологии построения по умолчанию, основанные на ссылочных изображениях, хранящихся в DPB 330. Тот же самый или аналогичный подход может применяться вариантами осуществления, используя группы плиток (например, группы видеоплиток) и/или плитки (например, видеоплитки) дополнительно или альтернативно секциям (например, видеосекциям), например, видео может быть кодировано, используя группы I, P или B плиток и/или плитки.When a video section is encoded as an intra-frame (I)-coded section, intra-prediction block 354 from mode apply block 360 is configured to generate prediction block 365 for a picture block of the current video section based on the reported intra-frame prediction mode and data from previously decoded blocks of the current picture. When a video image is encoded as an inter-frame coded (i.e., B or P) section, the inter-prediction block 344 (e.g., motion compensation block) of the mode apply block 360 is configured to create prediction blocks 365 for the video block of the current video section based on the motion vectors and other elements. syntax received from block 304 entropy decoding. For inter-picture prediction, prediction blocks may be generated from one of the reference pictures within one of the reference picture lists. Video decoder 30 may construct lists of reference frames, List 0 and List 1, using default construction techniques based on reference pictures stored in DPB 330. The same or similar approach may be taken by embodiments using tile groups (e.g., video tile groups) and/or tiles (eg, video tiles) in addition to or alternatively to sections (eg, video sections), for example, video may be encoded using groups I, P, or B of tiles and/or tiles.

Блок 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущей видеосекции путем синтаксического анализа векторов движения или сопутствующей информации и других элементов синтаксиса и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, блок 360 применения режима использования использует некоторые из принятых элементов синтаксиса, чтобы определить режим предсказания (например, внутрикадровый или межкадровый), используемый для кодирования видеоблоков видеосекции, типа секции межкадрового предсказания (например, секция B, секция P или секция GPB), информацию о построении одного или более списков ссылочных изображений для секции, векторов движения для каждого межкадрово кодированного видеоблока секции и другую информацию для декодирования видеоблоков в текущей видеосекции. Тот же самый или аналогичный подход можно применяться вариантами осуществления, использующими группы плиток (например, группы видеоплиток) и/или плитки (например, видеоплитки) в добавление или альтернативно к секциям (например, видеосекциям), например, видео может кодироваться, используя группы I, P или B плиток и/или плитки.The mode applicator 360 is configured to determine prediction information for a video block of the current video section by parsing motion vectors or related information and other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, the usage mode application block 360 uses some of the received syntax elements to determine the prediction mode (eg, intra frame or inter frame) used to encode the video blocks of the video section, the type of inter prediction section (eg, section B, section P, or section GPB), information about building one or more lists of reference pictures for a section, motion vectors for each interframe coded video block of the section, and other information for decoding video blocks in the current video section. The same or similar approach can be taken by embodiments using tile groups (eg, video tile groups) and/or tiles (eg, video tiles) in addition to or alternatively to sections (eg, video sections), e.g., video may be encoded using groups I , P or B tiles and/or tiles.

Варианты осуществления видеокодера 30, показанного на фиг. 3, дополнительно могут быть выполнены с возможностью разделения и/или кодирования изображения, используя секции (также называемые видеосекциями), где изображение может быть разделено на части или декодировано, используя одну или более секций (обычно неперекрывающихся), и каждая секция может содержать один или более блоков (например, CTU).Embodiments of video encoder 30 shown in FIG. 3 may further be configured to split and/or encode a picture using slices (also referred to as video slices), where the picture may be sliced or decoded using one or more slices (usually non-overlapping) and each slice may contain one or more blocks (for example, CTU).

Варианты осуществления видеодекодера 30, показанного на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения, используя группы плиток (также называемые группами видеоплиток) и/или плитки (также называемые видеоплитками), в которых изображение может разделяться или декодироваться, используя одну или более (обычно неперекрывающихся) групп плиток, и каждая группа плиток может содержать, например, один или более блоков (например, CTU) или одну или более плиток, где каждая плитка может иметь, например, прямоугольную форму и может содержать один или более блоков (например, CTU), например, полных или дробных блоков.Embodiments of video decoder 30 shown in FIG. 3 may be configured to split and/or decode an image using groups of tiles (also referred to as video tile groups) and/or tiles (also referred to as video tiles) in which an image may be split or decoded using one or more (typically non-overlapping) groups tiles, and each group of tiles may contain, for example, one or more blocks (eg, CTU) or one or more tiles, where each tile may be, for example, rectangular in shape and may contain one or more blocks (eg, CTU), for example , full or fractional blocks.

Другие варианты видеодекодера 30 могут использоваться для декодирования кодированных данных 21 изображения. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30 без преобразования может обратно квантовать остаточный сигнал напрямую, без блока 312 обратного преобразования, для некоторых блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обратного преобразования, объединенные в единый блок.Other versions of the video decoder 30 may be used to decode the encoded image data 21 . For example, decoder 30 may produce an output video stream without loop filtering unit 320 . For example, no transform decoder 30 may inversely quantize the residual signal directly, without inverse transform block 312, for some blocks or frames. In another implementation, video decoder 30 may have an inverse quantizer 310 and an inverse transform 312 combined into a single unit.

Следует понимать, что в кодере 20 и декодере 30, результат обработки текущего этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после фильтрации интерполяции, получения вектора движения или контурной фильтрации следующая операция, такая как сжатие Clip или сдвиг, может выполняться для результата процесса фильтрации интерполяции, получения вектора движения или контурной фильтрации.It should be understood that in encoder 20 and decoder 30, the processing result of the current stage may be further processed and then output to the next stage. For example, after the interpolation filtering, motion vector acquisition, or contour filtering, the next operation such as Clip compression or shifting may be performed on the result of the interpolation filtering, motion vector acquisition, or contour filtering process.

Следует заметить, что дальнейшие операции могут применяться к полученным векторам движения текущего блока (в том числе, но не ограничиваясь только этим, к управлению векторами движения точки аффинного режима, векторами движения субблока в аффинном режиме, планарном режиме, режиме ATMVP, к временным векторам движения и так далее). Например, значение вектора движения ограничивается заданным диапазоном, соответствующим представляющему его биту. Если представляющим битом вектора движения является bitDepth, то диапазон равен -2^ (bitDepth - 1) ~ 2^ (bitDepth -1)-1, где “^” означает возведение в степень. Например, если bitDepth установлена равной 16, диапазон равен -32768 ~ 32767; если bitDepth установлена равной 18, диапазон равен -131072~131071. Например, значение полученного вектора движения (например, MV из четырех субблоков 4x4 в одном блоке 8x8) ограничивается таким образом, что максимальная разность между целочисленными частями четырех субблоков MV 4x4 не превышает N пикселей, например, не более 1 пикселя. Здесь предоставлены два способа ограничения вектора движения, соответствующего bitDepth.It should be noted that further operations may be applied to the received motion vectors of the current block (including, but not limited to, affine mode point motion vector control, sub-block motion vectors in affine mode, planar mode, ATMVP mode, temporal motion vectors and so on). For example, the value of a motion vector is limited to a predetermined range corresponding to the bit that represents it. If the representing bit of the motion vector is bitDepth, then the range is -2^ (bitDepth - 1) ~ 2^ (bitDepth -1)-1, where “^” means exponentiation. For example, if bitDepth is set to 16, the range is -32768 ~ 32767; if bitDepth is set to 18, the range is -131072~131071. For example, the value of the obtained motion vector (eg, MV of four 4x4 subblocks in one 8x8 block) is limited such that the maximum difference between the integer parts of the four 4x4 MV subblocks does not exceed N pixels, for example, not more than 1 pixel. Two methods are provided here to limit the motion vector corresponding to bitDepth.

Способ 1: удалить MSB (most significant bit, старший значащий бит) переполнения посредством следующих операций:Method 1: remove the MSB (most significant bit) of the overflow through the following operations:

ux = (mvx+2bitDepth) % 2bitDepth … (1)ux = (mvx+2 bitDepth ) % 2 bitDepth … (1)

mvx = (ux >= 2bitDepth-1) ? (ux - 2bitDepth) : ux … (2)mvx = (ux >= 2 bitDepth-1 ) ? (ux - 2 bitDepth ) : ux … (2)

uy = (mvy+2bitDepth) % 2bitDepth … (3)uy = (mvy+2 bitDepth ) % 2 bitDepth … (3)

mvy = (uy >= 2bitDepth-1) ? (uy - 2bitDepth) : uy … (4)mvy = (uy >= 2 bitDepth-1 ) ? (uy - 2 bitDepth ) : uy … (4)

где mvx - горизонтальная составляющая вектора движения блока или субблока изображения, mvy - вертикальная составляющая вектора движения блока или субблока изображения, и ux и uy - соответствующие промежуточные значения. where mvx is the horizontal component of the motion vector of the image block or sub-block, mvy is the vertical component of the motion vector of the image block or sub-block, and ux and uy are the respective intermediate values.

Например, если значение mvx равно -32769, после применения формул (1) и (2) результирующее значение равно 32767. В компьютерной системе десятичные числа сохраняются как двоичные компоненты. Двоичным дополнительным кодом -31769 является 1,0111,1111,1111,1111 (17 битов), затем MSB отбрасывается, так что результирующим двоичным дополнительным кодом является 0111,1111,1111,1111 (десятичное число 32767), который является таким же, как выходной результат применения формул (1) и (2).For example, if the value of mvx is -32769, after formulas (1) and (2) are applied, the resulting value is 32767. In a computer system, decimal numbers are stored as binary components. The two's complement of -31769 is 1,0111,1111,1111,1111 (17 bits), then the MSB is discarded so that the resulting two's complement is 0111,1111,1111,1111 (decimal 32767), which is the same as the output result of applying formulas (1) and (2).

ux = (mvpx + mvdx + 2bitDepth) % 2bitDepth … (5)ux = (mvpx + mvdx + 2 bitDepth ) % 2 bitDepth … (5)

mvx = (ux >= 2bitDepth-1) ? (ux - 2bitDepth) : ux … (6)mvx = (ux >= 2 bitDepth-1 ) ? (ux - 2 bitDepth ) : ux … (6)

uy = (mvpy + mvdy + 2bitDepth) % 2bitDepth … (7)uy = (mvpy + mvdy + 2 bitDepth ) % 2 bitDepth … (7)

mvy = (uy >= 2bitDepth-1) ? (uy - 2bitDepth) : uy … (8)mvy = (uy >= 2 bitDepth-1 ) ? (uy - 2 bitDepth ) : uy … (8)

Операции могут применяться во время суммирования mvp и mvd, как показано в формулах (5)-(8).Operations can be applied during the summation of mvp and mvd, as shown in formulas (5)-(8).

Способ 2: удаляют MSB переполнения, ограничивая значение:Method 2: Remove the overflow MSB by limiting the value:

vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)vx = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vx)

vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)vy = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vy)

где vx - горизонтальная составляющая вектора движения блока или субблока изображения, vy - вертикальная составляющая вектора движения блока или субблока изображения, x, y и z - соответственно, три входных значения процесса MV сжатия и определение функции Clip3 проводится следующим образом:where vx is the horizontal component of the motion vector of the image block or sub-block, vy is the vertical component of the motion vector of the image block or sub-block, x, y and z are respectively the three input values of the compression process MV and the definition of the Clip3 function is as follows:

На фиг. 4 схематично показано устройство 400 видеокодирования, соответствующее варианту осуществления раскрытия. Устройство 400 видеокодирования, как описано здесь, пригодно для реализации раскрытых вариантов осуществления. В варианте осуществления устройство 400 видеокодирования может быть декодером, таким как видеодекодер 30, показанный на фиг. 1A, или кодером, таким как видеокодер 20, показанный на фиг. 1A. In FIG. 4 schematically shows a video encoding device 400 according to an embodiment of the disclosure. The video encoding device 400, as described here, is suitable for implementing the disclosed embodiments. In an embodiment, video encoder 400 may be a decoder, such as video decoder 30 shown in FIG. 1A or an encoder such as video encoder 20 shown in FIG. 1A.

Устройство 400 видеокодирования содержит порты 410 ввода (или входные порты 410) и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (central processing unit, CPU) 430 для обработки данных; блоки 440 передатчика (Tx) и порты 450 вывода (или выходные порты 450) для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодирования может также содержать оптоэлектрические (optical-to-electrical, OE) компоненты и электрооптические (electrical-to-optical, EO) компоненты, связанные с входными портами 410, блоками 420 приемника, блоками 440 передатчика 440 и выходными портами 450 для ввода или вывода оптических или электрических сигналов.The video encoder 400 includes input ports 410 (or input ports 410) and receiver (Rx) units 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for data processing; transmitter (Tx) blocks 440 and output ports 450 (or output ports 450) for data transmission; and a memory 460 for storing data. Video encoder 400 may also include optical-to-electrical (OE) components and electrical-to-optical (EO) components associated with input ports 410, receiver units 420, transmitter units 440 440, and output ports 450 for input. or output of optical or electrical signals.

Процессор 430 реализуется аппаратными средствами и программным обеспечением. Процессор 430 может быть реализован как одна или более микросхем CPU, ядер (например, как многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 осуществляет связь с входными портами 410, приемными блоками 420, передающими блоками 440, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует описанные выше раскрытые варианты осуществления. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или обеспечивают различные операции кодирования. Введение в состав модуля 470 кодирования поэтому обеспечивает существенное улучшение функциональности устройства 400 видеокодирования и преобразует устройство 400 видеокодирования в другое состояние. Альтернативно, модуль 470 кодирования реализуется как команды, хранящиеся в памяти 460 и исполняемые процессором 430.Processor 430 is implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), FPGA, ASIC, and DSP. Processor 430 communicates with input ports 410, receive units 420, transmit units 440, output ports 450, and memory 460. Processor 430 includes an encoder 470. Encoding module 470 implements the disclosed embodiments described above. For example, encoding module 470 implements, processes, prepares, or provides various encoding operations. The introduction of the encoding module 470 therefore provides a significant improvement in the functionality of the video encoding device 400 and converts the video encoding device 400 to a different state. Alternatively, encoding module 470 is implemented as instructions stored in memory 460 and executed by processor 430.

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

На фиг. 5 показана упрощенная блок-схема устройства 500, которое может использоваться в качестве одного из устройства 12 источника и устройства 14 назначения или того и другого, показанных на фиг. 1, в соответствии с примером варианта осуществления. In FIG. 5 shows a simplified block diagram of a device 500 that can be used as one of the source device 12 and destination device 14, or both, shown in FIG. 1 in accordance with an exemplary embodiment.

Процессор 502 в устройстве 500 может быть центральным процессором. Альтернативно, процессор 502 может быть любым другим типом устройства или многочисленными устройствами, способными управлять или обрабатывать информацию, существующую на текущий момент или полученную в дальнейшем. Хотя раскрытые реализации могут быть осуществлены с помощью единого процессора, как показано на чертеже, например, процессора 502, с помощью нескольких процессоров могут быть достигнуты преимущества по скорости и эффективности.Processor 502 in device 500 may be a central processing unit. Alternatively, the processor 502 may be any other type of device or multiple devices capable of managing or processing information currently in existence or later acquired. Although the disclosed implementations may be implemented with a single processor as illustrated, for example processor 502, speed and efficiency advantages may be achieved with multiple processors.

Память 504 в устройстве 500 при реализации может быть устройством постоянной памяти (ROM) или устройством оперативной памяти (RAM). В качестве памяти 504 может быть использован любой другой приемлемый тип запоминающего устройства.Memory 504 in device 500, when implemented, may be a Read Only Memory (ROM) device or a Random Access Memory (RAM) device. The memory 504 may be any other suitable type of storage device.

Память 504 может содержать управляющую программу и данные 506, к которым процессор 502 получает доступ, используя шину 512.Memory 504 may contain program code and data 506 that processor 502 accesses using bus 512.

Память 504 может дополнительно содержать операционную систему 508 и прикладные программы 510, где прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные здесь способы. Например, прикладные программы 510 могут содержать приложения 1-N, которые дополнительно содержат приложение видеокодирования, выполняющее описанные здесь способы.Memory 504 may further comprise an operating system 508 and application programs 510, where application programs 510 include at least one program that allows processor 502 to perform the methods described herein. For example, application programs 510 may comprise applications 1-N, which further comprise a video encoding application that performs the methods described herein.

Устройство 500 может также содержать одно или более устройств вывода, таких как дисплей 518. Дисплей 518 в одном из примеров может быть сенсорным дисплеем, который объединяет в себе дисплей с сенсорным элементом, дающим возможность воспринимать сенсорные входные данные. Дисплей 518 может быть связан с процессором 502 через шину 512. The device 500 may also include one or more output devices such as a display 518. The display 518 in one example may be a touch display that combines a display with a touch element that enables touch input to be received. Display 518 may be coupled to processor 502 via bus 512.

Хотя на чертеже шина изображена как единственная, шина 512 устройства 500 может состоять из нескольких шин. Дополнительно, внешняя память 514 может быть напрямую связана с другими компонентами устройства 500 или может быть доступна через сеть и может содержать единый интегрированный блок, такой как карта памяти или многочисленные блоки, такие как несколько карт памяти. Устройство 500 может, таким образом, быть реализовано с большим разнообразием конфигураций.Although shown as a single bus in the drawing, bus 512 of device 500 may be comprised of multiple buses. Additionally, the external memory 514 may be directly connected to other components of the device 500 or may be accessed via a network and may comprise a single integrated unit, such as a memory card, or multiple units, such as multiple memory cards. Device 500 may thus be implemented in a wide variety of configurations.

Раздел "Уровень техники" относится к режиму внутрикадрового предсказания.The "Background Art" section refers to the intra-prediction mode.

MIP (Matrix-based Intra Prediction, внутрикадровое предсказание на основе матрицы) and IBC (Intra Block Copy, копирование внутрикадровых блоков) являются двумя способами предсказания. MIP выполняет внутрикадровое предсказание, основываясь на заданных коэффициентах. В IBC значения выборок предсказываются, исходя из других выборок в том же самом изображении, с помощью вектора вектора смещения, называемого блочным вектором, способом, концептуально схожим с предсказанием компенсированного движения. MIP (Matrix-based Intra Prediction) and IBC (Intra Block Copy) are two prediction methods. MIP performs intra-frame prediction based on given coefficients. In IBC, sample values are predicted from other samples in the same picture using a displacement vector vector, called a block vector, in a manner conceptually similar to motion-compensated prediction.

Режим палитры является инструментом кодирования для кодирования контента экрана (screen content coding, SCC), чтобы повысить эффективность кодирования контентов экрана, таких как формируемое компьютером видео с существенным объемом текста и графики. В режиме палитры пиксели в блоке кодирования (coding unit, CU) представляются выбранными репрезентативными цветами, соответствующими характеристикам контентов экрана, в которых пиксельные значения обычно концентрируются на нескольких цветовых значениях. The palette mode is a coding tool for screen content coding (SCC) to improve the efficiency of coding screen contents such as computer-generated video with a significant amount of text and graphics. In palette mode, pixels in a coding unit (CU) are represented by selected representative colors corresponding to the characteristics of the screen contents, in which pixel values typically concentrate on a few color values.

В некоторых примерах режим MIP (или IBC или палитры) может применяться для компонента яркости. При выполнении получения режима внутрикадрового предсказания цветности, используя режим DM (режим получения из соответствующего компонента яркости), для режима DM назначаются специальные режимы (lumaIntraPredMode), если соответствующий блок яркости применяется с режимом MIP или IBC или палитры.In some examples, a MIP (or IBC or paletted) mode may be applied to the luma component. When performing intra-frame chrominance prediction mode acquisition using the DM mode (acquisition mode from the corresponding luma component), special modes (lumaIntraPredMode) are assigned to the DM mode if the corresponding luma block is applied with the MIP or IBC or palette mode.

Существуют многочисленные документы, относящиеся к процессу получения режима внутрикадрового предсказания цветности, например, ITU JVET-O0925 раскрывает установленный режим получения цветности (derive mode, DM) как планарный режим (Planar mode), если разрешается внутрикадровое предсказание, основанное на матрице (Matrix-based Intra Prediction, MIP), ITU JVET-O0258 раскрывает запрещаемый режим Intra Block Copy, IBC, для компонента цветности, ITU JVET-O0651 раскрывает установленный режим получения цветности (Chroma DM) как DC, если разрешается IBC.There are numerous documents related to the process of obtaining the intra-frame chrominance prediction mode, for example, ITU JVET-O0925 discloses the established derive mode (DM) as Planar mode if matrix-based intra-frame prediction is enabled. Intra Prediction, MIP), ITU JVET-O0258 exposes the inhibited Intra Block Copy, IBC mode for the chrominance component, ITU JVET-O0651 exposes the set chroma acquisition mode (Chroma DM) as DC if IBC is enabled.

В этом примере процесс получения цветности является следующим: In this example, the chroma acquisition process is as follows:

Входными данными этого процесса являются:The inputs to this process are:

- местоположение яркости (xCb, yCb), указывающее верхнюю-левую выборку текущего блока кодирования цветности относительно левой верхней выборки яркости текущего изображения,- luma location (xCb, yCb) indicating the top-left sample of the current chrominance coding block relative to the top-left sample of the luma of the current picture,

- переменная cbWidth, указывающая ширину текущего блока кодирования, выраженную в выборках яркости,- variable cbWidth indicating the width of the current coding block, expressed in luma samples,

- переменная cbHeight, указывающая высоту текущего блока кодирования, выраженную в выборках яркости.is a cbHeight variable indicating the height of the current encoding block, expressed in luma samples.

В этом процессе получают режим внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb].In this process, the intra-frame chroma prediction mode IntraPredModeC[xCb][yCb] is obtained.

Соответствующий режим внутрикадрового предсказания яркости lumaIntraPredMode получают следующим образом:The corresponding intra-frame luminance prediction mode lumaIntraPredMode is obtained as follows:

- Если intra_mip_flag[xCb][yCb] равен 1, lumaIntraPredMode устанавливают равным INTRA_PLANAR.- If intra_mip_flag[xCb][yCb] is 1, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, если CuPredMode[xCb][yCb] равен MODE_IBC, lumaIntraPredMode устанавливают равным INTRA_DC.- Otherwise, if CuPredMode[xCb][yCb] is equal to MODE_IBC, lumaIntraPredMode is set to INTRA_DC.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb+cbWidth /2][yCb + cbHeight/2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb+cbWidth /2][yCb + cbHeight/2].

В представленном выше процессе, intra_mip_flag[xCb][yCb], равный 1, указывает, что типом внутрикадрового предсказания для выборок яркости является внутрикадровое предсказание, основанное на матрице, и intra_mip_flag[xCb][yCb], равный 0, указывает, что типом внутрикадрового предсказания для выборок яркости не является внутрикадровое предсказание, основанное на матрице. In the above process, intra_mip_flag[xCb][yCb] equal to 1 indicates that the type of intra-prediction for luminance samples is matrix-based intra-prediction, and intra_mip_flag[xCb][yCb] equal to 0 indicates that the type of intra-prediction prediction for luminance samples is not matrix-based intra-frame prediction.

CuPredMode[xCb][yCb], равное MODE_IBC, указывает, что текущий блок предсказания применяется с режимом IBC. CuPredMode[xCb][yCb] equal to MODE_IBC indicates that the current prediction block is applied with IBC mode.

IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2] определяет режим внутрикадрового предсказания яркости для блока предсказания, содержащего положение (xCb + cbWidth / 2, yCb + cbHeight / 2), то есть, "середины" соответствующего блока предсказания яркости.IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2] defines the intra-frame luminance prediction mode for the prediction block containing the position (xCb + cbWidth / 2, yCb + cbHeight / 2), i.e., the "middle" of the corresponding luma prediction block .

В этом примере режим внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb] получают, используя intra_chroma_pred_mode[xCb][yCb] и lumaIntraPredMode, так показано в таблице 8-5 или в таблице 8-6, но существует также много других примеров или таблиц, которые могут использоваться для получения режима внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb]. Помимо представленного выше процесса, In this example, the intra-frame chroma prediction mode IntraPredModeC[xCb][yCb] is obtained using intra_chroma_pred_mode[xCb][yCb] and lumaIntraPredMode as shown in Table 8-5 or Table 8-6, but there are also many other examples or tables, which can be used to obtain the intra-frame chrominance prediction mode IntraPredModeC[xCb][yCb]. In addition to the above process,

intra_chroma_pred_mode[x0][y0] определяет режим внутрикадрового предсказания (индекс) для выборок цветности. Заметим, что это не окончательный режим внутрикадрового предсказания, более правильным было бы считать это значение как промежуточный индекс, как входные данные для получения окончательного режима внутрикадрового предсказания для выборок цветности.intra_chroma_pred_mode[x0][y0] defines the intra-frame prediction mode (index) for chrominance samples. Note that this is not the final intra prediction mode, it would be more correct to take this value as an intermediate index as input to obtain the final intra prediction mode for chrominance samples.

Таблица 8-5 Table 8-5

Спецификация IntraPredModeC[xCb][yCb], зависящая от intra_chroma_pred_mode[xCb][yCb]lumaIntraPredMode, где значение sps_cclm_enabled_flag равно 0IntraPredModeC[xCb][yCb] specification dependent on intra_chroma_pred_mode[xCb][yCb]lumaIntraPredMode where sps_cclm_enabled_flag is 0

intra_chroma_pred_mode[xCb][yCb]intra_chroma_pred_mode[xCb][yCb] lumaIntraPredModelumaIntraPredMode 00 5050 1818 11 X (0 <= X <= 66)X (0 <= X <= 66) 00 6666 00 00 00 00 11 5050 6666 5050 5050 5050 22 1818 1818 6666 1818 1818 33 11 11 11 6666 11 44 00 5050 1818 11 XX

Таблица 8-6 Table 8-6

Спецификация IntraPredModeC[xCb][yCb], зависящая от intra_chroma_pred_mode[xCb][yCb]lumaIntraPredMode, где значение sps_cclm_enabled_flag равно 1IntraPredModeC[xCb][yCb] specification dependent on intra_chroma_pred_mode[xCb][yCb]lumaIntraPredMode where sps_cclm_enabled_flag is 1

intra_chroma_pred_mode[xCb][yCb]intra_chroma_pred_mode[xCb][yCb] lumaIntraPredModelumaIntraPredMode 00 5050 1818 11 X (0 <= X <= 66)X (0 <= X <= 66) 00 6666 00 00 00 00 11 5050 6666 5050 5050 5050 22 1818 1818 6666 1818 1818 33 11 11 11 6666 11 44 8181 8181 8181 8181 8181 55 8282 8282 8282 8282 8282 66 8383 8383 8383 8383 8383 77 00 5050 1818 11 XX

В приведенных выше таблицах 8-5 и 8-6 флаг sps_cclm_enabled_flag, равный 0, определяет, что внутрикадровое предсказание линейной модели с перекрестными компонентами (Cross-Component Linear Model, CCLM) из компонента яркости в компонент цветности запрещается. Флаг sps_cclm_enabled_flag, равный 1 определяет, что внутрикадровое предсказание линейной модели с перекрестными компонентами из компонента яркости в компонент цветности разрешается.In Tables 8-5 and 8-6 above, the sps_cclm_enabled_flag set to 0 specifies that intra-frame prediction of a Cross-Component Linear Model (CCLM) from a luminance component to a chrominance component is disabled. The flag sps_cclm_enabled_flag equal to 1 specifies that intra-frame prediction of a linear model with cross components from the luminance component to the chrominance component is enabled.

В примере, раскрытом в представленном выше процессе, получают режим внутрикадрового предсказания яркости (lumaIntraPredMode) и затем режим внутрикадрового предсказания цветности (intra_chroma_pred_mode) получают, например, из битового потока. В соответствии со значением режима внутрикадрового предсказания яркости (lumaIntraPredMode) и значением syntax intra_chroma_pred_mode, выходной режим предсказания получают в соответствии с таблицами 8-5 и 8-6.In the example disclosed in the above process, the intra-frame luminance prediction mode (lumaIntraPredMode) is obtained, and then the intra-frame chroma prediction mode (intra_chroma_pred_mode) is obtained from the bitstream, for example. According to the value of intra-frame luminance prediction mode (lumaIntraPredMode) and the value of syntax intra_chroma_pred_mode, the output prediction mode is obtained in accordance with Tables 8-5 and 8-6.

В некоторых примерах, соответствующих таблицам 8-5 и 8-6, выходной режим может быть одним из 70 режимов. 70 режимов могут классифицироваться как 67 обычных режимов и три режима линейной модели с перекрестными компонентами (cross-component linear model, CCLM). 67 обычных режимов могут дополнительно разделяться на неугловые режимы (режимы планарный и DC) и 65 угловых режимов (режимы 2-66), как показано на фиг. 6.In some examples corresponding to tables 8-5 and 8-6, the output mode may be one of 70 modes. The 70 modes can be classified as 67 normal modes and three cross-component linear model (CCLM) modes. The 67 normal modes can be further divided into non-angular modes (planar and DC modes) and 65 angular modes (modes 2-66) as shown in FIG. 6.

Режимы 81, 82, 83 соответствуют трем режимам CCLM (линейной модели с перекрестными компонентами), которые соответствуют левому и верхнему линейному режиму (INTRA_LT_CCLM), левому линейному режиму (INTRA_L_CCLM) и верхнему линейному режиму (INTRA_T_CCLM). Эти режимы обобщены в таблице 8-3.Modes 81, 82, 83 correspond to the three CCLM (Cross Component Linear Model) modes, which correspond to Left and Top Linear Mode (INTRA_LT_CCLM), Left Linear Mode (INTRA_L_CCLM), and Top Linear Mode (INTRA_T_CCLM). These modes are summarized in Table 8-3.

Таблица 8-3 Table 8-3

Спецификация внутрикадрового режима и соответствующие названияIntra-frame specification and related names

Режим внутрикадрового предсказанияIntra prediction mode Соответствующее названиеAppropriate title 00 INTRA_PLANARINTRA_PLANAR 11 INTRA_DCINTRA_DC 2..662..66 INTRA_ANGULAR2..INTRA_ANGULAR66INTRA_ANGULAR2..INTRA_ANGULAR66 81..8381..83 INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLMINTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM

Несовпадение между положением флага MIP (или IBC) и положением режима внутрикадрового предсказания яркости может вызвать потенциальную проблему в получении режима внутрикадрового предсказания цветности. A mismatch between the position of the MIP (or IBC) flag and the position of the intra-frame luminance prediction mode can cause a potential problem in obtaining the intra-frame chrominance prediction mode.

А именно, флаг intra_mip_flag (или CuPredMode) выбирается из положения (xCb, yCb) яркости, тогда как режим внутрикадрового предсказания блока яркости выбирается из положения (xCb + cbWidth / 2, yCb + cbHeight / 2), как указано далее (определяется как процесс VVC получения режима внутрикадрового предсказания цветности).Namely, the intra_mip_flag (or CuPredMode) flag is selected from the position (xCb, yCb) of the luminance, while the intra-frame prediction mode of the luma block is selected from the position (xCb + cbWidth / 2, yCb + cbHeight / 2), as follows (defined as the process VVC receive intra-frame chroma prediction mode).

- Если значение intra_mip_flag[xCb][yCb] равно 1, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- If intra_mip_flag[xCb][yCb] is 1, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, если CuPredMode[xCb][yCb] равен MODE_IBC, lumaIntraPredMode устанавливают равным INTRA_DC.- Otherwise, if CuPredMode[xCb][yCb] is equal to MODE_IBC, lumaIntraPredMode is set to INTRA_DC.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

Когда CUPredMode[xCb][yCb] равно MODE_IBC, это указывает, что никакой режим внутрикадрового предсказания на определяется в рабочем проекте VVC.When CUPredMode[xCb][yCb] is equal to MODE_IBC, this indicates that no intra prediction mode is defined in the VVC working draft.

В примере, показанном на фиг. 7, разделение блока предсказания яркости и блока предсказания цветности в области кодирования (например, областью кодирования является CTU) не совпадает, когда разрешается способ кодирования двоичного дерева (одно разделение дерева для яркости и одно разделение дерева для цветности). Для упрощения, предполагается, что компонент цветности в CTU разделяется на две части, левое и правое субразделение (левый CTU на фиг. 7). Компонент яркости в CTU также разделяется на две части, однако, это верхнее и нижнее субразделение. Верхнее субразделение компонента яркости применяется с обычным режимом внутрикадрового предсказания, а нижнее субразделение применяется с режимом IBC (правый CTU на фиг. 7).In the example shown in FIG. 7, the division of the luminance prediction block and the chrominance prediction block in the coding region (eg, the coding region is CTU) does not match when the binary tree encoding method (one tree division for luma and one tree division for chroma) is enabled. For simplicity, it is assumed that the chrominance component in the CTU is divided into two parts, a left and a right subdivision (left CTU in FIG. 7). The luma component in the CTU is also split into two parts, however, this is an upper and lower subdivision. The upper subdivision of the luma component is applied with the normal intra prediction mode, and the lower subdivision is applied with the IBC mode (right CTU in FIG. 7).

В этом примере, показанном на фиг. 7, компонент цветности выполняет получение режима внутрикадрового предсказания цветности. В соответствии с процессом VVC получения режима внутрикадрового предсказания цветности, как описано выше, значение intra_mip_flag[xCb][yCb] равно 0, поскольку обычный режим внутрикадрового предсказания применяется для верхнего субразделения внутри компонента яркости, левым-верхним положением которого является (xCb, yCb). По той же причине CuPredMode[xCb][yCb] также не равно MODE_IBC, где положение (xCb, yCb) принадлежит верхнему субразделению компонента яркости и где блок применяется с обычным внутрикадровым предсказанием. Следовательно, получение режима внутрикадрового предсказания цветности будет извлекать значение обычного режима внутрикадрового предсказания яркости в (xCb + cbWidth / 2, yCb + cbHeight / 2) (то есть, IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight/2]). Однако, положение (xCb + cbWidth / 2, yCb + cbHeight / 2) теперь указывает на местоположение в нижнем субразделении компонента яркости (как показано в нижнем CTU на фиг. 7). Нижнее субразделение компонента яркости применяется вместе с IBC и никакой режим внутрикадрового предсказания яркости не определяется. Поэтому в текущей спецификации значение IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2] является неопределенным значением. В этом случае выхода за обычные пределы процесс получения режима внутрикадрового предсказания цветности нарушается. In this example, shown in FIG. 7, the chrominance component performs the acquisition of the intra-frame chrominance prediction mode. According to the VVC process of obtaining the intra-frame chrominance prediction mode as described above, the value of intra_mip_flag[xCb][yCb] is 0 because the normal intra-frame prediction mode is applied to the upper subdivision within the luminance component whose left-upper position is (xCb, yCb) . For the same reason, CuPredMode[xCb][yCb] is also not equal to MODE_IBC, where the position (xCb, yCb) belongs to the upper subdivision of the luma component and where the block is applied with normal intra prediction. Therefore, deriving the intra-frame chrominance prediction mode will retrieve the normal intra-luma prediction mode value in (xCb + cbWidth / 2, yCb + cbHeight / 2) (i.e., IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight/2]). However, the position (xCb + cbWidth / 2, yCb + cbHeight / 2) now points to a location in the lower subdivision of the luma component (as shown in the lower CTU in FIG. 7). Luma component lower sub-division is applied in conjunction with IBC and no intra-luma prediction mode is defined. Therefore, in the current specification, the value IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2] is an undefined value. In this case of going beyond the usual limits, the process of obtaining the intra-frame chrominance prediction mode is violated.

Пример, показанный на фиг. 7, является случаем выхода за обычные пределы, где два субподразделения в компоненте яркости применяются с обычным режимом внутрикадрового предсказания и режимом IBC, соответственно. Может быть установлено, что процесс получения цветности также нарушается, когда режим IBC заменяется на режим MIP или режим палитры.The example shown in FIG. 7 is an overrun case where two subdivisions in the luma component are applied with the conventional intra prediction mode and the IBC mode, respectively. It can be found that the color acquisition process is also broken when the IBC mode is changed to the MIP mode or the palette mode.

Местоположение (xCb, yCb) яркости указывает верхнюю-левую выборку текущего блока кодирования цветности относительно левой верхней выборки яркости текущего изображения.The luma location (xCb, yCb) indicates the top-left sample of the current chroma coding block relative to the top-left luminance sample of the current picture.

Получают значение (xCb, yCb) местоположения яркости для верхнего-левого местоположения компонента цветности текущего блока кодирования, значение (xCb, yCb) местоположения яркости определяют в выборке яркости текущего блока кодирования; получают значение первой информации указания (например, intra_mip_flag) для текущего блока кодирования, получают значение первой информации указания для текущего блока кодирования получают в соответствии с положением яркости (cbWidth/2, cbHeight/2) относительно верхней-левой выборки яркости текущего блока кодирования, cbWidth представляет ширину текущего блока кодирования, выраженную в выборках яркости, cbHeight представляет высоту текущего блока кодирования, выраженную в выборках яркости (xCb+cbWidth/2, yCb+cbHeight/2)).The luminance location value (xCb, yCb) of the top-left chrominance component location of the current coding block is obtained, the luminance location value (xCb, yCb) is determined in the luminance sample of the current coding block; get the value of the first indication information (eg, intra_mip_flag) for the current coding block, obtain the value of the first indication information for the current coding block, obtain according to the luminance position (cbWidth/2, cbHeight/2) relative to the top-left luminance sample of the current coding block, cbWidth represents the width of the current coding block in luma samples, cbHeight represents the height of the current coding block in luma samples (xCb+cbWidth/2, yCb+cbHeight/2)).

В качестве примера, показанного на фиг. 8, значением местоположения для верхнего-левого положения текущего изображения является (0, 0), а значением местоположения для верхнего-левого положения текущего блока кодирования является (128, 64). Ширина текущего блока кодирования равна 64, высота текущего блока кодирования равна 32. Следовательно, значение местоположения, которое используется для получения режима внутрикадрового предсказания равно ((128+ 64/2), 64+32/2)), то есть, (160, 80).As an example shown in FIG. 8, the location value for the top-left position of the current picture is (0, 0), and the location value for the top-left position of the current coding block is (128, 64). The width of the current coding block is 64, the height of the current coding block is 32. Therefore, the location value that is used to obtain the intra prediction mode is ((128+ 64/2), 64+32/2)), i.e., (160, 80).

В одном из вариантов осуществления настоящего изобретения положение флагов IBC или MIP совпадает с положением режима внутрикадрового предсказания яркости и применяется следующий процесс: In one embodiment of the present invention, the position of the IBC or MIP flags is the same as the position of the intra-frame luminance prediction mode, and the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, если CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC, lumaIntraPredMode устанавливается равным INTRA_DC- Otherwise, if CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC, lumaIntraPredMode is set to INTRA_DC

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В таком случае, снова принимая фиг. 7 в качестве примера, получение режима внутрикадрового предсказания цветности должно попадать на вторую ветвь (то есть, в противном случае, если CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC), lumaIntraPredMode устанавливается как режим DC.In such a case, again taking FIG. 7 as an example, obtaining the intra-frame chrominance prediction mode should fall on the second branch (that is, otherwise, if CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] is equal to MODE_IBC), lumaIntraPredMode is set to DC mode.

Спосб гарантирует, что режимы IBC и MIP обнаруживаются в первом месте, используя совпадающее положение, и, таким образом, переменная lumaIntraPredMode всегда должна назначаться вместе с действительным режимом внутрикадрового предсказания яркости. The method ensures that the IBC and MIP modes are detected in the first place using the matching position, and thus the variable lumaIntraPredMode must always be assigned along with the actual intra-luma prediction mode.

В одном из вариантов осуществления, когда положение флагов IBC или MIP совпадает с положением режима внутрикадрового предсказания яркости и их соответствующий режим внутрикадрового предсказания в обоих случаях устанавливается как планарный режим, применяется следующий процесс:In one embodiment, when the position of the IBC or MIP flags is the same as the position of the luminance intra prediction mode and their respective intra prediction mode is set to planar mode in both cases, the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1 или CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1 or CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В одном из вариантов осуществления, когда положение флагов IBC или MIP совпадает с положением режима внутрикадрового предсказания яркости и их соответствующий режим внутрикадрового предсказания в обоих случаях устанавливается как режим DC, применяется следующий процесс:In one embodiment, when the position of the IBC or MIP flags is the same as the position of the luminance intra prediction mode and their respective intra prediction mode is set to DC mode in both cases, the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1 или CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC, lumaIntraPredMode устанавливается равным INTRA_DC.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1 or CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC, lumaIntraPredMode is set to INTRA_DC.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В одном из вариантов осуществления настоящего изобретения положение флагов IBC или MIP совпадает с положением режима внутрикадрового предсказания яркости и применяется следующий процесс: In one embodiment of the present invention, the position of the IBC or MIP flags is the same as the position of the intra-frame luminance prediction mode, and the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, если CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight /2] равно MODE_IBC, lumaIntraPredMode устанавливается равным INTRA_DC- Otherwise, if CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight /2] is MODE_IBC, lumaIntraPredMode is set to INTRA_DC

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В одном из вариантов осуществления настоящего изобретения положение флагов IBC, MIP или палитры совпадает с положением режима внутрикадрового предсказания яркости и применяется следующий процесс: In one embodiment of the present invention, the position of the IBC, MIP, or palette flags is the same as the position of the intra-frame luminance prediction mode, and the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, если CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC или MODE_PLT, lumaIntraPredMode устанавливается равным INTRA_DC.- Otherwise, if CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC or MODE_PLT, lumaIntraPredMode is set to INTRA_DC.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В одном из вариантов осуществления настоящего изобретения положение флагов IBC, MIP или палитры совпадает с положением режима внутрикадрового предсказания яркости и применяется следующий процесс: In one embodiment of the present invention, the position of the IBC, MIP, or palette flags is the same as the position of the intra-frame luminance prediction mode, and the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1 или если CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC или MODE_PLT, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1 or if CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC or MODE_PLT, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В одном из вариантов осуществления настоящего изобретения положение флагов IBC, MIP или палитры совпадает с положением режима внутрикадрового предсказания яркости и применяется следующий процесс: In one embodiment of the present invention, the position of the IBC, MIP, or palette flags is the same as the position of the intra-frame luminance prediction mode, and the following process is applied:

- Если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1 или если CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC или MODE_PLT, lumaIntraPredMode устанавливается равным INTRA_DC.- If intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1 or if CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC or MODE_PLT, lumaIntraPredMode is set to INTRA_DC.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В одном из вариантов осуществления настоящего изобретения положение флагов IBC, MIP или палитры совпадает с положением режима внутрикадрового предсказания яркости и применяется следующий процесс: In one embodiment of the present invention, the position of the IBC, MIP, or palette flags is the same as the position of the intra-frame luminance prediction mode, and the following process is applied:

- если CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC или MODE_PLT, lumaIntraPredMode устанавливается равным INTRA_DC- if CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC or MODE_PLT, lumaIntraPredMode is set to INTRA_DC

- В противном случае, если значение intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1, lumaIntraPredMode устанавливается равным INTRA_PLANAR.- Otherwise, if intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 1, lumaIntraPredMode is set to INTRA_PLANAR.

- В противном случае, lumaIntraPredMode устанавливают равным IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].- Otherwise, lumaIntraPredMode is set to IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2].

В представленных выше вариантах осуществления используется CuPredMode[xCb + cbWidth / 2][yCb+ cbHeight / 2] или CuPredMode[i][xCb + cbWidth / 2][yCb + cbHeight /2]. Фактически, они определяют одну и ту же вещь, то есть, режим предсказания в положении (xCb + cbWidth / 2, yCb + cbHeight / 2) компонентов яркости. The above embodiments use CuPredMode[xCb + cbWidth / 2][yCb + cbHeight / 2] or CuPredMode[i][xCb + cbWidth / 2][yCb + cbHeight / 2]. In fact, they define the same thing, i.e., the prediction mode at the position (xCb + cbWidth / 2, yCb + cbHeight / 2) of the luma components.

Заметим, что CuPredMode[i][xCb + cbWidth / 2][yCb + cbHeight / 2] используется с одним или более размером определения компонентов яркости или цветности, где i=0 или 1.Note that CuPredMode[i][xCb + cbWidth / 2][yCb + cbHeight / 2] is used with one or more luma or chrominance component definition sizes, where i=0 or 1.

CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] представляет режим предсказания компонента яркости, поскольку его индекс размера равен 0. CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] represents the luma component prediction mode because its size index is 0.

ЕНсли используется канал цветности, соответствующая переменная должна быть CuPredMode[1][xCb + cbWidth / 2][yCb + cbHeight / 2].If a chrominance channel is used, the corresponding variable must be CuPredMode[1][xCb + cbWidth / 2][yCb + cbHeight / 2].

В представленном выше варианте осуществления, когда CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_PLT, это указывает, что компонент яркости в положении яркости (cbWidth / 2, cbHeight / 2) использует режим палитры. Положение (cbWidth / 2, cbHeight / 2) выборки определяет положение относительно верхней-левой выборки яркости текущего блока кодирования. Верхняя левая выборка текущего блока кодирования (xCb, yCb) определяет положение относительно верхней левой выборки текущего изображения.In the above embodiment, when CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is equal to MODE_PLT, this indicates that the luminance component at the luminance position (cbWidth / 2, cbHeight / 2) uses palette mode. The position (cbWidth / 2, cbHeight / 2) of the sample specifies the position relative to the top-left luma sample of the current coding block. The top left sample of the current coding block (xCb, yCb) defines a position relative to the top left sample of the current picture.

Пример положения (xCb+cbWidth/2, yCb+cbHeight/2) яркости показан на фиг. 7, где xCb = 128, yCb = 64, cbWidth = 64, cbHeight = 32.An example of the position (xCb+cbWidth/2, yCb+cbHeight/2) of the brightness is shown in FIG. 7, where xCb = 128, yCb = 64, cbWidth = 64, cbHeight = 32.

В частности, нижеследующие способы и варианты осуществления реализуются посредством устройства кодирования или декодирования. Устройство декодирования может быть видеодекодером 30, показанным на фиг. 1А, или декодером 30, показанным на фиг. 3. In particular, the following methods and embodiments are implemented by an encoder or decoder. The decoding device may be the video decoder 30 shown in FIG. 1A or decoder 30 shown in FIG. 3.

Устройство кодирования может быть видеокодером 20, показанным на фиг. 1А, или кодером 20, показанным на фиг. 2.The encoder may be the video encoder 20 shown in FIG. 1A or encoder 20 shown in FIG. 2.

В соответствии с вариантом 900 осуществления (фиг. 9), устройство получает первую информацию указания для положения яркости (cbWidth/2, cbHeight/2) текущего блока кодирования относительно верхнего левого положения выборки яркости (xCb, yCb) текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в компоненте яркости, cbHeight представляет высоту текущего блока кодирования в компоненте яркости на этапе 901. According to embodiment 900 (FIG. 9), the device obtains first indication information for the luminance position (cbWidth/2, cbHeight/2) of the current coding block relative to the upper left luminance sample position (xCb, yCb) of the current coding block, where cbWidth represents the width of the current coding block in the luminance component, cbHeight represents the height of the current coding block in the luminance component, in step 901.

Соответственно, cbWidth/2 представляет половину ширины текущего блока кодирования в компоненте яркости, а cbHeight/2 представляет половину высоты текущего блока кодирования в компоненте яркости. Абсолютным положением положения яркости (cbWidth/2, cbHeight/2) является (xCb+cbWidth/2, yCb+cbHeight/2), то есть, "середина" соответствующего блока предсказания яркости. Accordingly, cbWidth/2 represents half the width of the current coding block in the luminance component, and cbHeight/2 represents half the height of the current coding block in the luma component. The absolute position of the luminance position (cbWidth/2, cbHeight/2) is (xCb+cbWidth/2, yCb+cbHeight/2), that is, the "middle" of the corresponding luminance prediction block.

Например, первая информация инджикации для положения яркости (cbWidth/2, cbHeight/2) может быть intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2].For example, the first indication information for the brightness position (cbWidth/2, cbHeight/2) may be intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2].

На этапе 902, когда первая информация указания указывает, что внутрикадровое предсказание, основанное на матрице (Matrix-based Intra Prediction, MIP), применяется для компонента яркости в положении яркости (cbWidth/2, cbHeight/2) относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, устройство устанавливает значение режима внутрикадрового предсказания яркости, связанное с текущим блоком кодирования, как первое значение по умолчанию. Например, первое значение по умолчанию является значением планарного режима.In step 902, when the first indication information indicates that Matrix-based Intra Prediction (MIP) is applied to the luminance component at the luminance position (cbWidth/2, cbHeight/2) relative to the top-left position (xCb , yCb) luminance samples of the current coding block, the device sets the intra-frame luminance prediction mode value associated with the current coding block as the first default value. For example, the first default value is the planar mode value.

Когда intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 1, первая информация указания указывает, что MIP применяется для компонента яркости. When intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is equal to 1, the first indication information indicates that MIP is applied to the luma component.

На этапе 903, когда первая информация указания указывает, что MIP не применяется для компонента яркости в положении яркости (cbWidth/2, cbHeight/2) относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, устройство получает вторую информацию указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования.In step 903, when the first indication information indicates that MIP is not applied to the luminance component at the luminance position (cbWidth/2, cbHeight/2) relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block, the device acquires the second indication information for the position (cbWidth/2, cbHeight/2) of the luminance of the current coding block relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block.

Когда intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] равно 0, первая информация указания указывает, что MIP не применяется для компонента яркости. When intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2] is 0, the first indication information indicates that MIP is not applied to the luma component.

Например, первая информация инджикации для положения яркости (cbWidth/2, cbHeight/2) может быть intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2]. For example, the first indication information for the brightness position (cbWidth/2, cbHeight/2) may be intra_mip_flag[xCb + cbWidth / 2][yCb + cbHeight / 2].

На этапе 905, когда вторая информация указания указывает, что режим копирования блока внутрикадрового предсказания (Intra Block Copy, IBC) применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, устройство устанавливает значение режима внутрикадрового предсказания яркости, связанное с текущим блоком кодирования, как второе значение по умолчанию. Например, первое значение по умолчанию является значением планарного режима. In step 905, when the second indication information indicates that the intra block copy (Intra Block Copy, IBC) copy mode is applied to the luminance component at the luminance position (cbWidth/2, cbHeight/2) relative to the top-left position (xCb, yCb) of the sample luminance of the current coding block, the device sets the intra-frame luminance prediction mode value associated with the current coding block as the second default value. For example, the first default value is the planar mode value.

Когда CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_IBC, вторая информация указания указывает, что режим IBC применяется к компоненту яркости. Когда CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] равно MODE_PLT, вторая информация указания указывает, что для компонента яркости применяется режим палитры. When CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_IBC, the second indication information indicates that the IBC mode is applied to the luma component. When CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is MODE_PLT, the second indication information indicates that a palette mode is applied to the luminance component.

Когда вторая информация указания указывает, что режим IBC или режим палитры не применяется к компоненту яркости в положении (cbWidth/2, cbHeight/2) яркости, режим внутрикадрового предсказания яркости, связанный с текущим блоком кодирования, устанавливается как режим внутрикадрового предсказания яркости в положении [xCb +cbWidth/2][yCb + cbHeight/2], то есть, IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight / 2].When the second indication information indicates that the IBC mode or palette mode is not applied to the luminance component at the luminance position (cbWidth/2, cbHeight/2), the intra luminance prediction mode associated with the current coding block is set as the intra luminance prediction mode at the position [ xCb +cbWidth/2][yCb + cbHeight/2], that is, IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight / 2].

На этапе 907 устройство получает значение режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования. Если значение режима внутрикадрового предсказания яркости текущего блока кодирования является первым значением по умолчанию, показанным на этапе 902, устройство получает значение режима внутрикадрового предсказания яркости, основываясь на первом значении по умолчанию. Если значение режима внутрикадрового предсказания яркости текущего блока кодирования является вторым значением по умолчанию, показанным на этапе 905, устройство получает значение режима внутрикадрового предсказания яркости, основываясь на втором значении по умолчанию.In step 907, the device obtains the intra chroma prediction mode value based on the intra luma prediction mode value of the current coding block. If the intra-luma prediction mode value of the current coding block is the first default value shown in step 902, the device obtains the intra-luma prediction mode value based on the first default value. If the intra-luma prediction mode value of the current coding block is the second default value shown in step 905, the device obtains the intra-luma prediction mode value based on the second default value.

Подробная информация о получении режима внутрикадрового предсказания цветности, используя режим внутрикадрового предсказания из соответствующего компонента яркости, приводится в упомянутых выше вариантах осуществления.Detailed information on obtaining the intra-frame chrominance prediction mode using the intra-frame prediction mode from the corresponding luminance component is given in the above-mentioned embodiments.

На фиг. 10 показан вариант осуществления устройства 1000. Устройство 1000 может быть видеодекодером 30, показанным на фиг. 1А, или декодером 30, показанным на фиг. 3, или может быть видеокодером, показанным на фиг. 1А, или кодером 20, показанным на фиг. 2. Устройство 1000 может использоваться для реализации варианта осуществления 900 и других вариантов осуществления, описанных выше.In FIG. 10 shows an embodiment of device 1000. Device 1000 may be the video decoder 30 shown in FIG. 1A or decoder 30 shown in FIG. 3, or may be the video encoder shown in FIG. 1A or encoder 20 shown in FIG. 2. Device 1000 may be used to implement embodiment 900 and other embodiments described above.

Устройство 1000 для получения режима внутрикадрового предсказания цветности, содержит блок 1001 получения, блок 1002 установки и блок 1003 режима внутрикадрового предсказания цветности. Блок 1001 получения, выполненный с возможностью получения первой информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в компоненте яркости, cbHeight представляет высоту текущего блока кодирования в компоненте яркости. Блок 1002 установки, выполненный с возможностью установки значения режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, как первого значения по умолчанию, когда первая информация указания указывает, что внутрикадровое предсказание, основанное на матрице (Matrix-based Intra Prediction, MIP), применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования.The device 1000 for obtaining the intra-frame chrominance prediction mode includes an acquisition block 1001, a setting block 1002, and an intra-frame chrominance prediction mode block 1003. An obtaining unit 1001, configured to obtain first indication information for the position (cbWidth/2, cbHeight/2) of the brightness of the current coding block relative to the upper left position (xCb, yCb) of the brightness sample of the current coding block, where cbWidth represents the width of the current coding block in the component luminance, cbHeight represents the height of the current encoding block in the luma component. A setting unit 1002, configured to set the value of the intra-frame luminance prediction mode associated with the current coding block as the first default value when the first indication information indicates that Matrix-based Intra Prediction (MIP) is applied for the luminance component at the position (cbWidth/2, cbHeight/2) of the luminance relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block.

Блок 1001 получения, дополнительно выполненный с возможностью получения второй информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования, когда первая информация указания указывает, что MIP не применяется к компоненту яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования.Obtaining unit 1001, further configured to obtain second indication information for the luminance position (cbWidth/2, cbHeight/2) of the current coding block when the first indication information indicates that MIP is not applied to the luminance component at position (cbWidth/2, cbHeight/ 2) luminance relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block.

Блок 1002 установки, дополнительно выполненный с возможностью установки значения режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, как второго значения по умолчанию, когда вторая информация указания указывает, что режим копирования блока внутрикадрового предсказания (Intra Block Copy, IBC) или режим палитры применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования.A setting unit 1002, further configured to set the value of the intra-frame prediction luminance prediction mode associated with the current coding block as the second default value when the second indication information indicates that the copy mode of the intra-frame prediction block (Intra Block Copy, IBC) or the palette mode is applied for the luminance component at the position (cbWidth/2, cbHeight/2) of the luminance relative to the top-left position (xCb, yCb) of the luminance sample of the current coding block.

Блок 1003 режима внутрикадрового предсказания цветности выполнен с возможностью получения значения режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования.The intra chroma prediction mode block 1003 is configured to obtain an intra chroma prediction mode value based on the intra luma prediction mode value of the current coding block.

Настоящее раскрытие обеспечивает нижеследующий набор вариантов осуществления или подходов:The present disclosure provides the following set of embodiments or approaches:

В соответствии с первым подходом, изобретение связано со способом кодирования, реализуемым устройством декодирования и содержащим этапы, на которых:According to the first approach, the invention is related to an encoding method implemented by a decoding device and comprising the steps of:

получают значение первой информации указания для текущего блока кодирования, в котором значение первой информации указания для текущего блока кодирования получают из компонента яркости, соответствующего положению (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения выборки яркости текущего блока кодирования (xCb, yCb), где cbWidth представляет ширину текущего блока кодирования, выраженную в выборках яркости, cbHeight представляет высоту текущего блока кодирования, выраженную в выборках яркости;obtaining the value of the first indication information for the current coding block, in which the value of the first indication information for the current coding block is obtained from the luminance component corresponding to the position (cbWidth/2, cbHeight/2) of the luminance relative to the upper-left sampling position of the luminance of the current coding block (xCb, yCb), where cbWidth represents the width of the current coding block, expressed in luma samples, cbHeight represents the height of the current coding block, expressed in luma samples;

устанавливают значение режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, как первое значение по умолчанию, когда значение первой информации указания указывает, что внутрикадровое предсказание, основанное на матрице (Matrix-based Intra Prediction, MIP), применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхней-левой выборки яркости текущего блока кодирования (xCb, yCb).set the value of the luminance intra-frame prediction mode associated with the current coding block as the first default value when the value of the first indication information indicates that Matrix-based Intra Prediction (MIP) is applied to the luminance component at position ( cbWidth/2, cbHeight/2) luminance relative to the top-left luminance sample of the current coding block (xCb, yCb).

получают значение режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования.obtaining a chrominance intra-frame prediction mode value based on the luma intra-frame prediction mode value of the current coding block.

В соответствии со вторым подходом, изобретение связано со способом кодирования, реализуемым устройством декодирования и содержащим этапы, на которых:According to the second approach, the invention is related to an encoding method implemented by a decoding device and comprising the steps of:

получают значение первой информации указания для текущего блока кодирования, в котором значение первой информации указания для текущего блока кодирования получают из компонента яркости, соответствующего положению (cbWidth/2, cbHeight/2) яркости относительно верхней-левой выборки яркости текущего блока кодирования (xCb, yCb), где cbWidth представляет ширину текущего блока кодирования, выраженную в выборках яркости, cbHeight представляет высоту текущего блока кодирования, выраженную в выборках яркости;obtaining the value of the first indication information for the current coding block, in which the value of the first indication information for the current coding block is obtained from the luminance component corresponding to the position (cbWidth/2, cbHeight/2) of the luminance relative to the top-left luminance sample of the current coding block (xCb, yCb ), where cbWidth represents the width of the current coding block, expressed in luma samples, cbHeight represents the height of the current coding block, expressed in luma samples;

устанавливают значение режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, как первое значение по умолчанию, когда значение первой информации указания указывает, что режим копирования блока внутрикадрового предсказания (Intra Block Copy, IBC) или режим палитры применяется для компонента яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхней-левой выборки яркости текущего блока кодирования (xCb, yCb);set the value of the intra block prediction luminance mode associated with the current coding block as the first default value when the value of the first indication information indicates that the copy mode of the intra block copy (Intra Block Copy, IBC) or palette mode is applied to the luminance component at position (cbWidth /2, cbHeight/2) brightness relative to the top-left brightness sample of the current coding block (xCb, yCb);

получают значение режима внутрикадрового предсказания цветности, основываясь на значении режима внутрикадрового предсказания яркости текущего блока кодирования.obtaining a chrominance intra-frame prediction mode value based on the luma intra-frame prediction mode value of the current coding block.

Как обсуждалось выше, в традиционных случаях, связанных с MIP или IBC или палитрой (как в примере, показанном на фиг. 7), существует несоответствие между положением режима MIP (или IBC или палитры) и положением режима внутрикадрового предсказания яркости, когда разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева). При подходах и формах реализации изобретения получение первой информации указания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение MIP режима и положение режима внутрикадрового предсказания яркости совпадают, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева). Когда первая информация указания не указывает, что MIP применяется для компонента яркости в положении яркости (cbWidth/2, cbHeight/2), получение второй информации указания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение IBC режима и положение режима внутрикадрового предсказания яркости выравниваются, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева). Альтернативно, получение второй информации указания из фиксированного положения (cbWidth/2, cbHeight/2) в соответствующем компоненте яркости гарантирует, что положение палитры режима и положение режима внутрикадрового предсказания яркости выравниваются, когда при заданном размере блока разделение компонента яркости отличается от разделения компонента цветности (например, когда разрешен способ кодирования двоичного дерева).As discussed above, in conventional MIP or IBC or palette related cases (as in the example shown in FIG. 7), there is a mismatch between the position of the MIP (or IBC or palette) mode and the position of the intra-frame luminance prediction mode when separating the luminance component different from splitting the chrominance component (eg, when the binary tree encoding method is allowed). In the approaches and forms of the invention, obtaining the first indication information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luma component ensures that the position of the MIP mode and the position of the intra-frame luminance prediction mode are the same when, for a given block size, the division of the luminance component is different from separating the chrominance component (for example, when a binary tree encoding method is allowed). When the first indication information does not indicate that MIP is applied to the luminance component at the luminance position (cbWidth/2, cbHeight/2), obtaining the second indication information from the fixed position (cbWidth/2, cbHeight/2) at the corresponding luminance component ensures that the position The mode IBC and the intra-luma prediction mode position are aligned when, for a given block size, the luminance component separation is different from the chrominance component separation (eg, when the binary tree coding method is enabled). Alternatively, obtaining the second indication information from a fixed position (cbWidth/2, cbHeight/2) in the corresponding luminance component ensures that the mode palette position and the intra-frame luminance prediction mode position are aligned when, for a given block size, the luminance component separation is different from the chrominance component separation ( for example, when a binary tree encoding method is allowed).

Далее приводится объяснение применений способа кодирования, а также, способа декодирования, как они описаны в представленных выше вариантах осуществления, и использующей их системы.The following is an explanation of the applications of the encoding method as well as the decoding method as described in the above embodiments, and the system using them.

На фиг. 11 представлена блок-схема системы 3100 предоставления контента для реализации услуги распределения контента. Этот система 3100 поддержки контента содержит устройство 3102 получения изображения, оконечное устройство 3106 и, как вариант, содержит дисплей 3126. Устройство 3102 получения изображения осуществляет связь с оконечным устройством 3106 по каналу 3104 связи. Канал связи может содержать канал 13 связи, описанный выше. Линия 3104 связи содержит, но не ограничивается WI-FI, Ethernet, кабельную линию, беспроводную линию связи (3G/4G/5G), USB или их сочетание любого вида и т.п.In FIG. 11 is a block diagram of a content providing system 3100 for implementing a content distribution service. This content support system 3100 includes an image acquisition device 3102, a terminal device 3106, and optionally a display 3126. The image acquisition device 3102 communicates with the terminal device 3106 over a communication channel 3104. The communication channel may comprise the communication channel 13 described above. Link 3104 includes, but is not limited to, WI-FI, Ethernet, cable line, wireless link (3G/4G/5G), USB, or any combination thereof, and the like.

Устройство 3102 получения изображения генерирует данные и может кодировать данные по способу кодирования, как представлено в приведенных выше вариантах осуществления. Альтернативно, устройство 3102 получения изображения может распределять данные потоковому серверу (не показан на чертежах) и сервер кодирует данные и передает кодированные данные оконечному устройству 3106. Устройство 3102 получения изображения содержит, не ограничиваясь только этим, камеру, смартфон или планшет, компьютер или переносной компьютер, система видеоконференций, PDA, устройство, монтируемое на транспортном средстве, или сочетание любых из них и т.п. Например, устройство 3102 получения изображения может содержать устройство 12 источника, как описано выше. Когда данные содержат в себе видеоданные, причем видеокодер 20, содержащийся в устройстве 3102 получения изображения, реально может выполнять процесс видеокодирования. Когда данные содержат в себе аудиоданные (например, голосовые), аудиокодер, содержащийся в устройстве 3102 получения изображения, реально может выполнять процесс аудиокодирования. Для некоторых практических сценариев устройство 3102 получения изображения распределяет кодированные видеоданные и аудиоданные посредством мультиплексирования их вместе. Для других практических сценариев, например, в системе видеоконференций, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 получения изображения раздельно распределяет кодированные аудиоданные и кодированные видеоданные оконечному устройству 3106.The image pickup device 3102 generates data and may encode the data in an encoding method as shown in the above embodiments. Alternatively, the image pickup device 3102 may distribute the data to a streaming server (not shown in the drawings), and the server encodes the data and transmits the encoded data to the terminal device 3106. The image pickup device 3102 includes, but is not limited to, a camera, a smartphone or tablet, a computer, or a laptop. , videoconferencing system, PDA, vehicle-mounted device, or a combination of any of them, etc. For example, the image acquisition device 3102 may include a source device 12 as described above. When the data includes video data, the video encoder 20 included in the image pickup device 3102 can actually perform a video encoding process. When the data contains audio data (eg, voice), the audio encoder contained in the image pickup device 3102 can actually perform the audio encoding process. For some practical scenarios, the image acquisition device 3102 distributes encoded video data and audio data by multiplexing them together. For other practical scenarios, such as in a video conferencing system, encoded audio data and encoded video data are not multiplexed. The image pickup device 3102 separately distributes the encoded audio data and the encoded video data to the terminal device 3106.

В системе 3100 предоставления контента оконечное устройство 310 принимает и воспроизводит кодированные данные. Оконечное устройство 3106 может быть устройством с возможностями приема и реконструкции данных, таким как смартфон или планшет 3108, компьютером или переносным компьютером 3110, сетевым видеорекордером (NVR) / цифровым видеорекордером (digital video recorder, DVR) 3112, телевизионным приемником 3114, телевизионной приставкой (set top box, STB) 3116, системой 3118 видеоконференций, системой 3120 видеонаблюдения, персональным цифровым помощником (personal digital assistant, PDA) 3122, устройством 3124, монтируемым на транспортном средстве, или сочетанием любых из них и т.п., способным декодировать вышеупомянутые кодированные данные. Например, оконечное устройство 3106 может содержать устройство 14 назначения, как описано выше. Когда кодированные данные содержат в себе видеоданные, видеокодер 30, содержащийся в оконечном устройстве, имеет приоритет выполнения видеодекодирования. Когда кодированные данные содержат в себе аудиоданные, аудиодекодер 30, содержащийся в оконечном устройстве, имеет приоритет выполнения аудиодекодирования.In the content delivery system 3100, the terminal device 310 receives and reproduces the encoded data. Terminal device 3106 may be a device with data reception and reconstruction capabilities, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (digital video recorder, DVR) 3112, a television receiver 3114, a set-top box ( set top box (STB) 3116, a videoconferencing system 3118, a video surveillance system 3120, a personal digital assistant (PDA) 3122, a vehicle-mounted device 3124, or a combination of any of them, etc., capable of decoding the above encoded data. For example, terminal device 3106 may include a destination device 14 as described above. When the encoded data includes video data, the video encoder 30 included in the terminal has priority to perform video decoding. When the encoded data contains audio data, the audio decoder 30 contained in the terminal has priority to perform audio decoding.

Для оконечного устройства, имеющего дисплей, например, смартфон или планшет 3108, компьютер или переносной компьютер 3110, сетевой видеорекордер (NVR) / цифровой видеорекордер (DVR) 3112, телевизионный приемник 3114, персональный цифровой помощник (PDA) 3122, или устройство 3124, монтируемое на транспортном средстве, оконечное устройство может подавать декодированные данные на его дисплей. Для оконечного устройства, не имеющего дисплея, например, STB 3116, система 3118 видеоконференций или система 3120 видеонаблюдения, внешний дисплей 3116 осуществляет с ними связь и показывает декодированные данные.For a terminal device having a display, such as a 3108 smartphone or tablet, a 3110 computer or laptop, a 3112 Network Video Recorder (NVR)/Digital Video Recorder (DVR), a 3114 TV, a 3122 Personal Digital Assistant (PDA), or a 3124 mountable on the vehicle, the terminal may provide the decoded data to its display. For a terminal device that does not have a display, such as STB 3116, video conferencing system 3118 or video surveillance system 3120, an external display 3116 communicates with them and shows the decoded data.

Когда любое из устройств в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, показанные в упомянутых выше вариантах осуществления.When any of the devices in this system performs encoding or decoding, the image encoding device or the image decoding device shown in the above embodiments may be used.

На фиг. 12 представлена структура примера оконечного устройства 3106. После того, как оконечное устройство 3106 принимает поток от устройства 3102 получения изображения, блок 3202 протокола анализирует протокол передачи потока. Протокол содержит, не ограничиваясь только этим, протокол потоковой передачи в реальном времени (Real Time Streaming Protocol, RTSP), протокол передачи гипертекста (Hyper Text Transfer Protocol, HTTP), протокол живой потоковой передачи HTTP (HTTP Live streaming protocol, HLS), MPEG-DASH, транспортный протокол передачи в реальном времени (Real-time Transport protocol, RTP), протокол передачи сообщений в реальном времени (Real Time Messaging Protocol, RTMP) или их комбинацию любого вида и т.п.In FIG. 12 shows the structure of an example terminal device 3106. After the terminal device 3106 receives a stream from the image pickup device 3102, the protocol block 3202 parses the transmission protocol of the stream. The protocol includes, but is not limited to, Real Time Streaming Protocol (RTSP), Hyper Text Transfer Protocol (HTTP), HTTP Live streaming protocol (HLS), MPEG -DASH, Real-time Transport protocol (RTP), Real Time Messaging Protocol (RTMP), or any combination thereof, etc.

После того, как блок 3202 обработки протокола обработает поток, формируют потоковый файл. Файл выводят на блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференций, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208, не проходя через блок 3204 демультиплексирования. After the protocol processing unit 3202 processes the stream, a stream file is generated. The file is output to the demultiplexer 3204 . A demultiplexer 3204 may separate the multiplexed data into encoded audio data and encoded video data. As described above, for some practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and the audio decoder 3208 without passing through the demultiplexer 3204.

Посредством процесса демультиплексирования формируются элементарный видеопоток (elementary stream, ES), аудио ES и, как вариант, субтитры. Видеодекодер 3206, который содержит видеодекодер 30, как объяснялось в вышеупомянутых вариантах осуществления, декодирует видео ES способом декодирования, показанным в вышеупомянутых вариантах осуществления, чтобы сформировать видеокадр, и подает эти данные на блок 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES, чтобы сформировать аудиокадр, и подает эти данные на блок 3212 синхронизации. Альтернативно, видеокадр может быть сохранен в буфере (не показан на фиг. 12) перед его подачей на блок 3212 синхронизации. Аналогично, аудиокадр может быть сохранен в буфере (не показан на фиг. 12) перед его подачей на блок 3212 синхронизации.The demultiplexing process generates an elementary video stream (ES), audio ES, and optionally subtitles. The video decoder 3206, which includes the video decoder 30 as explained in the above embodiments, decodes the video ES by the decoding method shown in the above embodiments to form a video frame, and supplies this data to the synchronization block 3212. An audio decoder 3208 decodes the audio ES to form an audio frame and provides this data to a sync block 3212. Alternatively, the video frame may be stored in a buffer (not shown in FIG. 12) before being fed to the sync block 3212. Likewise, an audio frame may be stored in a buffer (not shown in FIG. 12) before being fed to the sync block 3212.

Блок 3212 синхронизации синхронизирует видеокадр и аудиокадр и предоставляет видео/аудио на видео/аудиодисплей 3214. Например, блок 3212 синхронизации синхронизирует представление видеоинформации и аудиоинформации. Информацию можно кодировать в синтаксисе, используя временные отметки, относящиеся к презентации кодированных аудио- и видеоданных, и временные отметки, относящиеся к передаче самого потока данных. The sync block 3212 synchronizes the video frame and the audio frame and provides video/audio to the video/audio display 3214. For example, the sync block 3212 synchronizes the presentation of video information and audio information. The information may be encoded in syntax using timestamps related to the presentation of the encoded audio and video data and timestamps related to the transmission of the data stream itself.

Если в поток включаются субтитры, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и аудиокадром и подает данные видео/аудио/субтитров на дисплей 3216 видео/аудио/субтитров.If subtitles are included in the stream, the subtitle decoder 3210 decodes the subtitles and synchronizes them with the video frame and the audio frame, and supplies the video/audio/subtitle data to the video/audio/subtitle display 3216.

Настоящее изобретение не ограничивается упомянутой выше системой и любое из таких устройств, как устройство кодирования изображения или устройство декодирования изображения, может быть введено в другую систему, например, в автомобильную систему. The present invention is not limited to the above system, and any of the devices such as an image encoding device or an image decoding device can be introduced into another system such as an automobile system.

Математические операторыMathematical Operators

Математические операторы, используемые в настоящей заявке, подобны тем, которые используются в языке программирования "С". Однако, результаты операций целочисленного разделения и арифметических сдвигов определяются более точно и определяются дополнительные операции, такие как возведение в степень и деление действительных значений. Правила нумерации и подсчета обычно начинаются с 0, например, "первый" эквивалентно 0-ому, "второй" эквивалентно 1-ому и т.д.The mathematical operators used in this application are similar to those used in the "C" programming language. However, the results of integer division operations and arithmetic shifts are defined more precisely and additional operations such as exponentiation and division of real values are defined. Numbering and counting rules usually start at 0, for example, "first" is equivalent to 0, "second" is equivalent to 1, and so on.

Арифметические операторыArithmetic operators

Приведенные ниже арифметические операторы определяются следующим образом:The following arithmetic operators are defined as follows:

++ СложениеAddition -- Вычитание (как двухаргументный оператор) или отрицание (как оператор одноаргументного префикса)Subtraction (as a two-argument operator) or negation (as a one-argument prefix operator) ** Умножение, в том числе, матричное умножениеMultiplication, including matrix multiplication xy x y Возведение в степень. Указывает x в степени y. В других контекстах такое обозначение используют для снабжения верхними индексами, не предназначенными для интерпретации как возведение в степень.Exponentiation. Specifies x to the power of y. In other contexts, this notation is used to provide superscripts not intended to be interpreted as exponentiation. // Целочисленное деление с усечением результата в направлении нуля. Например, 7/4 и -7/-4 усекаются до 1, а -7/4 и 7/-4 усекаются до -1.Integer division truncating the result towards zero. For example, 7/4 and -7/-4 are truncated to 1, and -7/4 and 7/-4 are truncated to -1. ÷÷ Используют для обозначения деления в математических уравнениях, в которых никакое усечение или округление не предполагается.Used to indicate division in mathematical equations in which no truncation or rounding is expected. Используют для обозначения разделения в математических уравнениях, в которых никакое усечение или округление не предполагается.Used to indicate separation in mathematical equations in which no truncation or rounding is expected. Суммирование f(i), где i принимает любые целочисленные значения от x до и включая y.Summation f(i), where i takes any integer value from x up to and including y. x % yx % y Модуль. Остаток от x, деленного на y, определяется только для целых чисел x и y, где x >= 0 и y > 0.Module. The remainder of x divided by y is only defined for integers x and y where x >= 0 and y > 0.

Логические операторыLogical operators

Приведенные ниже логические операторы определяются следующим образом:The logical operators below are defined as follows:

x && yx && y Булево логическое "И" x и yBoolean logical "AND" x and y x | | yx | | y Булево логическое "ИЛИ" x и yBoolean logical "OR" x and y !! Булево логическое "НЕ"Boolean logical "NOT" x ? y : zx? y : z Если x TRUE (истинно) или не равно 0, оценивают значение y; в противном случае, оценивают значение z.If x is TRUE (true) or not equal to 0, evaluate the value of y; otherwise, the z-value is evaluated.

Операторы отношенийRelationship operators

Приведенные ниже операторы соотношений определяются следующим образом:The ratio operators below are defined as follows:

>> Больше чемMore than >=>= Больше чем или равноGreater than or equal << Меньше чемLess than <=<= Меньше или равноLess or equal = === РавноEquals !=!= Не равноNot equal

Когда оператор соотношения применяют к элементу синтаксиса или переменной, которой было присвоено значение "na" (not applicable, не применяется), значение "na" для элемента синтаксиса или переменной рассматривается как отдельное значение. Значение "na" рассматривается как неравное никакому другому значению.When a ratio operator is applied to a syntax element or variable that has been assigned the value "na" (not applicable), the value "na" for the syntax element or variable is treated as a single value. The value "na" is treated as unequal to any other value.

Поразрядные операторыBitwise Operators

Приведенные ниже операторы соотношений определяются следующим образом:The ratio operators below are defined as follows:

&& Поразрядное "И". При работе с целочисленными аргументами, действует комплементарное представление 2 для целочисленного значения. При работе с двоичным аргументом, содержащим меньше битов, чем другой аргумент, более короткий аргумент расширяют, добавляя более старшие биты, равные 0.Bitwise "and". When working with integer arguments, the complementary representation of 2 for the integer value is in effect. When dealing with a binary argument containing fewer bits than another argument, the shorter argument is expanded to include more significant bits of 0. || Поразрядное "ИЛИ". При работе с целочисленными аргументами, действует комплементарное представление 2 для целочисленного значения. При работе с двоичным аргументом, содержащим меньше битов, чем другой аргумент, более короткий аргумент расширяют, добавляя более старшие биты, равные 0.Bitwise "OR". When working with integer arguments, the complementary representation of 2 for the integer value is in effect. When dealing with a binary argument containing fewer bits than another argument, the shorter argument is expanded to include more significant bits of 0. ^^ Побитовое "исключающее ИЛИ" При работе с целочисленными аргументами, действует комплементарное представление 2 для целочисленного значения. При работе с двоичным аргументом, содержащим меньше битов, чем другой аргумент, более короткий аргумент расширяют, добавляя более старшие биты, равные 0.Bitwise XOR When working with integer arguments, the complementary representation of 2 for the integer value is in effect. When dealing with a binary argument containing fewer bits than another argument, the shorter argument is expanded to include more significant bits of 0. x >> yx >> y Арифметический сдвиг вправо комплементарного целочисленного представления до 2 для двоичных цифр х * у. Эта функция определяется только для неотрицательных целочисленных значений у. Биты, смещенные в старшие значащие разряды (most significant bit, MSB) как результат сдвига вправо, имеют значение, равное MSB для х, предшествующего операции сдвига.Arithmetic right shift of the complementary integer representation up to 2 for the binary digits x * y. This function is only defined for non-negative integer values of y. Bits shifted to the most significant bit (MSB) as a result of a right shift have a value equal to the MSB for x preceding the shift operation. x << yx << y Арифметический сдвиг влево комплементарного целочисленного представления до 2 для двоичных цифр х * у. Эта функция определяется только для неотрицательных целочисленных значений у. Биты, смещенные в младшие значащие разряды (least significant bit, LSB) как результат сдвига влево, имеют значение, равное 0.Arithmetic left shift of complementary integer representation up to 2 for binary digits x * y. This function is only defined for non-negative integer values of y. Bits shifted to the least significant bit (LSB) as a result of a left shift have a value of 0.

Операторы присвоенияAssignment operators

Приведенные ниже арифметические операторы определяются следующим образом:The following arithmetic operators are defined as follows:

== Оператор присвоенияassignment operator + +++ Приращение вверх, то есть, x+ + эквивалентно x = x + 1; когда используется в матричном индексе, оценивает значение переменной перед операцией приращения вверх.Increment up, that is, x+ + is equivalent to x = x + 1; when used in a matrix index, evaluates the value of the variable before incrementing up. - -- - Приращение вниз, то есть, x- - эквивалентно x = x - 1; когда используется в матричном индексе, оценивает значение переменной перед операцией приращения вниз.Increment down, that is, x- - is equivalent to x = x - 1; when used in a matrix index, evaluates the value of the variable before incrementing down. +=+= Приращение вверх на указанную величину, то есть, x += 3 эквивалентно x = x + 3, и x += (-3) экивалентно x = x + (-3).Increment up by the specified amount, that is, x += 3 is equivalent to x = x + 3, and x += (-3) is equivalent to x = x + (-3). -=-= Приращение вниз на указанную величину, то есть, x -= 3 эквивалентно x = x - 3, и x -= (-3) экивалентно x = x - (-3).Increment down by the specified amount, that is, x -= 3 is equivalent to x = x - 3, and x -= (-3) is equivalent to x = x - (-3).

Обозначение диапазонаRange designation

Нижеследующее обозначение используется для указания диапазона значений.The following notation is used to indicate a range of values.

x = y..zx = y..z х принимает целочисленные значения, начиная с у до z, включительно, где x, y и z - целые числа и z больше, чем y.. x takes integer values from y to z, inclusive, where x, y, and z are integers and z is greater than y. .

Математические функцииMath functions

Определяются нижеследующие математические функции:The following mathematical functions are defined:

Asin(x)asin(x) тригонометрическая обратная синусная функция, действующая на аргументе х, который находится в диапазоне от -1,0 до 1,0, включительно, с выходным значением в диапазоне от -π÷2 до π÷2, включительно, в единицах раадиан.trigonometric inverse sine function, acting on the x argument, which is in the range -1.0 to 1.0, inclusive, with an output value in the range -π÷2 to π÷2, inclusive, in units of raadians. Atan(x)Atan(x) тригонометрическая обратная тангенсная функция, действующая на аргументе х, с выходным значением в диапазоне от -π÷2 до π÷2, включительно, в единицах радиан.trigonometric inverse tangent function, acting on the argument x, with an output value in the range -π÷2 to π÷2, inclusive, in units of radians.

Ceil(x) - наименьшее целое числе, большее или равное х.Ceil(x) is the smallest integer greater than or equal to x.

Clip1Y(x) = Clip3(0, (1 << BitDepthY) - 1, x)Clip1 Y (x) = Clip3(0, (1 << BitDepth Y ) - 1, x)

Clip1C(x) = Clip3(0, (1 << BitDepthC) - 1, x)Clip1 C (x) = Clip3(0, (1 << BitDepth C ) - 1, x)

Cos(x) - тригонометрическая косинусная функция, действующая на аргументе х в единицах радиан.Cos(x) is a trigonometric cosine function acting on the argument x in units of radians.

Floor(x) наибольшее целое числе, меньшее или равное х.Floor(x) is the largest integer less than or equal to x.

Ln(x) - натуральный логарифм x (логарифм по основанию e, где e - базовая постоянная натурального логарифма 2.718 281 828…).Ln(x) - natural logarithm of x (logarithm to base e, where e is the base constant of the natural logarithm 2.718 281 828…).

Log2(x) - логарифм х по основанию 2.Log2(x) - base 2 logarithm of x.

Log10(x) - логарифм x по основанию 10.Log10(x) - base 10 logarithm of x.

Round(x) = Sign(x) * Floor(Abs(x) + 0.5)Round(x) = Sign(x) * Floor(Abs(x) + 0.5)

Sin(x) - тригонометрическая синусная функция, действующая на аргументе х в единицах радиан.Sin(x) is a trigonometric sine function acting on the x argument in units of radians.

Sqrt(x) = Sqrt(x) =

Swap(x, y) = (y, x)Swap(x, y) = (y, x)

Tan(x) - тригонометрическая тангенсная функция, действующая на аргументе х в единицах радиан.Tan(x) is a trigonometric tangent function acting on the x argument in units of radians.

Порядок очередности выполнения операцийOrder of precedence of operations

Когда порядок выполнения операций в выражении не указан явно, используя скобки, применяют следующие правила.When the order of operations in an expression is not explicitly specified using parentheses, the following rules apply.

- Операции с более высоким приоритетом вычисляют перед любой операцией более низкого приоритета.- Operations with a higher priority are evaluated before any operation with a lower priority.

- Операции равного приоритета вычисляются последовательно слева направо.- Operations of equal precedence are evaluated sequentially from left to right.

Приведенная ниже таблица указывает приоритет операций в порядке от самого высшего к самому низшему; более высокое положение в таблице указывает более высокий приоритетThe table below lists the priority of operations in order from highest to lowest; a higher position in the table indicates a higher priority

Для тех операций, которые также используются в языке программирования С, порядок приоритетов, используемый в настоящем описании является таким же, как он используется в языке программирования С.For those operations that are also used in the C programming language, the order of precedence used in this specification is the same as that used in the C programming language.

Таблица: Очередность выполнения операций от наивысшей (вверху таблицы) к наинизшей (внизу таблицы).Table: Order of execution of operations from highest (top of the table) to lowest (bottom of the table).

операции (с операндами x, y и z)operations (with operands x, y and z) "x++", "x- -""x++", "x- -" "!x", "-x" (в качестве унарного оператора префикса)"!x", "-x" (as unary prefix operator) xy x y "x * y", "x / y", "x ÷ y", "", "x % y""x * y", "x / y", "x ÷ y", "", "x % y" "x + y", "x - y" (в качестве двухаргументного оператора), """x + y", "x - y" (as a two-argument operator), " " "x << y", "x >> y""x << y", "x >> y" "x < y", "x <= y", "x > y", "x >= y""x < y", "x <= y", "x > y", "x >= y" "x = = y", "x != y""x == y", "x != y" "x & y""x & y" "x | y""x|y" "x && y""x && y" "x | | y""x||y" "x ? y : z""x? y: z" "x..y""x..y" "x = y", "x += y", "x -= y""x = y", "x += y", "x -= y"

Текстовое описание логических операцийText description of logical operations

В тексте оператор логических операций, как он должен быть описан математически в следующей форме:In the text, the operator of logical operations, as it should be described mathematically in the following form:

if(condition 0)if(condition 0)

statement 0statement 0

else if(condition 1)else if(condition 1)

statement 1statement 1

else /* informative remark on remaining condition */else /* informative remark on remaining condition */

statement nstatement n

может быть записано следующим образом:can be written like this:

… как следует / … применяется следующее:… as follows / … the following applies:

- If condition 0, statement 0- If condition 0, statement 0

- Otherwise, if condition 1, statement 1Otherwise, if condition 1, statement 1

- …- ...

- Otherwise (информационное замечание по остающемуся условию), оператор n- Otherwise (informational note on the remaining condition), operator n

Каждый оператор "If … Otherwise, if … Otherwise, …" в тексте вводится с помощью "… as follows" или "… the following applies" непосредственно сопровождается "If … ". Последним условием "If … Otherwise, if … Otherwise, …" всегда означает "В противном случае, …". Interleaved "If … Otherwise, if … Otherwise, …", которые могут идентифицироваться совпадением "… as follows" или "… the following applies" с окончанием "Otherwise, …".Each "If … Otherwise, if … Otherwise, …" statement in the text is entered with "… as follows" or "… the following applies" immediately followed by "If … ". The last condition "If … Otherwise, if … Otherwise, …" always means "Otherwise, …". Interleaved "If … Otherwise, if … Otherwise, …", which can be identified by matching "… as follows" or "… the following applies" ending in "Otherwise, …".

В тексте оператор логических операций, как он должен быть описан математически в следующей форме:In the text, the operator of logical operations, as it should be described mathematically in the following form:

if(condition 0a && condition 0b)if(condition 0a && condition 0b)

statement 0statement 0

else if(condition 1a | | condition 1b)else if(condition 1a | | condition 1b)

statement 1statement 1

elseelse

statement nstatement n

может быть записано следующим образом:can be written like this:

… как следует / … применяется следующее:… as follows / … the following applies:

- If all of the following conditions are true, statement 0:- If all of the following conditions are true, statement 0:

- condition 0a- condition 0a

- condition 0b- condition 0b

- Otherwise, if one or more of the following conditions are true, statement 1:- Otherwise, if one or more of the following conditions are true, statement 1:

- condition 1a- condition 1a

- condition 1b- condition 1b

- …- ...

- Otherwise, statement n-Otherwise, statement n

В тексте оператор логических операций, как он должен быть описан математически в следующей форме:In the text, the operator of logical operations, as it should be described mathematically in the following form:

if(condition 0)if(condition 0)

statement 0statement 0

if(condition 1)if(condition 1)

statement 1statement 1

может быть записано следующим образом:can be written like this:

When condition 0, statement 0When condition 0, statement 0

When condition 1, statement 1When condition 1, statement 1

Хотя варианты осуществления изобретения были описаны, в первую очередь, основываясь на видеокодировании, следует заметить, что варианты осуществления системы 10 кодирования, кодер 20 и декодер 30 (и, соответственно, система 10) и другие варианты осуществления, описанные здесь, могут также быть выполнены с возможностью применения при обработке фотографий или при кодировании, то есть, при обработке или кодировании индивидуального изображения, независимо от любого предыдущего или последующего изображения, как при видеокодировании. В целом, только блоки 244 (кодер) и 344 (декодер) межкадрового предсказания могут быть недоступны в случае, когда кодирование при обработке изображения ограничивается одиночным изображением 17. Although embodiments of the invention have been described primarily based on video coding, it should be noted that embodiments of encoding system 10, encoder 20 and decoder 30 (and thus system 10) and other embodiments described herein may also be performed with the possibility of application in photo processing or in encoding, that is, in the processing or encoding of an individual image, regardless of any previous or subsequent image, as in video encoding. In general, only the inter prediction blocks 244 (encoder) and 344 (decoder) may be unavailable in the case where image processing coding is limited to a single image 17.

Все другие функциональные возможности (также упоминаемые как инструменты или технологии) видеокодера 20 и видеодекодера 30 могут, в равной степени, использоваться для обработки фотографий, например, вычисление 204/304 остатка, преобразование 206, квантование 208, обратное квантование 210/310, (обратное) преобразование 212/312, деление на части 262/362, внутрикадровое предсказание 254/354, и/или контурная фильтрация 220, 320, энтропийное кодирование 270 и энтропийное декодирование 304. All other functionality (also referred to as tools or technologies) of video encoder 20 and video decoder 30 can equally be used for photo processing, e.g. ) transform 212/312, partitioning 262/362, intra prediction 254/354, and/or loop filtering 220, 320, entropy coding 270, and entropy decoding 304.

Варианты осуществления, например, кодера 20 и декодера 30, и функции, описанные здесь, например, со ссылкой на кодер 20 и декодер 30, могут быть реализованы аппаратными средствами, программным обеспечением, встроенным программным обеспечением или любым их сочетанием. При реализации в программном обеспечении функции могут франиться на считываемом компьютером носителе или передаваться через средства связи в виде одной или более команд или кода и исполняться процессором на основе аппаратных средств. Считываемый компьютером носитель может содержать считываемый компьютером носитель запоминающего устройства, соответствующий физическому носителю, такому как носитель запоминающего устройства для хранения данных, или среду связи, содержащую любой носитель, облегчающий передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемый компьютером носитель, в целом, может соответствовать (1) физическому считываемому компьютером носителю запоминающего устройства, являющемуся непереносным, или (2) носителю связи, такому как сигнал или несущая. Носитель запоминающего устройства для хранения данных может быть любым доступным носителем, к которому может получать доступ один или более компьютеров один или более компьютеров или один или более процессоров, чтобы восстанавливать команды, управляющую программу и/или структуры данных для реализации технологий, описанных в настоящем раскрытии. Компьютерный программный продукт может содержать считываемый компьютером носитель.Embodiments of, for example, encoder 20 and decoder 30, and the functions described herein, for example, with reference to encoder 20 and decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored on a computer-readable medium or transmitted via communications as one or more instructions or code and executed by a processor in hardware. The computer-readable medium may comprise a computer-readable storage medium corresponding to a physical medium, such as a storage medium for data storage, or a communication medium comprising any medium facilitating the transfer of a computer program from one place to another, such as according to a communication protocol. Thus, computer-readable media may generally correspond to (1) physical, computer-readable storage media that is non-portable, or (2) a communication medium such as a signal or carrier. A storage media can be any available media that can be accessed by one or more computers, one or more computers, or one or more processors to retrieve instructions, control program, and/or data structures for implementing the technologies described in this disclosure. . The computer program product may include a computer-readable medium.

Для примера, но не для ограничения, такой считываемый компьютером носитель запоминающего устройства может содержать оперативную память (RAM), постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), компакт-диск (CD-ROM) или другое запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемой управляющей программы в форме команд или структур данных и может быть доступен компьютеру. Кроме того, любое соединение соответственно называется считываемым компьютером носителем. Например, если команды передаются с веб-сайта, сервера или от другого удаленного источника, используя коаксиальный кабель, оптический кабель, витую пару, цифровую абонентскую линию (digital subscriber line, DSL) или беспроводные технологии, такие как инфракрасная, радиоволновая или микроволновая, то тогда коаксиальный кабель, оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная, радиоволновая или микроволновая, содержатся в определении носителя. Однако, следует понимать, что считываемый компьютером носитель запоминающего устройства для хранения данных и носитель запоминающего устройства данных могут не содержать соединения, несущие, сигналы или другие переносные носители, но являться непереносными физическими носителями для хранения данных. Диски содержат компакт-диски (CD)ерные диски, оптические диски, универсальные цифровые диски (DVD), дискеты и диски Blu-ray, где одни диски обычно воспроизводят данные магнитным способом, тогда как другие диски воспроизводят данные оптически с помощью лазеров. Сочетания вышеперечисленного также могут содержаться в рамках объема считываемых компьютером носителей.By way of example, and not limitation, such computer-readable storage media may comprise random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), a compact disc (CD-ROM), or other storage device on optical disks, magnetic disk storage or other magnetic storage devices, flash memory or any other medium that can be used to store the desired control program in the form of instructions or data structures and can be accessed by a computer. In addition, any connection is appropriately referred to as a computer-readable medium. For example, if commands are transmitted from a website, server, or other remote source using coaxial cable, optical cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio wave, or microwave, then then coaxial cable, optical cable, twisted pair, DSL, or wireless technologies such as infrared, radio wave, or microwave are contained in the media definition. However, it should be understood that computer-readable storage media and storage media may not contain connections, carriers, signals, or other portable media, but be non-transferable physical storage media. The discs include compact discs (CD) black discs, optical discs, digital versatile discs (DVDs), floppy disks and Blu-ray discs, where some discs typically reproduce data magnetically while other discs reproduce data optically using lasers. Combinations of the above may also be included within the scope of computer-readable media.

Команды могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (digital signal processor, DSP), универсальные микропроцессоры, специализированные интегральные схемы (application-specific integrated circuit, ASIC), программируемые логические интегральные схемы (field programmable gate array, FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин "процессор", как он используется здесь, может относиться к любой из вышеперечисленных структур или к любой другой структуре, пригодной для реализации описанных здесь технологий. Кроме того, в некоторых вариантах функциональные возможности, представленные в настоящем описании, могут быть обеспечены в рамках специализированных аппаратных средств и/или в модулях программного обеспечения, выполненных с возможностью кодирования и декодирования, или могут содержаться объединенном кодеке. Кроме того, технологии могут быть полностью реализованы в одной или нескольких схемах или логических элементах.Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application-specific integrated circuits (ASICs), field programmable gate arrays, FPGA) or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the above structures, or to any other structure suitable for implementing the technologies described here. In addition, in some embodiments, the functionality presented herein may be provided within dedicated hardware and/or software modules capable of encoding and decoding, or may be contained in a combined codec. In addition, technologies may be fully implemented in one or more circuits or logic elements.

Технологии, описанные в настоящем раскрытии, могут быть реализованы широким разнообразием устройств, в том числе, беспроводным мобильным телефоном, интегральной схемой (integrated circuit, IC) или набором IC (например, набором чипов). Различные компоненты, модули или блоки описываются в насоящем раскрытии, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью осуществления раскрытых технологий, но не обязательно требующих реализации с помощью различных аппаратных блоков. Точнее, как описано выше, различные блоки могут объединяться в аппаратный блок кодера-декодера или могут обеспечиваться с помощью набора способных к взаимодействию аппаратных средств, содержащих один или более процессоров, как описано выше, в сочетании с соответствующим программным обеспечением и встроенным программным обеспечением.The technologies described in this disclosure may be implemented by a wide variety of devices, including a wireless mobile phone, an integrated circuit (IC), or an IC stack (eg, a stack of chips). Various components, modules, or blocks are described in this disclosure to emphasize the functional aspects of devices capable of implementing the disclosed technologies, but not necessarily requiring implementation with different hardware blocks. More specifically, as described above, the various blocks may be combined into an encoder/decoder hardware block, or may be provided by a set of interoperable hardware comprising one or more processors as described above, in combination with appropriate software and firmware.

Claims (58)

1. Способ кодирования, реализуемый устройством декодирования или устройством кодирования, содержащий этапы, на которых:1. An encoding method implemented by a decoding device or an encoding device, comprising the steps of: получают информацию указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в выборках яркости, cbHeight представляет высоту текущего блока кодирования в выборках яркости;obtaining indication information for the position (cbWidth/2, cbHeight/2) of the luminance of the current coding block relative to the top-left position (xCb, yCb) of the luminance samples of the current coding block, where cbWidth represents the width of the current coding block in luma samples, cbHeight represents the height of the current block coding in luma samples; устанавливают значение режима внутрикадрового предсказания яркости, ассоциированного с текущим блоком кодирования, в качестве первого значения по умолчанию, когда значение информации указания указывает, что внутрикадровое предсказание, основанное на матрице (MIP), применяется для выборок яркости в положении (cbWidth/2, cbHeight/2) яркости относительно положения (xCb, yCb) верхней-левой выборки яркости текущего блока кодирования (xCb, yCb); иset the value of the intra-frame luminance prediction mode associated with the current coding block as the first default value when the value of the indication information indicates that matrix-based intra-frame prediction (MIP) is applied to the luminance samples at position (cbWidth/2, cbHeight/ 2) luminance relative to the position (xCb, yCb) of the top-left luminance sample of the current coding block (xCb, yCb); And получают значение режима внутрикадрового предсказания цветности на основе значения режима внутрикадрового предсказания яркости текущего блока кодирования.obtaining an intra-frame chrominance prediction mode value based on the intra-frame luminance prediction mode value of the current coding block. 2. Способ по п. 1, в котором первое значение по умолчанию равно значению планарного режима или первое значение по умолчанию равно значению режима DC.2. The method of claim 1, wherein the first default value is equal to the planar mode value or the first default value is equal to the DC mode value. 3. Способ по п. 1 или 2, дополнительно содержащий этап, на котором: устанавливают значение режима внутрикадрового предсказания яркости,3. The method of claim 1 or 2, further comprising: setting an intra-frame luminance prediction mode value, ассоциированного с текущим блоком кодирования, в качестве второго значения по умолчанию, когда режим копирования блока внутрикадрового предсказания (Intra Block Copy, IBC) или режим палитры применяется для положения (cbWidth/2, cbHeight/2) яркости, а информация указания указывает, что MIP не применяется для выборок яркости в положении (cbWidth/2, cbHeight/2) яркости относительно положения (xCb, yCb) верхней-левой выборки яркости текущего блока кодирования.associated with the current coding block as the second default when the Intra Block Copy (IBC) block copy mode or palette mode is applied to the position (cbWidth/2, cbHeight/2) of the luminance, and the indication information indicates that the MIP does not apply to luminance samples at position (cbWidth/2, cbHeight/2) of luminance relative to position (xCb, yCb) of the top-left luma sample of the current coding block. 4. Способ по п. 3, в котором второе значение по умолчанию равно значению режима DC или значению планарного режима.4. The method of claim 3, wherein the second default value is the DC mode value or the planar mode value. 5. Способ по любому из пп. 1-4, в котором разделение компонента яркости и разделение компонента цветности текущего блока кодирования не совпадают друг с другом.5. The method according to any one of paragraphs. 1-4, in which the luma component division and the chroma component division of the current coding block do not match each other. 6. Способ по любому из пп. 1-5, в котором абсолютным положением положения яркости (cbWidth/2, cbHeight/2) является (xCb+cbWidth/2, yCb+cbHeight/2), причем абсолютное положение (xCb+cbWidth/2, yCb+cbHeight/2) определяет положение относительно верхней левой выборки текущего изображения; положение (cbWidth/2, cbHeight/2) яркости определяет положение относительно положения (xCb, yCb) верхней левой выборки яркости текущего блока кодирования.6. The method according to any one of paragraphs. 1-5, in which the absolute position of the brightness position (cbWidth/2, cbHeight/2) is (xCb+cbWidth/2, yCb+cbHeight/2), and the absolute position is (xCb+cbWidth/2, yCb+cbHeight/2) determines the position relative to the top left sample of the current image; the position (cbWidth/2, cbHeight/2) of the luminance specifies a position relative to the position (xCb, yCb) of the upper left luminance sample of the current coding block. 7. Способ по любому из пп. 3-5, в котором, когда режим IBC или режим палитры применяется к выборкам яркости в положении (cbWidth/2, cbHeight/2) яркости,7. The method according to any one of paragraphs. 3-5, wherein when the IBC mode or palette mode is applied to the luminance samples at the luminance position (cbWidth/2, cbHeight/2), CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] равно MODE_IBC или MODE_PLT, соответственно.CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] is equal to MODE_IBC or MODE_PLT, respectively. 8. Способ по любому из пп. 1-7, в котором, когда информация указания указывает, что MIP применяется к выборкам яркости в положении (cbWidth/2, cbHeight/2) яркости,8. The method according to any one of paragraphs. 1-7, wherein when the indication information indicates that the MIP is applied to the luminance samples at the luminance position (cbWidth/2, cbHeight/2), значение intra_mip_flag[xCb+cb Width/2][yCb+cbHeight/2] равно 1.the value of intra_mip_flag[xCb+cb Width/2][yCb+cbHeight/2] is 1. 9. Способ кодирования, реализуемый устройством декодирования или устройством кодирования, содержащий этапы, на которых:9. An encoding method implemented by a decoding device or an encoding device, comprising the steps of: получают информацию указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в выборках яркости, cbHeight представляет высоту текущего блока кодирования в выборках яркости;obtaining indication information for the position (cbWidth/2, cbHeight/2) of the luminance of the current coding block relative to the top-left position (xCb, yCb) of the luminance samples of the current coding block, where cbWidth represents the width of the current coding block in luma samples, cbHeight represents the height of the current block coding in luma samples; устанавливают значение режима внутрикадрового предсказания яркости, связанного с текущим блоком кодирования, в качестве первого значения по умолчанию, когда значение информации указания указывает, что режим копирования блока внутрикадрового предсказания (IBC) или режим палитры применяется для выборок яркости в положении (cbWidth/2, cbHeight/2) яркости относительно положения (xCb, yCb) верхней-левой выборки яркости текущего блока кодирования; иset the value of the intra-frame prediction luma prediction mode associated with the current coding block as the first default value when the value of the indication information indicates that the intra-frame prediction block (IBC) copy mode or palette mode is applied to the luminance samples at position (cbWidth/2, cbHeight /2) luminance relative to the position (xCb, yCb) of the top-left luminance sample of the current coding block; And получают значение режима внутрикадрового предсказания цветности на основе значения режима внутрикадрового предсказания яркости текущего блока кодирования.obtaining an intra-frame chrominance prediction mode value based on the intra-frame luminance prediction mode value of the current coding block. 10. Способ по п. 9, в котором первое значение по умолчанию равно значению планарного режима или значению режима DC.10. The method of claim 9, wherein the first default value is either a planar mode value or a DC mode value. 11. Способ по п. 9 или 10, в котором разделение компонента яркости и разделение компонента цветности текущего блока кодирования не совпадают друг с другом.11. The method according to claim 9 or 10, wherein the luma component split and the chroma component split of the current coding block do not match each other. 12. Способ по любому из пп. 9-11, в котором способ дополнительно содержит этап, на котором:12. The method according to any one of paragraphs. 9-11, wherein the method further comprises: устанавливают значение режима внутрикадрового предсказания яркости текущего блока кодирования в качестве второго значения по умолчанию, когда режим внутрикадрового предсказания, основанный на матрице (MIP), применяется к выборкам яркости в положении (cbWidth/2, cbHeight/2) яркости и информация указания указывает, что режим IBC или режим палитры не применяется к положению (cbWidth/2, cbHeight/2) яркости.set the luminance intra-frame prediction mode value of the current coding block as the second default value when the matrix-based intra-frame prediction (MIP) mode is applied to the luminance samples at the luminance position (cbWidth/2, cbHeight/2) and the indication information indicates that IBC mode or paletted mode does not apply to the position (cbWidth/2, cbHeight/2) of the brightness. 13. Способ по п. 12, в котором второе значение по умолчанию равно значению планарного режима.13. The method of claim 12, wherein the second default value is equal to the planar mode value. 14. Способ по любому из пп. 9-13, в котором абсолютным положением для положения яркости (cbWidth/2, cbHeight/2) является (xCb+cbWidth/2, yCb+cbHeight/2), причем абсолютное положение (xCb+cbWidth/2, yCb+cbHeight/2) определяет положение относительно верхней левой выборки текущего изображения; положение (cbWidth/2, cbHeight/2) яркости определяет положение относительно положения (xCb, yCb) верхней левой выборки яркости текущего блока кодирования.14. The method according to any one of paragraphs. 9-13, in which the absolute position for the brightness position (cbWidth/2, cbHeight/2) is (xCb+cbWidth/2, yCb+cbHeight/2), and the absolute position is (xCb+cbWidth/2, yCb+cbHeight/2 ) defines the position relative to the top left selection of the current image; the position (cbWidth/2, cbHeight/2) of the luminance specifies a position relative to the position (xCb, yCb) of the upper left luminance sample of the current coding block. 15. Способ по п. 12 или 13, в котором, когда MIP применяется к положению (cbWidth/2, cbHeight/2) яркости,15. The method of claim 12 or 13, wherein when the MIP is applied to the position (cbWidth/2, cbHeight/2) of the brightness, значение intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] равно 1.the value of intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] is 1. 16. Способ по любому из пп. 9-15, в котором, когда режим IBC или режим палитры применяется к положению (cbWidth/2, cbHeight/2) яркости,16. The method according to any one of paragraphs. 9-15, in which, when the IBC mode or palette mode is applied to the position (cbWidth/2, cbHeight/2) of the brightness, CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] равно MODE_IBC или MODE_PLT, соответственно.CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] is equal to MODE_IBC or MODE_PLT, respectively. 17. Устройство получения режима внутрикадрового предсказания цветности, содержащее:17. A device for obtaining an intra-frame color prediction mode, comprising: один или более процессоров; иone or more processors; And энергонезависимый считываемый компьютером носитель хранения данных, соединенный с процессорами и хранящий программы для выполнения процессорами, вызывающие при исполнении процессорами, выполнение устройством:a non-volatile computer-readable storage medium connected to the processors and storing programs for execution by the processors, causing, when executed by the processors, the execution of a device: получения первой информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в выборках яркости, cbHeight представляет высоту текущего блока кодирования в выборках яркости;obtaining first indication information for the position (cbWidth/2, cbHeight/2) of the luminance of the current coding block relative to the top-left position (xCb, yCb) of the luminance samples of the current coding block, where cbWidth represents the width of the current coding block in luminance samples, cbHeight represents the height of the current coding unit in luma samples; установки значения режима внутрикадрового предсказания яркости, ассоциированного с текущим блоком кодирования, в качестве первого значения по умолчанию, когда значение информации указания указывает, что внутрикадровое предсказание, основанное на матрице (MIP), применяется для выборок яркости в положении (cbWidth/2, cbHeight/2) яркости относительно положения (xCb, yCb) верхней-левой выборки яркости текущего блока кодирования;setting the value of the intra-frame luminance prediction mode associated with the current coding block as the first default value when the value of the indication information indicates that matrix-based intra-frame prediction (MIP) is applied to the luminance samples at position (cbWidth/2, cbHeight/ 2) luminance relative to the position (xCb, yCb) of the top-left luminance sample of the current coding block; получения второй информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования, когда первая информация указания указывает, что MIP не применяется к выборкам яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования;obtaining second indication information for the luminance position (cbWidth/2, cbHeight/2) of the current coding block, when the first indication information indicates that MIP is not applied to the luminance samples at the luminance position (cbWidth/2, cbHeight/2) relative to the top-left position (xCb, yCb) luminance samples of the current coding block; установки значения режима внутрикадрового предсказания яркости, ассоциированного с текущим блоком кодирования, в качестве второго значения по умолчанию, когда второе значение информации указания указывает, что режим копирования блока внутрикадрового предсказания (IBC) или режим палитры применяется для выборок яркости в положении (cbWidth/2, cbHeight/2) яркости относительно положения (xCb, yCb) верхней-левой выборки яркости текущего блока кодирования; иsetting the value of the intra-frame prediction luma prediction mode associated with the current coding block as the second default value when the second value of the indication information indicates that the intra-frame prediction block (IBC) copy mode or palette mode is applied to the luminance samples at the position (cbWidth/2, cbHeight/2) luminance relative to the position (xCb, yCb) of the top-left luminance sample of the current coding block; And получения значения режима внутрикадрового предсказания цветности на основе значения режима внутрикадрового предсказания яркости текущего блока кодирования.obtaining an intra-frame chrominance prediction mode value based on the intra-frame luminance prediction mode value of the current coding block. 18. Устройство по п. 17, в котором первой информацией указания является intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2], причем18. The apparatus of claim 17, wherein the first indication information is intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2], wherein когда intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] равно 1, первая информация указания указывает, что MIP применяется к выборкам яркости.when intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] is equal to 1, the first indication information indicates that MIP is applied to the brightness samples. 19. Устройство по п. 17 или 18, в котором второй информацией является CuPredMode[0] [xCb+cbWidth/2][yCb+cbHeight/2], при этом19. The device according to claim 17 or 18, in which the second information is CuPredMode[0] [xCb+cbWidth/2][yCb+cbHeight/2], while когда CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] равно MODE_IBC или MODE_PLT, вторая информация указания указывает, что к выборкам яркости применяется режим IBC или режим палитры.when CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] is MODE_IBC or MODE_PLT, the second indication information indicates that the IBC mode or palette mode is applied to the brightness samples. 20. Устройство по любому из пп. 17-19, в котором первое значение по умолчанию является значением планарного режима, а второе значение по умолчанию является значением режима DC.20. The device according to any one of paragraphs. 17-19, in which the first default value is the planar mode value and the second default value is the DC mode value. 21. Устройство по любому из пп. 17-20, в котором устройство является декодером или кодером.21. The device according to any one of paragraphs. 17-20, wherein the device is a decoder or encoder. 22. Устройство по любому из пп. 17-21, в котором разделение компонента яркости и разделение компонента цветности текущего блока кодирования не совпадают.22. The device according to any one of paragraphs. 17-21, in which the luma component division and the chroma component division of the current coding block do not match. 23. Кодер (20), содержащий схему обработки для выполнения способа по любому из пп. 1-16.23. Encoder (20), containing the processing circuit for performing the method according to any one of paragraphs. 1-16. 24. Декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 1-16.24. Decoder (30), containing the processing circuit for performing the method according to any one of paragraphs. 1-16. 25. Энергонезависимый машиночитаемый носитель данных, хранящий компьютерный программный продукт, содержащий управляющую программу для выполнения способа по любому из пп. 1-16.25. A non-volatile computer-readable storage medium that stores a computer program product containing a control program for performing the method according to any one of paragraphs. 1-16. 26. Устройство получения режима внутрикадрового предсказания цветности, содержащее:26. A device for obtaining an intra-frame color prediction mode, comprising: блок (1001) получения, выполненный с возможностью получения первой информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования, где cbWidth представляет ширину текущего блока кодирования в выборках яркости, cbHeight представляет высоту текущего блока кодирования в выборках яркости;obtaining block (1001) configured to obtain first indication information for the position (cbWidth/2, cbHeight/2) of the brightness of the current coding block relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block, where cbWidth represents the width of the current block coding in luma samples, cbHeight represents the height of the current coding block in luma samples; блок (1002) установки, выполненный с возможностью установки значения режима внутрикадрового предсказания яркости, ассоциированного с текущим блоком кодирования, в качестве первого значения по умолчанию, когда первая информация указания указывает, что внутрикадровое предсказание, основанное на матрице (MIP), применяется к выборкам яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования;a setting unit (1002), configured to set the value of the intra-frame luminance prediction mode associated with the current coding block as a first default value when the first indication information indicates that matrix-based intra-frame prediction (MIP) is applied to the luminance samples at the position (cbWidth/2, cbHeight/2) of the brightness relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block; блок (1001) получения, дополнительно выполненный с возможностью получения второй информации указания для положения (cbWidth/2, cbHeight/2) яркости текущего блока кодирования, когда первая информация указания указывает, что MIP не применяется к компоненту яркости в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования;acquisition unit (1001), further configured to obtain second indication information for the luminance position (cbWidth/2, cbHeight/2) of the current coding block when the first indication information indicates that MIP is not applied to the luminance component at position (cbWidth/2, cbHeight/2) brightness relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block; блок (1002) установки, дополнительно выполненный с возможностью установки значения режима внутрикадрового предсказания яркости, ассоциированного с текущим блоком кодирования, в качестве второго значения по умолчанию, когда вторая информация указания указывает, что к выборкам яркости применяется режим копирования блока внутрикадрового предсказания (IBC) или режим палитры в положении (cbWidth/2, cbHeight/2) яркости относительно верхнего-левого положения (xCb, yCb) выборки яркости текущего блока кодирования; иa setting unit (1002), further configured to set the value of the intra-frame prediction luma prediction mode associated with the current coding block as a second default value when the second indication information indicates that the intra-frame prediction block (IBC) copy mode is applied to the luminance samples, or the palette mode at the position (cbWidth/2, cbHeight/2) of the brightness relative to the top-left position (xCb, yCb) of the brightness sample of the current coding block; And блок (1003) режима внутрикадрового предсказания цветности, выполненный с возможностью получения значения режима внутрикадрового предсказания цветности на основе значения режима внутрикадрового предсказания яркости текущего блока кодирования.an intra chroma prediction mode block (1003), configured to obtain an intra chroma prediction mode value based on an intra luminance prediction mode value of the current coding block. 27. Устройство по п. 26, в котором первой информацией указания является intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2], причем27. The apparatus of claim 26, wherein the first indication information is intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2], wherein когда intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] равно 1, первая информация указания указывает, что MIP применяется к выборкам яркости.when intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] is equal to 1, the first indication information indicates that MIP is applied to the brightness samples. 28. Устройство по п. 26 или 27, в котором второй информацией является CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2], при этом28. The device according to claim 26 or 27, in which the second information is CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2], while когда CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] равно MODE_IBC или MODE_PLT, вторая информация указания указывает, что к выборкам яркости применяется режим IBC или режим палитры.when CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] is MODE_IBC or MODE_PLT, the second indication information indicates that the IBC mode or palette mode is applied to the brightness samples. 29. Устройство по любому из пп. 26-28, в котором первое значение по умолчанию является значением планарного режима, а второе значение по умолчанию является значением режима DC.29. The device according to any one of paragraphs. 26-28, in which the first default value is the planar mode value and the second default value is the DC mode value. 30. Устройство по любому из пп. 26-29, в котором устройство является декодером или кодером.30. The device according to any one of paragraphs. 26-29, wherein the device is a decoder or encoder.
RU2022104557A 2019-07-24 2020-07-17 Coder, decoder and corresponding methods related to intra-frame prediction mode RU2801112C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EPPCT/EP2019/069944 2019-07-24
EPPCT/EP2019/072611 2019-08-23

Publications (1)

Publication Number Publication Date
RU2801112C1 true RU2801112C1 (en) 2023-08-02

Family

ID=

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070077609A (en) * 2006-01-24 2007-07-27 삼성전자주식회사 Method and apparatus for deciding intra prediction mode
CN100461867C (en) * 2004-12-02 2009-02-11 中国科学院计算技术研究所 Inage predicting encoding method in frame
US8891620B2 (en) * 2011-06-20 2014-11-18 JVC Kenwood Corporation Picture coding device, picture coding method, picture coding program, picture decoding device, picture decoding method, and picture decoding program
US9426461B2 (en) * 2011-01-15 2016-08-23 Huawei Technologies Co., Ltd. Method for binarizing intra prediction mode and method, apparatus, and system for decoding intra prediction mode
WO2017143467A1 (en) * 2016-02-22 2017-08-31 Mediatek Singapore Pte. Ltd. Localized luma mode prediction inheritance for chroma coding
US9807401B2 (en) * 2011-11-01 2017-10-31 Qualcomm Incorporated Transform unit partitioning for chroma components in video coding
RU2662393C1 (en) * 2013-03-29 2018-07-25 ДжейВиСи КЕНВУД КОРПОРЕЙШН Device and method of decoding images, long-term computer readable recorded medium, to which the image decoding program is recorded, for decoding information
RU2016139140A (en) * 2011-11-04 2018-12-13 Инфобридж Пте. Лтд. Video Decoding Device
CN109862353A (en) * 2018-12-29 2019-06-07 浙江大华技术股份有限公司 Chroma block prediction modes acquisition methods, device, codec and storage device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461867C (en) * 2004-12-02 2009-02-11 中国科学院计算技术研究所 Inage predicting encoding method in frame
KR20070077609A (en) * 2006-01-24 2007-07-27 삼성전자주식회사 Method and apparatus for deciding intra prediction mode
US9426461B2 (en) * 2011-01-15 2016-08-23 Huawei Technologies Co., Ltd. Method for binarizing intra prediction mode and method, apparatus, and system for decoding intra prediction mode
US8891620B2 (en) * 2011-06-20 2014-11-18 JVC Kenwood Corporation Picture coding device, picture coding method, picture coding program, picture decoding device, picture decoding method, and picture decoding program
US9807401B2 (en) * 2011-11-01 2017-10-31 Qualcomm Incorporated Transform unit partitioning for chroma components in video coding
RU2016139140A (en) * 2011-11-04 2018-12-13 Инфобридж Пте. Лтд. Video Decoding Device
RU2662393C1 (en) * 2013-03-29 2018-07-25 ДжейВиСи КЕНВУД КОРПОРЕЙШН Device and method of decoding images, long-term computer readable recorded medium, to which the image decoding program is recorded, for decoding information
WO2017143467A1 (en) * 2016-02-22 2017-08-31 Mediatek Singapore Pte. Ltd. Localized luma mode prediction inheritance for chroma coding
CN109862353A (en) * 2018-12-29 2019-06-07 浙江大华技术股份有限公司 Chroma block prediction modes acquisition methods, device, codec and storage device

Similar Documents

Publication Publication Date Title
WO2020221203A1 (en) An encoder, a decoder and corresponding methods of intra prediction
EP3932076B1 (en) An encoder, a decoder and corresponding methods for intra prediction
JP7332703B2 (en) Method and apparatus for affine-based inter-prediction of chroma sub-blocks
JP7366149B2 (en) An encoder, decoder, and corresponding method for harmonizing matrix-based intra-prediction and quadratic transform core selection
JP7314300B2 (en) Method and apparatus for intra prediction
AU2020318106B2 (en) An encoder, a decoder and corresponding methods related to intra prediction mode
CN113660489B (en) Decoding method, apparatus, decoder and storage medium for intra sub-division
JP2023126795A (en) Method and apparatus for chroma intra prediction in video coding
AU2020227859B2 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
RU2801112C1 (en) Coder, decoder and corresponding methods related to intra-frame prediction mode
CN113891084B (en) Intra prediction mode dependent encoder, decoder, corresponding methods and computer readable medium
RU2801326C2 (en) Coder, decoder and corresponding methods using allocated ibc buffer and default value updated brightness and colour component