RU2801589C2 - Encoder, decoder and corresponding methods using dct2 high level permission flag - Google Patents

Encoder, decoder and corresponding methods using dct2 high level permission flag Download PDF

Info

Publication number
RU2801589C2
RU2801589C2 RU2021123533A RU2021123533A RU2801589C2 RU 2801589 C2 RU2801589 C2 RU 2801589C2 RU 2021123533 A RU2021123533 A RU 2021123533A RU 2021123533 A RU2021123533 A RU 2021123533A RU 2801589 C2 RU2801589 C2 RU 2801589C2
Authority
RU
Russia
Prior art keywords
dct2
flag
transform
sps
mts
Prior art date
Application number
RU2021123533A
Other languages
Russian (ru)
Other versions
RU2021123533A (en
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 Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2021123533A publication Critical patent/RU2021123533A/en
Application granted granted Critical
Publication of RU2801589C2 publication Critical patent/RU2801589C2/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: invention relates to image block video encoding means. A residual signal of the resulting inter- or intra-prediction image is obtained. Carry out the derivation of the use of the DCT2 transformation kernel for the sequence of the residual signal. The block transformation is processed using the derived transformation kernel. In which the use of the DCT2 transformation kernel is derived from the sequence level DCT2 enable flag in the sequence parameter set (SPS).
EFFECT: improved compression ratio with minimal loss of image quality or no such loss at all.
47 cl, 11 dwg, 4 tbl

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИCROSS-REFERENCE TO RELATED APPLICATIONS

Данная патентная заявка испрашивает приоритет по предварительной патентной заявке США № 62/791,674, поданной 11 января 2019 года, раскрытие вышеупомянутой патентной заявки включается в данный документ путем ссылки в полном объеме.This patent application claims priority from U.S. Provisional Patent Application No. 62/791,674, filed January 11, 2019, the disclosure of the above patent application is incorporated herein by reference in its entirety.

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

Варианты осуществления настоящей заявки (раскрытия) в целом относятся к области обработки изображений и, более конкретно, к высокоуровневому управлению адаптивным по форме блока выбором типа преобразования.Embodiments of the present application (disclosure) generally relate to the field of image processing and, more specifically, to high-level control of adaptive block shape selection of the transformation type.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

Видеокодирование (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-ray диски, системы сбора и редактирования видеоконтента и видеокамеры приложений безопасности.Video coding (video encoding and 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, video content collection and editing systems; and video camera security applications.

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

В проектном тексте проекта VVC 3.0 JVET-L1001 MTS может быть разрешен на уровне последовательности индивидуально для интер- и интра-слайса. Когда MTS выключен, DCT2 предполагается использовать в качестве ядра преобразования. Однако в предшествующем уровне техники, таком как JVET-M0303, JVET-M0140 или JVET-M0102, вводится выводимое преобразование DST7/DCT8. Возможность переключаться для всех случаев на чистое DCT2 преобразование отсутствует. Настоящее раскрытие решает вышеупомянутую проблему.In the design text of the VVC 3.0 JVET-L1001 project, MTS can be enabled at the sequence level individually for inter- and intra-slice. When MTS is disabled, DCT2 is supposed to be used as the conversion core. However, in the prior art such as JVET-M0303, JVET-M0140 or JVET-M0102, DST7/DCT8 inference transform is introduced. There is no possibility to switch to pure DCT2 conversion for all cases. The present disclosure solves the above problem.

С учетом вышеупомянутых проблем настоящее раскрытие обеспечивает решение для уменьшения негативных последствий вышеупомянутой проблемы или даже для ее полного разрешения.In view of the aforementioned problems, the present disclosure provides a solution to reduce the negative consequences of the aforementioned problem, or even to completely resolve it.

Варианты осуществления изобретения определяются признаками независимых пунктов формулы изобретения, а дополнительные преимущественные реализации вариантов осуществления изобретения - признаками зависимых пунктов формулы изобретения.Embodiments of the invention are defined by the features of the independent claims, and additional advantageous implementations of the embodiments of the invention by the features of the dependent claims.

Настоящее раскрытие обеспечивает:This disclosure provides:

Способ видеокодирования блока изображения, включающий для выборки из множества выборок этого блока:A video encoding method for an image block, including, for a sample from a plurality of samples of this block:

получение остаточного сигнала, возникающего в результате интер- или интра-предсказания изображения;obtaining a residual signal resulting from inter- or intra-prediction of the image;

выведение использования ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала;deriving the use of a transform kernel of the type 2 discrete cosine transform proper, DCT2, for the residual signal sequence;

обработку преобразования блока с использованием выведенного ядра преобразования.block transformation processing using the derived transformation kernel.

Таким образом, настоящее раскрытие вводит дополнительный флаг разрешения DCT2, который используется для выведения того, следует ли использовать только ядро преобразования DCT2 для всех случаев в последовательности, когда значением флага разрешения DCT2 является ложь, тогда флаг разрешения MTS уровня последовательности сигнализируется дополнительно. Когда значением флага разрешения DCT2 является истина, предполагается использовать только ядро преобразования DCT2. Дополнительный флаг разрешения DCT2 вводится в SPS, чтобы сделать переключение на DCT2 возможным, когда инструмент выводимого MST включен.Thus, the present disclosure introduces an additional DCT2 enable flag that is used to infer whether or not only the DCT2 transform core should be used for all cases in a sequence when the value of the DCT2 enable flag is false, then the sequence level MTS enable flag is additionally signaled. When the value of the DCT2 enable flag is true, only the DCT2 transform kernel is intended to be used. An additional DCT2 enable flag is introduced in the SPS to make switching to DCT2 possible when the output MST tool is enabled.

В возможной форме реализации способа согласно предыдущему аспекту как таковому, использование DCT2 выводят из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.In an exemplary form of implementing the method according to the previous aspect, as such, the use of DCT2 is derived from the sequence level DCT2 enable flag in the sequence parameter set, SPS.

Таким образом, варианты осуществления настоящего раскрытия вводят переключаемый указатель разрешения DCT2 уровня последовательности, который обеспечивает возможность переключения на чистое ядро преобразования DCT2 с помощью инструмента выводимого преобразования для всей последовательности или слайса. DCT2 является относительно простым в вычислении и предъявляющим относительно низкие требования к пропускной способности памяти по сравнению с другим ядром преобразования. В предшествующем уровне техники возможность использования простого преобразования DCT2 исключается выводимым ядром преобразования, а с настоящим указателем гибкость переключения между низкими затратами/низкой сложностью и высокой производительностью обеспечивается как для кодера, так и для декодера. В вариантах осуществления предусмотрена возможность изменений как низкого уровня, так и изменений высокого уровня, что гарантирует согласованность и производительность кодирования кода с множеством вариаций.Thus, embodiments of the present disclosure introduce a switchable sequence level DCT2 enable pointer that enables switching to a pure DCT2 transform kernel with an inferred transform tool for the entire sequence or slice. DCT2 is relatively simple to compute and has relatively low memory bandwidth requirements compared to other transformation cores. In the prior art, the possibility of using a simple DCT2 transform is precluded by the inferred transform kernel, and with the present pointer, the flexibility of switching between low cost/low complexity and high performance is provided for both the encoder and the decoder. Embodiments allow both low-level changes and high-level changes to ensure consistency and performance in coding code with many variations.

В возможной форме реализации способа согласно предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.In an exemplary form of implementing the method according to the previous aspect, as such, the sequence level DCT2 enable flag is designated sps_dct2_enabled_flag.

В возможной форме реализации способа согласно любой предшествующей реализации двух предыдущих аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности содержится в синтаксисе уровня SPS следующим образом:In an exemplary implementation form of the method according to any previous implementation of the previous two aspects, or the previous aspect as such, the sequence level DCT2 enable flag is contained in the SPS level syntax as follows:

seq_parameter_set_rbsp( ) {seq_parameter_set_rbsp( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flagsps_dct2_enabled_flag if (! sps_dct2_enabled_flag) {if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

при этом sps_dct2_enabled_flag представляет флаг разрешения DCT2 уровня последовательности.where sps_dct2_enabled_flag represents the sequence level DCT2 enable flag.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущего аспекта как такового, sps_mts_intra_enabled_flag, равный 1, указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интра-кодирования; sps_mts_intra_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования; и когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.In a possible implementation form of the method according to any prior implementation of the previous aspect as such, sps_mts_intra_enabled_flag equal to 1 indicates that tu_mts_flag may be present in the residual coding syntax for intra coding units; sps_mts_intra_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for intra coding units; and when sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, sps_mts_inter_enabled_flag указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интер-кодирования; sps_mts_inter_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интер-кодирования; и когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.In an exemplary implementation form of the method according to any previous implementation of the previous two aspects, or the previous aspect as such, sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax for inter coding units; sps_mts_inter_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for inter coding units; and when sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих пяти аспектов или предыдущему аспекту как таковому, In a possible form of implementation of the method according to any previous implementation of the previous five aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования.a sequence level DCT2 enable flag of 1 indicates that a DCT2 transform kernel is used for the transform.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих шести аспектов или предыдущему аспекту как таковому, In a possible form of implementation of the method according to any previous implementation of the previous six aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только.a sequence level DCT2 enable flag of 1 indicates that the DCT2 transformation core is used for transformation only.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих семи аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется для преобразования как в горизонтальном, так и в вертикальном направлении.In an exemplary form of implementation of the method according to any previous implementation of the previous seven aspects, or the previous aspect as such, a sequence level DCT2 enable flag of 1 indicates that DCT2 is being used for both horizontal and vertical conversion.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих восьми аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется в субблочном преобразовании.In an exemplary form of implementation of the method according to any previous implementation of the previous eight aspects, or the previous aspect as such, a sequence level DCT2 enable flag of 1 indicates that DCT2 is being used in a subblock transform.

В возможной форме реализации способа согласно предыдущему аспекту как таковому, в случае, когда одна сторона остаточной единицы преобразования, tu, больше 32, соответствующее ядро преобразования устанавливается как DCT2.In a possible implementation form of the method according to the previous aspect, as such, in the case where one side of the residual transformation unit, tu, is greater than 32, the corresponding transformation kernel is set to DCT2.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих десяти аспектов или предыдущему аспекту как таковому, в случае, если флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только, как субблочное преобразование, так и преобразование с выбором множества преобразований, MTS, выводятся как выключенные.In an exemplary form of implementation of the method according to any previous implementation of the previous ten aspects, or the previous aspect as such, in case the sequence level DCT2 enable flag of 1 indicates that the DCT2 transformation core is used for transformation, only both sub-block transformation and transformation with multiple transforms selected, MTS are output as off.

В возможной форме реализации способа согласно любой предшествующей реализации предыдущих одиннадцати аспектов или предыдущему аспекту как таковому, In a possible form of implementation of the method according to any previous implementation of the previous eleven aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что ядра преобразования, отличные от DCT2, используются для преобразования.a sequence level DCT2 enable flag of 0 indicates that transformation kernels other than DCT2 are used for transformation.

В возможной форме реализации способа согласно предыдущему аспекту как таковому, In a possible form of implementation of the method according to the previous aspect as such,

выводится использование дискретного синусного преобразования типа 7, DST7, и/или дискретного косинусного преобразования типа 8, DCT8, для преобразования.the use of a type 7 discrete sine transform, DST7, and/or a type 8 discrete cosine transform, DCT8, is derived for the conversion.

В возможной форме реализации способа согласно любой предшествующей реализации двух предыдущих аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 0,In an exemplary form of implementation of the method according to any prior implementation of the previous two aspects, or the previous aspect as such, a sequence level DCT2 enable flag of 0,

указывает, что выводится использование DST7/DCT8 для преобразования, только.indicates that output is using DST7/DCT8 for conversion, only.

DCT2 может быть желательным для конструкции как кодера, так и декодера. Другими словами, возможность переключения между DCT2, выводимыми DST7 или DCT8 и MTS (ядром преобразования, выбираемым посредством RDO), является одной из целей настоящего раскрытия.DCT2 may be desirable for both encoder and decoder design. In other words, the ability to switch between DCT2, output DST7 or DCT8 and MTS (transformation core selected by RDO) is one of the purposes of the present disclosure.

В возможной форме реализации способа согласно любой предшествующей реализации трех предыдущих аспектов или предыдущему аспекту как таковому, In a possible form of implementation of the method according to any previous implementation of the three previous aspects or the previous aspect as such,

в случае, если флаг разрешения DCT2 уровня последовательности равен 0, через флаг определяется, разрешен ли выбор множества преобразований для набора параметров последовательности.in case the sequence level DCT2 enable flag is 0, it is determined via the flag whether the selection of a set of transformations for a set of sequence parameters is allowed.

В возможной форме реализации способа согласно предыдущему аспекту как таковому; In a possible form of implementation of the method according to the previous aspect as such;

в случае присутствия sps_mts_intra_enabled_flag,if sps_mts_intra_enabled_flag is present,

в случае, если sps_mts_intra_enabled_flag равен 1, указывается, что флаг выбора множества преобразований, MTS, единицы преобразования, TU, обозначаемый tu_mts_flag, присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 1, it is indicated that a transform set selection flag, MTS, transform unit, TU, denoted by tu_mts_flag, is present in the residual coding syntax for intra coding units;

в случае, если sps_mts_intra_enabled_flag равен 0, указывается, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 0, it is indicated that tu_mts_flag is not present in the residual encoding syntax for intra coding units;

при этом в случае, если sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.however, if sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

Настоящее раскрытие дополнительно обеспечивает кодер, содержащий схему обработки для выполнения способа согласно способу по любой предшествующей реализации предыдущих аспектов или предыдущему аспекту как таковому.The present disclosure further provides an encoder comprising a processing circuit for performing a method according to a method according to any previous implementation of the previous aspects or the previous aspect as such.

Настоящее раскрытие дополнительно обеспечивает декодер, содержащий схему обработки для выполнения способа согласно любой предшествующей реализации предыдущих аспектов или предыдущему аспекту как таковому.The present disclosure further provides a decoder comprising a processing circuit for performing a method according to any previous implementation of the previous aspects or the previous aspect as such.

Настоящее раскрытие дополнительно обеспечивает декодер, содержащий:The present disclosure further provides a decoder comprising:

блок получения, выполненный с возможностью получения остаточного сигнала, возникающего в результате интер- или интра-предсказания изображения;an acquisition unit configured to obtain a residual signal resulting from the inter- or intra-prediction of the image;

блок выведения, выполненный с возможностью выведения использования ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала; иa derivation unit configured to deduce using a type-2 discrete cosine transform transformation kernel, DCT2, for the residual signal sequence; And

блок обработки, выполненный с возможностью обработки преобразования блока с использованием выведенного ядра преобразования.a processing unit configured to process the transformation of the block using the derived transformation kernel.

В возможной форме реализации декодера согласно предыдущему аспекту как таковому, блок выведения выполнен с возможностью выведения использования DCT2 из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.In an exemplary form of implementation of the decoder according to the previous aspect, as such, the inference block is configured to infer the use of DCT2 from the sequence level DCT2 enable flag in the sequence parameter set, SPS.

В возможной форме реализации декодера согласно предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.In a possible implementation form of the decoder according to the previous aspect, as such, the sequence level DCT2 enable flag is denoted by sps_dct2_enabled_flag.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности содержится в синтаксисе уровня SPS следующим образом:In the possible implementation form of the decoder according to any previous implementation of the previous two aspects, or the previous aspect as such, the sequence level DCT2 enable flag is contained in the SPS level syntax as follows:

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

при этом sps_dct2_enabled_flag представляет флаг разрешения DCT2 уровня последовательности.where sps_dct2_enabled_flag represents the sequence level DCT2 enable flag.

В возможной форме реализации декодера согласно предыдущему аспекту как таковому, sps_mts_intra_enabled_flag, равный 1, указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интра-кодирования; sps_mts_intra_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования; и когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.In a possible implementation form of the decoder according to the previous aspect, as such, sps_mts_intra_enabled_flag equal to 1 indicates that tu_mts_flag may be present in the residual coding syntax for intra coding units; sps_mts_intra_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for intra coding units; and when sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, sps_mts_inter_enabled_flag указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интер-кодирования; sps_mts_inter_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интер-кодирования; и когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.In the possible form of a decoder implementation according to any prior implementation of the previous two aspects, or the previous aspect as such, sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax for inter coding units; sps_mts_inter_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for inter coding units; and when sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих пяти аспектов или предыдущему аспекту как таковому,In a possible form of implementation of the decoder according to any previous implementation of the previous five aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования.a sequence level DCT2 enable flag of 1 indicates that a DCT2 transform kernel is used for the transform.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих шести аспектов или предыдущему аспекту как таковому, In a possible form of implementation of the decoder according to any previous implementation of the previous six aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только.a sequence level DCT2 enable flag of 1 indicates that the DCT2 transformation core is used for transformation only.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих семи аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется для преобразования как в горизонтальном, так и в вертикальном направлении.In an exemplary form of a decoder implementation according to any previous implementation of the previous seven aspects, or the previous aspect per se, a sequence level DCT2 enable flag of 1 indicates that DCT2 is being used for both horizontal and vertical translation.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих восьми аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется в субблочном преобразовании.In an exemplary form of a decoder implementation according to any previous implementation of the previous eight aspects, or the previous aspect per se, a sequence level DCT2 enable flag of 1 indicates that DCT2 is being used in a sub-block transform.

В возможной форме реализации декодера согласно предыдущему аспекту как таковому, в случае, когда одна сторона остаточной единицы преобразования, tu, больше 32, соответствующее преобразование устанавливается как DCT2.In the possible implementation form of the decoder according to the previous aspect, as such, in the case where one side of the residual unit of the transformation, tu, is greater than 32, the corresponding transformation is set to DCT2.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих десяти аспектов или предыдущему аспекту как таковому, в случае, если флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только, как субблочное преобразование, так и преобразование с выбором множества преобразований, MTS, выводятся как выключенные.In a possible implementation form of a decoder according to any previous implementation of the previous ten aspects, or the previous aspect as such, in case the sequence level DCT2 enable flag of 1 indicates that the DCT2 transform kernel is used for transform, only both sub-block transform and transform with multiple transforms selected, MTS are output as off.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих одиннадцати аспектов или предыдущему аспекту как таковому, In a possible form of implementation of the decoder according to any previous implementation of the previous eleven aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что ядра преобразования, отличные от DCT2, используются для преобразования.a sequence level DCT2 enable flag of 0 indicates that transformation kernels other than DCT2 are used for transformation.

В возможной форме реализации декодера согласно предыдущему аспекту как таковому, In a possible form of implementation of the decoder according to the previous aspect, as such,

блок выведения выполнен с возможностью выведения использования дискретного синусного преобразования типа 7, DST7, и/или дискретного косинусного преобразования типа 8, DCT8, для преобразования.the derivation unit is configured to deduce using a type 7 discrete sine transform, DST7, and/or a type 8 discrete cosine transform, DCT8, for the conversion.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 0,In a possible form of implementation of the decoder according to any previous implementation of the previous two aspects, or the previous aspect as such, a sequence level DCT2 enable flag equal to 0,

указывает, что выводится использование DST7/DCT8 для преобразования, только.indicates that output is using DST7/DCT8 for conversion, only.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущих трех аспектов или предыдущему аспекту как таковому,In a possible form of implementation of the decoder according to any previous implementation of the previous three aspects, or the previous aspect as such,

в случае, если флаг разрешения DCT2 уровня последовательности равен 0, через флаг определяется, разрешен ли выбор множества преобразований для набора параметров последовательности.in case the sequence level DCT2 enable flag is 0, it is determined via the flag whether the selection of a set of transformations for a set of sequence parameters is allowed.

В возможной форме реализации декодера согласно любой предшествующей реализации предыдущего аспекта как такового,In a possible form of implementation of the decoder according to any prior implementation of the previous aspect as such,

в случае присутствия sps_mts_intra_enabled_flag,if sps_mts_intra_enabled_flag is present,

в случае, если sps_mts_intra_enabled_flag равен 1, указывается, что флаг выбора множества преобразований, MTS, единицы преобразования, TU, обозначаемый tu_mts_flag, присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 1, it is indicated that a transform set selection flag, MTS, transform unit, TU, denoted by tu_mts_flag, is present in the residual coding syntax for intra coding units;

в случае, если sps_mts_intra_enabled_flag равен 0, указывается, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 0, it is indicated that tu_mts_flag is not present in the residual encoding syntax for intra coding units;

при этом в случае, если sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.however, if sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

Настоящее раскрытие дополнительно обеспечивает кодер, содержащий:The present disclosure further provides an encoder comprising:

блок получения, выполненный с возможностью получения остаточного сигнала, возникающего в результате интер- или интра-предсказания изображения;an acquisition unit configured to obtain a residual signal resulting from the inter- or intra-prediction of the image;

блок выведения, выполненный с возможностью выведения использования ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала; иa derivation unit configured to deduce using a type-2 discrete cosine transform transformation kernel, DCT2, for the residual signal sequence; And

блок обработки, выполненный с возможностью обработки преобразования блока с использованием выведенного ядра преобразования.a processing unit configured to process the transformation of the block using the derived transformation kernel.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущего аспекта как такового, блок выведения выполнен с возможностью выведения использования DCT2 из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.In a possible form of encoder implementation according to any prior implementation of the previous aspect as such, the derivation block is configured to deduce the use of DCT2 from the sequence level DCT2 enable flag in the sequence parameter set, SPS.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущего аспекта как такового, флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.In a possible form of encoder implementation according to any prior implementation of the previous aspect as such, the sequence level DCT2 enable flag is denoted by sps_dct2_enabled_flag.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности содержится в синтаксисе уровня SPS следующим образом:In a possible encoder implementation form according to any previous implementation of the previous two aspects, or the previous aspect as such, the sequence level DCT2 enable flag is contained in the SPS level syntax as follows:

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

при этом sps_dct2_enabled_flag представляет флаг разрешения DCT2 уровня последовательности.where sps_dct2_enabled_flag represents the sequence level DCT2 enable flag.

В возможной форме реализации кодера согласно предыдущему аспекту как таковому, sps_mts_intra_enabled_flag, равный 1, указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интра-кодирования; sps_mts_intra_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования; и когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.In a possible implementation form of the encoder according to the previous aspect, as such, sps_mts_intra_enabled_flag equal to 1 indicates that tu_mts_flag may be present in the residual coding syntax for intra coding units; sps_mts_intra_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for intra coding units; and when sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, sps_mts_inter_enabled_flag указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интер-кодирования; sps_mts_inter_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интер-кодирования; и когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.In a possible encoder implementation form according to any prior implementation of the previous two aspects, or the previous aspect as such, sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax for inter coding units; sps_mts_inter_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for inter coding units; and when sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих пяти аспектов или предыдущему аспекту как таковому,In the possible form of an encoder implementation according to any previous implementation of the previous five aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования.a sequence level DCT2 enable flag of 1 indicates that a DCT2 transform kernel is used for the transform.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих шести аспектов или предыдущему аспекту как таковому,In a possible encoder implementation form according to any prior implementation of the previous six aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только.a sequence level DCT2 enable flag of 1 indicates that the DCT2 transformation core is used for transformation only.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих семи аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется для преобразования как в горизонтальном, так и в вертикальном направлении.In a possible encoder implementation form according to any previous implementation of the previous seven aspects, or the previous aspect per se, a sequence level DCT2 enable flag of 1 indicates that DCT2 is being used for both horizontal and vertical transformation.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих восьми аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется в субблочном преобразовании.In a possible encoder implementation form according to any previous implementation of the previous eight aspects, or the previous aspect as such, a sequence level DCT2 enable flag of 1 indicates that DCT2 is being used in a sub-block transform.

В возможной форме реализации кодера согласно предыдущему аспекту как таковому, в случае, когда одна сторона остаточной единицы преобразования, tu, больше 32, соответствующее преобразование устанавливается как DCT2.In the possible implementation form of the encoder according to the previous aspect, as such, in the case where one side of the residual unit of the transformation, tu, is greater than 32, the corresponding transformation is set to DCT2.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих десяти аспектов или предыдущему аспекту как таковому, в случае, если флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только, как субблочное преобразование, так и преобразование с выбором множества преобразований, MTS, выводятся как выключенные.In a possible encoder implementation form according to any previous implementation of the previous ten aspects, or the previous aspect as such, in case the sequence level DCT2 enable flag of 1 indicates that a DCT2 transform kernel is used for transform, only both sub-block transform and transform with multiple transforms selected, MTS are output as off.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих одиннадцати аспектов или предыдущему аспекту как таковому,In the possible form of an encoder implementation according to any previous implementation of the previous eleven aspects, or the previous aspect as such,

флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что ядра преобразования, отличные от DCT2, используются для преобразования.a sequence level DCT2 enable flag of 0 indicates that transformation kernels other than DCT2 are used for transformation.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущего аспекта как такового,In a possible form of encoder implementation according to any prior implementation of the previous aspect as such,

блок выведения выполнен с возможностью выведения использования дискретного синусного преобразования типа 7, DST7, и/или дискретного косинусного преобразования типа 8, DCT8, для преобразования.the derivation unit is configured to deduce using a type 7 discrete sine transform, DST7, and/or a type 8 discrete cosine transform, DCT8, for the conversion.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих двух аспектов или предыдущему аспекту как таковому, флаг разрешения DCT2 уровня последовательности, равный 0,In a possible encoder implementation form according to any previous implementation of the previous two aspects, or the previous aspect as such, a sequence level DCT2 enable flag of 0,

указывает, что выводится использование DST7/DCT8 для преобразования, только.indicates that output is using DST7/DCT8 for conversion, only.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущих трех аспектов или предыдущему аспекту как таковому,In the possible form of an encoder implementation according to any previous implementation of the previous three aspects, or the previous aspect as such,

в случае, если флаг разрешения DCT2 уровня последовательности равен 0, через флаг определяется, разрешен ли выбор множества преобразований для набора параметров последовательности.in case the sequence level DCT2 enable flag is 0, it is determined via the flag whether the selection of a set of transformations for a set of sequence parameters is allowed.

В возможной форме реализации кодера согласно любой предшествующей реализации предыдущего аспекта как такового, In a possible form of encoder implementation according to any prior implementation of the previous aspect as such,

в случае присутствия sps_mts_intra_enabled_flag,if sps_mts_intra_enabled_flag is present,

в случае, если sps_mts_intra_enabled_flag равен 1, указывается, что флаг выбора множества преобразований, MTS, единицы преобразования, TU, обозначаемый tu_mts_flag, присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 1, it is indicated that a transform set selection flag, MTS, transform unit, TU, denoted by tu_mts_flag, is present in the residual coding syntax for intra coding units;

в случае, если sps_mts_intra_enabled_flag равен 0, указывается, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 0, it is indicated that tu_mts_flag is not present in the residual encoding syntax for intra coding units;

при этом в случае, если sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.however, if sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

Настоящее раскрытие дополнительно обеспечивает компьютерный программный продукт, содержащий программный код для выполнения способа по любой одной любой предшествующей реализации предыдущих аспектов или предыдущему аспекту как таковому.The present disclosure further provides a computer program product comprising program code for executing the method of any one of any prior implementation of the previous aspects, or the previous aspect as such.

Настоящее раскрытие дополнительно обеспечивает декодер, содержащий:The present disclosure further provides a decoder comprising:

один или более процессоров; иone or more processors; And

долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программную часть для исполнения процессорами, причем программная часть, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любой предшествующей реализации предыдущих аспектов или предыдущему аспекту как таковому.a durable computer-readable medium associated with the processors and storing software for execution by the processors, wherein the software, when executed by the processors, configures a decoder to execute the method of any previous implementation of the previous aspects or the previous aspect per se.

Настоящее раскрытие дополнительно обеспечивает кодер, содержащий:The present disclosure further provides an encoder comprising:

один или более процессоров; иone or more processors; And

долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программную часть для исполнения процессорами, причем программная часть, когда исполняется процессорами, конфигурирует кодер для выполнения способа по любой по любой предшествующей реализации предыдущих аспектов или предыдущему аспекту как таковому.a durable computer-readable medium associated with the processors and storing software for execution by the processors, wherein the software, when executed by the processors, configures an encoder to execute a method according to any one of the preceding implementations of the preceding aspects, or the preceding aspect as such.

Настоящее раскрытие дополнительно обеспечивает считываемый компьютером долговременный носитель, хранящий программу, в том числе инструкции, которые при исполнении на процессоре побуждают процессор выполнять способ по любой предшествующей реализации предыдущих аспектов или предыдущему аспекту как таковому.The present disclosure further provides a computer-readable non-volatile medium storing a program, including instructions that, when executed on a processor, cause the processor to execute the method of any previous implementation of the previous aspects, or the previous aspect as such.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

Варианты осуществления настоящего раскрытия далее описаны более подробно со ссылкой на прилагаемые фигуры и чертежи, на которых:Embodiments of the present disclosure are further described in more detail with reference to the accompanying figures and drawings, in which:

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

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

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

ФИГ. 3 является блок-схемой, показывающей пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления настоящего раскрытия;FIG. 3 is a block diagram showing an example of the structure of a video decoder capable of implementing embodiments of the present disclosure;

ФИГ. 4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;FIG. 4 is a block diagram illustrating an example of an encoding device or a decoding device;

ФИГ. 5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;FIG. 5 is a block diagram illustrating another example of an encoding device or a decoding device;

ФИГ. 6 является блок-схемой, иллюстрирующей пример горизонтального и вертикального преобразований для каждой позиции SBT.FIG. 6 is a block diagram illustrating an example of horizontal and vertical conversion for each SBT position.

ФИГ. 7 является блок-схемой, иллюстрирующей другой пример горизонтального и вертикального преобразований для каждой позиции SBT.FIG. 7 is a block diagram illustrating another example of horizontal and vertical conversion for each SBT position.

ФИГ. 8: иллюстрирует способ видеокодирования блока изображения согласно настоящему раскрытию.FIG. 8: illustrates the video encoding method of an image block according to the present disclosure.

ФИГ. 9 иллюстрирует кодер.FIG. 9 illustrates an encoder.

ФИГ. 10 иллюстрирует декодер.FIG. 10 illustrates a decoder.

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

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDETAILED DESCRIPTION OF EMBODIMENTS

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

Например, понятно, что раскрытие, связанное с описанным способом, также может быть справедливо для соответствующего устройства или системы, выполненных с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков не описаны явным образом или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множества блоков), даже если такой один или множество этапов не описаны явным образом или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is understood that the disclosure associated with the described method may also be true for the corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, to perform the one or more method steps described (for example, one block performing one or more steps, or a plurality of 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 figures. 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 to perform the functionality of one or more blocks , or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks), even if such one or more steps are not explicitly described or illustrated in the figures. In addition, it is understood that features of the various exemplary embodiments and/or aspects described herein may be combined with one another unless specifically noted otherwise.

Видеокодирование обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «картинка» могут использоваться как синонимы в области видеокодирования. Видеокодирование (или кодирование (coding) в целом) содержит две части: видеокодирование (video encoding) и видеодекодирование. Видеокодирование выполняется на стороне источника и обычно содержит обработку (например, посредством сжатия) исходных видеоизображений для сокращения объема данных, требуемого для представления видеоизображений (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне получателя (адресата) и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом), должны пониматься как относящиеся к «кодированию» или «декодированию» видеоизображений или соответствующих видеопоследовательностей. Комбинация кодирующей части и декодирующей части также называется CODEC (кодирование и декодирование).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. Instead of the term "picture", the terms "frame" or "picture" may be used interchangeably in the field of video coding. Video coding (or coding in general) contains two parts: video encoding and video decoding. Video coding is performed at the source side and typically involves 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 recipient (destination) side and usually contains inverse processing compared to the encoder for recovering video images. Embodiments relating to "coding" video images (or images in general) should be understood as referring to "coding" or "decoding" video images or corresponding video sequences. The combination of an encoding part and a decoding part is also called CODEC (encoding and decoding).

В случае видеокодирования без потерь исходные видеоизображения могут быть восстановлены, т.е. восстановленные видеоизображения имеют такое же качество, что и исходные видеоизображения (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае видеокодирования с потерями выполняется дополнительное сжатие, например посредством квантования, для сокращения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены на декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.In the case of lossless video coding, the original video images can be reconstructed, i.e. the restored video images are of 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 at the decoder, i.e. the quality of the restored video images is lower or worse than the quality of the original video images.

Несколько стандартов видеокодирования принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области выборки и кодирование с 2D преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например с использованием пространственного (интра-изображения) предсказания и/или временного (интер-изображения) предсказания для генерирования блока предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается/подлежит обработке) для получения остаточного блока, остаточный блок преобразуется и этот остаточный блок квантуется в области преобразования для сокращения объема данных (сжатия), которые подлежат передаче, тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что они оба будут генерировать идентичные предсказания (например, интра- и интер-предсказания) и/или реконструкции для обработки, то есть кодирования (coding), последующих блоков.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 usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, in the encoder, the video is usually processed, that is, encoded, at the block (video block) level, for example, using spatial (intra-image) prediction and/or temporal (inter-image) prediction to generate a prediction block, the prediction block is subtracted from the current block (the block currently being processed/to be processed) to obtain a residual block, the residual block is transformed and this residual block is quantized in the transformation region to reduce the amount of data (compression) to be transmitted, while in the decoder the inverse processing compared to applied to the encoded or compressed block by the encoder to reconstruct the current block for presentation. In addition, the encoder duplicates the processing cycle of the decoder, so that they will both generate identical predictions (eg, intra- and inter-predictions) and/or reconstructions for processing, ie coding (coding), 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 to 3.

ФИГ. 1A представляет собой схематичное блочное представление, иллюстрирующее примерную систему 10 кодирования, например систему 10 видеокодирования (или сокращенно систему 10 кодирования), которая может использовать методики из настоящей заявки. Видеокодер 20 (или сокращенно кодер 20) и видеодекодер 30 (или сокращенно декодер 30) системы 10 видеокодирования представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методик в соответствии с различными примерами, описанными в настоящей заявке.FIG. 1A is a schematic block diagram illustrating an exemplary coding system 10, such as a video coding system 10 (or coding system 10 for short), that may use the techniques 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 perform techniques in accordance with the various examples described herein.

Как показано на ФИГ. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 изображения, например в устройство-получатель 13 для декодирования кодированных данных 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, a destination device 13 for decoding the encoded image data 13.

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

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

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

Препроцессор 18 выполнен с возможностью приема (необработанных) данных 17 изображения и выполнения предварительной обработки в отношении этих данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или шумоподавление. Должно быть понятно, что модуль 18 предварительной обработки может быть опциональным компонентом.The preprocessor 18 is configured to receive (raw) image data 17 and perform pre-processing on that image data 17 to obtain a pre-processed image 19 or pre-processed image data 19. The pre-processing performed by the preprocessor 18 may, for example, include cropping, color format conversion (eg from RGB to YCbCr), color correction or denoising. It should be understood that the pre-processing module 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 encoded image data 21 and transmit this encoded image data 21 (or any further processed version thereof) over the communication channel 13 to another device, such as a destination device 14 or any other device, for saving or immediate restoration.

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

Интерфейс 28 связи устройства-получателя 14 выполнен с возможностью приема кодированных данных 21 изображения (или любой их дальнейшей обработанной версии), например непосредственно от устройства-источника 12 или из любого другого источника, например запоминающего устройства, например устройства хранения кодированных данных изображений, и предоставления кодированных данных 21 изображения в декодер 30.Communication interface 28 of destination device 14 is configured to receive encoded image data 21 (or any further processed version thereof), such as directly from source device 12 or from any other source, such as a storage device, such as an encoded image data storage device, and provide encoded image data 21 to 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 a direct wired or wireless connection, or through any type of network. , such as a wired or wireless network, or any combination thereof, or any private and public network, or any combination thereof.

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

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

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

Декодер 30 выполнен с возможностью приема кодированных данных 21 изображения и предоставления декодированных данных 31 изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг. 3 или Фиг. 5). Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки декодированных данных 31 изображения (также называемых данными восстановленного изображения), таких как декодированное изображение 31, чтобы получить пост-обработанные данные 33 изображения, такие как пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например для подготовки декодированных данных 31 изображения для отображения, например с помощью устройства 34 отображения.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) . The post processor 32 of the destination device 14 is configured to post-process the decoded image data 31 (also referred to as reconstructed image data), such as the decoded image 31, to obtain post-processed image data 33, such as the post-processed image 33. Post-processing performed by 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, by the display device 34.

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

Хотя Фиг. 1A иллюстрирует устройство-источник 12 и устройство-получатель 14 как отдельные устройства, варианты осуществления устройств также могут содержать обе или обе функциональные возможности, устройство-источник 12 или соответствующую функциональную возможность и устройство-получатель 14 или соответствующую функциональную возможность. В таких вариантах осуществления устройство-источник 12 или соответствующая функциональная возможность и устройство-получатель 14 или соответствующая функциональная возможность могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although Fig. 1A illustrates source device 12 and sink device 14 as separate devices, device embodiments may also comprise both or both functionality, source device 12 or related functionality, and sink device 14 or related functionality. In such embodiments, source device 12 or related functionality and sink device 14 or corresponding functionality may be implemented using the same hardware and/or software, or using 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 presence and (accurate) separation of the functionality of the various blocks or functionality in source device 12 and/or sink device 14, as shown in FIG. 1A may vary depending on the actual device and application.

Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или и кодер 20, и декодер 30 могут быть реализованы через схему обработки, как показано на Фиг. 1B, такую как один или более микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретную логику, аппаратное обеспечение, выделенное видеокодирование или любые их комбинации. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 с ФИГ. 2 и/или любой другой системы кодера или подсистемы, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 с ФИГ. 3 и/или любой другой системы декодера или подсистемы, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, которые будут описаны ниже. Как показано на фиг. 5, если методики частично реализуются в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем, долговременном считываемом компьютером носителе данных и может исполнять инструкции в аппаратном обеспечении, используя один или более процессоров для выполнения методик согласно этому раскрытию. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг. 1B.Encoder 20 (eg video encoder 20) or decoder 30 (eg video decoder 30) or both encoder 20 and decoder 30 may be implemented through 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, dedicated video coding, or any combinations thereof. Encoder 20 may be implemented via processing circuitry 46 to implement various modules, as discussed with respect to encoder 20 of FIG. 2 and/or any other encoder system or subsystem described herein. Decoder 30 may be implemented via processing circuitry 46 to implement various modules, as discussed in relation to decoder 30 of FIG. 3 and/or any other decoder system or subsystem described herein. The processing circuit may be configured to perform various operations, which will be described below. As shown in FIG. 5, if the techniques are partially implemented in software, a device may store instructions for the software on a suitable, durable, computer-readable storage medium and may execute instructions in hardware using one or more processors to execute the techniques of this disclosure. Any of video encoder 20 and video decoder 30 can be integrated as part of a combined encoder/decoder (CODEC) in one device, eg 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 type of portable or stationary device, such as laptops or laptops, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set-top boxes. , televisions, display devices, digital media players, game consoles, video streaming devices (for example, content service servers or content delivery servers), broadcast receiver, broadcast transmitter or the like, and may use any type of operating system or do without it. 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 видеокодирования, проиллюстрированная на Фиг. 1A, является лишь примером, а методики настоящей заявки могут применяться к настройкам видеокодирования (такого как видеокодирование или видеодекодирование), которые не обязательно включают в себя передачу каких-либо данных между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются в потоковом режиме по сети или подобное. Устройство видеокодирования может кодировать и сохранять данные в память, и/или устройство видеодекодирования может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняется устройствами, которые связь друг с другом не осуществляют, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.In some cases, the video coding system 10 illustrated in FIG. 1A is just an example, and the techniques of the present application can be applied to video encoding settings (such as video encoding or video decoding) that do not necessarily involve any data transfer between encoding and decoding devices. In other examples, data is retrieved from local memory, streamed over a network, or the like. The video encoder may encode and store data in the memory, and/or the video decoder may retrieve and decode the data from the memory. In some examples, encoding and decoding is performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve and decode data from memory.

Для удобства описания здесь описаны варианты осуществления данного раскрытия, например, со ссылкой на высокоэффективное видеокодирование (HEVC) или на эталонное программное обеспечение универсального видеокодирования (VVC), стандарт видеокодирования следующего поколения, разрабатываемый объединенной группой сотрудничества по видеокодированию (JCT-VC) экспертной группы по видеокодированию ITU-T (VCEG) и экспертной группы по движущимся изображениям ISO/IEC (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления данного раскрытия не ограничиваются HEVC или VVC.For convenience of description, embodiments of this disclosure are described herein, for example, with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software, the next generation video coding standard being developed by the Joint Video Coding Collaborative (JCT-VC) Expert Group on ITU-T Video Coding (VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). One of ordinary skill in the art will appreciate that embodiments of this disclosure 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 (DPB) декодированных изображений, блок 260 выбора режима, блок 270 энтропийного кодирования и вывод 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 интер-предсказания, блок 254 интра-предсказания и блок 262 разделения. Блок 244 интер-предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на Фиг. 2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.FIG. 2 shows a schematic block representation of an exemplary video encoder 20 that is configured to implement the techniques of the present application. In the example in FIG. 2, video encoder 20 comprises an input 201 (or input interface 201), a residual calculation block 204, a transform processing block 206, a quantization block 208, an inverse quantization block 210 and an inverse transform processing block 212, a reconstruction block 214, a loop filter block 220, a buffer 230 ( DPB) of decoded pictures, mode selection block 260, entropy encoding block 270, and output 272 (or output interface 272). The mode selector 260 may include an inter-predictor 244, an intra-predictor 254, and a splitter 262. Inter prediction block 244 may include a motion estimator and a motion compensation block (not shown). Video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according 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 calculation block 204, transform processing block 206, quantization block 208, mode selection block 260 may be related to generating the direct signal path of encoder 20, while inverse quantization block 210, inverse transform processing block 212, reconstruction block 214, buffer 216, loop filter 220, decoded picture buffer (DPB) 230, inter-prediction 244, and intra-prediction 254 may be related to generating the reverse signal path of video encoder 20, wherein 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 quantization block 210, an inverse transform processing block 212, a reconstruction block 214, a loop filter 220, a decoded picture buffer (DPB) 230, an inter-prediction block 244, and an intra-prediction block 254 are also related to the formation of the "embedded decoder" of the video encoder 20.

Изображения и разделение изображений (изображения и блоки)Images and Image Sharing (Images and Blocks)

Кодер 20 может быть выполнен с возможностью приема, например, через ввод 201 изображения 17 (или данных 17 изображения), например изображения из последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения также могут представлять собой предварительно обработанное изображение 19 (или предварительно обработанные данные 19 изображения). Для простоты нижеследующее описание ссылается на изображение 17. Изображение 17 также может именоваться текущим изображением или изображением, которое подлежит кодированию (в частности, при видеокодировании, чтобы отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущее изображение).Encoder 20 may be configured to receive, for example, via input 201 an image 17 (or image data 17), such as an image from a sequence of images constituting 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 (particularly in video encoding, to distinguish the current picture from other pictures, such as previously encoded and/or decoded pictures of the same video sequence, i.e. a video sequence that also contains the current image).

(Цифровое) изображение является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может упоминаться как пиксель (сокращенная форма элемента изображения) или pel (элемент изображения). Число выборок в горизонтальном и вертикальном направлении (или оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовые компоненты, т.е. изображение может быть представлено или включать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив красных, зеленых или синих выборок. Однако при видеокодировании каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, которое содержит компоненту яркости, обозначаемую Y (иногда вместо этого также используется L), и две компоненты цветности (цветоразностные компоненты), обозначаемые Cb и Cr. Компонента Y яркости (luminance) (или сокращенно яркость (luma)) представляет яркость (brightness) или интенсивность уровня серого (например, как в полутоновом изображении), в то время как две компоненты Cb и Cr цветности (chrominance) (или сокращенно цветности (chroma)) представляют компоненты информации о цветности (chromaticity) или цвете. Соответственно, изображение в формате 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 pel (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 may be represented by or include three arrays of samples. In RBG format or color space, an image contains a corresponding array of red, green, or blue 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 luminance component, denoted Y (sometimes L is also used instead), and two chrominance components (chroma components), denoted Cb and Cr. The Y component of luminance (or luma for short) represents the brightness (brightness) or gray level intensity (for example, as in a grayscale image), while the two components Cb and Cr are chrominance (or chrominance for short) ( chroma)) represent components of chromaticity or color information. Accordingly, a YCbCr image contains an array of luma samples with luminance sample values (Y) and two arrays of chrominance samples with chrominance values (Cb and Cr). Images in RGB format can be converted or converted to YCbCr format and vice versa, the process is also known as color conversion or conversion. If the image is monochrome, it 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 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или единицами дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения изображения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами, или группами изображений и разделения каждого изображения на соответствующие блоки. 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. 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 in a video sequence and a 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 further embodiments, the video encoder may be configured to directly receive image block 203 17, such as one, more or all of the blocks forming image 17. Image block 203 may also be referred to as the current image block or image block to be encoded.

Подобно изображению 17, блок 203 изображения снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, яркость и два массива цветности в случае цветного изображения 17) или любое другое число и/или вид массивов в зависимости от применяемого цветового формата. Число выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, быть массивом выборок M×N (M-столбов на N-строк) или массивом M×N коэффициентов преобразования.Like image 17, image block 203 is again, or can be viewed 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 , a luma array in the case of a monochrome image 17 or an array of luminance or chroma in the case of a color image) or three arrays of samples (for example, luminance and two chrominance arrays in the case of a color image 17) or any other number and/or type of arrays depending on the applied color format. The number of samples in the horizontal and vertical direction (or axis) of block 203 defines the size of block 203. Accordingly, the block may, for example, be an array of M×N samples (M-columns by N-rows) or an array of M×N transform coefficients.

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

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

Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием групп мозаичных элементов (также называемых группами мозаичных элементов видео) и/или мозаичных элементов (также называемых мозаичными элементами видео), при этом изображение может быть разделено на или закодировано с использованием одной или более групп мозаичных элементов (обычно не перекрывающихся), и каждая группа мозаичных элементов может содержать, например один или более блоков (например, CTU) или один или более мозаичных элементов, при этом каждый мозаичный элемент, в качестве примера, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), таких как полные или частичные блоки.The embodiments of video encoder 20 shown in FIG. 2 may be further configured to split and/or encode an image using groups of tiles (also referred to as video tiles) and/or tiles (also referred to as video tiles), wherein the image may be split into or encoded with using one or more tile groups (generally non-overlapping), and each tile group may contain, for example, one or more blocks (for example, CTUs) or one or more tiles, each tile, by way of example, may have rectangular in shape and may contain one or more units (eg, CTU), such as full or partial units.

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

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

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

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

Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, определенные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основе определенных ограничений, например коэффициенты масштабирования представляют собой степень двойки для операций сдвига, битовая глубина коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например блоком 312 обработки обратного преобразования в видеодекодере 30), и соответствующие коэффициенты масштабирования для прямого преобразования, например блоком 206 обработки преобразования, могут быть заданы надлежащим образом в кодере 20.Transform processing unit 206 may be configured to apply DCT/DST integer approximations such as those defined for H.265/HEVC. Compared to the orthogonal DCT, such integer approximations are usually scaled by a certain factor. To preserve the norm of the residual block that is processed by forward and backward transforms, additional scaling factors are applied as part of the transform process. The scaling factors are usually chosen based on certain 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, for example, are specified for the inverse transform, such as by the inverse transform processor 212 (and the corresponding inverse transform, such as the inverse transform processor 312 in video decoder 30), and the corresponding scaling factors for the forward transform, such as by the transform processor 206, may be set appropriately in encoder 20.

Варианты осуществления видеокодера 20 (соответственно блока 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например типа преобразования или преобразований, например, непосредственно или кодированных или сжатых через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.Embodiments of video encoder 20 (respectively, transform processing unit 206) may be configured to output transform parameters, such as the type of transform or transforms, such as directly or encoded or compressed via entropy encoding unit 270, so that, for example, video decoder 30 may receive and use conversion parameters 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. Степень квантования может быть изменена путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (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 may be rounded to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be changed 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 applicable quantization step size may be indicated by a quantization parameter (QP). The quantization parameter may, for example, be an index to a predefined set of applicable 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. Quantization may include dividing by the quantization step size, and corresponding and/or inverse dequantization, for example by inverse quantizer 210, may include multiplying by the quantization step size. Embodiments in accordance with 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 that may have changed due to the scaling used in the fixed point approximation of said equation for quantization step size and quantization parameter. In one exemplary implementation, inverse transform scaling and dequantization may be combined. Alternatively, customized quantization tables may be used and signaled from the encoder to the decoder, eg in a bitstream. Quantization is a lossy operation in which the loss increases as the size of the quantization steps increases.

Варианты осуществления видеокодера 20 (соответственно блока 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например непосредственно или кодированных через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.Embodiments of video encoder 20 (respectively, quantizer 208) can 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 преобразования.The inverse quantizer 210 is configured to apply the inverse quantization of the quantizer 208 to the quantized coefficients to obtain the dequantized coefficients 211, for example by applying an inverse quantization scheme to that applied by the quantizer 208 based on or using the same quantization step size as the block 208 quantization. The dequantized coefficients 211 may also be referred to as the dequantized residual coefficients 211 and correspond - although they are usually not identical to the transform coefficients due to quantization loss - to the transform coefficients 207.

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

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

ВосстановлениеRecovery

Блок 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 predictor 265 to obtain reconstructed block 215 in the sample domain, such as by sample-by-sample addition. - sample values of the reconstructed residual block 213 and sample values of the prediction block 265 .

ФильтрацияFiltration

Блок 220 контурного фильтра (или сокращенно «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить отфильтрованный блок 221, или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO), или один или более других фильтров, таких как двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры сглаживания, повышения резкости или совместные фильтры, или любая их комбинация. Хотя блок 220 контурного фильтра показан на ФИГ. 2 как внутриконтурный (in loop) фильтр, в других конфигурациях блок 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 more generally to filter the reconstructed samples to obtain filtered samples. The loop filter unit, 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 two-sided filter, an adaptive loop filter (ALF), anti-aliasing, enhancement filters. sharpness or joint filters, or any combination of them. Although the loop filter unit 220 is shown in FIG. 2 as an in-loop filter, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221.

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

Буфер декодированных изображенийDecoded picture buffer

Буфер 230 декодированных изображений (DPB) может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных изображений может быть выполнен с возможностью сохранения одного или более фильтрованных блоков 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью сохранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, того же самого текущего изображения или разных изображений, например ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, т.е. декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для интер-предсказания. Буфер 230 декодированных изображений (DPB) также может быть выполнен с возможностью сохранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.Decoded Picture Buffer (DPB) 230 may be a memory that stores reference pictures or, more generally, reference picture data 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), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The decoded picture buffer (DPB) 230 may be configured to store one or more filtered blocks 221. The decoded picture buffer 230 may be further configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221, the same current picture, or different images, such as previously restored images, and can provide complete previously restored, i.e. decoded, pictures (and corresponding reference blocks and samples) and/or partially reconstructed current picture (and corresponding reference blocks and samples), for example, for inter-prediction. The decoded picture buffer (DPB) 230 may also be configured to store one or more unfiltered reconstructed blocks 215, or more generally unfiltered reconstructed samples, such as if the reconstructed block 215 is not filtered by the loop filter block 220, or any other further processed version of the reconstructed blocks. or samples.

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

Блок 260 выбора режима содержит блок 262 разделения, блок 244 интер-предсказания и блок 254 интра-предсказания и выполнен с возможностью приема или получения исходных данных изображения, например исходного блока 203 (текущего блока 203 текущего изображения 17), и восстановленных данных изображения, например отфильтрованных и/или нефильтрованных восстановленных выборок или блоков того же самого (текущего) изображения и/или из одного или множества ранее декодированных изображений, например из буфера 230 декодированных изображений или других буферов (например, линейного (строкового) буфера, не показан). Данные восстановленного изображения используются в качестве данных опорного изображения для предсказания, например интер-предсказания или интра-предсказания, чтобы получить блок 265 предсказания или предиктор 265.The mode selector 260 includes a splitter 262, an inter-prediction 244, and an intra-prediction 254, and is configured to receive or obtain original image data such as the original block 203 (the current block 203 of the current image 17) and reconstructed image data, such as filtered and/or unfiltered reconstructed samples or blocks of the same (current) picture and/or from one or a plurality of previously decoded pictures, e.g., decoded picture buffer 230 or other buffers (e.g., a linear (line) buffer, not shown). The reconstructed image data is used as reference image data for prediction, such as inter-prediction or intra-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 prediction mode (e.g., intra- or inter-prediction mode) and generate a corresponding prediction block 265 that is used to calculate the residual block 205 and to restore the restored block 215.

Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются блоком 260 выбора режима или доступны для него), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные непроизводительные затраты на сигнализацию (минимальные непроизводительные затраты на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба фактора. Блок 260 выбора режима может быть выполнен с возможностью определения режима разделения и предсказания на основе оптимизации скорость/искажение (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение при определенной скорости. Такие термины, как «лучший», «минимальный», «оптимальный» и т.д. в этом контексте не обязательно относятся к всеобъемлющему «лучшему», «минимуму», «оптимальному» и т.д., но также могут относиться к выполнению критерия выбора или прекращения, например когда значение превышает или падает ниже порогового значения, или других ограничений, потенциально ведущих к «субоптимальному выбору», но уменьшающих сложность и время обработки.Embodiments of mode selector 260 may be configured to select a division and prediction mode (e.g., those supported by or available to mode selector 260) that provide the best match or, in other words, minimum residual (minimum residual means best compression for transmission or storage), or minimal signaling overhead (lowest signaling overhead means better compression for transmission or storage), or which considers or balances both. The mode selector 260 may be configured to determine a splitting and prediction mode based on rate/distortion optimization (RDO), ie, selecting a prediction mode that provides minimal distortion at a certain rate. Terms such as "best", "minimum", "optimal", etc. in this context does not necessarily refer to the all-encompassing "best", "minimum", "optimal", etc., but may also refer to the fulfillment of a selection or termination criterion, such as when a value exceeds or falls below a threshold value, or other limitations, potentially leading to "sub-optimal selection" but reducing complexity and processing time.

Другими словами, блок 262 разделения может быть выполнен с возможностью разделения блока 203 на более мелкие разделы блока или субблоки (которые снова образуют блоки), например итеративно с использованием разделения квадродерева (QT), двоичного разделения (BT), или разделения троичного дерева (TT) или любой их комбинации, и выполнения, например, предсказания для каждого из разделов блока или субблоков, при этом выбор режима содержит выбор древовидной структуры разделяемого блока 203, а режимы предсказания применяются к каждому из разделов блока или субблоков.In other words, partitioner 262 may be configured to partition block 203 into smaller block partitions or subblocks (which again form blocks), such as iteratively using quadtree partitioning (QT), binary partitioning (BT), or ternary tree partitioning (TT). ) or any combination thereof, and performing, for example, prediction for each of the block partitions or subblocks, wherein the mode selection comprises selecting a tree structure of the shared block 203, and the prediction modes are applied to each of the block partitions or subblocks.

Далее более подробно поясняется разделение (например, посредством блока 260 разделения) и обработка предсказания (посредством блока 244 интер-предсказания и блока 254 интра-предсказания), выполняемая примерным видеокодером 20.The following explains in more detail the division (for example, by the division block 260) and the prediction processing (by the inter prediction block 244 and the intra prediction block 254) performed by the exemplary video encoder 20.

РазделениеSeparation

Блок 262 разделения может разделять (или разбивать) текущий блок 203 на более мелкие разделы, например блоки меньшего размера квадратного или прямоугольного размера. Эти меньшие блоки (которые также могут именоваться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например на корневом уровне 0 дерева (уровне 0 иерархии, глубине 0), может быть рекурсивно разделен, например разделен на два или более блоков следующего более низкого уровня дерева, например узлов на уровне 1 дерева (уровне 1 иерархии, глубине 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например уровня 2 дерева (уровня 2 иерархии, глубины 2), и т.д. пока разделение не будет завершено, например из-за выполнения критерия прекращения, например достижения максимальной глубины дерева или минимального размера блока. Блоки, которые далее не разделяются, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), а дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).Partitioner 262 may divide (or split) the current block 203 into smaller sections, such as smaller square or rectangular sized blocks. These smaller blocks (which may also be referred to as sub-blocks) may be further subdivided into even smaller sections. This is also called tree splitting or hierarchical tree splitting, in which a root box, such as at root level 0 of the tree (hierarchy level 0, depth 0), can be split recursively, such as split into two or more boxes of the next lower level of the tree, such as nodes at level 1 of the tree (hierarchy level 1, depth 1), and these blocks can again be divided into two or more blocks of the next lower level, for example, tree level 2 (hierarchy level 2, depth 2), etc. until the split is complete, for example due to the fulfillment of a termination criterion, such as reaching the maximum tree depth or minimum block size. Blocks that are not further split are also called leaf blocks or leaf nodes of the tree. A tree using two partitions is called a binary tree (BT), a tree using three partitions is called a ternary tree (TT), and a tree using four partitions is called a quadtree (QT).

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

Например, единица дерева кодирования (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок кодирования (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодирования является разделением.For example, a coding tree unit (CTU) can be either a luminance sample CTB, two corresponding chrominance sample CTBs of an image that has three sample arrays, or a monochrome image sample CTB or an image that is encoded using three separate color planes and the syntax structures used for coding samples. Accordingly, a coding tree block (CTB) may be an N×N block of samples for some value of N, such that dividing a component by a CTB is a split. 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 using three separate color planes and the syntax structures used for coding samples. Accordingly, a coding block (CB) may be an M×N block of samples for some values of M and N, so that dividing the CTB into coding blocks is a division.

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

В вариантах осуществления, например в соответствии с разрабатываемым в настоящее время наиболее новым стандартом видеокодирования, который называется универсальное видеокодирование (VVC), для разделения блока кодирования используется, например, разделение комбинированного квадродерева и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь либо квадратную, либо прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется на структуру квадродерева. Листовые узлы квадродерева дополнительно разделяются двоичным деревом или троичной (или тройной) древовидной структурой. Листовые узлы дерева разделения называются единицами кодирования (CU), и эта сегментация используется для обработки предсказания и преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно, вместе с блочной структурой QTBT можно использовать множественный раздел, например раздел троичного дерева.In embodiments, for example, in accordance with the newest video coding standard currently being developed, called universal video coding (VVC), eg, combined quadtree-binary tree (QTBT) splitting is used to split a coding block. In the block structure of QTBT, the CU can be either square or rectangular. For example, a coding tree unit (CTU) is first divided into a quadtree structure. The leaf nodes of the quadtree are further separated by a binary tree or a ternary (or ternary) tree structure. The leaf nodes of the partitioning tree are called coding units (CUs) and this segmentation is used for prediction and transformation processing without any further partitioning. This means that CU, PU and TU have the same block size in the QTBT coding block structure. In parallel, a multiple partition, such as a ternary tree partition, 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 perform any combination of the separation techniques described herein.

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

Интра-предсказаниеIntra prediction

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

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

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

Интер-предсказаниеInter prediction

Набор (возможных) режимов интер-предсказания зависит от доступных опорных изображений (то есть предыдущих, по меньшей мере частично декодированных изображений, например сохраненных в DBP 230) и других параметров интер-предсказания, например используется ли опорное изображение целиком или только часть, например область окна поиска вокруг области текущего блока, опорного изображения для поиска наиболее подходящего опорного блока и/или, например, применяется ли интерполяция пикселей, например полупиксельная (half/semi-pel) и/или четвертьпиксельная (quarter-pel) интерполяция, или нет.The set of (possible) inter-prediction modes depends on the available reference pictures (i.e. previous at least partially decoded pictures, e.g. stored in DBP 230) and other inter-prediction parameters, e.g. search windows around the area of the current block, a reference image to find the most suitable reference block, and/or, for example, whether pixel interpolation is applied, such as half-pixel (half/semi-pel) and/or quarter-pel interpolation, or not.

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

Блок 244 интер-предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба на Фиг. 2 не показаны). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 17) и декодированного изображения 231, или по меньшей мере одного или множества ранее восстановленных блоков, например восстановленных блоков одного или множества других/отличных ранее декодированных изображений 231, для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.Inter prediction block 244 may include a motion estimator (ME) 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, such as reconstructed blocks of one or a plurality of other/different previously decoded 231 images for motion evaluation. 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 координатами) опорного блока и позицией текущего блока в качестве параметров интер-предсказания в блок оценки движения. Это смещение также называется вектором движения (MV).The 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 a reference picture (or reference picture index) and/or offset (spatial offset) between position (x, y coordinates ) of the reference block and the position of the current block as inter-prediction parameters to the motion estimation block. This displacement is also called motion vector (MV).

Блок компенсации движения выполнен с возможностью получения, например, приема параметра интер-предсказания и выполнения интер-предсказания на основе или с использованием параметра интер-предсказания для получения блока 265 интер-предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя получение или генерирование блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно с выполнением интерполяций с точностью до субпикселя. Интерполяционная фильтрация может генерировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая число блоков предсказания-кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может определить местоположение блока предсказания, на который указывает вектор движения, в одном из списков опорных изображений.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 inter prediction block 265 . The motion compensation performed by the motion compensator may include deriving or generating a prediction block based on the motion vector/block determined by the motion estimation, possibly performing subpixel-accurate interpolations. Interpolation filtering can generate additional pixel samples from known pixel samples, thus potentially increasing the number of candidate prediction blocks that can be used to encode an image block. After receiving the motion vector for the PU of the current picture block, the motion compensator may locate the prediction block pointed to by the motion vector in one of the reference picture lists.

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

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

Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), схемы контекстно-адаптивного VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с разделением интервала вероятности (PIPE) или другого подхода или методики энтропийного кодирования) или обхода (без сжатия) в отношении квантованных коэффициентов 209, параметров интер-предсказания, параметров интра-предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения кодированных данных 21 изображения, которые могут выводиться через вывод 272, например в форме кодированного битового потока 21, так что, например, видеодекодер 30 может принимать и использовать эти параметры для декодирования, . Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.Entropy encoding unit 270 is configured to apply, for example, an entropy encoding algorithm or scheme (for example, variable length coding (VLC) scheme, context adaptive VLC (CAVLC) scheme, arithmetic coding scheme, binarization, context adaptive binary arithmetic coding ( CABAC) based on the syntax of context adaptive binary arithmetic coding (SBAC), probability interval division entropy coding (PIPE), or other entropy coding approach or technique) or traversal (no compression) with respect to quantized coefficients 209, inter-prediction parameters, intra-prediction parameters, loop filter parameters, and/or other syntax elements for obtaining encoded image data 21 that can be output via output 272, such as in the form of an encoded bitstream 21, so that, for example, video decoder 30 can receive and use these parameters to 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 changes to the structure of video encoder 20 may be used to encode the video stream. For example, non-transform-based encoder 20 may quantize the residual signal directly without transform processing unit 206 for certain blocks or frames. In another implementation, encoder 20 may have quantizer 208 and inverse quantizer 210 combined into a single unit.

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

ФИГ. 3 показывает пример видеодекодера 30, который выполнен с возможностью реализации методик настоящей заявки. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 изображения (например, кодированного битового потока 21), например кодированных кодером 20, чтобы получить декодированное изображение 331. Кодированные данные изображения или битовый поток содержит информацию для декодирования кодированных данных изображения, например данных, которые представляют блоки изображения кодированного слайса видео (и/или мозаичных элементов или групп мозаичных элементов) и связанные синтаксические элементы.FIG. 3 shows an example of a video decoder 30 that is configured to implement the techniques of the present application. Video decoder 30 is configured to receive encoded image data 21 (e.g., encoded bitstream 21), such as encoded by encoder 20, to obtain a decoded image 331. The encoded image data or bitstream contains information for decoding encoded image data, such as data that represents blocks encoded video slice images (and/or tiles or groups of tiles) and associated syntax elements.

В примере на Фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 (DPB) декодированных изображений, блок 360 применения режима, блок 344 интер-предсказания и блок 354 интра-предсказания. Блок 344 интер-предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять проход декодирования, в целом обратный проходу кодирования, описанному в отношении видеокодера 100 на ФИГ. 2.In the example in FIG. 3, the decoder 30 includes an entropy decoding block 304, an inverse quantization block 310, an inverse transform processing block 312, a reconstruction block 314 (e.g., an adder 314), a loop filter 320, a decoded picture buffer (DPB) 330, a mode application block 360, a block 344 inter-predictions and block 354 intra-predictions. Inter prediction block 344 may be or include a motion compensation block. Video decoder 30 may, in some examples, perform a decoding pass generally reverse of the encoding pass described with respect to video encoder 100 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 described with respect to encoder 20, inverse quantization block 210, inverse transform processing block 212, reconstruction block 214, loop filter 220, decoded picture buffer (DPB) 230, inter-prediction block 344, and intra-prediction block 354 are also related to generating " built-in decoder" of the video encoder 20. Accordingly, the inverse quantization block 310 may be identical in function to the inverse quantization block 110, the inverse transform processing block 312 may be identical in function to the inverse transform processing block 212, the reconstruction block 314 may be identical in function to the restoration block 214, the loop filter 320 may be identical in function to the loop filter 220, and the decoded picture buffer 330 may be identical in function to the decoded picture buffer 230. Therefore, the explanations provided for the respective blocks and functions of the video encoder 20 apply, respectively, to the corresponding blocks and functions of the 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 encoded image data 21 in general) 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 Fig. 3), such as any or all of the inter-prediction parameters (eg, reference picture index and motion vector), intra-prediction parameter (eg, index or intra-prediction mode), 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 coding schemes as described in relation to entropy encoding unit 270 of encoder 20. Entropy decoding unit 304 may be further configured to provide inter-prediction parameters, intra-prediction parameter and/or other syntax elements to the mode application block 360 and other parameters to other blocks of the decoder 30. Video decoder 30 may receive syntax elements at the video slice level and/or the video block level. In addition to or as an alternative to slices and corresponding syntax elements, groups of tiles and/or tiles and corresponding syntax elements may be accepted and/or used.

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

Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из кодированных данных 21 изображения (например, посредством синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) и применения, на основе параметров квантования, обратного квантования в отношении декодированным квантованных коэффициентов 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеослайсе (или мозаичном элементе или группе мозаичных элементов), для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена.The inverse quantizer 310 may be configured to receive quantization parameters (QPs) (or inverse quantization related information in general) and quantized coefficients from the encoded image data 21 (e.g., by parsing and/or decoding, e.g., by entropy decoding block 304) and applying, based on the quantization parameters, inverse quantization to 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 include 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.The inverse transform processor 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 in order to obtain reconstructed residual blocks 213 in the sample domain. The restored residual blocks 213 may also be referred to as transform blocks 313 . The transformation may be an inverse transformation, such as inverse DCT, inverse DST, inverse integer transformation, or a conceptually similar inverse transformation process. The inverse transform processing unit 312 may be further configured to receive transformation parameters or corresponding information from the encoded image data 21 (eg, by parsing and/or decoding, eg, by entropy decoding unit 304) to determine the transformation to be applied to dequantized coefficients 311.

ВосстановлениеRecovery

Блок 314 восстановления (например, блок сложения или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания, чтобы получить восстановленный блок 315 в области выборок, например посредством сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.Reconstructor 314 (eg, adder or adder 314) may be configured to add the reconstructed residual block 313 to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, 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 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO), или один или более других фильтров, таких как двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры сглаживания, повышения резкости или совместные фильтры, или любая их комбинация. Хотя блок 320 контурного фильтра показан на ФИГ. 3 как внутриконтурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как пост-контурный фильтр.The loop filter block 320 (either in the encoding loop or after the encoding loop) 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 two-sided filter, an adaptive loop filter (ALF), anti-aliasing, enhancement filters. sharpening or joint filters, or any combination of them. Although the loop filter unit 320 is shown in FIG. 3 as an in-loop filter, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter.

Буфер декодированных изображенийDecoded picture 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 for other pictures and/or for display output, respectively.

Декодер 30 выполнен с возможностью вывода декодированного изображения 311, например, через вывод 312 для представления или просмотра пользователем.The decoder 30 is configured to output the decoded image 311, for example, via output 312 for presentation or viewing by a 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 identical to the function inter-prediction block 254, and makes split or split decisions and performs prediction on based on the separation and/or prediction parameters or related information received from the encoded image data 21 (eg, by parsing and/or decoding, eg, by entropy decoding unit 304). Mode apply block 360 may be configured to perform prediction (intra- or inter-prediction) 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 может строить списки опорных кадров, Список 0 и Список 1, используя методики построения по умолчанию на основе опорных изображений, хранящихся в DPB 330. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп мозаичных элементов (например, групп мозаичных элементов видео) и/или мозаичных элементов (например, мозаичных элементов видео) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B мозаичных элементов и/или мозаичных элементов.When a video slice is encoded as an intra-coded (I) slice, the intra-prediction block 354 of the mode apply block 360 is configured to generate a prediction block 365 for the image block of the current video slice based on the signaled intra-prediction mode and data from previously decoded blocks of the current image. When a video image is encoded as an inter-coded (i.e., B or P) slice, the inter-prediction block 344 (eg, motion compensation block) of the mode apply block 360 is configured to create prediction blocks 365 for the video block of the current video slice based on the motion vectors and other syntax elements received from block 304 entropy decoding. For inter-prediction, prediction blocks may be created from one of the reference pictures within one of the reference picture lists. Video decoder 30 may construct the key frame lists, List 0 and List 1 using default construction techniques based on the reference pictures stored in the DPB 330. The same or similar may apply to or through embodiments using groups of tiles (e.g., groups video tiles) and/or tiles (eg, video tiles) in addition to or alternatively to slices (eg, video slices), for example, video may be encoded using groups I, P, or B tiles and/or tiles.

Блок 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем синтаксического анализа векторов движения или связанной информации и других синтаксических элементов, и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, интра- или интер-предсказание), используемого для кодирования видеоблоков видеослайса, типа слайса интер-предсказания (например, B-слайс, P-слайс или GPB-слайс), информации построения для одного или более списков опорных изображений для слайса, векторов движения для каждого интер-кодированного видеоблока слайса, статуса интер-предсказания для каждого интер-кодированного видеоблока слайса, а также другой информации для декодирования видеоблоков в текущем видеослайсе. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп мозаичных элементов (например, групп мозаичных элементов видео) и/или мозаичных элементов (например, мозаичных элементов видео) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B мозаичных элементов и/или мозаичных элементов.The mode applyer 360 is configured to determine prediction information for a video block of the current video slice 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 mode applicator 360 uses some of the received syntax elements to determine the prediction mode (eg, intra- or inter-prediction) used to encode the video blocks of the video slice, the type of inter-prediction slice (eg, B-slice, P-slice, or GPB -slice), construction information for one or more reference picture lists for the slice, motion vectors for each inter-coded video block of the slice, inter-prediction status for each inter-coded video block of the slice, and other information for decoding video blocks in the current video slice. The same or similar may apply to or through embodiments using groups of tiles (e.g., groups of video tiles) and/or tiles (e.g., groups of video tiles) in addition to or alternatively to slices (e.g., video slices), e.g. , the video may be encoded using groups I, P, or B of tiles and/or tiles.

Варианты осуществления видеодекодера 30, как показано на Фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием слайсов (также именуемых видеослайсами), при этом изображение может быть разделено на или кодировано с использованием одного или более слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).Embodiments of video decoder 30, as shown in FIG. 3 may be configured to split and/or decode an image using slices (also referred to as video slices), wherein the image may be split into or encoded using one or more slices (generally 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 tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles), wherein the image may be divided into or decoded using one or more tile groups (generally non-overlapping), and each tile group may contain, for example, one or more blocks (for example, CTUs) or one or more tiles, each tile, by way of example, may have a rectangular form and may contain one or more blocks (eg, CTUs), such as full or partial 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, a non-transform-based decoder 30 may perform inverse quantization of the residual signal directly without an inverse transform processor 312 for certain blocks or frames. In another implementation, video decoder 30 may have an inverse quantizer 310 and an inverse transform processor 312 combined into one block.

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

Следует отметить, что дополнительные операции могут применяться к получаемым векторам движения текущего блока (в том числе, но без ограничения, к векторам движения контрольной точки аффинного режима, векторам движения субблока в аффинном, планарном, ATMVP режимах, временным векторам движения и тому подобному). Например, значение вектора движения ограничивается предопределенным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth (битовой глубиной), тогда диапазон составляет -2^(bitDepth-1)~2^(bitDepth-1)-1, где «^» означает возведение в степень. Например, если bitDepth равна 16, диапазон составляет -32768~32767; если bitDepth равна 18, диапазон составляет -131072~131071. Например, значение получаемого вектора движения (например, MV четырех субблоков 4×4 в одном блоке 8×8) ограничивается таким образом, чтобы максимальная разность между целыми частями MV четырех субблоков 4×4 не превышала N пикселей, например была не более 1 пикселя. Здесь представлены два способа ограничения вектора движения в соответствии с bitDepth.It should be noted that additional operations may be applied to the resulting motion vectors of the current block (including, but not limited to, affine mode checkpoint motion vectors, sub-block motion vectors in affine, planar, ATMVP modes, temporal motion vectors, and the like). For example, the motion vector value is limited to a predefined range according to its representing bit. If the representing bit of the motion vector is bitDepth (bit depth), then the range is -2^(bitDepth-1)~2^(bitDepth-1)-1, where "^" means exponentiation. For example, if bitDepth is 16, the range is -32768~32767; if bitDepth is 18, the range is -131072~131071. For example, the value of the resulting motion vector (e.g., MVs of four 4x4 subblocks in one 8x8 block) is limited so that the maximum difference between integer parts of the MVs of four 4x4 subblocks does not exceed N pixels, for example, is no more than 1 pixel. Here are two ways to limit the motion vector according to bitDepth.

Способ 1: удаление MSB (старшего бита) переполнения посредством потоковых операцийMethod 1: Removing the MSB (Most Significant Bit) of the Overflow via Stream Operations

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

mvx = ( ux >= 2bitDepth-1 ) ? (ux − 2bitDepth ) : ux (2)mvx = ( ux >= 2bitDepth-1) ? (ux − 2bitDepth ) : 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 indicate an intermediate value;

Например, если значение mvx равно -32769, после применения формул (1) и (2) результирующее значение равняется 32767. В компьютерной системе десятичные числа хранятся как дополнение до двойки. Дополнением до двойки для -32769 является 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 two's complement. The two's complement of -32769 is 1.0111,1111,1111,1111 (17 bits), then the MSB is discarded, so the resulting two's complement is 0111.1111.1111.1111 (decimal is 32767), which is the same as the output from the application of 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) to (8).

Способ 2: удаление MSB переполнения посредством усечения значенияMethod 2: Removing the MSB Overflow by Truncating 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 respectively correspond to the three input values of the MV clipping process, and the Clip3 function definition is as follows:

Clip3( x, y, z ) = Clip3(x, y, z) =

ФИГ. 4 является схематичным представлением устройства 400 видеокодирования согласно варианту осуществления настоящего раскрытия. Устройство 400 видеокодирования подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство 400 видеокодирования может быть декодером, таким как видеодекодер 30 по ФИГ. 1A, или кодером, таким как видеокодер 20 по ФИГ. 1А.FIG. 4 is a schematic representation of a video encoding apparatus 400 according to an embodiment of the present disclosure. The video encoder 400 is suitable for implementing the disclosed embodiments that are described herein. In an embodiment, video encoding device 400 may be a decoder, such as video decoder 30 of FIG. 1A, or an encoder such as video encoder 20 of FIG. 1A.

Устройство 400 видеокодирования содержит входные порты 410 (или порты 410 ввода) и блоки 420 (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 (Tx) передатчика и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодирования также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для обеспечения входа или выхода оптических или электрических сигналов.The video encoder 400 includes input ports 410 (or input ports 410) and receiver units (Rx) 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for processing data; blocks 440 (Tx) transmitter and output ports 450 (or ports 450 output) for data transmission; and a memory 460 for storing data. The video encoder 400 may also include optical-to-electrical (OE) and electrical-to-optical (EO) components connected to input ports 410, receiver units 420, transmitter units 440, and output ports 450 to provide 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. The processor 430 communicates with input ports 410, receiver units 420, transmitter units 440, output ports 450, and memory 460. Processor 430 includes an encoding module 470. Encoding module 470 implements the disclosed embodiments described above. For example, encoding module 470 implements, processes, prepares, or provides various encoding operations. Therefore, the inclusion of the encoding module 470 provides a significant improvement in the functionality of the video encoding device 400 and allows the transformation of the video encoding device 400 to another state. Alternatively, encoding module 470 is implemented as instructions stored in memory 460 and executed by processor 430.

Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянной памятью (ROM), оперативной памятью (RAM), троичной ассоциативной памятью (TCAM) и/или статической оперативной памятью (SRAM).Memory 460 may comprise one or more disks, tape drives, and solid state drives, and may be used as an overflow storage device for storing programs when such programs are selected for execution, and for storing 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 Associative Memory (TCAM) and/or Static Random Access Memory (SRAM).

ФИГ. 5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба из устройства-источника 12 и устройства-получателя 14 с Фиг. 1 согласно примерному варианту осуществления. FIG. 5 is a simplified block diagram of a device 500 that can be used as one or both of source device 12 and sink device 14 of FIG. 1 according to an exemplary embodiment .

Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, которая существует в настоящее время или будет разработана в будущем. Хотя раскрытые реализации могут быть осуществлены на практике с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более одного процессора.Processor 502 in device 500 may be a central processing unit. Alternatively, processor 502 may be any other type of device or a plurality of devices capable of manipulating or processing information that currently exists or will be developed in the future. Although the disclosed implementations may be practiced with a single processor, as shown with processor 502, for example, speed and efficiency advantages may be achieved using more than one processor.

Память 504 в устройстве 500 может быть постоянной памятью (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться запоминающее устройство любого другого подходящего типа устройства. Память 504 может включать в себя код и данные 506, доступ к которым осуществляется процессором 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, причем прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение видеокодирования, которое выполняет описанные в данном документе способы. Memory 504 in device 500 may be read only memory (ROM) or random access memory (RAM) in an implementation. Memory 504 may be any other suitable type of storage device. Memory 504 may include code and data 506 accessed by processor 502 using bus 512. Memory 504 may further include an operating system 508 and application programs 510, application programs 510 including at least one program, which allows the processor 502 to perform the methods described herein. For example, application programs 510 may include applications 1 through N, which further include 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 may be, in one example, a touch display that combines a display with a touch element capable of receiving touch inputs (by touch). Display 518 may be coupled to processor 502 via bus 512.

Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из многочисленных шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один встраиваемый блок, такой как карта памяти, или множество блоков, таких как множество карт памяти. Таким образом, устройство 500 может быть реализовано в самых разнообразных конфигурациях.Although shown here as a single bus, bus 512 of device 500 may be composed of multiple buses. In addition, secondary storage 514 may be directly connected to other components of the device 500 or may be accessed via a network and may contain a single pluggable unit, such as a memory card, or multiple units, such as a plurality of memory cards. Thus, device 500 can be implemented in a wide variety of configurations.

В проектном тексте проекта VVC 3.0 JVET-L1001 MTS может быть разрешен на уровне последовательности индивидуально для интер- и интра-слайса. Когда MTS выключен, DCT2 предполагается использовать в качестве ядра преобразования. Однако в предшествующем уровне техники, таком как JVET-M0303, JVET-M0140 или JVET-M0102, вводится выводимое преобразование DST7/DCT8. Возможность переключаться для всех случаев на чистое DCT2 преобразование отсутствует. Настоящее раскрытие решает вышеупомянутую проблему. In the design text of the VVC 3.0 JVET-L1001 project, MTS can be enabled at the sequence level individually for inter- and intra-slice. When MTS is disabled, DCT2 is supposed to be used as the conversion core. However, in the prior art such as JVET-M0303, JVET-M0140 or JVET-M0102, DST7/DCT8 inference transform is introduced. There is no possibility to switch to pure DCT2 conversion for all cases. The present disclosure solves the above problem.

Настоящее раскрытие вводит дополнительный флаг разрешения DCT2, который используется для выведения того, следует ли использовать только ядро преобразования DCT2 для всех случаев в последовательности, когда значением флага разрешения DCT2 является ложь, тогда флаг разрешения MTS уровня последовательности сигнализируется дополнительно. Когда значением флага разрешения DCT2 является истина, предполагается использовать только ядро преобразования DCT2.The present disclosure introduces an optional DCT2 enable flag that is used to infer whether or not only the DCT2 transform kernel should be used for all cases in a sequence where the value of the DCT2 enable flag is false, then the sequence level MTS enable flag is additionally signaled. When the value of the DCT2 enable flag is true, only the DCT2 transform kernel is intended to be used.

Дополнительный флаг разрешения DCT2 вводится в SPS, чтобы сделать переключение на DCT2 возможным, когда инструмент выводимого MST включен.An additional DCT2 enable flag is introduced in the SPS to make switching to DCT2 possible when the output MST tool is enabled.

7.3.2.1 Синтаксис RBSP набора параметров последовательности7.3.2.1 Sequence parameter set RBSP syntax

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

В проектном тексте проекта VVC 3.0 JVET-L1001 выбор множества преобразований (MTS) может быть разрешен на уровне последовательности индивидуально для интер- и интра-слайса. Когда MTS выключен, DCT2 предполагается использовать в качестве ядра преобразования. Однако в предшествующем уровне техники, таком как JVET-M0303, JVET-M0140 или JVET-M0102, вводится выводимое преобразование DST7/DCT8. В случае выключения на уровне последовательности MTS в предшествующем уровне техники используется DST7/DCT8, а DCT2 применяется адаптивно в зависимости от форм, позиций или других характеристик блоков. Однако DCT2 может быть желательным для конструкции как кодера, так и декодера. Другими словами, возможность переключения между DCT2, выводимыми DST7 или DCT8 и MTS (ядром преобразования, выбираемым посредством RDO) разработана в настоящем раскрытии.In the draft text of the VVC 3.0 JVET-L1001 draft, Transform Set Selection (MTS) can be enabled at the sequence level individually for inter- and intra-slice. When MTS is disabled, DCT2 is supposed to be used as the conversion core. However, in the prior art such as JVET-M0303, JVET-M0140 or JVET-M0102, DST7/DCT8 inference transform is introduced. In the case of shutdown at the MTS sequence level, the prior art uses DST7/DCT8 and DCT2 is applied adaptively depending on the shapes, positions, or other characteristics of the blocks. However, DCT2 may be desirable for both encoder and decoder design. In other words, the ability to switch between DCT2, output DST7 or DCT8 and MTS (transformation core selected by RDO) is designed in the present disclosure.

В этом раскрытии флаг разрешения DCT2 вводится в высокоуровневый синтаксис. Для решения указанной в Разделе 1.1 проблемы. Дополнительный флаг разрешения DCT2 в высокоуровневом синтаксисе используется для выведения того, следует ли использовать только ядро преобразования DCT2 для всех случаев в последовательности, когда значением флага разрешения DCT2 является ложь, тогда флаг разрешения MTS уровня последовательности сигнализируется дополнительно для выведения того, разрешен ли MTS для этой последовательности. Когда значением флага разрешения DCT2 является истина, предполагается использовать только ядро преобразования DCT2.In this disclosure, the enable flag DCT2 is introduced into the high-level syntax. To solve the problem mentioned in Section 1.1. The optional DCT2 enable flag in the high-level syntax is used to infer whether only the DCT2 transform kernel should be used for all cases in the sequence where the value of the DCT2 enable flag is false, then the sequence level MTS enable flag is signaled additionally to infer whether MTS is enabled for that sequences. When the value of the DCT2 enable flag is true, only the DCT2 transform kernel is intended to be used.

Для случая, когда флаг разрешения DCT2 уровня последовательности отключен, флаг MTS уровня последовательности сигнализируется дополнительно, как в проекте 3.0 VVC (JVET-L1001) предшествующего уровня техники. Следовательно, выводимое DST7/DCT8 или инструмент кодирования с адаптивным ядром преобразованием, такой как (JVET-M0303, JVET-M0140 или JVET-M0102), используется так же, как и в предшествующем уровне техники.For the case where the sequence level DCT2 enable flag is disabled, the sequence level MTS flag is additionally signaled, as in prior art VVC draft 3.0 (JVET-L1001). Therefore, the output DST7/DCT8 or an adaptive transformation core coding tool such as (JVET-M0303, JVET-M0140, or JVET-M0102) is used in the same way as in the prior art.

Для случая, когда флаг разрешения DCT2 уровня последовательности включен, предполагается, что будет использоваться только DCT2. Следовательно, для выводимого DST7/DCT8 или инструмента кодирования с адаптивным ядром преобразованием, такого как (JVET-M0303, JVET-M0140 или JVET-M0102), либо выводится использование DCT2 вместо DST7/DCT8, либо запрещается.For the case where the sequence level DCT2 enable flag is on, it is assumed that only DCT2 will be used. Therefore, for a DST7/DCT8 output or an adaptive transformation core coding tool such as (JVET-M0303, JVET-M0140, or JVET-M0102), either use of DCT2 instead of DST7/DCT8 is output or prohibited.

Первый вариант осуществления настоящего раскрытияFirst Embodiment of the Present Disclosure

В первом варианте осуществления флаг разрешения DCT2 уровня последовательности указывается в sps следующим образом, выделенная часть разработана в соответствии с настоящим раскрытием. Кодер включает в себя указатель флага разрешения DCT2 в битовый поток, декодер синтаксически анализирует указатель флага разрешения DCT из битового потока.In the first embodiment, the sequence level DCT2 enable flag is indicated in sps as follows, the highlighted part is designed in accordance with the present disclosure. The encoder includes the DCT2 enable flag pointer in the bitstream, the decoder parses the DCT enable flag pointer from the bitstream.

7.3.2.1 Синтаксис RBSP набора параметров последовательности7.3.2.1 Sequence parameter set RBSP syntax

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

sps_dct2_enabled_flag, равный 1, указывает, что для единицы преобразования используется только ядро преобразования DCT2. sps_mts_intra_enabled_flag, равный 0, указывает, что в единице преобразования можно использовать другие ядра преобразования помимо DCT2. sps_dct2_enabled_flag equal to 1 indicates that only the DCT2 transformation kernel is used for the transformation unit. sps_mts_intra_enabled_flag equal to 0 indicates that other transformation engines besides DCT2 can be used in the transformation unit.

sps_mts_intra_enabled_flag, равный 1, указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интра-кодирования. sps_mts_intra_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования. Когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0. sps_mts_intra_enabled_flag equal to 1 indicates that tu_mts_flag may be present in the residual coding syntax for intra coding units. sps_mts_intra_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for intra coding units. When sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

sps_mts_inter_enabled_flag указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интер-кодирования. sps_mts_inter_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интер-кодирования. Когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0. sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax for inter coding units. sps_mts_inter_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for inter coding units. When sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

Флаг разрешения DCT2 дополнительно используется в низкоуровневом синтаксисе, например, в случае выбора адаптивного к форме преобразования (JVET-M0303), выводимое DST7/DCT8 используется для короткого края прямоугольного блока, а DST7 используется для квадратного блока, когда на уровне последовательности указано, что флаг MTS отключен. Если MTS уровня последовательности разрешен для последовательности, адаптивность к форме применяется в случае, когда флаг MTS равен нулю, и VTM будет использовать DCT2 как для горизонтального, так и для вертикального направлений. В случае, если флаг MTS равен единице, выполняется процесс выбора преобразования VTM. Все три используемых преобразования (DCT2, DST7 и DCT8) идентичны тем, которые определены в текущей VTM.The DCT2 enable flag is additionally used in low-level syntax, for example, in the case of selecting Shape-Adaptive Transform (JVET-M0303), output DST7/DCT8 is used for the short edge of a rectangular box and DST7 is used for a square box when the sequence level specifies that the flag MTS is disabled. If sequence level MTS is enabled for the sequence, shape adaptivity is applied when the MTS flag is set to zero and the VTM will use DCT2 for both the horizontal and vertical directions. In case the MTS flag is equal to one, the VTM transform selection process is performed. All three transformations used (DCT2, DST7 and DCT8) are identical to those defined in the current VTM.

В предлагаемом способе, когда флаг разрешения DCT2 указывается отключенным, адаптивный выбор ядра остается таким же, как и в предшествующем уровне техники.In the proposed method, when the enable flag DCT2 is indicated to be disabled, the adaptive core selection remains the same as in the prior art.

Когда флаг разрешения DCT2 указывается включенным, может использоваться только DCT2. Выводится, что функция MTS выключена. А выбор адаптивного к форме преобразования может вывести лишь использование DCT2, в этом варианте осуществления это аналогично отключению выбора адаптивного к форме преобразования. Соответствующий низкоуровневый синтаксис является следующим:When the DCT2 enable flag is indicated to be ON, only DCT2 may be used. It is displayed that the MTS function is disabled. And selecting the shape-adaptive transform can only be deduced by using DCT2, in this embodiment, it is the same as disabling the selection of the shape-adaptive transform. The corresponding low-level syntax is as follows:

8.4.4 Процесс преобразования для масштабируемых коэффициентов преобразования8.4.4 Transform process for scalable transform coefficients

8.4.4.1 Общие положения8.4.4.1 General

Входные данные для этого процесса являются следующими:The input to this process is as follows:

местоположение яркости (luma) ( xTbY, yTbY ), указывающее верхнюю левую выборку текущего блока преобразования яркости относительно верхней левой выборки яркости текущего изображения,a luminance location (luma) ( xTbY, yTbY ) indicating the top left sample of the current luma transform block relative to the top left luma sample of the current image,

переменная nTbW, указывающая ширину текущего блока преобразования,variable nTbW indicating the width of the current transformation block,

переменная nTbH, указывающая высоту текущего блока преобразования,variable nTbH indicating the height of the current transform block,

переменная cIdx, указывающая цветовую компоненту текущего блока,variable cIdx indicating the color component of the current block,

массив (nTbW)x(nTbH) d[ x ][ y ] масштабируемых коэффициентов преобразования с x=0..nTbW − 1, y=0..nTbH − 1.array (nTbW)x(nTbH) d[ x ][ y ] of scaled transform coefficients with x=0..nTbW − 1, y=0..nTbH − 1.

Выходными данными этого процесса является массив (nTbW)x(nTbH) r[ x ][ y ] остаточных выборок с x=0..nTbW - 1, y=0..nTbH - 1.The output of this process is an array (nTbW)x(nTbH) r[ x ][ y ] of residual samples with x=0..nTbW - 1, y=0..nTbH - 1.

Переменную trTypeHor, указывающую ядро горизонтального преобразования, и переменную trTypeVer, указывающую ядро вертикального преобразования, получают в Таблице 8-11 в зависимости от mts_idx[ xTbY ][ yTbY ][ cIdx ]. Переменные trAdaptHorEnabled и trAdaptVerEnabled получают следующим образом:A trTypeHor variable indicating a horizontal transformation kernel and a trTypeVer variable indicating a vertical transformation kernel are obtained in Table 8-11 depending on mts_idx[ xTbY ][ yTbY ][ cIdx ]. The variables trAdaptHorEnabled and trAdaptVerEnabled are obtained as follows:

если sps_dct2_enabled_flag && CuPredMode[ xTbY ][ yTbY ] == MODE_INTRA && !( cIdx > 0 && IntraPredModeC[ xTbY ][ yTbY ] > 66 ):if sps_dct2_enabled_flag && CuPredMode[ xTbY ][ yTbY ] == MODE_INTRA && !( cIdx > 0 && IntraPredModeC[ xTbY ][ yTbY ] > 66 ):

trAdaptSizeMin=4 trAdaptSizeMin=4

trAdaptSizeMax=cIdx == 0 ? 16 : 8 trAdaptSizeMax=cIdx == 0 ? 16:8

trAdaptHorEnabled=nTbW >= trAdaptSizeMin && nTbW <= trAdaptSizeMax ? 1 : 0 trAdaptHorEnabled=nTbW >= trAdaptSizeMin && nTbW <= trAdaptSizeMax ? 10

trAdaptVerEnabled=nTbH >= trAdaptSizeMin && nTbH <= trAdaptSizeMax ? 1 : 0 trAdaptVerEnabled=nTbH >= trAdaptSizeMin && nTbH <= trAdaptSizeMax ? 10

иначе:otherwise:

trAdaptHorEnabled=0 trAdaptHorEnabled=0

trAdaptVerEnabled=0 trAdaptVerEnabled=0

Переменные trAdaptHor и trAdaptVer получают следующим образом:The variables trAdaptHor and trAdaptVer are obtained as follows:

если sps_mts_intra_enabled_flag:if sps_mts_intra_enabled_flag:

trAdaptHor=trAdaptHorEnabled && nTbW < nTbH ? 1 : 0 trAdaptHor=trAdaptHorEnabled && nTbW < nTbH ? 10

trAdaptVer=trAdaptVerEnabled && nTbH < nTbW ? 1 : 0 trAdaptVer=trAdaptVerEnabled && nTbH < nTbW ? 10

иначе:otherwise:

trAdaptHor=trAdaptHorEnabled && nTbW <= nTbH ? 1 : 0 trAdaptHor=trAdaptHorEnabled && nTbW <= nTbH ? 10

trAdaptVer=trAdaptVerEnabled && nTbH <= nTbW ? 1 : 0 trAdaptVer=trAdaptVerEnabled && nTbH <= nTbW ? 10

Таблица 8-11. Спецификация trTypeHor и trTypeVer в зависимости от mts_idx[ x ][ y ][ cIdx ]Table 8-11. Specification of trTypeHor and trTypeVer depending on mts_idx[ x ][ y ][ cIdx ]

mts_idx[ xTbY ][ yTbY ][ cIdx ]mts_idx[ xTbY ][ yTbY ][ cIdx ] trTypeHortrTypeHor trTypeVertrTypeVer −1−1 trAdaptHortrAdaptHor trAdaptVertrAdaptVer 00 11 11 11 22 11 22 11 22 33 22 22

Второй вариант осуществления настоящего раскрытияSecond Embodiment of the Present Disclosure

Во втором варианте осуществления флаг разрешения DCT2 уровня последовательности указывается в sps следующим образом, выделенная часть разработана в соответствии с настоящим раскрытием. Кодер включает в себя указатель флага разрешения DCT2 в битовый поток, декодер синтаксически анализирует указатель флага разрешения DCT из битового потока.In the second embodiment, the sequence level DCT2 enable flag is indicated in sps as follows, the highlighted part is designed in accordance with the present disclosure. The encoder includes the DCT2 enable flag pointer in the bitstream, the decoder parses the DCT enable flag pointer from the bitstream.

7.3.2.1 Синтаксис RBSP набора параметров последовательности7.3.2.1 Sequence parameter set RBSP syntax

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

sps_dct2_enabled_flag, равный 1, указывает, что для единицы преобразования используется только ядро преобразования DCT2. sps_mts_intra_enabled_flag, равный 0, указывает, что в единице преобразования можно использовать другие ядра преобразования помимо DCT2. sps_dct2_enabled_flag equal to 1 indicates that only the DCT2 transformation kernel is used for the transformation unit. sps_mts_intra_enabled_flag equal to 0 indicates that other transformation engines besides DCT2 can be used in the transformation unit.

sps_mts_intra_enabled_flag, равный 1, указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интра-кодирования. sps_mts_intra_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования. Когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0. sps_mts_intra_enabled_flag equal to 1 indicates that tu_mts_flag may be present in the residual coding syntax for intra coding units. sps_mts_intra_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for intra coding units. When sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

sps_mts_inter_enabled_flag указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интер-кодирования. sps_mts_inter_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интер-кодирования. Когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0. sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax for inter coding units. sps_mts_inter_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for inter coding units. When sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

Флаг разрешения DCT2 дополнительно используется в низкоуровневом синтаксисе, например, в случае субблочного преобразования (JVET-M0140), то, используется ли выводимое DST7/DCT8, зависит от позиции субблока преобразования. Более конкретно, горизонтальное и вертикальное преобразования для каждой позиции SBT указаны на Фигуре 6 и Фигуре 7. Например, горизонтальным и вертикальным преобразованиями для позиции 0 SBT-V являются, соответственно, DCT-8 и DST-7. Когда одна сторона остаточной TU больше 32, соответствующее преобразование устанавливается как DCT-2. Следовательно, субблочное преобразование совместно указывает разделение TU на мозаичные элементы, cbf, а также горизонтальное и вертикальное преобразования остаточного блока, которые можно рассматривать как сокращенный синтаксис для случаев, когда большая часть остатка блока находится с одной стороны блока.The enable flag DCT2 is additionally used in the low-level syntax, for example, in the case of a subblock transform (JVET-M0140), whether the output DST7/DCT8 is used depends on the position of the transform subblock. More specifically, the horizontal and vertical transformations for each SBT position are indicated in Figure 6 and Figure 7. For example, the horizontal and vertical transformations for SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is greater than 32, the corresponding mapping is set to DCT-2. Therefore, the subblock transform collectively specifies the division of the TU into tiles, cbf, and the horizontal and vertical transforms of the residual block, which can be seen as a shorthand syntax for cases where most of the remainder of the block is on one side of the block.

В предлагаемом способе, когда флаг разрешения DCT2 указывается отключенным, выбор субблочного преобразования остается таким же, как и в предшествующем уровне техники.In the proposed method, when the enable flag DCT2 is indicated to be off, the selection of the sub-block transform remains the same as in the prior art.

Когда флаг разрешения DCT2 указывается включенным, может использоваться только DCT2. Выводится, что функция MTS выключена. А ядро субблочного преобразования может лишь выводить использование DCT2. Соответствующий низкоуровневый синтаксис приложен.When the DCT2 enable flag is indicated to be ON, only DCT2 may be used. It is displayed that the MTS function is disabled. And the subblock transformation kernel can only output the use of DCT2. The corresponding low-level syntax is attached.

8.4.4 Процесс преобразования для масштабируемых коэффициентов преобразования8.4.4 Transform process for scalable transform coefficients

8.4.4.1 Общие положения8.4.4.1 General

Входные данные для этого процесса являются следующими:The input to this process is as follows:

местоположение яркости (luma) ( xTbY, yTbY ), указывающее верхнюю левую выборку текущего блока преобразования яркости относительно верхней левой выборки яркости текущего изображения,a luminance location (luma) ( xTbY, yTbY ) indicating the top left sample of the current luma transform block relative to the top left luma sample of the current image,

переменная nTbW, указывающая ширину текущего блока преобразования,variable nTbW indicating the width of the current transformation block,

переменная nTbH, указывающая высоту текущего блока преобразования,variable nTbH indicating the height of the current transform block,

переменная cIdx, указывающая цветовую компоненту текущего блока,variable cIdx indicating the color component of the current block,

массив (nTbW)x(nTbH) d[ x ][ y ] масштабируемых коэффициентов преобразования с x=0..nTbW − 1, y=0..nTbH − 1.array (nTbW)x(nTbH) d[ x ][ y ] of scaled transform coefficients with x=0..nTbW − 1, y=0..nTbH − 1.

Выходными данными этого процесса является массив (nTbW)x(nTbH) r[ x ][ y ] остаточных выборок с x=0..nTbW - 1, y=0..nTbH - 1.The output of this process is an array (nTbW)x(nTbH) r[ x ][ y ] of residual samples with x=0..nTbW - 1, y=0..nTbH - 1.

Если cu_sbt_flag[ xTbY ][ yTbY ] равен 1, переменную trTypeHor, указывающую ядро горизонтального преобразования, и переменную trTypeVer, указывающую ядро вертикального преобразования, получают в Таблице 8-11 в зависимости от cu_sbt_horizontal_flag[ xTbY ][ yTbY ] и cu_sbt_pos_flag[ xTbY ][ yTbY ].If cu_sbt_flag[ xTbY ][ yTbY ] is equal to 1, a trTypeHor variable indicating a horizontal transformation kernel and a trTypeVer variable indicating a vertical transformation kernel are obtained in Table 8-11 depending on cu_sbt_horizontal_flag[ xTbY ][ yTbY ] and cu_sbt_pos_flag[ xTbY ] [ yTbY].

Иначе (cu_sbt_flag[ xTbY ][ yTbY ] равен 0), переменную trTypeHor, указывающую ядро горизонтального преобразования, и переменную trTypeVer, указывающую ядро вертикального преобразования, получают в Таблице 8-16 в зависимости от mts_idx[ xTbY ][ yTbY ][ cIdx ].Otherwise (cu_sbt_flag[ xTbY ][ yTbY ] is 0), a trTypeHor variable indicating a horizontal transformation kernel and a trTypeVer variable indicating a vertical transformation kernel are obtained in Table 8-16 depending on mts_idx[ xTbY ][ yTbY ][ cIdx ].

Переменные nonZeroW и nonZeroH получают следующим образом:Variables nonZeroW and nonZeroH are obtained as follows:

nonZeroW=Min( nTbW, 32 ) (8-810)nonZeroW=Min( nTbW, 32 ) (8-810)

nonZeroH=Min( nTbH, 32 ) (8-811)nonZeroH=Min( nTbH, 32 ) (8-811)

Массив (nTbW)x(nTbH) r остаточных выборок получают следующим образом:An array of (nTbW)x(nTbH) r residual samples is obtained as follows:

1. Каждый (вертикальный) столбец масштабированных коэффициентов d[ x ][ y ] преобразования с x=0..nonZeroW - 1, y=0..nonZeroH - 1 преобразуется в e[ x ][ y ] с x=0..nonZeroW - 1, y=0..nTbH - 1 посредством вызова процесса одномерного преобразования, как определено в пункте 8.4.4.2, для каждого столбца x=0..nonZeroW - 1 с высотой nTbH блока преобразования, ненулевой высотой nonZeroH масштабированных коэффициентов преобразования, списком d[ x ][ y ] с y=0..nonZeroH - 1 и переменной trType типа преобразования, установленной равной trTypeVer, в качестве входных данных, а выходными данными является список e[ x ][ y ] с y=0..nTbH - 1.1. Each (vertical) column of scaled coefficients d[ x ][ y ] of the transform with x=0..nonZeroW - 1, y=0..nonZeroH - 1 is converted to e[ x ][ y ] with x=0.. nonZeroW - 1, y=0..nTbH - 1 by invoking the one-dimensional transform process as defined in clause 8.4.4.2, for each column x=0..nonZeroW - 1 with the height nTbH of the transform block, the nonZeroH nonZeroH height of the scaled transform coefficients, a list d[ x ][ y ] with y=0..nonZeroH - 1 and a transform type variable trType set to trTypeVer as input, and the output is a list e[ x ][ y ] with y=0.. nTbH - 1.

2. Промежуточные значения g[ x ][ y ] выборок с x=0..nonZeroW - 1, y=0..nTbH - 1 получаются следующим образом:2. Intermediate values g[ x ][ y ] of samples with x=0..nonZeroW - 1, y=0..nTbH - 1 are obtained as follows:

g[ x ][ y ] = Clip3( CoeffMin, CoeffMax, ( e[ x ][ y ] + 64 ) >> 7 (8-812)g[ x ][ y ] = Clip3( CoeffMin, CoeffMax, ( e[ x ][ y ] + 64 ) >> 7 (8-812)

3. Каждый (горизонтальный) ряд (строка) полученного в результате массива g[ x ][ y ] с x=0..nonZeroW − 1, y=0..nTbH − 1 преобразуется в r[ x ][ y ] с x=0..nTbW − 1, y=0..nTbH − 1 посредством вызова процесса одномерного преобразования, как определено в пункте 8.4.4.2, для каждого ряда y=0..nTbH − 1 с шириной nTbW блока преобразования, ненулевой шириной nonZeroW полученного в результате массива g[ x ][ y ], списком g[ x ][ y ] с x=0..nonZeroW − 1 и переменной trType типа преобразования, установленной равной trTypeHor, в качестве входных данных, а выходными данными является список r[ x ][ y ] с x=0..nTbW − 1.3. Each (horizontal) row (row) of the resulting array g[ x ][ y ] with x=0..nonZeroW − 1, y=0..nTbH − 1 is converted to r[ x ][ y ] with x =0..nTbW − 1, y=0..nTbH − 1 by invoking the one-dimensional transform process as defined in clause 8.4.4.2 for each row y=0..nTbH − 1 with transform block width nTbW, nonzero width nonZeroW the resulting array g[ x ][ y ], the list g[ x ][ y ] with x=0..nonZeroW − 1 and the transform type variable trType set to trTypeHor as input, and the output is the list r [ x ][ y ] with x=0..nTbW − 1.

Таблица 8-15. Спецификация trTypeHor и trTypeVer в зависимости от cu_sbt_horizontal_flag[ x ][ y ] и cu_sbt_pos_flag[ x ][ y ]Table 8-15. Specification of trTypeHor and trTypeVer depending on cu_sbt_horizontal_flag[ x ][ y ] and cu_sbt_pos_flag[ x ][ y ]

cu_sbt_horizontal_flag [ xTbY ][ yTbY ] = = 0cu_sbt_horizontal_flag [ xTbY ][ yTbY ] = = 0 cu_sbt_horizontal_flag [ xTbY ][ yTbY ] = = 1cu_sbt_horizontal_flag [ xTbY ][ yTbY ] = = 1 cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 0cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 0 cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 1cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 1 cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 0cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 0 cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 1cu_sbt_pos_flag [ xTbY ][ yTbY ] = = 1 trTypeHortrTypeHor sps_dct2_enabled_flag?0 : 2sps_dct2_enabled_flag?0 : 2 sps_dct2_enabled_flag?0:1sps_dct2_enabled_flag?0:1 sps_dct2_enabled_flag||nTbW > 32 ? 0 : 1sps_dct2_enabled_flag||nTbW > 32 ? 0 : 1 sps_dct2_enabled_flag||nTbW > 32 ? 0 : 1sps_dct2_enabled_flag||nTbW > 32 ? 0 : 1 trTypeVertrTypeVer sps_dct2_enabled_flag||nTbH > 32 ? 0 : 1sps_dct2_enabled_flag||nTbH > 32 ? 0 : 1 sps_dct2_enabled_flag||nTbH > 32 ? 0 : 1sps_dct2_enabled_flag||nTbH > 32 ? 0 : 1 sps_dct2_enabled_flag?0:2sps_dct2_enabled_flag?0:2 sps_dct2_enabled_flag?0:1sps_dct2_enabled_flag?0:1

Таблица 8-16. Спецификация trTypeHor и trTypeVer в зависимости от mts_idx[ x ][ y ][ cIdx ]Table 8-16. Specification of trTypeHor and trTypeVer depending on mts_idx[ x ][ y ][ cIdx ]

mts_idx[ xTbY ][ yTbY ][ cIdx ]mts_idx[ xTbY ][ yTbY ][ cIdx ] trTypeHortrTypeHor trTypeVertrTypeVer −1−1 00 00 00 11 11 11 22 11 22 11 22 33 22 22

Третий вариант осуществления настоящего раскрытияThird Embodiment of the Present Disclosure

В третьем варианте осуществления флаг разрешения DCT2 уровня последовательности указывается в sps следующим образом, выделенная часть разработана в соответствии с настоящим раскрытием. Кодер включает в себя указатель флага разрешения DCT2 в битовый поток, декодер синтаксически анализирует указатель флага разрешения DCT из битового потока.In the third embodiment, the sequence level DCT2 enable flag is indicated in sps as follows, the highlighted part is designed in accordance with the present disclosure. The encoder includes the DCT2 enable flag pointer in the bitstream, the decoder parses the DCT enable flag pointer from the bitstream.

7.3.2.1 Синтаксис RBSP набора параметров последовательности7.3.2.1 Sequence parameter set RBSP syntax

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}

sps_dct2_enabled_flag, равный 1, указывает, что для единицы преобразования используется только ядро преобразования DCT2. sps_mts_intra_enabled_flag, равный 0, указывает, что в единице преобразования можно использовать другие ядра преобразования помимо DCT2.sps_dct2_enabled_flag equal to 1 indicates that only the DCT2 transformation kernel is used for the transformation unit. sps_mts_intra_enabled_flag equal to 0 indicates that other transformation engines besides DCT2 can be used in the transformation unit.

sps_mts_intra_enabled_flag, равный 1, указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интра-кодирования. sps_mts_intra_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования. Когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.sps_mts_intra_enabled_flag equal to 1 indicates that tu_mts_flag may be present in the residual coding syntax for intra coding units. sps_mts_intra_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for intra coding units. When sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

sps_mts_inter_enabled_flag указывает, что tu_mts_flag может присутствовать в синтаксисе остаточного кодирования для единиц интер-кодирования. sps_mts_inter_enabled_flag, равный 0, указывает, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интер-кодирования. Когда sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax for inter coding units. sps_mts_inter_enabled_flag equal to 0 indicates that tu_mts_flag is not present in the residual coding syntax for inter coding units. When sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0.

Флаг разрешения DCT2 дополнительно используется в низкоуровневом синтаксисе, например, в случае субблочного преобразования (JVET-M0140), то, используется ли выводимое DST7/DCT8, зависит от позиции субблока преобразования. Более конкретно, горизонтальное и вертикальное преобразования для каждой позиции SBT указаны на Фигуре 6. Например, горизонтальным и вертикальным преобразованиями для позиции 0 SBT-V являются, соответственно, DCT-8 и DST-7. Когда одна сторона остаточной TU больше 32, соответствующее преобразование устанавливается как DCT-2. Следовательно, субблочное преобразование совместно указывает разделение TU на мозаичные элементы, cbf, а также горизонтальное и вертикальное преобразования остаточного блока, которые можно рассматривать как сокращенный синтаксис для случаев, когда большая часть остатка блока находится с одной стороны блока.The enable flag DCT2 is additionally used in the low-level syntax, for example, in the case of a subblock transform (JVET-M0140), whether the output DST7/DCT8 is used depends on the position of the transform subblock. More specifically, the horizontal and vertical transformations for each SBT position are indicated in Figure 6. For example, the horizontal and vertical transformations for SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is greater than 32, the corresponding mapping is set to DCT-2. Therefore, the subblock transform collectively specifies the division of the TU into tiles, cbf, and the horizontal and vertical transforms of the residual block, which can be seen as a shorthand syntax for cases where most of the remainder of the block is on one side of the block.

В предлагаемом способе, когда флаг разрешения DCT2 указывается отключенным, выбор субблочного преобразования остается таким же, как и в предшествующем уровне техники.In the proposed method, when the enable flag DCT2 is indicated to be off, the selection of the sub-block transform remains the same as in the prior art.

Когда флаг разрешения DCT2 указывается включенным, может использоваться только DCT2. Выводится, что функция MTS выключена. И субблочное преобразование выводится выключенным, поскольку никакие возможные выводимые ядра преобразования MTS не доступны.When the DCT2 enable flag is indicated to be ON, only DCT2 may be used. It is displayed that the MTS function is disabled. And the sub-block transform is output off because no possible output MTS transform kernels are available.

Соответствующее изменение синтаксиса поверх JVET-M0140 является следующим:The relevant syntax change on top of JVET-M0140 is as follows:

7.3.2.1 Синтаксис RBSP набора параметров последовательности7.3.2.1 Sequence parameter set RBSP syntax

seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor sps_seq_parameter_set_idsps_seq_parameter_set_id ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { u(1)u(1) sps_mts_intra_enabled_flag sps_mts_intra_enabled_flag sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) sps_sbt_enable_flagsps_sbt_enable_flag u(1)u(1) } } if ( sps_sbt_enable_flag )if ( sps_sbt_enable_flag ) sps_sbt_max_size_64_flag sps_sbt_max_size_64_flag u(1)u(1) rbsp_trailing_bits( )rbsp_trailing_bits( ) }}

Варианты осуществления настоящего раскрытия вводят переключаемый указатель разрешения DCT2 уровня последовательности, который обеспечивает возможность переключения на чистое ядро преобразования DCT2 с помощью инструмента выводимого преобразования для всей последовательности или слайса. DCT2 является относительно простым в вычислении и предъявляющим относительно низкие требования к пропускной способности памяти по сравнению с другим ядром преобразования. В предшествующем уровне техники возможность использования простого преобразования DCT2 исключается выводимым ядром преобразования, а с настоящим указателем гибкость переключения между низкими затратами/низкой сложностью и высокой производительностью обеспечивается как для кодера, так и для декодера. В вариантах осуществления предусмотрена возможность изменений как низкого уровня, так и изменений высокого уровня, что гарантирует согласованность и производительность кодирования кода с множеством вариаций.Embodiments of the present disclosure introduce a switchable sequence level DCT2 resolution pointer that enables switching to a pure DCT2 transform kernel with an inferred transform tool for the entire sequence or slice. DCT2 is relatively simple to compute and has relatively low memory bandwidth requirements compared to other transformation cores. In the prior art, the possibility of using a simple DCT2 transform is precluded by the inferred transform kernel, and with the present pointer, the flexibility of switching between low cost/low complexity and high performance is provided for both the encoder and the decoder. Embodiments allow both low-level changes and high-level changes to ensure consistency and performance in coding code with many variations.

Другими словами, настоящее раскрытие обеспечивает: Способ видеокодирования блока изображения, содержащий для выборки из множества выборок блока: получение остаточного сигнала, возникающего в результате интер- или интра-предсказания изображения; выведение использования ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала; обработку преобразования блока с использованием выведенного ядра преобразования.In other words, the present disclosure provides: A method for video encoding a block of an image, comprising, for sampling from a plurality of block samples: obtaining a residual signal resulting from inter- or intra-picture prediction; deriving the use of a transform kernel of the type 2 discrete cosine transform proper, DCT2, for the residual signal sequence; block transformation processing using the derived transformation kernel.

Таким образом, настоящее раскрытие вводит дополнительный флаг разрешения DCT2, который используется для выведения того, следует ли использовать только ядро преобразования DCT2 для всех случаев в последовательности, когда значением флага разрешения DCT2 является ложь, тогда флаг разрешения MTS уровня последовательности сигнализируется дополнительно. Когда значением флага разрешения DCT2 является истина, предполагается использовать только ядро преобразования DCT2. Дополнительный флаг разрешения DCT2 вводится в SPS, чтобы сделать переключение на DCT2 возможным, когда инструмент выводимого MST включен.Thus, the present disclosure introduces an additional DCT2 enable flag that is used to infer whether or not only the DCT2 transform core should be used for all cases in a sequence when the value of the DCT2 enable flag is false, then the sequence level MTS enable flag is additionally signaled. When the value of the DCT2 enable flag is true, only the DCT2 transform kernel is intended to be used. An additional DCT2 enable flag is introduced in the SPS to make switching to DCT2 possible when the output MST tool is enabled.

Это дополнительно проиллюстрировано на Фиг. 8. На Фиг. 8 на этапе 1601 предоставляется изображение, имеющее блоки. На этапе 1602 для выборки из множества выборок блока изображения получают остаточный сигнал, возникающий в результате интер- или интра-предсказания изображения. На этапе 1603 выводится использование ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала, при этом упомянутый остаточный сигнал был получен на этапе 1602. На этапе 1604 обрабатывают преобразование блока с использованием выведенного ядра преобразования.This is further illustrated in FIG. 8. In FIG. 8, in step 1601, an image having blocks is provided. At step 1602, for a sample of the plurality of samples of the image block, a residual signal resulting from inter- or intra-prediction of the image is obtained. In step 1603, the use of the type 2 discrete cosine transform proper transform, DCT2, is output for the residual signal sequence, said residual signal having been obtained in step 1602. In step 1604, the block transform is processed using the derived transform kernel.

В способе согласно настоящему раскрытию и, как проиллюстрировано согласно Фиг. 8, использование DCT2 может быть выведено из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.In the method of the present disclosure, and as illustrated with respect to FIG. 8, the use of DCT2 can be inferred from the sequence level DCT2 enable flag in the sequence parameter set, SPS.

В способе согласно настоящему раскрытию и, как проиллюстрировано согласно Фиг. 8, флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.In the method of the present disclosure, and as illustrated with respect to FIG. 8, the sequence level DCT2 enable flag is denoted by sps_dct2_enabled_flag.

Настоящее раскрытие дополнительно обеспечивает кодер 20, как проиллюстрировано на Фиг. 9. Кодер 20, проиллюстрированный на Фиг. 9, содержит блок 22 получения. Блок 22 получения может быть выполнен с возможностью получения остаточного сигнала, возникающего в результате интер- или интра-предсказания изображения. Фиг. 9 дополнительно иллюстрирует, что кодер 20 также содержит блок 24 выведения. Блок 24 выведения может быть выполнен с возможностью выведения использования ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала. Здесь остаточный сигнал может быть получен блоком 22 получения. Кодер 20, как проиллюстрирован на Фиг. 9, дополнительно содержит блок 26 обработки. Упомянутый блок 26 обработки может быть выполнен с возможностью обработки преобразования блока с использованием выведенного ядра преобразования. Ядро преобразования может быть выведено блоком 24 выведения.The present disclosure further provides an encoder 20 as illustrated in FIG. 9. The encoder 20 illustrated in FIG. 9 contains an acquisition block 22 . The acquisition unit 22 may be configured to obtain a residual signal resulting from inter or intra image prediction. Fig. 9 further illustrates that the encoder 20 also includes an output unit 24. Deriver 24 may be configured to derive using a type 2 discrete cosine transform transform kernel, DCT2, for the residual signal sequence. Here, the residual signal can be received by the receiving unit 22 . Encoder 20, as illustrated in FIG. 9 further comprises a processing unit 26 . Said processing unit 26 may be configured to process block transformation using the derived transformation kernel. The transformation core may be output by the output unit 24 .

В кодере 20 согласно настоящему раскрытию, как проиллюстрировано на Фиг. 9, блок 24 выведения может быть выполнен с возможностью выведения использования DCT2 из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.In the encoder 20 according to the present disclosure, as illustrated in FIG. 9, the inference block 24 may be configured to infer the use of DCT2 from the sequence level enable flag DCT2 in the sequence parameter set, SPS.

В кодере 20 согласно настоящему раскрытию, как проиллюстрировано на Фиг. 9, флаг разрешения DCT2 уровня последовательности может быть обозначен sps_dct2_enabled_flag.In the encoder 20 according to the present disclosure, as illustrated in FIG. 9, the sequence level DCT2 enable flag may be designated sps_dct2_enabled_flag.

Настоящее раскрытие дополнительно обеспечивает декодер 30, как проиллюстрировано на Фиг. 10. Кодер 30, проиллюстрированный на Фиг. 10, содержит блок 32 получения. Блок 32 получения может быть выполнен с возможностью получения остаточного сигнала, возникающего в результате интер- или интра-предсказания изображения. Фиг. 10 дополнительно иллюстрирует, что декодер 30 также содержит блок 34 выведения. Блок 34 выведения может быть выполнен с возможностью выведения использования ядра преобразования собственно дискретного косинусного преобразования типа 2, DCT2, для последовательности остаточного сигнала. Здесь остаточный сигнал может быть получен блоком 32 получения. Декодер 30, проиллюстрированный на Фиг. 10, дополнительно содержит блок 36 обработки. Упомянутый блок 36 обработки может быть выполнен с возможностью обработки преобразования блока с использованием выведенного ядра преобразования. Ядро преобразования может быть выведено блоком 34 выведения.The present disclosure further provides a decoder 30 as illustrated in FIG. 10. The encoder 30 illustrated in FIG. 10 contains an acquisition block 32 . The acquisition unit 32 may be configured to obtain a residual signal resulting from inter- or intra-prediction of the image. Fig. 10 further illustrates that decoder 30 also includes an output unit 34 . Deriver 34 may be configured to derive using a type 2 discrete cosine transform transform kernel, DCT2, for the residual signal sequence. Here, the residual signal can be received by the receiving unit 32 . The decoder 30 illustrated in FIG. 10 further comprises a processing unit 36 . Said processing unit 36 may be configured to process block transformation using the derived transformation kernel. The transformation core may be output by output unit 34 .

В декодере 30 согласно настоящему раскрытию, как проиллюстрировано на Фиг. 10, блок 34 выведения может быть выполнен с возможностью выведения использования DCT2 из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.In the decoder 30 according to the present disclosure, as illustrated in FIG. 10, the inference block 34 may be configured to infer the use of DCT2 from the sequence level enable flag DCT2 in the sequence parameter set, SPS.

В декодере 30 согласно настоящему раскрытию, как проиллюстрировано на Фиг. 10, флаг разрешения DCT2 уровня последовательности может быть обозначен sps_dct2_enabled_flag.In the decoder 30 according to the present disclosure, as illustrated in FIG. 10, the sequence level DCT2 enable flag may be designated sps_dct2_enabled_flag.

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

Математические операторы, используемые в этой заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и вещественнозначное деление. Соглашения о нумерации и подсчете определяют начало с 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 and arithmetic shift operations are defined more precisely, and additional operations such as exponentiation and real-valued division are also defined. Numbering and counting conventions define starting at 0, e.g. "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 unitary prefix operator) ** Умножение, в том числе матричное умножениеMultiplication, including matrix multiplication xy x y Возведение в степень. Определяет x в степени y. В других контекстах такое обозначение используется в качестве надстрочного индекса, которое не следует интерпретировать в качестве возведения в степень.Exponentiation. Specifies x to the power of y. In other contexts, such a designation is used as a superscript, which should not 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 where truncation or rounding is not expected. Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.Used to indicate division in mathematical equations where truncation or rounding is not expected. Суммирование f (i), где i принимает все целые значения от x до y включительно.Summation f (i), where i takes all integer values from x to y inclusive. x % yx % y Операция по модулю. Остаток от деления x на y, определена только для целых чисел x и y с x >= 0 и y > 0.Modulo operation. Modulo x divided by y, defined only for integers x and y with x >= 0 and y > 0.

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

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

x && y - Булева функция – логическое «и» между x и yx && y - Boolean function - logical "and" between x and y

x | | y - Булева функция – логическое «или» между x и yx | | y - Boolean function - logical "or" between x and y

! Булева функция - логическое «не»! Boolean function - boolean "not"

x ? y : z - Если значением x является ИСТИНА или оно не равно 0, принимается значение y; иначе, принимается значение z.x? y : z - If x is TRUE or not 0, y is assumed; otherwise, the value of z is taken.

Реляционные операторыRelational operators

Следующие реляционные операторы определены следующим образом:The following relational operators are defined as follows:

> - Больше> - More

>= - Больше или равно>= - Greater than or equal

< - Меньше< - Less

<= - Меньше или равно<= - Less than or equal to

= = - Равно= = - Equals

!= - Не равно!= - Not equal

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

Побитовые операторыBitwise Operators

Следующие побитовые операторы определены следующим образом:The following bitwise operators are defined as follows:

& Побитовое «и». При работе с целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.& Bitwise "and". When used with integer arguments, operates on the two's complement representation of an integer value. When working on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

| Побитовое «или». При работе с целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.| Bitwise "or". When used with integer arguments, operates on the two's complement representation of an integer value. When working on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

^ Побитовое «исключающее ИЛИ». При работе с целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.^ Bitwise "XOR". When used with integer arguments, operates on the two's complement representation of an integer value. When working on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

x>>y Арифметический сдвиг вправо целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в старшие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB x до операции сдвига.x>>y Arithmetic right shift of the two's complement integer representation of x by y bits. This function is only defined for non-negative integer y values. The bits shifted to the most significant bits (MSB) as a result of a shift to the right have a value equal to MSB x before the shift operation.

x<<y Арифметический сдвиг влево целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в младшие биты (LSB) в результате сдвига влево, имеют значение, равное 0.x<<y Arithmetic left shift of the two's complement integer representation of x by y bits. This function is only defined for non-negative integer y values. Bits shifted to the least significant bits (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, i.e. x++ equivalentx=x+1; when used in an array index, takes the value of the variable before the increment operation.

−− Уменьшение, т.е. x−− эквивалентно x=x-1; при использовании в индексе массива принимает значение переменной до операции уменьшения.−− Reduction, i.e. x−− is equivalent tox=x-1; when used in an array index, takes the value of the variable before the decrement operation.

+= Приращение на указанную величину, т.е. x += 3 эквивалентно x=x+3, а x+=(−3) эквивалентно x=x+(−3).+= Increment by the specified amount, i.e. 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).−= Decrease by the specified amount, i.e. 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..z x принимает целочисленные значения от y до z, включительно, где x, y и z являются целыми числами, а z больше y.x=y..z 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:

Abs( x ) = Abs( x ) =

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

Atan( x ) тригонометрическая функция арктангенса, работающая с аргументом x, с выходным значением в диапазоне от −π÷2 до π÷2 включительно в единицах радиан.Atan( x ) is a trigonometric arctangent function operating on argument x, with an output value in the range −π÷2 to π÷2 inclusive in units of radians.

Atan2( y, x ) = Atan2( y, x ) =

Ceil( x ) наименьшее целое число, большее или равное 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 )

Clip3( x, y, z ) = Clip3(x, y, z) =

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

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

GetCurrMsb( a, b, c, d ) = GetCurrMsb( a, b, c, d ) =

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

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

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

Min( x, y ) = Min( x, y ) =

Max( x, y ) = max( x, y ) =

Round( x ) = Sign( x ) * Floor( Abs( x ) + 0,5 ) Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )

Sign( x ) = Sign( x ) =

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

Sqrt( x ) = Sqrt( x ) =

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

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

Порядок приоритетности операцийOperation Priority Order

Когда порядок приоритетности в выражении явно не указан с помощью круглых скобок, применяются следующие правила:When the order of precedence 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 with the same priority are evaluated sequentially from left to right.

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

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

Таблица. Приоритетность операций от наивысшего (в верхней части таблицы) до низшего (в нижней части таблицы)Table. Priority of operations from highest (at the top of the table) to lowest (at the 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 operator with two arguments), " » «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 definition of logical operations, which would be mathematically described in the following form:

if( условие 0 )if( condition 0 )

определение 0 definition 0

else if( условие 1 )else if( condition 1 )

определение 1 definition 1

......

else /* информативный комментарий по оставшемуся условию */else /* informative comment on the remaining condition */

определение ndefinition of n

может быть описано следующим образом:can be described as follows:

... как указано ниже / ... применяется следующее:... as below / ... the following applies:

- If условие 0, определение 0- If condition 0, definition 0

- Иначе, If условие 1, определение 1- Otherwise, If condition 1, definition 1

- ...- ...

- Иначе (информативный комментарий по оставшемуся условию), определение n- Otherwise (informative comment on the remaining condition), the definition of n

Каждое определение «If ... Иначе, If ... Иначе, ...» в тексте вводится словами «... как указано ниже» или «...применяется следующее», за которым сразу следует «If ...». Последним условием «If ... Иначе, If ... Иначе, ...» всегда является «Иначе, ...». Чередование определений «If ... Иначе, If ... Иначе, ...» могут быть идентифицированы путем сопоставления «... как указано ниже» или «... применяется следующее» с завершающим «Иначе, ...».Each definition of "If ... Else, If ... Else, ..." in the text is introduced by the words "... as specified below" or "... the following applies", immediately followed by "If ..." . The last condition of "If ... Else, If ... Else, ..." is always "Else, ...". Alternate definitions of "If ... Else, If ... Else, ..." can be identified by matching "...as below" or "...the following applies" with a trailing "Else, ...".

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

if( условие 0a && условие 0b )if( condition 0a && condition 0b )

определение 0 definition 0

else if( условие 1a | | условие 1b )else if( condition 1a | | | condition 1b )

определение 1 definition 1

...
else
определение n
...
else
definition of n

может быть описано следующим образом:can be described as follows:

... как указано ниже / ... применяется следующее:... as below / ... the following applies:

- Если все из следующих условий истинны, определение 0:- If all of the following conditions are true, the definition is 0:

- условие 0a- condition 0a

- условие 0b- condition 0b

-- Иначе, если истинными являются одно или более из следующих условий, определение 1:-- Otherwise, if one or more of the following conditions are true, definition 1:

- условие 1a- condition 1a

- условие 1b- condition 1b

- ...- ...

- Иначе, определение n- Otherwise, the definition of n

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

if( условие 0 )if( condition 0 )

определение 0 definition 0

if( условие 1 )if( condition 1 )

определение 1 definition 1

может быть описано следующим образом:can be described as follows:

Когда условие 0, определение 0When condition is 0, definition is 0

Когда условие 1, определение 1When condition 1, definition 1

Хотя варианты осуществления данного раскрытия были в основном описаны на основе видеокодирования, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования неподвижного изображения, т.е. обработки или кодирования отдельного изображения независимо от любого предшествующего или последующего изображения, как при видеокодировании. В общем, только блоки 244 интер-предсказания (кодер) и 344 (декодер) могут быть недоступны в случае, если кодирование обработки изображения ограничено одним изображением 17. Все другие функциональные возможности (также именуемые инструментами или технологиями) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки неподвижных изображений, например вычисления 204/304 остатка, преобразования 206, квантования 208, обратного квантования 210/310, (обратного) преобразования 212/312, разделения 262/362, интра-предсказания 254/354 и/или контурной фильтрации 220, 320 и энтропийного кодирования 270 и энтропийного декодирования 304.While embodiments of this disclosure have been primarily described in terms of video coding, it should be noted that the embodiments of encoding system 10, encoder 20, and decoder 30 (and system 10, respectively) and other embodiments described herein may also be performed. capable of processing or encoding a still image, i. e. processing or encoding a single image independently of any preceding or subsequent image, as in video encoding. In general, only inter-prediction (encoder) and 344 (decoder) blocks 244 may be unavailable if image processing coding is limited to a single image 17. All other functionality (also referred to as tools or technologies) of video encoder 20 and video decoder 30 may be equally be used for still image processing, e.g., residual calculation 204/304, transform 206, quantization 208, inverse quantization 210/310, (inverse) transform 212/312, split 262/362, intra-prediction 254/354, and/or contour filtering 220, 320; and entropy encoding 270 and entropy decoding 304.

Варианты осуществления, например кодера 20 и декодера 30, а также описанные в данном документе функции, например применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, микропрограммным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на считываемом компьютером носителе или передаваться через среду связи в виде одной или более инструкций, или кода и исполняться аппаратным процессором. Считываемый компьютером носитель может включать в себя считываемый компьютером носитель, который соответствует материальному носителю, например носителю данных, или среде связи, в том числе любая среда, которая обеспечивает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальным считываемым компьютером носителям, которые являются долговременными, или (2) среде связи, такой как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ одним или более компьютерами, или одним или более процессорами для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.Embodiments such as encoder 20 and decoder 30, as well as the functions described herein, such as encoder 20 and decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on a computer-readable medium or transmitted over a communication medium as one or more instructions or code and executed by a hardware processor. Computer-readable media may include computer-readable media that corresponds to a tangible medium, such as a storage medium, or a communication medium, including any medium that allows a computer program to be transferred from one place to another, such as according to a communication protocol. Thus, computer-readable media can typically correspond to (1) tangible computer-readable media that is durable, or (2) a communication medium such as a signal or carrier wave. Storage media can be any available media that can be accessed by one or more computers, or one or more processors, to retrieve instructions, code, and/or data structures for implementing the techniques described in this disclosure. The computer program product may include a computer-readable medium.

В качестве примера, а не ограничения, такие считываемые компьютером носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть считываемой компьютером средой. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио- и микроволновая связь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная, радио- и микроволновая связь, включаются в определение среды/носителю. Однако следует понимать, что считываемые компьютером носители данных и запоминающие носители данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные среды, а вместо этого направлены на долговременные, материальные носители данных. Диск (disk) и диск (disc), используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным образом, а диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.By way of example, and not limitation, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other media that can be used to store desired program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the medium/media definition. However, it should be understood that computer-readable storage media and storage media do not include connections, carrier waves, signals, or other short-lived media, but are instead directed to long-term, tangible storage media. The disc (disk) and disc (disc) used in this document include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, where discs usually play data magnetically, while discs reproduce data optically using lasers. Combinations of the above should also be included in the scope of computer-readable media.

Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах, или логических элементах.The 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 (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within specialized hardware and/or software modules capable of encoding and decoding or included in a combined codec. In addition, the techniques may be fully implemented in one or more circuits, or logic elements.

Методики этого раскрытия могут быть реализованы в большом количестве устройств или аппаратов, в том числе беспроводной телефон, интегральную схему (ИС) или набор ИС (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены совокупностью взаимодействующих аппаратных блоков, в том числе один или более процессоров, как описано выше, вместе с подходящим программным обеспечением и/или встроенным программным обеспечением.The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless telephone, an integrated circuit (IC), or an IC stack (eg, a chipset). This disclosure describes various components, modules, or blocks to emphasize the functional aspects of devices capable of performing the disclosed technologies, but not necessarily requiring implementation in different hardware blocks. Rather, as described above, various blocks may be combined into a codec hardware block, or provided by a collection of cooperating hardware blocks, including one or more processors, as described above, along with suitable software and/or firmware.

Claims (81)

1. Способ видеокодирования блока изображения, содержащий:1. A method for video encoding an image block, comprising: получение остаточного сигнала, возникающего в результате интер-предсказания изображения или интра-предсказания изображения;obtaining a residual signal resulting from image inter-prediction or image intra-prediction; выведение использования ядра преобразования собственно дискретного косинусного преобразования типа 2 (DCT2) для блока последовательности остаточного сигнала;deriving the use of a type 2 discrete cosine transform (DCT2) transform kernel for the residual signal sequence block; обработку преобразования блока с использованием выведенного ядра преобразования,block transformation processing using the derived transformation kernel, в котором использование ядра преобразования DCT2 выводят из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности (SPS).wherein the use of the DCT2 transform kernel is derived from the sequence level DCT2 enable flag in the sequence parameter set (SPS). 2. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.2. The method of claim 1, wherein the sequence level DCT2 enable flag is designated sps_dct2_enabled_flag. 3. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности содержится в синтаксисе уровня SPS следующим образом:3. The method of claim 1, wherein the sequence level DCT2 enable flag is contained in the SPS level syntax as follows: seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}
при этом sps_dct2_enabled_flag представляет флаг разрешения DCT2 уровня последовательности.where sps_dct2_enabled_flag represents the sequence level DCT2 enable flag. 4. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования.4. The method of claim 1, wherein the sequence level DCT2 enable flag of 1 indicates that a DCT2 transform core is being used for the transform. 5. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только.5. The method of claim 1, wherein the sequence level DCT2 enable flag of 1 indicates that the DCT2 transformation core is used for transformation only. 6. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется как для преобразования в горизонтальном направлении, так и для преобразования в вертикальном направлении.6. The method of claim 1, wherein the sequence level DCT2 enable flag of 1 indicates that DCT2 is used for both horizontal translation and vertical translation. 7. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется в субблочном преобразовании.7. The method of claim 1, wherein the sequence level DCT2 enable flag of 1 indicates that DCT2 is used in the subblock transform. 8. Способ по п. 7, в котором в случае, если одна сторона остаточной единицы преобразования (tu) больше 32, соответствующее ядро преобразования устанавливается как DCT2.8. The method of claim 7, wherein if one side of the residual transformation unit (tu) is greater than 32, the corresponding transformation kernel is set to DCT2. 9. Способ по п. 1, в котором в случае, если флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только, как субблочное преобразование, так и преобразование с выбором множества преобразований (MTS) выводятся как выключенные.9. The method of claim 1, wherein if the sequence level DCT2 enable flag is set to 1, indicates that a DCT2 transform kernel is used for the transform, only both the sub-block transform and the multi-transform selection (MTS) transform are output. as off. 10. Способ по п. 1, в котором флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что ядра преобразования, отличные от DCT2, используются для преобразования.10. The method of claim 1, wherein the sequence level DCT2 enable flag of 0 indicates that transformation kernels other than DCT2 are used for transformation. 11. Способ по п. 10, в котором другие ядра преобразования содержат дискретное синусное преобразование типа 7 (DST7) и/или дискретное косинусное преобразование типа 8 (DCT8).11. The method of claim 10, wherein the other transform kernels comprise a type 7 discrete sine transform (DST7) and/or a type 8 discrete cosine transform (DCT8). 12. Способ по п. 10, в котором флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что выводится использование по меньшей мере одного из DST7 или DCT8 для преобразования.12. The method of claim 10, wherein the sequence level DCT2 enable flag of 0 indicates that at least one of DST7 or DCT8 is used for conversion. 13. Способ по п. 10, в случае, если флаг разрешения DCT2 уровня последовательности равен 0, через флаг определяется, разрешен ли выбор множества преобразований для набора параметров последовательности.13. The method of claim 10, if the sequence level permission flag DCT2 is 0, it is determined via the flag whether the selection of a set of transformations for a set of sequence parameters is allowed. 14. Способ по п. 13, 14. The method according to p. 13, в случае присутствия sps_mts_intra_enabled_flag,if sps_mts_intra_enabled_flag is present, в случае, если sps_mts_intra_enabled_flag равен 1, указывается, что флаг выбора множества преобразований (MTS) единицы преобразования (TU), обозначаемый tu_mts_flag, присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 1, it is indicated that the transform unit (TU) transform set selection (MTS) flag, denoted by tu_mts_flag, is present in the residual coding syntax for intra coding units; в случае, если sps_mts_intra_enabled_flag равен 0, указывается, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 0, it is indicated that tu_mts_flag is not present in the residual encoding syntax for intra coding units; при этом в случае, если sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.however, if sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0. 15. Кодер, содержащий схему обработки для выполнения способа по любому из пп. 1-14.15. An encoder containing a processing circuit for performing the method according to any one of paragraphs. 1-14. 16. Декодер, содержащий схему обработки для выполнения способа по любому из пп. 1-14.16. A decoder containing a processing circuit for performing the method according to any one of paragraphs. 1-14. 17. Декодер, содержащий:17. Decoder, containing: блок получения, выполненный с возможностью получения остаточного сигнала, возникающего в результате интер-предсказания изображения или интра-предсказания изображения;an acquisition unit configured to obtain a residual signal resulting from image inter-prediction or image intra-prediction; блок выведения, выполненный с возможностью выведения использования ядра преобразования собственно дискретного косинусного преобразования типа 2 (DCT2) для блока последовательности остаточного сигнала; иa derivation unit configured to deduce using a type 2 native discrete cosine transform (DCT2) transformation kernel for the residual signal sequence block; And блок обработки, выполненный с возможностью обработки преобразования блока с использованием выведенного ядра преобразования;a processing unit, configured to process the transformation of the block using the derived transformation kernel; в котором блок выведения выполнен с возможностью выведения использования ядра преобразования DCT2 из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности, SPS.wherein the derivation unit is configured to deduce the use of the DCT2 transform kernel from the sequence level DCT2 enable flag in the sequence parameter set, SPS. 18. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.18. The decoder of claim 17, wherein the sequence level DCT2 enable flag is designated sps_dct2_enabled_flag. 19. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности содержится в синтаксисе уровня SPS следующим образом:19. The decoder of claim 17, wherein the sequence level DCT2 enable flag is contained in the SPS level syntax as follows: seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}
при этом sps_dct2_enabled_flag представляет флаг разрешения DCT2 уровня последовательности.where sps_dct2_enabled_flag represents the sequence level DCT2 enable flag. 20. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования.20. The decoder of claim 17, wherein the sequence level DCT2 enable flag of 1 indicates that a DCT2 transform core is used for the transform. 21. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только.21. The decoder of claim 17, wherein the sequence level DCT2 enable flag of 1 indicates that the DCT2 transformation core is used for transformation only. 22. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется для преобразования как в горизонтальном, так и в вертикальном направлении.22. The decoder of claim 17, wherein the sequence level DCT2 enable flag of 1 indicates that DCT2 is used for both horizontal and vertical transformation. 23. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется в субблочном преобразовании.23. The decoder of claim 17, wherein the sequence level DCT2 enable flag of 1 indicates that DCT2 is used in the sub-block transform. 24. Декодер по п. 23, в котором в случае, если одна сторона остаточной единицы преобразования (tu) больше 32, соответствующее преобразование устанавливается как DCT2.24. The decoder of claim 23, wherein if one side of the residual unit of the transformation (tu) is greater than 32, the corresponding transformation is set to DCT2. 25. Декодер по п. 17, в котором в случае, если флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только, как субблочное преобразование, так и преобразование с выбором множества преобразований (MTS) выводятся как выключенные.25. The decoder of claim 17, wherein if the sequence level DCT2 enable flag is set to 1, indicates that the DCT2 transform kernel is used for the transform, only both the sub-block transform and the transform multiple selection (MTS) transform are output. as off. 26. Декодер по п. 17, в котором флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что ядра преобразования, отличные от DCT2, используются для преобразования.26. The decoder of claim 17, wherein the sequence level DCT2 enable flag of 0 indicates that transform kernels other than DCT2 are used for the transform. 27. Декодер по п. 26, в котором блок выведения выполнен с возможностью выведения использования дискретного синусного преобразования типа 7 (DST7) и/или дискретного косинусного преобразования типа 8 (DCT8) для преобразования.27. The decoder of claim 26, wherein the deriver is configured to deduce using a Type 7 Discrete Sine Transform (DST7) and/or a Type 8 Discrete Cosine Transform (DCT8) for the transform. 28. Декодер по п. 26, в котором флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что выводится использование DST7/DCT8 для преобразования, только.28. The decoder of claim 26, wherein the sequence level DCT2 enable flag is 0, indicating that the use of DST7/DCT8 for conversion is output only. 29. Декодер по п. 26, в случае, если флаг разрешения DCT2 уровня последовательности равен 0, через флаг определяется, разрешен ли выбор множества преобразований для набора параметров последовательности.29. The decoder of claim 26, if the sequence level permission flag DCT2 is 0, it is determined through the flag whether the selection of a set of transformations for a set of sequence parameters is allowed. 30. Декодер по п. 29, 30. Decoder according to claim 29, в случае присутствия sps_mts_intra_enabled_flag,if sps_mts_intra_enabled_flag is present, в случае, если sps_mts_intra_enabled_flag равен 1, указывается, что флаг выбора множества преобразований (MTS) единицы преобразования (TU), обозначаемый tu_mts_flag, присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 1, it is indicated that the transform unit (TU) transform set selection (MTS) flag, denoted by tu_mts_flag, is present in the residual coding syntax for intra coding units; в случае, если sps_mts_intra_enabled_flag равен 0, указывается, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 0, it is indicated that tu_mts_flag is not present in the residual encoding syntax for intra coding units; при этом в случае, если sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.however, if sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0. 31. Кодер, содержащий:31. An encoder containing: блок получения, выполненный с возможностью получения остаточного сигнала, возникающего в результате интер-предсказания изображения или интра-предсказания изображения;an acquisition unit configured to obtain a residual signal resulting from image inter-prediction or image intra-prediction; блок выведения, выполненный с возможностью выведения использования ядра преобразования собственно дискретного косинусного преобразования типа 2 (DCT2) для блока последовательности остаточного сигнала; иa derivation unit configured to deduce using a type 2 native discrete cosine transform (DCT2) transformation kernel for the residual signal sequence block; And блок обработки, выполненный с возможностью обработки преобразования блока с использованием выведенного ядра преобразования;a processing unit, configured to process the transformation of the block using the derived transformation kernel; в котором блок выведения выполнен с возможностью выведения использования ядра преобразования DCT2 из флага разрешения DCT2 уровня последовательности в наборе параметров последовательности (SPS).wherein the inference block is configured to infer the use of a DCT2 transform kernel from a sequence level DCT2 enable flag in a sequence parameter set (SPS). 32. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности обозначается sps_dct2_enabled_flag.32. The encoder of claim 31, wherein the sequence level DCT2 enable flag is designated sps_dct2_enabled_flag. 33. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности содержится в синтаксисе уровня SPS следующим образом:33. The encoder of claim 31, wherein the sequence level DCT2 enable flag is contained in the SPS level syntax as follows: seq_parameter_set_rbsp ( ) {seq_parameter_set_rbsp ( ) { ДескрипторDescriptor ue(v)ue(v) sps_dct2_enabled_flag sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flagsps_mts_intra_enabled_flag u(1)u(1) sps_mts_inter_enabled_flagsps_mts_inter_enabled_flag u(1)u(1) } } u(1)u(1) }}
при этом sps_dct2_enabled_flag представляет флаг разрешения DCT2 уровня последовательности.where sps_dct2_enabled_flag represents the sequence level DCT2 enable flag. 34. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования.34. The encoder of claim 31, wherein the sequence level DCT2 enable flag of 1 indicates that a DCT2 transform core is used for the transform. 35. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только.35. The encoder of claim 31, wherein the sequence level DCT2 enable flag of 1 indicates that the DCT2 transform kernel is used for transform only. 36. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется как для горизонтального, так и для вертикального направлений при выборе адаптивного по форме преобразования.36. The encoder of claim 31, wherein the sequence level DCT2 enable flag of 1 indicates that DCT2 is used for both the horizontal and vertical directions when shape-adaptive transform is selected. 37. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что DCT2 используется в субблочном преобразовании.37. The encoder of claim 31, wherein the sequence level DCT2 enable flag of 1 indicates that DCT2 is used in the subblock transform. 38. Кодер по п. 37, в котором в случае, если одна сторона остаточной единицы преобразования (tu) больше 32, соответствующее преобразование устанавливается как DCT2.38. The encoder of claim 37, wherein if one side of the residual transformation unit (tu) is greater than 32, the corresponding transformation is set to DCT2. 39. Кодер по п. 31, в котором в случае, если флаг разрешения DCT2 уровня последовательности, равный 1, указывает, что ядро преобразования DCT2 используется для преобразования, только, как субблочное преобразование, так и преобразование с выбором множества преобразований (MTS) выводятся как выключенные.39. The encoder of claim 31, wherein if the sequence level DCT2 enable flag is 1, indicates that a DCT2 transform kernel is used for the transform, only both the sub-block transform and the transform multiple selection (MTS) transform are output. as off. 40. Кодер по п. 31, в котором флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что ядра преобразования, отличные от DCT2, используются для преобразования.40. The encoder of claim 31, wherein the sequence level DCT2 enable flag of 0 indicates that transform kernels other than DCT2 are used for the transform. 41. Кодер по п. 40, в котором блок выведения выполнен с возможностью выведения использования дискретного синусного преобразования типа 7 (DST7) и/или дискретного косинусного преобразования типа 8 (DCT8) для преобразования.41. The encoder of claim 40, wherein the derivator is configured to derive using a Type 7 Discrete Sine Transform (DST7) and/or a Type 8 Discrete Cosine Transform (DCT8) for the transform. 42. Кодер по п. 40, в котором флаг разрешения DCT2 уровня последовательности, равный 0, указывает, что выводится использование DST7/DCT8 для преобразования, только.42. The encoder of claim 40, wherein the sequence level DCT2 enable flag is 0, indicating that the use of DST7/DCT8 for conversion is output only. 43. Кодер по п. 40, в случае, если флаг разрешения DCT2 уровня последовательности равен 0, через флаг определяется, разрешен ли выбор множества преобразований для набора параметров последовательности.43. The encoder of claim 40, if the sequence level DCT2 permission flag is 0, it is determined via the flag whether the selection of a set of transformations for a set of sequence parameters is allowed. 44. Кодер по п. 43, 44. Encoder according to claim 43, в случае присутствия sps_mts_intra_enabled_flag,if sps_mts_intra_enabled_flag is present, в случае, если sps_mts_intra_enabled_flag равен 1, указывается, что флаг выбора множества преобразований (MTS) единицы преобразования (TU), обозначаемый tu_mts_flag, присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is equal to 1, it is indicated that the transform unit (TU) transform set selection (MTS) flag, denoted by tu_mts_flag, is present in the residual coding syntax for intra coding units; в случае, если sps_mts_intra_enabled_flag равен 0, указывается, что tu_mts_flag не присутствует в синтаксисе остаточного кодирования для единиц интра-кодирования;in case sps_mts_intra_enabled_flag is 0, it is indicated that tu_mts_flag is not present in the residual encoding syntax for intra coding units; при этом в случае, если sps_mts_intra_enabled_flag не присутствует, sps_mts_intra_enabled_flag выводится равным 0.however, if sps_mts_intra_enabled_flag is not present, sps_mts_intra_enabled_flag is output as 0. 45. Декодер, содержащий:45. Decoder, containing: один или более процессоров; иone or more processors; And долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программную часть для исполнения процессорами, причем программная часть, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любому из пп. 1-14.a durable computer-readable medium associated with the processors and storing software for execution by the processors, wherein the software, when executed by the processors, configures a decoder to perform the method of any one of claims. 1-14. 46. Кодер, содержащий:46. An encoder containing: один или более процессоров; иone or more processors; And долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программную часть для исполнения процессорами, причем программная часть, когда исполняется процессорами, конфигурирует кодер для выполнения способа по любому из пп. 1-14.a durable computer-readable medium associated with the processors and storing software for execution by the processors, wherein the software, when executed by the processors, configures an encoder to perform the method of any one of claims. 1-14. 47. Считываемый компьютером носитель с записанной на нем программой; причем программа заставляет компьютер выполнить способ по любому из пп. 1-14.47. A computer-readable medium with a program recorded on it; moreover, the program causes the computer to execute the method according to any one of paragraphs. 1-14.
RU2021123533A 2019-01-11 2020-01-11 Encoder, decoder and corresponding methods using dct2 high level permission flag RU2801589C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/791,674 2019-01-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023120513A Division RU2821334C2 (en) 2019-01-11 2020-01-11 Encoder, decoder and related methods using high-level resolution flag dct2

Publications (2)

Publication Number Publication Date
RU2021123533A RU2021123533A (en) 2023-02-13
RU2801589C2 true RU2801589C2 (en) 2023-08-11

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170295380A1 (en) * 2016-04-06 2017-10-12 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding
WO2018021374A1 (en) * 2016-07-29 2018-02-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Encoding device, decoding device, encoding method, and decoding method
US20180332289A1 (en) * 2017-05-11 2018-11-15 Mediatek Inc. Method and Apparatus of Adaptive Multiple Transforms for Video Coding
RU2675154C1 (en) * 2012-07-16 2018-12-17 Самсунг Электроникс Ко., Лтд. Video encoding method and video encoding apparatus and video decoding method and video decoding device for signaling sao parameters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2675154C1 (en) * 2012-07-16 2018-12-17 Самсунг Электроникс Ко., Лтд. Video encoding method and video encoding apparatus and video decoding method and video decoding device for signaling sao parameters
US20170295380A1 (en) * 2016-04-06 2017-10-12 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding
WO2018021374A1 (en) * 2016-07-29 2018-02-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Encoding device, decoding device, encoding method, and decoding method
US20180332289A1 (en) * 2017-05-11 2018-11-15 Mediatek Inc. Method and Apparatus of Adaptive Multiple Transforms for Video Coding

Similar Documents

Publication Publication Date Title
JP7366149B2 (en) An encoder, decoder, and corresponding method for harmonizing matrix-based intra-prediction and quadratic transform core selection
CA3114341C (en) An encoder, a decoder and corresponding methods using compact mv storage
JP2024026231A (en) Encoder related to intra-prediction mode, decoder, and corresponding method
US11758137B2 (en) Encoder, decoder and corresponding methods using DCT2 enabled high level flag
AU2020232820B2 (en) The method of efficient signalling of CBF flags
JP2024055893A (en) Clipping levels for nonlinear adaptive loop filters.
EP3900331A1 (en) A video encoder, a video decoder and corresponding methods of processing mmvd distance
CA3117627A1 (en) Separate merge list for subblock merge candidates and intra-inter techniques harmonization for video coding
WO2021037053A1 (en) An encoder, a decoder and corresponding methods of cabac coding for the indices of geometric partition flag
CN113647103A (en) Method and apparatus for quantizing coefficients for matrix-based intra prediction techniques
RU2801589C2 (en) Encoder, decoder and corresponding methods using dct2 high level permission flag
RU2821334C2 (en) Encoder, decoder and related methods using high-level resolution flag dct2
RU2822448C2 (en) Encoder, decoder and corresponding intra-prediction methods
RU2803063C2 (en) Encoder, decoder and corresponding methods that are used for the conversion process
RU2783385C2 (en) Encoder, decoder and related methods using compact mv storage
CN113330741B (en) Encoder, decoder, and corresponding methods for restricting the size of a sub-partition from an intra sub-partition coding mode tool
CN113994683A (en) Encoder, decoder and corresponding methods for chroma quantization control