RU2777967C1 - Deblocking filter for the boundaries of subsections that arise under the influence of the intra-subsection coding tool - Google Patents

Deblocking filter for the boundaries of subsections that arise under the influence of the intra-subsection coding tool Download PDF

Info

Publication number
RU2777967C1
RU2777967C1 RU2021122462A RU2021122462A RU2777967C1 RU 2777967 C1 RU2777967 C1 RU 2777967C1 RU 2021122462 A RU2021122462 A RU 2021122462A RU 2021122462 A RU2021122462 A RU 2021122462A RU 2777967 C1 RU2777967 C1 RU 2777967C1
Authority
RU
Russia
Prior art keywords
subsection
subsections
block
intra
samples
Prior art date
Application number
RU2021122462A
Other languages
Russian (ru)
Inventor
Бяо ВАН
Ананд Меер КОТРА
Семих ЭСЕНЛИК
Хань ГАО
Цзяньлэ Чэнь
Original Assignee
Хуавэй Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2777967C1 publication Critical patent/RU2777967C1/en

Links

Images

Abstract

FIELD: imaging technology.
SUBSTANCE: invention relates to means for image processing. The first maximum filter length is determined as equal to 1 for the first subsection and/or the second maximum filter length is determined as equal to 1 for the second subsection when the width of the first subsection is 4 samples or the width of the second subsection is 4 samples, or when the height of the first subsection is 4 samples or the height of the second subsection is 4 samples. Modification is performed based, at least partially, on the first maximum length of the filter, values of no more than one sample of the first subsection, while this sample in the number of no more than one is obtained from a row or column of the first subsection that are perpendicular and adjacent to the border of subsections between the first subsection and the second subsection. The modification is performed based, at least partially, on the second maximum length of the filter, the values of no more than one sample of the second subsection, while this sample, including no more than one, is obtained from a row or column of the second subsection that are perpendicular and adjacent to the border of the subsections between the first subsection and the second subsection.
EFFECT: increase the efficiency of video coding.
31 cl, 21 dwg

Description

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

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

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

Варианты осуществления настоящего раскрытия в целом относятся к области обработки изображений и, в частности, к деблокирующему (устраняющему блочность) фильтру для границ подразделов, возникающих под действием инструмента кодирования интра-подразделов (ISP).Embodiments of the present disclosure relate generally to the field of image processing and, in particular, to a deblocking (deblocking) filter for subsection boundaries resulting from an intra subsection (ISP) encoding tool.

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

Видеокодирование (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-ray дисках, системах сбора и редактирования видеоконтента, а также в видеокамерах приложений безопасности.Video encoding (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 disc, systems for collecting and editing video content, as well as video cameras for 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 required 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 desirable that improve compression rates with little or no loss in image quality.

В частности, в контексте интра-предсказания недавно был представлен инструмент кодирования интра-подразделов (ISP), в котором блок изображения (такой как единица преобразования (TU), единица предсказания (PU), единица кодирования (CU)) разделяется на множество подразделов. Однако интра-подраздел (ISP) может вызвать неоднородности в значениях выборок на границах подразделов, тем самым вызывая нежелательные артефакты краев или границ, которые заметны зрителю. Целью блочного кодирования изображений является уменьшение артефактов краев ниже порогового значения видимости. Это делается путем выполнения деблокирующей фильтрации. Такая деблокирующая фильтрация выполняется, с одной стороны, на стороне декодирования, чтобы удалить видимые артефакты краев, но также и на стороне кодирования, чтобы предотвратить кодирование каких-либо артефактов краев в изображение.In particular, in the context of intra prediction, an intra subsection (ISP) coding tool has recently been introduced in which an image block (such as a transform unit (TU), prediction unit (PU), coding unit (CU)) is divided into a plurality of subsections. However, intra-subsection (ISP) can cause inhomogeneities in sample values at subsection boundaries, thereby causing unwanted edge or boundary artifacts that are visible to the viewer. The goal of block image coding is to reduce edge artifacts below a visibility threshold. This is done by performing deblocking filtering. Such deblocking filtering is performed on the one hand on the decoding side to remove visible edge artifacts, but also on the encoding side to prevent any edge artifacts from being encoded into the image.

Таким образом, существует потребность в улучшенном способе и устройстве внутриконтурного деблокирующего фильтра, которые обеспечивают эффективное удаление артефактов блочности, которые могут возникать под действием инструмента кодирования интра-подразделов.Thus, there is a need for an improved in-loop deblocking filter method and apparatus that effectively removes blocking artifacts that may be produced by an intra-subsection encoding tool.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Ввиду вышеупомянутых проблем варианты осуществления настоящей заявки направлены на предоставление устройства деблокирующего фильтра, кодера, декодера и соответствующих способов, которые могут смягчить или даже полностью устранить артефакты блочности, которые могут быть вызваны инструментом кодирования интра-подразделов, чтобы повысить эффективность кодирования.In view of the above problems, embodiments of the present application are directed to providing a deblocking filter device, an encoder, a decoder, and corresponding methods that can mitigate or even completely eliminate blocking artifacts that may be caused by an intra-subsection encoding tool to improve encoding efficiency.

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

Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения, а другие варианты осуществления - в зависимых пунктах формулы изобретения.Specific embodiments are set forth in the appended independent claims, and other embodiments are set forth in the dependent claims.

Вышеупомянутые и другие цели достигаются изобретением по независимым пунктам формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.The above and other objects are achieved by the invention according to the independent claims. Additional forms of implementation are apparent from the dependent claims, description and figures.

Согласно первому аспекту настоящего раскрытия предоставлен способ деблокирования для деблокирования границы подразделов в блоке кодирования при кодировании изображения и/или декодировании изображения, в котором текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу (например, второй подраздел находится в правом или нижнем блоке относительно первых подразделов). В примере второй подраздел интра-предсказывается на основе первого подраздела (т.е. текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или граница подразделов возникает под действием инструмента интра-подразделения, ISP, в частности текущий блок кодирования разделяется на подразделы посредством инструмента кодирования ISP и внутренние подразделы интра-предсказываются один за другим, например, слева направо или сверху вниз); при этом способ содержит:According to a first aspect of the present disclosure, a deblocking method is provided for deblocking a subsection boundary in a coding block in image encoding and/or image decoding, wherein the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections containing a first subsection and a second subsection, which is adjacent to the first subsection (for example, the second subsection is in the right or lower block relative to the first subsections). In the example, the second subsection is intra-predicted based on the first subsection (i.e. the current coding block is encoded using the intra subdivision tool, ISP, or the subsection boundary occurs under the action of the intra subdivision tool, ISP, in particular, the current coding block is divided into subsections by means of the encoding tool, ISP and intra-subsections are intra-predicted one after the other, for example, from left to right or from top to bottom); wherein the method comprises:

- определение первой максимальной длины фильтра равной 1 для первого подраздела и/или второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;- defining a first maximum filter length of 1 for the first subsection and/or a second maximum filter length of 1 for the second subsection when the width of the first subsection is 4 samples or the width of the second subsection is 4 samples or when the height of the first subsection is 4 samples or the height of the second subsection is 4 samples;

- модификацию (т.е. фильтрацию) значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; и/или- modifying (i.e. filtering) the value of at most one sample of the first subsection, wherein this sample of at most one is obtained from a row or column of the first subsection that is perpendicular to and adjacent to the subsection boundary between the first subsection and the second subsection; and/or

- модификацию (т.е. фильтрацию) значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.- modifying (i.e. filtering) the value of at most one sample of the second subsection, wherein this sample of at most one is obtained from a row or column of the second subsection that is perpendicular to and adjacent to the subsection boundary between the first subsection and the second subsection.

Можно понять, что первая максимальная длина фильтра для первого подраздела может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к границе подразделов, максимальное число выборок, разрешенных для модификации для первого подраздела. Вторая максимальная длина фильтра для второго подраздела может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к границе подразделов, максимальное число выборок, разрешенных для модификации для второго подраздела. Можно понять, что, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой/ом строке или столбце, перпендикулярной/ом и примыкающей/ем к границе подразделов.It can be understood that the first maximum filter length for the first subsection may mean, in each row or column that is perpendicular to and adjacent to the subsection boundary, the maximum number of samples allowed for modification for the first subsection. The second maximum filter length for the second subsection may mean, in each row or column that is perpendicular to and adjacent to the subsection boundary, the maximum number of samples allowed to be modified for the second subsection. It can be understood that, depending on the particular phase of the filtering decision, in some cases no sample may be modified, or in other cases only one sample may be modified in each/th row or column perpendicular/s and adjacent to the boundary. subsections.

Изобретение работает как для вертикальных, так и для горизонтальных границ подразделов. Для вертикальной границы подразделов проверяется ширина первого или второго подраздела, равна ли эта ширина 4 выборкам. Для горизонтальной границы подразделов проверяется высота первого или второго подраздела, равна ли эта высота 4 выборкам.The invention works for both vertical and horizontal subsection borders. For a vertical border of subsections, the width of the first or second subsection is checked to see if that width is equal to 4 samples. For a horizontal subsection boundary, the height of the first or second subsection is checked to see if that height is equal to 4 samples.

Следует отметить, что в настоящем раскрытии используются термины «блок», «блок кодирования» или «блок изображения», которые могут применяться к единицам предсказания (PU), единицам кодирования (CU) и т. д. В VVC в целом единицы преобразования и единицы кодирования в основном выровнены, за исключением нескольких сценариев, когда используется разбиение TU на мозаичные элементы, субблочное преобразование (SBT) или ISP. Можно понять, что термины «блок/блок изображения/блок кодирования» могут использоваться взаимозаменяемо в настоящем раскрытии. Термины «выборка/пиксель» могут использоваться взаимозаменяемо в настоящем раскрытии.It should be noted that in this disclosure, the terms "block", "coding block" or "image block" are used, which can be applied to prediction units (PU), coding units (CU), etc. In VVC as a whole, transformation units and coding units are mostly aligned except in a few scenarios when TU tiling, subblock transform (SBT) or ISP is used. It can be understood that the terms "block/image block/coding block" can be used interchangeably in the present disclosure. The terms "sample/pixel" may be used interchangeably in the present disclosure.

Инструмент кодирования интра-подразделов разделяет блок интра-предсказания (т.е. блок интра-кодирования, что является сокращенным наименованием для текущего блока кодирования, который кодируется в режиме интра-предсказания) на подразделы и предсказывает подразделы внутри один за другим. На границе подраздела может быть неоднородность. Предлагается улучшенный процесс фильтрации для уменьшения артефакта, вызванного этими границами подразделов, в котором фильтрация не более одной выборки выполняется в первом или втором подразделе, когда высота первого или второго подраздела составляет 4 выборки или когда ширина первого или второго подраздела составляет 4 выборки. Это позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакты блочности, которые быть вызваны границами подразделов в текущем блоке кодирования из-за применения ISP. Такая слабая фильтрация выгодна с точки зрения вычислительной нагрузки.The intra-subsection encoding tool divides the intra-prediction block (i.e., the intra-coding block, which is an abbreviation for the current coding block that is encoded in the intra-prediction mode) into subsections, and predicts the subsections within one by one. There may be heterogeneity at the subsection boundary. An improved filtering process is proposed to reduce the artifact caused by these subsection boundaries, wherein filtering at most one sample is performed on the first or second subsection when the height of the first or second subsection is 4 samples, or when the width of the first or second subsection is 4 samples. This allows a small number of sample values to be modified at a subsection boundary, and therefore the method can reduce blocking artifacts that are caused by subsection boundaries in the current coding block due to the application of ISP. Such weak filtering is beneficial in terms of computational load.

В возможной форме реализации способа согласно первому аспекту как таковому, выборку в числе не более одной, которую получают из столбца первого или второго подраздела, который перпендикулярен и примыкает к границе между первым и вторым подразделами, модифицируют, когда высота первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждом столбце, перпендикулярном и примыкающем к границе подразделов.In a possible form of implementation of the method according to the first aspect as such, a sample of at most one, which is obtained from the column of the first or second subsection, which is perpendicular to and adjacent to the border between the first and second subsections, is modified when the height of the first or second subsection is 4 samples if the intra-subpartitioning type for subdividing the current coding block into subsections is horizontal. It can be understood that "modification of a sample of at most one" may mean that modification of at most one sample is allowed. That is, depending on the particular filtering decision phase, in some cases no selection may be modified, or in other cases only one selection may be modified in each column perpendicular to and adjacent to the subsection boundary.

В возможной форме реализации способа согласно первому аспекту как таковому, выборку в числе не более одной, которую получают из строки первого или второго подраздела, которая перпендикулярна и примыкает к границе между первым и вторым подразделами, модифицируют, когда ширина первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой строке, перпендикулярной и примыкающей к границе подразделов.In a possible form of implementation of the method according to the first aspect as such, a sample of at most one, which is obtained from the line of the first or second subsection, which is perpendicular to and adjacent to the border between the first and second subsections, is modified when the width of the first or second subsection is 4 samples if the intra-subpartitioning type for subdividing the current coding block into subsections is vertical. It can be understood that "modification of a sample of at most one" may mean that modification of at most one sample is allowed. That is, depending on the particular filtering decision phase, in some cases no selection may be modified, or in other cases only one selection may be modified in each row perpendicular to and adjacent to the subsection boundary.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница подразделов между первым и вторым подразделами является горизонтальной границей подразделов; В качестве альтернативы, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница подразделов между первым и вторым подразделами является вертикальной границей подразделов.In an exemplary form of implementation of the method according to any previous implementation of the first aspect, or the first aspect as such, if the type of intra-subpartitioning for subdividing the current coding block into subsections is horizontal, the subsection boundary between the first and second subsections is a horizontal subsection boundary; Alternatively, if the type of intra-subsection for dividing the current coding block into subsections is vertical, the subsection boundary between the first and second subsections is a vertical subsection boundary.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел может находиться слева от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения (например восстановленной версии) первого подраздела;In an exemplary form of implementation of the method according to any prior implementation of the first aspect, or the first aspect as such, if the intra-subsection type for subdividing the current coding block into subsections is vertical, the first subsection may be to the left of the second subsection and the second subsection may be intra-predicted based on the restored value (for example, the restored version) of the first subkey;

если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел может находиться сверху от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения (например восстановленной версии) первого подраздела.if the type of intra-subpartitioning for subdividing the current coding block into subsections is horizontal, the first subsection may be on top of the second subsection, and the second subsection may be intra-predicted based on a restored value (eg, restored version) of the first subsection.

Можно понять, что второй подраздел интра-предсказывается на основе восстановленной версии (т.е. восстановленных значений) первого подраздела. Восстановленный первый подраздел представляет собой опорный элемент для интра-предсказания второго подраздела. Следует отметить, что после восстановления текущего изображения, к которому принадлежит текущий блок кодирования, восстановленное изображение вводится в процесс фильтрации. Во время восстановления текущего изображения текущий блок кодирования, к которому применяется инструмент кодирования ISP, интра-предсказывается для получения предиктивного блока (например, предсказанных значений) текущего блока кодирования, в частности, подразделы внутри текущего блока интра-кодирования интра-предсказываются один за другим.It can be understood that the second subsection is intra-predicted based on the reconstructed version (ie, recovered values) of the first subsection. The reconstructed first subsection is a pivot for intra-prediction of the second subsection. It should be noted that after restoring the current image to which the current coding block belongs, the restored image is entered into the filtering process. During the reconstruction of the current picture, the current coding block to which the ISP coding tool is applied is intra-predicted to obtain a predictive block (eg, predicted values) of the current coding block, in particular, subsections within the current intra coding block are intra-predicted one by one.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, число подразделов равно 2 или 4.In an exemplary form of implementation of the method according to any previous implementation of the first aspect, or the first aspect as such, the number of subsections is 2 or 4.

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

- если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов равно 2,- if the width of the current coding block is 4 and the height of the coding block is 8 and/or if the width of the current coding block is 8 and the height of the current coding block is 4, the number of subsections is 2,

- иначе число подразделов равно 4.- otherwise the number of subsections is 4.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, выборку в числе не более одной в первом или втором подразделе модифицируют даже если граница подразделов между первым и вторым подразделами не перекрывается с n x n сеткой выборок, где n - целое число.In an exemplary form of implementation of the method according to any prior implementation of the first aspect, or the first aspect as such, a sample of at most one in the first or second subsection is modified even if the subsection boundary between the first and second subsections does not overlap with an n x n grid of samples, where n is an integer .

Обеспечивается возможность деблокирования целевых границ, которые не выровнены с n x n сеткой, а вызваны посредством ISP и представляют собой внутреннюю границу между подразделами блока кодирования.It is possible to release target boundaries that are not aligned with the n x n grid, but are called by the ISP and represent an internal boundary between subsections of a coding block.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, выборку в числе не более одной в первом или втором подразделе модифицируют только если граница подразделов между первым и вторым подразделами перекрывается с n x n сеткой выборок, где n - целое число, например n=4 или n=8. Таким образом, вычислительная нагрузка может быть снижена еще больше.In an exemplary form of implementation of the method according to any prior implementation of the first aspect, or the first aspect as such, a sample of at most one in the first or second subsection is modified only if the subsection boundary between the first and second subsections overlaps with an n x n grid of samples, where n is an integer, for example n=4 or n=8. Thus, the computational load can be further reduced.

Более того, фильтрация не более одной выборки в подразделах может выполняться только тогда, когда высота всех подразделов составляет 4 выборки, или когда ширина всех подразделов составляет 4 выборки. Таким образом, вычислительная нагрузка всего процесса кодирования может быть дополнительно снижена.Moreover, filtering at most one selection in subsections can only be performed when all subsections are 4 selections high, or when all subsections are 4 selections wide. Thus, the computational load of the entire encoding process can be further reduced.

В общем, подразделы могут быть прямоугольными подразделами блока преобразования.In general, subsections may be rectangular subsections of a transform block.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.In an exemplary form of implementation of the method according to any prior implementation of the first aspect, or the first aspect as such, the subsection samples are luminance samples or the subsection samples are chrominance samples.

В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, порядком интра-предсказания подразделов является порядок слева направо, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или порядком интра-предсказания подразделов является порядок сверху вниз, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. То есть разделение блока предсказания на подразделы может выполняться в вертикальном направлении. В этом случае порядком интра-предсказания подразделов является порядок один за другим, слева направо. В качестве альтернативы, разделение блока предсказания на подразделы может выполняться в горизонтальном направлении. В этом случае порядком интра-предсказания двух подразделов является порядок один за другим, сверху вниз.In an exemplary form of implementation of the method according to any prior implementation of the first aspect, or the first aspect as such, the intra-subsection prediction order is left-to-right order if the intra-subsection partitioning type for dividing the current coding block into subsections is vertical, or the intra-subsection prediction order is the order from top to bottom if the type of intra-subpartitioning for subdividing the current coding block into subsections is horizontal. That is, division of the prediction block into subsections can be performed in the vertical direction. In this case, the intra-subsection order is the order one after the other, from left to right. Alternatively, division of the prediction block into subsections may be performed in the horizontal direction. In this case, the intra-prediction order of the two subsections is the order one after the other, from top to bottom.

В настоящем раскрытии текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или граница подразделов возникает под действием инструмента интра-подразделения, ISP.In the present disclosure, the current coding block is encoded using the intra-subdivision tool, ISP, or a subsection boundary occurs under the action of the intra-subdivision tool, ISP.

В общем, интенсивности границ всех границ между подразделами блока кодирования могут быть установлены равными постоянному значению, указывающему интенсивность процесса фильтрации (например, 2), чтобы упростить общую обработку.In general, the border intensities of all borders between subsections of a coding block may be set to a constant value indicating the strength of the filtering process (eg, 2) to simplify overall processing.

Кроме того, в описанных выше вариантах осуществления способ может содержать получение значений флага кодированного блока, CBF, соответствующих двум смежным подразделам, определение интенсивности границы между двумя смежными подразделами текущего блока согласно значениям CBF, соответствующим двум смежным подразделам, иFurthermore, in the embodiments described above, the method may comprise obtaining encoded block flag values, CBF, corresponding to two adjacent subsections, determining a boundary strength between two adjacent subsections of the current block according to the CBF values corresponding to the two adjacent subsections, and

принятие решения о фильтрации, следует ли выполнять фильтрацию, согласно определенной интенсивности границы. По меньшей мере одно из значений CBF, соответствующих двум смежным подразделам, может быть не равно 0, где 0 означает, что остаточные данные после квантования этого подраздела отсутствуют.making a filtering decision whether to perform filtering according to the defined boundary intensity. At least one of the CBF values corresponding to two adjacent subsections may not be 0, where 0 means that there is no residual data after quantization of that subsection.

Согласно второму аспекту настоящего раскрытия предоставлен способ деблокирования для деблокирования краев блоков между блоками изображения при кодировании изображения и/или декодировании изображения, в котором края блоков содержат край между текущим подразделом текущего блока кодирования (т.е. текущего блока интра-кодирования) и соседним блоком этого текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы (или текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или подразделы возникают под действием инструмента интра-подразделения, ISP); при этом способ содержит:According to a second aspect of the present disclosure, a deblocking method is provided for deblocking block edges between image blocks in image encoding and/or image decoding, wherein the block edges comprise an edge between the current subsection of the current coding block (i.e., the current intra coding block) and an adjacent block. of this current coding block, wherein the current coding block is encoded in intra-prediction mode and the current coding block is subdivided (either the current coding block is encoded using the intra subdivision tool, ISP, or the subsections are generated by the intra subdivision tool, ISP) ; wherein the method comprises:

- определение третьей максимальной длины фильтра равной 1 для текущего подраздела и/или четвертой максимальной длины фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;- defining a third maximum filter length equal to 1 for the current subsection and/or a fourth maximum filter length equal to 1 for the neighboring block, when the width of the current subsection is 4 samples or the height of the current subsection is 4 samples;

- модификацию значения не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком; и/или- modifying the value of at most one sample of the current subsection, wherein this sample of at most one is obtained from a row or column of the current subsection that is perpendicular to and adjacent to the edge between the current subsection and the adjacent block; and/or

- модификацию значения не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком.- modifying the value of at most one neighboring block sample, wherein this sample of at most one is obtained from a row or column of the neighboring block that is perpendicular and adjacent to the edge between the current subsection and the neighboring block.

Следует отметить, что, если число подразделов равно двум, текущий подраздел может быть первым подразделом или вторым подразделом в соответствии с первым аспектом как таковым. Если число подразделов больше двух, например четыре, текущий подраздел может быть крайним левым подразделом или крайним правым подразделом внутри текущего блока кодирования, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или текущий подраздел может быть крайним верхним подразделом или крайним нижним подразделом внутри текущего блока кодирования, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.It should be noted that if the number of subsections is two, the current subsection may be the first subsection or the second subsection according to the first aspect as such. If the number of subsections is greater than two, such as four, the current subsection may be the leftmost subsection or the rightmost subsection within the current coding block if the intra-subsectioning type for dividing the current coding block into subsections is vertical, or the current subsection may be the topmost subsection or the lowest subsection within the current coding block if the intra-subsection type for dividing the current coding block into subsections is horizontal.

Во втором аспекте настоящего раскрытия текущий подраздел интра-предсказывается на основе соседнего блока, который примыкает сверху или слева. Следует отметить, что соседний блок может не быть блоком кодирования с дополнительными разделами, то есть, вероятно, у соседнего блока не будет подраздела.In a second aspect of the present disclosure, the current subsection is intra-predicted based on an adjacent block that is adjacent to the top or left. It should be noted that the adjacent block may not be a coding block with additional sections, i.e., the adjacent block is likely to have no subsection.

Можно понять, что третья максимальная длина фильтра для текущего подраздела может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к краю, максимальное число выборок, разрешенных для модификации для текущего подраздела. Четвертая максимальная длина фильтра для соседнего блока может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к краю, максимальное число выборок, разрешенных для модификации для соседнего блока. Можно понять, что, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой/ом строке или столбце, перпендикулярной/ом и примыкающей/ем к границе подразделов.It can be understood that the third maximum filter length for the current subsection may mean, in each row or column that is perpendicular and adjacent to the edge, the maximum number of samples allowed for modification for the current subsection. The fourth maximum filter length for a neighboring block may mean, in each row or column that is perpendicular and adjacent to an edge, the maximum number of samples allowed for modification for the neighboring block. It can be understood that, depending on the particular phase of the filtering decision, in some cases no sample may be modified, or in other cases only one sample may be modified in each/th row or column perpendicular/s and adjacent to the boundary. subsections.

Изобретение работает как для вертикального, так и для горизонтального края между текущим подразделом и соседним блоком. Для вертикального края проверяется ширина текущего подраздела или соседнего блока, равна ли эта ширина 4 выборкам. Для горизонтального края проверяется высота текущего подраздела или соседнего блока, равна ли эта высота 4 выборкам.The invention works for both the vertical and horizontal edges between the current subsection and the adjacent box. For the vertical edge, the width of the current subsection or adjacent box is checked to see if that width is 4 samples. For a horizontal edge, the height of the current subsection or neighboring box is checked to see if that height is equal to 4 samples.

Разница между краем блока и границей подразделов описана в нижеследующем описании. Границей подразделов является край, который является внутренним по отношению к блоку кодирования, в котором используются инструменты кодирования интра-подразделов (ISP), а край блока (т.е. край единицы кодирования (CU) или край блока кодирования или граница CU) является краем, который является общим между двумя единицами кодирования или двумя блоками кодирования.The difference between a block edge and a subsection border is described in the following description. A subsection boundary is an edge that is internal to a coding block in which intra-subsection (ISP) encoding tools are used, and a block edge (i.e. a coding unit (CU) edge or a coding block edge or a CU boundary) is the edge , which is shared between two coding units or two coding units.

Инструмент кодирования интра-подразделов разделяет блок интра-предсказания (т.е. блок интра-кодирования, что является сокращенным наименованием для текущего блока кодирования, который кодируется в режиме интра-предсказания) на подразделы и предсказывает подразделы внутри блока интра-предсказания один за другим. Может иметь место неоднородность на крае между текущим подразделом текущего блока кодирования и соседним блоком текущего блока кодирования. Следовательно, предложен улучшенный процесс фильтрации для уменьшения артефакта, вызванного таким краем, в котором фильтрацию не более одной выборки выполняют в текущем подразделе или соседнем блоке, когда высота текущего подраздела составляет 4 выборки или ширина текущего подраздела составляет 4 выборки. Это позволяет модифицировать небольшое число значений выборок на крае и, следовательно, способ может уменьшать артефакты блочности, которые могут быть вызваны упомянутым краем между текущим блоком, к которому применено ISP, и соседним блоком, избегая при этом перекрытий фильтрации между краем и границей подразделов до определенной степени.The intra-subsection encoding tool divides the intra-prediction block (i.e., the intra-coding block, which is the short name for the current coding block that is encoded in intra-prediction mode) into subsections, and predicts the subsections within the intra-prediction block one by one . There may be discontinuity at the edge between the current subsection of the current coding block and an adjacent block of the current coding block. Therefore, an improved filtering process is proposed to reduce the artifact caused by such an edge in which no more than one sample is filtered in the current subsection or adjacent block when the height of the current subsection is 4 samples or the width of the current subsection is 4 samples. This allows a small number of sample values to be modified at the edge and therefore the method can reduce blocking artifacts that may be caused by said edge between the current box to which the ISP is applied and the adjacent box, while avoiding filtering overlaps between the edge and the subsection boundary to a certain extent. degree.

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

выборку в числе не более одной, которую получают из столбца текущего подраздела, который перпендикулярен и примыкает к краю между текущим подразделом и соседним блоком, который находится снизу или сверху от текущего подраздела, модифицируют, когда высота текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждом столбце, перпендикулярном и примыкающем к краю.a sample of at most one that is obtained from a column of the current subsection that is perpendicular to and adjacent to the edge between the current subsection and an adjacent block that is below or above the current subsection is modified when the height of the current subsection is 4 samples if the partition type is intra-subsections to divide the current coding block into subsections is horizontal. It can be understood that "modification of a sample of at most one" may mean that modification of at most one sample is allowed. That is, depending on the particular filtering decision phase, in some cases no sample may be modified, or in other cases only one sample may be modified in each column perpendicular and adjacent to the edge.

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

выборку в числе не более одной, которую получают из строки текущего подраздела, которая перпендикулярна и примыкает к краю между текущим подразделом и соседним блоком, который находится слева или справа от текущего подраздела, модифицируют, когда ширина текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой строке, перпендикулярной и примыкающей к краю.a sample of at most one that is obtained from a row of the current subsection that is perpendicular to and adjacent to the edge between the current subsection and an adjacent box that is to the left or right of the current subsection is modified when the width of the current subsection is 4 samples if the split type is intra-subsections to divide the current coding block into subsections is vertical. It can be understood that "modification of a sample of at most one" may mean that modification of at most one sample is allowed. That is, depending on the particular filtering decision phase, in some cases no sample may be modified, or in other cases only one sample may be modified in each line perpendicular to and adjacent to an edge.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, текущий подраздел находится справа от соседнего блока и текущий подраздел интра-предсказывается на основе восстановленного значения соседнего блока;In an exemplary implementation form of the method according to any prior implementation of the second aspect, or the second aspect as such, if the intra-subsection type for subdividing the current coding block into subsections is vertical, the current subsection is to the right of the adjacent block, and the current subsection is intra-predicted based on the reconstructed neighbor block values;

если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, текущий подраздел находится снизу от соседнего блока и текущий подраздел интра-предсказывается на основе восстановленного значения соседнего блока.if the type of intra-subpartitioning for dividing the current coding block into subsections is horizontal, the current subsection is below the neighboring block, and the current subsection is intra-predicted based on the recovered value of the neighboring block.

Текущий подраздел может быть интра-предсказан на основе другого блока кодирования, который расположен смежно с блоком кодирования. Этот другой блок кодирования может находится сверху от блока кодирования или слева от блока кодирования. Точнее, текущий подраздел может быть интра-предсказан на основе восстановленной версии соседнего блока кодирования.The current subsection may be intra-predicted based on another coding block that is adjacent to the coding block. This other coding block may be on top of the coding block or to the left of the coding block. More precisely, the current subsection may be intra-predicted based on a reconstructed version of an adjacent coding block.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, число подразделов равно 2 или 4.In an exemplary form of implementation of the method according to any prior implementation of the second aspect, or the second aspect as such, the number of subsections is 2 or 4.

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

- если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов равно 2,- if the width of the current coding block is 4 and the height of the coding block is 8 and/or if the width of the current coding block is 8 and the height of the current coding block is 4, the number of subsections is 2,

- иначе число подразделов равно 4.- otherwise the number of subsections is 4.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, выборку в числе не более одной в текущем подразделе или в соседнем блоке модифицируют даже если край между текущим подразделом и соседним блоком не перекрывается с n x n сеткой выборок, где n - целое число. Например, n=4 или n =8.In an exemplary form of implementation of the method according to any prior implementation of the second aspect, or the second aspect per se, a sample of at most one in the current subsection or adjacent block is modified even if the edge between the current subsection and the adjacent block does not overlap with an n x n grid of samples, where n is integer. For example, n=4 or n=8.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, выборку в числе не более одной в текущем подразделе или в соседнем блоке модифицируют только если край между текущим подразделом и соседним блоком перекрывается с n x n сеткой выборок, где n - целое число. Например, n=4 или n =8.In an exemplary form of implementation of the method according to any prior implementation of the second aspect, or the second aspect as such, a sample of at most one in the current subsection or adjacent block is modified only if the edge between the current subsection and the adjacent block overlaps with an n x n grid of samples, where n is an integer number. For example, n=4 or n=8.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.In an exemplary embodiment of the method according to any prior implementation of the second aspect, or the second aspect as such, the subsection samples are luminance samples or the subsection samples are chrominance samples.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, подразделы представляют собой прямоугольные подразделы блока преобразования.In an exemplary form of implementation of the method according to any prior implementation of the second aspect, or the second aspect as such, the subsections are rectangular subsections of the transform block.

В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP.In an exemplary form of implementation of the method according to any prior implementation of the second aspect, or the second aspect per se, the current coding block is encoded using an intra-partitioning tool, ISP.

Согласно третьему аспекту настоящего раскрытия предоставлено устройство для использования в кодере изображения и/или декодере изображения для деблокирования границы подразделов в блоке кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, при этом второй подраздел интра-предсказывается на основе первого подраздела;According to a third aspect of the present disclosure, an apparatus is provided for use in an image encoder and/or image decoder to deblock a subsection boundary in a coding block, wherein the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections containing a first subsection and a second subsection. , which is adjacent to the first subsection, wherein the second subsection is intra-predicted based on the first subsection;

при этом устройство содержит деблокирующий фильтр, выполненный с возможностью: wherein the device comprises a deblocking filter configured to:

- определения первой максимальной длины фильтра равной 1 для первого подраздела и/или второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;- defining a first maximum filter length of 1 for the first subsection and/or a second maximum filter length of 1 for the second subsection when the first subsection is 4 samples wide or the second subsection is 4 samples wide or when the first subsection is 4 samples high or the second subsection is height subsection is 4 samples;

- модификации значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; и/или- modifying the value of at most one sample of the first subsection, whereby that sample of at most one is obtained from a row or column of the first subsection that is perpendicular to and adjacent to the subsection boundary between the first subsection and the second subsection; and/or

- модификации значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.- modifications to the value of at most one sample of the second subsection, whereby this sample of at most one is obtained from a row or column of the second subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection.

Согласно четвертому аспекту настоящего раскрытия предоставлено устройство для использования в кодере изображения и/или декодере изображения для деблокирования краев блоков между блоками изображения, при этом края блоков содержат край между текущим подразделом текущего блока кодирования и соседним блоком этого текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы;According to a fourth aspect of the present disclosure, an apparatus is provided for use in an image encoder and/or image decoder for deblocking block edges between image blocks, wherein the block edges comprise an edge between a current subsection of a current coding block and an adjacent block of that current coding block, wherein the current coding block encoded in intra-prediction mode, and the current coding block is divided into subsections;

при этом устройство содержит деблокирующий фильтр, выполненный с возможностью:wherein the device comprises a deblocking filter configured to:

- определения третьей максимальной длины фильтра равной 1 для текущего подраздела и/или четвертой максимальной длины фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;- determining a third maximum filter length equal to 1 for the current subsection and/or a fourth maximum filter length equal to 1 for the neighboring block, when the width of the current subsection is 4 samples or the height of the current subsection is 4 samples;

- модификации значения не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком; и/или- modifying the value of at most one sample of the current subsection, wherein this sample of at most one is obtained from a row or column of the current subsection that is perpendicular to and adjacent to the edge between the current subsection and the adjacent block; and/or

- модификации значения не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком.- modifications to the value of at most one neighboring block sample, whereby at most one sample is obtained from a neighboring block row or column that is perpendicular to and adjacent to the edge between the current subsection and the neighboring block.

Способ согласно первому аспекту изобретения может быть выполнен устройством согласно третьему аспекту изобретения. Дополнительные признаки и формы реализации устройства согласно третьему аспекту изобретения соответствуют признакам и формам реализации способа согласно первому аспекту изобретения.The method according to the first aspect of the invention can be performed by the device according to the third aspect of the invention. Additional features and implementations of the device according to the third aspect of the invention correspond to the features and implementations of the method according to the first aspect of the invention.

Способ согласно второму аспекту изобретения может быть выполнен устройством согласно четвертому аспекту изобретения. Дополнительные признаки и формы реализации устройства согласно четвертому аспекту изобретения соответствуют признакам и формам реализации способа согласно второму аспекту изобретения.The method according to the second aspect of the invention can be performed by the device according to the fourth aspect of the invention. Additional features and implementations of the device according to the fourth aspect of the invention correspond to the features and implementations of the method according to the second aspect of the invention.

Согласно пятому аспекту изобретение относится к устройству для декодирования видеопотока, включающему в себя процессор и память. Память хранит инструкции, которые побуждают процессор выполнять способ согласно первому или второму аспекту.According to a fifth aspect, the invention relates to a device for decoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to execute the method according to the first or second aspect.

Согласно шестому аспекту изобретение относится к устройству для кодирования видеопотока, включающему в себя процессор и память. Память хранит инструкции, которые побуждают процессор выполнять способ согласно первому или второму аспекту.According to a sixth aspect, the invention relates to a device for encoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to execute the method according to the first or second aspect.

Согласно седьмому аспекту предложен считываемый компьютером носитель, на котором хранятся инструкции, которые при исполнении обеспечивают работу одного или более процессоров, выполненных с возможностью кодирования видеоданных. Инструкции побуждают один или более процессоров выполнять способ согласно первому или второму аспекту, или любому возможному варианту осуществления первого или второго аспекта.According to a seventh aspect, a computer-readable medium is provided that stores instructions that, when executed, operate one or more processors capable of encoding video data. The instructions cause one or more processors to execute a method according to the first or second aspect, or any possible embodiment of the first or second aspect.

Согласно восьмому аспекту изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому или второму аспекту, или любому возможному варианту осуществления первого или второго аспекта при исполнении на компьютере.According to an eighth aspect, the invention relates to a computer program containing program code for performing the method according to the first or second aspect, or any possible embodiment of the first or second aspect, when executed on a computer.

Согласно девятому аспекту изобретение относится к кодеру или декодеру, содержащему схему обработки для выполнения способа согласно первому или второму аспекту, или любому возможному варианту осуществления первого или второго аспекта.According to a ninth aspect, the invention relates to an encoder or decoder comprising a processing circuit for performing a method according to the first or second aspect, or any possible embodiment of the first or second aspect.

Согласно десятому аспекту изобретения предусмотрено устройство видеокодирования. Устройство видеокодирования для кодирования изображения видеопотока, при этом устройство видеокодирования содержит:According to a tenth aspect of the invention, a video encoding device is provided. A video encoding device for encoding an image of a video stream, wherein the video encoding device comprises:

блок восстановления, выполненный с возможностью восстановления изображения, при этом восстановление изображения содержит генерирование восстановленного блока текущего блока кодирования, который принадлежит изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, при этом второй подраздел интра-предсказывается на основе первого подраздела; иa restoration block configured to restore the image, wherein the image restoration comprises generating a restored block of the current coding block that belongs to the image, the current coding block being encoded in intra-prediction mode and the current coding block being divided into subsections containing a first subsection and a second subsection , wherein the second subsection is intra-predicted based on the first subsection; and

блок фильтрации, выполненный с возможностью обработки восстановленного изображения в отфильтрованное восстановленное изображение, при этом блок фильтрации в частности выполнен с возможностью фильтрации не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, или когда ширина текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, при этом упомянутая выборка в числе не более одной расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к границе, или при этом блок фильтрации в частности выполнен с возможностью фильтрации границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу, на основе соответствующей максимальной длины фильтра для текущего подраздела и соответствующей максимальной длины фильтра для соседнего блока, и обе эти соответствующие максимальные длины фильтра равны 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.a filtering unit configured to process the reconstructed image into a filtered reconstructed image, wherein the filtering unit is specifically configured to filter at most one sample in the current subsection from the reconstructed subsections of the reconstructed block, when the height of the current subsection or another subsection that is adjacent to the current subsection , is 4 samples, or when the width of the current sub-section or another sub-section that is adjacent to the current sub-section is 4 samples, and at most one said sample is located in a row or column of the current sub-section that is perpendicular to the boundary between the current sub-section and said other a subsection that is adjacent to the current subsection and that one sample is adjacent to a boundary, or wherein the filter block is particularly configured to filter the boundary between the current subsection of the reconstructed block and an adjacent block that is adjacent to the current subsection, based on the corresponding maximum filter length for the current subsection and the corresponding maximum filter length for the neighboring block, and both of these corresponding maximum filter lengths are 1 when the height of the current subsection is 4 samples or when the width of the current subsection is 4 samples.

Это позволяет эффективно улучшать качество восстанавливаемых изображений в рамках ISP.This allows you to effectively improve the quality of restored images within the ISP.

В возможной форме реализации выборка в числе не более одной, которую получают из столбца первого или второго подраздела, который перпендикулярен и примыкает к границе между первым и вторым подразделами, модифицируется, когда высота первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждом столбце, перпендикулярном и примыкающем к границе подразделов.In a possible implementation, a sample of at most one that is obtained from a column of the first or second subsection that is perpendicular to and adjacent to the boundary between the first and second subsections is modified when the height of the first or second subsection is 4 samples if the partition type is intra- subsections to divide the current coding block into subsections is horizontal. It can be understood that "modification of a sample of at most one" may mean that modification of at most one sample is allowed. That is, depending on the particular filtering decision phase, in some cases no selection may be modified, or in other cases only one selection may be modified in each column perpendicular to and adjacent to the subsection boundary.

В возможной форме реализации выборка в числе не более одной, которую получают из строки первого или второго подраздела, которая перпендикулярна и примыкает к границе между первым и вторым подразделами, модифицируется, когда ширина первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой строке, перпендикулярной и примыкающей к границе подразделов.In a possible implementation, a sample of at most one that is obtained from a row of the first or second subsection that is perpendicular to and adjacent to the boundary between the first and second subsections is modified when the width of the first or second subsection is 4 samples if the partition type is intra- subsections to divide the current coding block into subsections is vertical. It can be understood that "modification of a sample of at most one" may mean that modification of at most one sample is allowed. That is, depending on the particular filtering decision phase, in some cases no selection may be modified, or in other cases only one selection may be modified in each row perpendicular to and adjacent to the subsection boundary.

В возможной форме реализации, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница подразделов между первым и вторым подразделами является горизонтальной границей подразделов; В качестве альтернативы, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница подразделов между первым и вторым подразделами является вертикальной границей подразделов.In an exemplary implementation form, if the intra-subsection type for subdividing the current coding block into subsections is horizontal, the subsection boundary between the first and second subsections is a horizontal subsection boundary; Alternatively, if the type of intra-subsection for dividing the current coding block into subsections is vertical, the subsection boundary between the first and second subsections is a vertical subsection boundary.

В возможной форме реализации, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел может находиться слава от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения первого подраздела;In an exemplary implementation, if the type of intra-subsection for subdividing the current coding block into subsections is vertical, the first subsection may be derived from the second subsection, and the second subsection may be intra-predicted based on the recovered value of the first subsection;

Если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел может находиться сверху от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения первого подраздела.If the intra-subsection type for dividing the current coding block into subsections is horizontal, the first subsection may be on top of the second subsection, and the second subsection may be intra-predicted based on the recovered value of the first subsection.

Можно понять, что второй подраздел интра-предсказывается на основе восстановленной версии (т.е. восстановленных значений) первого подраздела. Восстановленный первый подраздел представляет собой опорный элемент для интра-предсказания второго подраздела. Следует отметить, что после восстановления текущего изображения, к которому принадлежит текущий блок кодирования, восстановленное изображение вводится в процесс фильтрации. Во время восстановления текущего изображения текущий блок кодирования, к которому применяется инструмент кодирования ISP, интра-предсказывается для получения предиктивного блока (например, предсказанных значений) текущего блока кодирования, в частности, подразделы внутри текущего блока интра-кодирования интра-предсказываются один за другим.It can be understood that the second subsection is intra-predicted based on the reconstructed version (ie, recovered values) of the first subsection. The reconstructed first subsection is a pivot for intra-prediction of the second subsection. It should be noted that after restoring the current image to which the current coding block belongs, the restored image is entered into the filtering process. During the reconstruction of the current picture, the current coding block to which the ISP coding tool is applied is intra-predicted to obtain a predictive block (eg, predicted values) of the current coding block, in particular, subsections within the current intra coding block are intra-predicted one by one.

В возможной форме реализации число подразделов равно 2 или 4.In a possible implementation form, the number of subsections is 2 or 4.

В возможной форме реализацииIn a possible form of implementation

- если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов равно 2,- if the width of the current coding block is 4 and the height of the coding block is 8 and/or if the width of the current coding block is 8 and the height of the current coding block is 4, the number of subsections is 2,

- иначе число подразделов равно 4.- otherwise the number of subsections is 4.

В возможной форме реализации, выборка в числе не более одной в первом или втором подразделе модифицируется даже если граница подразделов между первым и вторым подразделами не перекрывается с n x n сеткой выборок, где n - целое число.In an exemplary implementation, a sample of at most one in the first or second subsection is modified even if the subsection boundary between the first and second subsections does not overlap with an n x n grid of samples, where n is an integer.

Обеспечивается возможность деблокирования целевых границ, которые не выровнены с n x n сеткой, а вызваны посредством ISP и представляют собой внутреннюю границу между подразделами блока кодирования.It is possible to release target boundaries that are not aligned with the n x n grid, but are called by the ISP and represent an internal boundary between subsections of a coding block.

В возможной форме реализации, выборка в числе не более одной в первом или втором подразделе модифицируется только если граница подразделов между первым и вторым подразделами перекрывается с n x n сеткой выборок, где n - целое число, например n=4 или n=8. Таким образом, вычислительная нагрузка может быть снижена еще больше.In an exemplary implementation, a sample of at most one in the first or second subsection is modified only if the subsection boundary between the first and second subsections overlaps with an n x n grid of samples, where n is an integer, such as n=4 or n=8. Thus, the computational load can be further reduced.

Более того, фильтрация не более одной выборки в подразделах может выполняться только тогда, когда высота всех подразделов составляет 4 выборки или когда ширина всех подразделов составляет 4 выборки. Таким образом, вычислительная нагрузка всего процесса кодирования может быть дополнительно снижена.Moreover, filtering at most one selection in subsections can only be performed when the height of all subsections is 4 selections, or when the width of all subsections is 4 selections. Thus, the computational load of the entire encoding process can be further reduced.

В общем, подразделы могут быть прямоугольными подразделами блока преобразования.In general, subsections may be rectangular subsections of a transform block.

В возможной форме реализации выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.In a possible implementation form, the subsection samples are luma samples, or the subsection samples are chrominance samples.

В возможной форме реализации порядком интра-предсказания подразделов является порядок слева направо, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или порядком интра-предсказания подразделов является порядок сверху вниз, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. То есть разделение блока предсказания на подразделы может выполняться в вертикальном направлении. В этом случае порядком интра-предсказания подразделов является порядок один за другим, слева направо. В качестве альтернативы, разделение блока предсказания на подразделы может выполняться в горизонтальном направлении. В этом случае порядком интра-предсказания двух подразделов является порядок один за другим, сверху вниз.In a possible implementation form, the intra-subsection prediction order is left-to-right order if the intra-subsection type for sub-dividing the current coding block is vertical, or the intra-subsection prediction order is top-down order if the intra-subsection type for dividing the current coding block into subsections is horizontal. That is, division of the prediction block into subsections can be performed in the vertical direction. In this case, the intra-subsection order is the order one after the other, from left to right. Alternatively, division of the prediction block into subsections may be performed in the horizontal direction. In this case, the intra-prediction order of the two subsections is the order one after the other, from top to bottom.

В настоящем раскрытии текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или граница подразделов возникает под действием инструмента интра-подразделения, ISP.In the present disclosure, the current coding block is encoded using the intra-subdivision tool, ISP, or a subsection boundary occurs under the action of the intra-subdivision tool, ISP.

В общем, интенсивности границ всех границ между подразделами блока кодирования могут быть установлены равными постоянному значению, указывающему интенсивность процесса фильтрации (например, 2), чтобы упростить общую обработку.In general, the border intensities of all borders between subsections of a coding block may be set to a constant value indicating the strength of the filtering process (eg, 2) to simplify overall processing.

Более того, значения флага кодированного блока, CBF, могут быть получены согласно двум смежным подразделам, интенсивность границы для границы определяется между этими двумя смежными подразделами текущего блока согласно значениям CBF, соответствующим упомянутым двум смежным подразделам, аMoreover, values of the coded block flag, CBF, can be obtained according to two adjacent subsections, the boundary strength for the border is determined between these two adjacent subsections of the current block according to the CBF values corresponding to said two adjacent subsections, and

принятие решения о фильтрации, следует ли выполнять фильтрацию, может быть выполнено согласно определенной интенсивности границы. По меньшей мере одно из значений CBF, соответствующих двум смежным подразделам, может быть не равно 0, где 0 означает, что остаточные данные после квантования этого подраздела отсутствуют.filtering decision whether or not to perform filtering can be performed according to the determined boundary intensity. At least one of the CBF values corresponding to two adjacent subsections may not be 0, where 0 means that there is no residual data after quantization of that subsection.

Согласно одиннадцатому аспекту изобретения предусмотрено устройство видеодекодирования. Устройство видеодекодирования для декодирования изображения кодированного видеопотока, при этом устройство видеодекодирования содержит:According to an eleventh aspect of the invention, a video decoding apparatus is provided. A video decoding device for decoding an image of an encoded video stream, wherein the video decoding device comprises:

блок восстановления, выполненный с возможностью восстановления изображения, при этом восстановление изображения содержит генерирование восстановленного блока текущего блока кодирования, который принадлежит текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, при этом второй подраздел интра-предсказывается на основе первого подраздела; иa restoration block configured to restore an image, wherein the image restoration comprises generating a restored block of the current coding block that belongs to the current image, the current coding block being encoded in intra-prediction mode and the current coding block being divided into subsections containing a first subsection and a second subsection, wherein the second subsection is intra-predicted based on the first subsection; and

блок фильтрации, выполненный с возможностью обработки восстановленного изображения в отфильтрованное восстановленное изображение, при этом блок фильтрации в частности выполнен с возможностью фильтрации не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, или когда ширина текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, при этом упомянутая выборка в числе не более одной расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к границе, или при этом блок фильтрации в частности выполнен с возможностью фильтрации границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу, на основе соответствующей максимальной длины фильтра для текущего подраздела и соответствующей максимальной длины фильтра для соседнего блока, и обе эти соответствующие максимальные длины фильтра равны 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.a filtering unit configured to process the reconstructed image into a filtered reconstructed image, wherein the filtering unit is specifically configured to filter at most one sample in the current subsection from the reconstructed subsections of the reconstructed block, when the height of the current subsection or another subsection that is adjacent to the current subsection , is 4 samples, or when the width of the current sub-section or another sub-section that is adjacent to the current sub-section is 4 samples, and at most one said sample is located in a row or column of the current sub-section that is perpendicular to the boundary between the current sub-section and said other a subsection that is adjacent to the current subsection and that one sample is adjacent to a boundary, or wherein the filter block is particularly configured to filter the boundary between the current subsection of the reconstructed block and an adjacent block that is adjacent to the current subsection, based on the corresponding maximum filter length for the current subsection and the corresponding maximum filter length for the neighboring block, and both of these corresponding maximum filter lengths are 1 when the height of the current subsection is 4 samples or when the width of the current subsection is 4 samples.

Это позволяет эффективно улучшать качество восстанавливаемых изображений в рамках ISP.This allows you to effectively improve the quality of restored images within the ISP.

Кроме того, предусмотрен кодер, содержащий средство для кодирования текущего блока кодирования текущего изображения, при этом это средство содержит средство для генерирования восстановленного блока текущего блока кодирования и средство для фильтрации восстановленного изображения текущего изображения согласно любому из описанных выше вариантов осуществления способов по настоящему изобретению.In addition, an encoder is provided, comprising means for encoding a current coding block of the current image, which means comprises means for generating a reconstructed block of the current coding block and means for filtering the reconstructed image of the current image according to any of the above-described embodiments of the methods of the present invention.

Кроме того, предусмотрен декодер, содержащий средство для декодирования текущего блока кодирования текущего изображения, при этом это средство содержит средство для генерирования восстановленного блока текущего блока кодирования и средство для фильтрации восстановленного изображения текущего изображения согласно любому из описанных выше вариантов осуществления способов по настоящему изобретению.In addition, a decoder is provided, comprising means for decoding the current coding block of the current image, which means includes means for generating a reconstructed block of the current coding block and means for filtering the reconstructed image of the current image according to any of the above-described embodiments of the methods of the present invention.

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

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

В следующих вариантах осуществления изобретение описано более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:In the following embodiments, the invention is 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 invention;

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

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

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

ФИГ. 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 является блок-схемой, иллюстрирующей пример деблокирования краев подразделов в единице кодирования (CU), которая использует инструмент интра-подразделения (ISP);FIG. 6 is a block diagram illustrating an example of subsection edge deblocking in a coding unit (CU) that uses an intra subdivision tool (ISP);

ФИГ. 7 является блок-схемой, иллюстрирующей другой пример деблокирования краев подразделов в CU, которая использует инструмент интра-подразделения (ISP);FIG. 7 is a block diagram illustrating another example of deblocking subsection edges in a CU that uses an intra-subdivision tool (ISP);

ФИГ. 8 является блок-схемой, иллюстрирующей пример деблокирования краев подразделов в CU, которые перекрываются с 8×8 сеткой выборок;FIG. 8 is a block diagram illustrating an example of deblocking the edges of subsections in a CU that overlap with an 8×8 grid of samples;

ФИГ. 9 является блок-схемой, иллюстрирующей пример деблокирования всех краев подразделов в CU, которые перекрываются с 8×8 сеткой выборок;FIG. 9 is a block diagram illustrating an example of deblocking all subsection edges in a CU that overlap with an 8x8 sample grid;

ФИГ. 10 является блок-схемой, иллюстрирующей пример, согласно которому, когда размер подразделов составляет <8 выборок ортогонально в направлении деблокирования, тогда используется слабый фильтр, который использует только 3 выборки при решении о деблокировании и который модифицирует только одну выборку;FIG. 10 is a flowchart illustrating an example that when the subsection size is <8 samples orthogonally in the deblocking direction, then a weak filter is used that uses only 3 samples in the deblocking decision and that only modifies one sample;

ФИГ. 11 показывает блок-схему последовательности операций, иллюстрирующую примерный процесс для деблокирующей фильтрации;FIG. 11 shows a flowchart illustrating an exemplary process for deblocking filtering;

ФИГ. 12 показывает блок-схему последовательности операций, иллюстрирующую другой примерный процесс для деблокирующей фильтрации;FIG. 12 shows a flowchart illustrating another exemplary process for deblocking filtering;

ФИГ. 13 показывает схематичное представление устройства для деблокирования границы подразделов в блоке кодирования.FIG. 13 shows a schematic representation of an apparatus for deblocking a subsection boundary in a coding block.

ФИГ. 14 показывает схематичное представление устройства для деблокирования краев блоков.FIG. 14 shows a schematic representation of a block edge release device.

ФИГ. 15 показывает блок-схему последовательности операций, иллюстрирующую примерный процесс кодирования, реализуемый в устройстве декодирования или устройстве кодирования;FIG. 15 shows a flowchart illustrating an exemplary encoding process implemented in a decoding device or an encoding device;

ФИГ. 16 показывает блок-схему последовательности операций, иллюстрирующую другой примерный процесс кодирования, реализуемый в устройстве декодирования или устройстве кодирования;FIG. 16 shows a flowchart illustrating another exemplary encoding process implemented in a decoding device or an encoding device;

ФИГ. 17 показывает схематичное представление устройства для видеокодирования;FIG. 17 shows a schematic representation of a video encoding device;

ФИГ. 18 показывает схематичное представление устройства для видеокодирования;FIG. 18 shows a schematic representation of a video encoding device;

ФИГ. 19 является блок-схемой, показывающей примерную структуру системы подачи контента, которая реализует услугу доставки контента; иFIG. 19 is a block diagram showing an exemplary structure of a content supply system that implements a content delivery service; and

ФИГ. 20 является блок-схемой, показывающей структуру примерного терминального устройства.FIG. 20 is a block diagram showing the structure of an exemplary terminal device.

Одинаковые ссылочные позиции далее относятся к идентичным или по меньшей мере функционально эквивалентным признакам, если явно не указано иное.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 which show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. It is clear that embodiments of the present invention can be used in other aspects and contain 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 invention 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 encoding (or encoding 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 loop 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 encoding 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 methods in accordance with the various examples described herein.

Как показано на ФИГ. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 изображения, например в устройство-получатель 14 для декодирования кодированных данных 13 изображения.As shown in FIG. 1A, the encoding system 10 includes a source device 12 configured to provide the encoded image data 21 to, for example, a destination device 14 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)). Источником изображений может быть любой тип памяти или хранилища, где хранятся любые из вышеупомянутых изображений.The 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 или любое другое устройство, для сохранения или непосредственного восстановления.Communication interface 22 of 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 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 sink 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 the decoder 30.

Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображений или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.Communication interface 22 and communication interface 28 may be configured to transmit or receive encoded image data 21 or encoded data 13 via a direct link between source device 12 and destination device 14, such as a direct wired or wireless connection, or over 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).The decoder 30 is configured to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (more details will be described below, for example, based on Fig. 3 or Fig. 5).

Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки декодированных данных 31 изображения (также называемых данными восстановленного изображения), таких как декодированное изображение 31, чтобы получить пост-обработанные данные 33 изображения, такие как пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например для подготовки декодированных данных 31 изображения для отображения, например с помощью устройства 34 отображения.The post processor 32 of 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, using 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. The display device 34 may be or include any type of display for presenting the 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 (precise) 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 via 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. Either of video encoder 20 and video decoder 30 may be integrated as part of a combined coder/decoder (CODEC) in a single device, such 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 only an example, and the methods of the present application may 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 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 the present invention 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 the embodiments of the present invention are not limited to HEVC or VVC.

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

ФИГ. 2 показывает схематичное блочное представление примерного видеокодера 20, который выполнен с возможностью реализации методов настоящей заявки. В примере на Фиг. 2 видеокодер 20 содержит ввод 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 (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 capable of implementing the methods of the present application. In the example in FIG. 2, video encoder 20 includes 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.The residual calculation block 204, the transform processing block 206, the quantization block 208, the mode selection block 260 may relate to the formation of the forward signal path of the encoder 20, while the inverse quantization block 210, the inverse transform processing block 212, the recovery block 214, the buffer 216, the contour filter 220, decoded picture buffer (DPB) 230, inter-prediction 244, and intra-prediction 254 may be related to generating a reverse signal path of video encoder 20, wherein the reverse signal path of video encoder 20 corresponds to the signal path of a 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 a 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 (generally 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. Соответственно, блок может, например, быть MxN (M-столбец на N-строка) массивом выборок или MxN массивом коэффициентов преобразования.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 chrominance 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 determines the size of block 203. Accordingly, the block may, for example, be an MxN (M-column per N-row) array of samples or an MxN array of transform coefficients.

Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть выполнены с возможностью кодирования изображения 17 блок за блоком, например кодирование и предсказание выполняется для каждого блока 203.The embodiments of video encoder 20 shown in FIG. 2 may be configured to encode picture 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 divided 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 (eg, CTUs) or one or more tiles, each tile, by way of example, may have rectangular in shape and may contain one or more blocks (eg, CTU), such as full or partial blocks.

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

Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также именуемого остатком 205) на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания приведены ниже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборок.Residual block 204 can be configured to calculate residual block 205 (also referred to as residual 205) based on image block 203 and prediction block 265 (more 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, for example the scaling factors are a power of two for shift operations, the bit depth of the transform coefficients, the trade-off between precision and implementation cost, etc. Specific scaling factors, for example, are specified for the inverse transform, for example 212 inverse transform processing (and corresponding inverse transform, such as by inverse transform processor 312 in video decoder 30), and corresponding scaling factors for direct transform, such as by transform processor 206, may be appropriately set 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 transformation 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 encoder to 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) may be configured to output quantization parameters (QPs), for example directly or encoded via entropy coding unit 270, so that, for example, video decoder 30 may receive and use these 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 transform (recovered) block 213 .

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

Блок 214 восстановления (например, блок сложения или сумматор 214) выполнен с возможностью сложения (восстановленного) блока 213 преобразования (т. е. восстановленного остаточного блока 213) с блоком 265 предсказания, чтобы получить восстановленный блок 215 в области выборок, например посредством сложения - выборка за выборкой - значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.Reconstructor 214 (eg, adder or adder 214) is configured to add the (recovered) transform block 213 (i.e., reconstructed residual block 213) to prediction block 265 to obtain reconstructed block 215 in the sample domain, such as by adding - sample by sample - 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. sharpening 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, so 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, such as decoded picture buffer 230 or other buffers (such as a linear (string) 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 split 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 do not necessarily refer to the all-inclusive "best", "minimum", "optimal", etc., but may also refer to meeting a selection or termination criterion, such as when a value exceeds or falls below a threshold value, or other constraints potentially leading to a "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), whereby these blocks can be split again into two or more blocks at the next lower level, e.g. tree level 2 (hierarchy level 2, depth 2), etc. until the split will not complete, for example, because a termination criterion is met, such as reaching the maximum tree depth or minimum block size. Blocks that are not further separated 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) may 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 to encode 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 to encode samples. Accordingly, a coding block (CB) may be an M×N block of samples for some values of M and N, so dividing the CTB into coding blocks is a division.

В вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разбита на CU с использованием структуры квадродерева, обозначенной в качества дерева кодирования. Решение о том, следует ли кодировать область изображения с использованием предсказания интер-изображения (временного) или интра-изображения (пространственного), принимается на уровне CU. Каждая CU может быть дополнительно разбита на одну, две или четыре PU в соответствии с типом разбиения на PU. Внутри одной PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разбиения на PU, CU может быть разделена на единицы (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 transmitted to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the partition type to 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 the 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 recovered 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 estimation. 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).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 offset 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 sub-pixel-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 method or methodology) or traversal (no compression) in relation 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 niya, . 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, the encoder 20 may have a quantizer 208 and an inverse quantizer 210 combined into a single block.

Декодер и способ декодирования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 methods 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 an "embedded 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 reconstruction block 214, contour filter 320 may be identical in function to loop filter 220, and decoded picture buffer 330 may be identical in function to 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 также могут именоваться блоками 213 преобразования. Преобразование может быть обратным преобразованием, например, обратным 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 recovered residual blocks 213 may also be referred to as transform blocks 213 . The transformation may be an inverse transformation, eg, inverse DCT, inverse DST, inverse integer transformation, or a conceptually similar inverse transformation process. The inverse transform 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 предсказания.A reconstructor 314 (e.g., adder or adder 314) is configured to add the reconstructed transform block 313 to the predictor 365 to obtain a reconstructed block 315 in the sample region, such as by adding the sample values of the reconstructed residual block 313 and the sample values of the predictor 365.

ФильтрацияFiltration

Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO), или один или более других фильтров, таких как двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры сглаживания, повышения резкости или совместные фильтры, или любую их комбинацию. Хотя блок 320 контурного фильтра показан на ФИГ. 3 как внутриконтурный (in loop) фильтр, в других конфигурациях блок 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 corresponding information received from the encoded image data 21 (for example, by parsing and/or decoding, for example, by entropy decoding block 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 methods 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 of 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 create 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 decoded 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 (eg, 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, the decoder 30 may produce an output video stream without the loop filter block 320 . For example, non-transform-based decoder 30 may inversely quantize the residual signal directly without inverse transform processing unit 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 a single unit.

Следует понимать, что в кодере 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., MV 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.

ФИГ. 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, которые дополнительно включают в себя приложение видеокодирования, которое выполняет описанные в данном документе способы. The memory 504 in the device 500 may be a read only memory (ROM) or a random access memory (RAM) device 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 that is 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.

Инструмент кодирования интра-подразделов (ISP) разделяет интра-блок (предсказания) на множество подразделов и предсказывает эти подразделы, например, сначала предсказывает один подраздел, а затем предсказывает следующий подраздел. В некоторых ситуациях на границах подразделов могут быть неоднородности, вызывающие артефакты блочности.The intra-subsection (ISP) coding tool divides the intra-block (predictions) into a plurality of subsections and predicts these subsections, for example, first predicts one subsection and then predicts the next subsection. In some situations, there may be discontinuities at the boundaries of subsections, causing blocking artifacts.

В одном примере Фигура 6 показывает ISP-разделение интра-блока 600 на множество подразделов. В этом примере имеются два направленных раздела, горизонтальный раздел 601 и вертикальный раздел 602; в других примерах (не показанных на Фиг. 6) выполняется другое разделение, такое как угловое направленное разделение. В примере, показанном на Фиг. 6, помечены подразделы и соответствующие границы с вертикальным разделом 602. Здесь интра-блок 600 делится на четыре подраздела, а именно, sub0, sub1, sub2 и sub3. Помечены три границы подразделов, а именно: граница A подразделов между подразделом 0 и 1, граница B подразделов между подразделом 1 и 2, граница C подразделов между подразделом 2 и 3, аналогичное определение может быть использовано в примере горизонтального раздела 601.In one example, Figure 6 shows the ISP division of the intra-block 600 into multiple subsections. In this example, there are two directional sections, a horizontal section 601 and a vertical section 602; in other examples (not shown in FIG. 6) another split is performed, such as an angled directional split. In the example shown in FIG. 6, subsections and corresponding boundaries are labeled with vertical partition 602. Here, intra-block 600 is divided into four subsections, namely sub0, sub1, sub2, and sub3. Three subdivision boundaries are labeled, namely: subdivision boundary A between subdivision 0 and 1, subdivision boundary B between subdivision 1 and 2, subdivision boundary C between subdivision 2 and 3, a similar definition can be used in the horizontal partition example 601.

В одном варианте осуществления предсказание подразделов выполняется с помощью инструмента ISP, подразделы могут декодироваться последовательно. Для одного подраздела остаточный сигнал может быть сгенерирован посредством энтропийного декодирования коэффициентов, отправленных кодером, а затем их обратного квантования и обратного преобразования. Затем подраздел интра-предсказывается и, наконец, соответствующие восстановленные выборки получаются путем сложения остаточного сигнала с сигналом предсказания. Сигнал предсказания может главным образом представлять интра-предсказание, которое выполняется на основе углового режима относительно строк верхней и левой опорных выборок. Остаток декодируется, а затем добавляется к сигналу предсказания для формирования конченого предсказания. Эти восстановленные выборки затем используются для предсказания следующего подраздела. Следовательно, восстановленные значения одного подраздела будут доступны для генерирования предсказания следующего подраздела, что является повтором процесса, и так далее. Все подразделы (sub0, sub1, sub2, sub3) используют один и тот же интра-режим.In one embodiment, subsection prediction is performed by the ISP tool, subsections may be decoded sequentially. For one sub-subsection, the residual signal may be generated by entropy decoding the coefficients sent by the encoder and then dequantizing and inverse transforming them. The subsection is then intra-predicted and finally the corresponding reconstructed samples are obtained by adding the residual signal to the prediction signal. The prediction signal may mainly represent an intra-prediction that is performed based on the angular mode with respect to the rows of the top and left reference samples. The remainder is decoded and then added to the prediction signal to form the final prediction. These recovered samples are then used to predict the next subsection. Therefore, the recovered values of one subsection will be available to generate a prediction of the next subsection, which is a repetition of the process, and so on. All subsections (sub0, sub1, sub2, sub3) use the same intra mode.

Как правило, для подразделов могут использоваться два порядка обработки: нормальный порядок и обратный порядок. В примере, для горизонтального раздела нормальным порядком является порядок сверху вниз, а обратным порядком является порядок снизу-вверх. В другом примере, для вертикальных разделов нормальным порядком является порядок слева направо, а обратным порядком является порядок справа налево.Generally, two processing orders can be used for subsections: normal order and reverse order. In the example, for a horizontal section, the normal order is from top to bottom, and the reverse order is from bottom to top. In another example, for vertical partitions, the normal order is from left to right, and the reverse order is from right to left.

Как показано на Фиг. 7, для уменьшения артефактов блочности, вызываемых инструментом кодирования ISP, границы подразделов внутри блока, к которому применено ISP, подвергаются деблокирующей фильтрации после горизонтального разделения блока 700 кодирования на подразделы 701 или после вертикального разделения блока 700 кодирования на подразделы 702. Предлагается несколько альтернативных способов для применения деблокирующих фильтров в отношении этих границ подразделов.As shown in FIG. 7, to reduce blocking artifacts caused by the ISP encoding tool, subsection boundaries within an ISP-applied block are subjected to deblocking filtering after codingblock 700 is horizontally subdivided into subsections 701 or after codingblock 700 is vertically subdivided into subsections 702. Several alternative methods are proposed for applying deblocking filters on those subsection boundaries.

Деблокирующая фильтрация с увеличенной интенсивностью границы.Deblocking filtering with increased border intensity.

Интенсивность границы (Bs) является параметром, который используется для управления силой деблокирующей фильтрации. Чем выше значение Bs, тем больше выборок, перпендикулярных границе, может быть отфильтровано. Предсказание ISP может привести к проблеме распространения ошибок, а именно, ошибка предсказания распространяется с порядком обработки.Edge intensity (Bs) is a parameter that is used to control the strength of the deblocking filtering. The higher the value of Bs, the more samples perpendicular to the boundary can be filtered out. The ISP prediction may lead to an error propagation problem, namely, the prediction error propagates with the processing order.

В одном примере, как показано на Фигуре 6, с вертикальным разделением и нормальным порядком обработки блока кодирования (единицы кодирования) выборки в этих подразделах восстанавливаются слева направо, а именно sub0, sub1, sub2 и sub3. Подраздел 0 в целом может иметь лучшее качество предсказания, так как его опорные выборки (из левого соседнего блока и верхнего соседнего блока) уже восстановлены. Однако левую часть опорных выборок подраздела 1 получают из восстановленного подраздела 0, поэтому опорные выборки подраздела 1 могут не быть такими точными, как таковые у подраздела 0, что приводит к большему остаточному сигналу. Точно так же опорные выборки подраздела 2 еще хуже, чем таковые у подраздела 1, а ошибка предсказания распространяется вместе с порядком обработки.In one example, as shown in Figure 6, with vertical splitting and normal coding block (coding unit) processing order, the samples in these subsections are reconstructed from left to right, namely sub0, sub1, sub2, and sub3. Subsection 0 may generally have better prediction quality since its reference samples (from the left neighbor block and the top neighbor block) have already been reconstructed. However, the left side of the subsection 1 reference samples is derived from the reconstructed subsection 0, so the subsection 1 reference samples may not be as accurate as those of subsection 0, resulting in a larger residual signal. Similarly, the subsection 2 reference samples are even worse than those of subsection 1, and the prediction error propagates along with the processing order.

Предлагается способ увеличения интенсивности границы с порядком обработки. А именно, когда граница между двумя подразделами (например, граница A, B, C на Фиг. 6) находится ближе к соседним блокам, тогда Bs для этой границы устанавливается равной меньшему значению, поскольку эта граница имеет меньшую ошибку. Когда граница находится дальше от соседних блоков, тогда Bs для этой границы устанавливается равной более высокому значению, так как граница имеет большую ошибку из-за распространения ошибок.A method is proposed to increase the intensity of the border with the order of processing. Namely, when the boundary between two subsections (eg, boundary A, B, C in Fig. 6) is closer to adjacent blocks, then Bs for that boundary is set to a smaller value because that boundary has a smaller error. When the boundary is further away from adjacent blocks, then Bs for that boundary is set to a higher value, since the boundary has a larger error due to error propagation.

В одном примере, как показано на Фигуре 6, с вертикальным разделом и нормальным (слева направо) порядком обработки выполняемой в отношении блока, Bs границы A подразделов устанавливается равной 0, Bs границы B подразделов устанавливается равной 1, Bs границы C подразделов устанавливается равной 2.In one example, as shown in Figure 6, with a vertical partition and normal (left to right) processing order performed on a block, Bs of subsection boundary A is set to 0, Bs of subsection boundary B is set to 1, Bs of subsection boundary C is set to 2.

В одном примере, как показано на Фигуре 6, с вертикальным разделом и обратным (справа налево) порядком обработки выполняемой в отношении блока, Bs границы A подразделов устанавливается равной 2, Bs границы B подразделов устанавливается равной 1, Bs границы C подразделов устанавливается равной 0.In one example, as shown in Figure 6, with a vertical partition and reverse (right to left) processing order performed on a block, Bs of subsection boundary A is set to 2, Bs of subsection boundary B is set to 1, Bs of subsection boundary C is set to 0.

В другом примере аналогичный процесс выполняется для горизонтальных разделов.In another example, a similar process is performed for horizontal sections.

Деблокирующая фильтрация на основе флага кодированного блока (CBF).Deblocking filtering based on Coded Block Flag (CBF).

В примере каждый подраздел предсказывается и восстанавливается отдельно, каждый подраздел может иметь различную остаточную информацию (разность между исходным сигналом и предсказанным сигналом). В частности, флаг кодированного блока (CBF) используется для указания того, имеет ли блок или подраздел остаточные данные или нет после квантования. В общем, блок с CBF, равным 1 (т.е. после квантования имеются остаточные данные), имеет большее искажение, чем блок с CBF, равным 0 (т.е. после квантования остаточных данных нет). В этом варианте осуществления деблокирующий фильтр применяется в отношении границы между двумя подразделами на основе флага CBF двух соседних с ней подразделов.In the example, each subsection is predicted and reconstructed separately, each subsection may have different residual information (the difference between the original signal and the predicted signal). In particular, a coded block flag (CBF) is used to indicate whether a block or subsection has residual data or not after quantization. In general, a block with a CBF of 1 (ie, there is residual data after quantization) has more distortion than a block with a CBF of 0 (ie, there is no residual data after quantization). In this embodiment, a deblocking filter is applied to a boundary between two subdivisions based on the CBF flag of its two adjacent subsections.

В одном примере, если каждый из двух подразделов некоторой границы подразделов имеет значение флага CBF, равное 0, то никакой деблокирующий фильтр не применяется, иначе (если по меньшей мере один из двух подразделов границы подразделов имеет значение флага CBF, равное 1) деблокирующий фильтр применяется, значение Bs границы подразделов устанавливается равным 1. Возвращаясь к примеру на Фигуре 6, если каждый из подраздела 0 и 1 имеет флаг CBF, равный 0, тогда никакой деблокирующий фильтр для границы A подразделов не применяется. Если по меньшей мере один из подразделов 0 и 1 имеет флаг CBF, равный 1, тогда деблокирующий фильтр применяется для границы A подразделов с Bs, установленной равной 1.In one example, if each of two subsections of a subsection boundary has a CBF flag value of 0, then no deblocking filter is applied, else (if at least one of the two subsections of a subsection boundary has a CBF flag value of 1) a deblocking filter is applied , the subsection boundary value Bs is set to 1. Returning to the example in Figure 6, if each of subsection 0 and 1 has a CBF flag of 0, then no deblocking filter for subsection boundary A is applied. If at least one of the partitions 0 and 1 has a CBF flag of 1, then a deblocking filter is applied to the border A of the partitions with Bs set to 1.

В одном примере, если каждый из двух подразделов некоторой границы подразделов имеет значение флага CBF, равное 0, то никакой деблокирующий фильтр не применяется, иначе (если по меньшей мере один из двух подразделов границы подразделов имеет значение флага CBF, равное 1) деблокирующий фильтр применяется со значением Bs границы подразделов установленным равным 2. Возвращаясь к примеру на Фигуре 6, если каждый из подраздела 0 и 1 имеет флаг CBF, равный 0, тогда никакой деблокирующий фильтр для границы A подразделов не применяется. Если по меньшей мере один из подразделов 0 и 1 имеет флаг CBF, равный 1, тогда деблокирующий фильтр применяется для границы A подразделов с Bs, установленной равной 2.In one example, if each of two subsections of a subsection boundary has a CBF flag value of 0, then no deblocking filter is applied, else (if at least one of the two subsections of a subsection boundary has a CBF flag value of 1) a deblocking filter is applied with subsection boundary value Bs set to 2. Returning to the example in Figure 6, if subsection 0 and 1 each have a CBF flag of 0, then no deblocking filter for subsection boundary A is applied. If at least one of the partitions 0 and 1 has a CBF flag of 1, then a deblocking filter is applied to the border A of the partitions with Bs set to 2.

Установка постоянной интенсивности границы для границ подразделов.Sets a constant border intensity for subsection borders.

В одном примере для всех границ A, B и C подразделов, показанных на фиг. 6, постоянная интенсивность границы (Bs) установлена равной 1.In one example, for all of the boundaries A, B, and C of the subsections shown in FIG. 6, the constant boundary intensity (Bs) is set to 1.

В другом примере для всех границ A, B и C подразделов, показанных на фиг. 6, постоянная интенсивность границы (Bs) установлена равной 2.In another example, for all boundaries A, B, and C of the subsections shown in FIG. 6, the constant boundary intensity (Bs) is set to 2.

Как показано на Фиг. 8, согласно другому примеру, после горизонтального разделения блока 800 кодирования на подразделы 801 или после вертикального разделения блока 800 кодирования на подразделы 802, деблокируются только границы подразделов, которые перекрываются с 8×8 сеткой выборок, а остальные края подразделов не деблокируются. Это дает преимущество в уменьшении вычислительной сложности, поскольку деблокируются только несколько краев.As shown in FIG. 8, according to another example, after coding block 800 is horizontally divided into subsections 801 or after coding block 800 is vertically divided into subsections 802, only subsection boundaries that overlap with the 8x8 sample grid are released, and the remaining subsection edges are not released. This has the advantage of reducing computational complexity since only a few edges are unlocked.

Другая альтернатива показана на Фиг. 9. В этом случае, после горизонтального разделения блока 900 кодирования на подразделы 901 или после вертикального разделения блока 900 кодирования на подразделы 902, деблокируются все границы подразделов, которые перекрываются с 4×4 сеткой выборок.Another alternative is shown in Fig. 9. In this case, after the horizontal division of the coding block 900 into subsections 901 or after the vertical division of the coding block 900 into subsections 902, all subsection boundaries that overlap with the 4×4 grid of samples are released.

Координатор позиции определяется как (x, y), x представляет число выборок от верхней левой выборки всего кадра в горизонтальном направлении; y представляет число выборок от верхней левой выборки всего кадра в вертикальном направлении. Координатором верхней левой выборки всего кадра является (0, 0).The position coordinator is defined as (x, y), x represents the number of samples from the top left sample of the entire frame in the horizontal direction; y represents the number of samples from the top left sample of the entire frame in the vertical direction. The coordinator of the top left sample of the entire frame is (0, 0).

В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где x%8==0. Операция % означает операцию по модулю, определяемую как остаток от деления x на 8.In one example, an 8×8 grid of samples may start at position (x, y), where x%8==0. The % operation means the modulo operation, defined as the remainder of dividing x by 8.

В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где x%8==4. Операция % означает операцию по модулю, определяемую как остаток от деления x на 8.In one example, the 8×8 grid of samples may start at position (x, y), where x%8==4. The % operation means the modulo operation, defined as the remainder of dividing x by 8.

В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где y%8==0. Операция % означает операцию по модулю, определяемую как остаток от деления y на 8.In one example, an 8×8 grid of samples may start at position (x, y) where y%8==0. The % operation means the modulo operation, defined as the remainder of dividing y by 8.

В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где y%8==4. Операция % означает операцию по модулю, определяемую как остаток от деления y на 8.In one example, the 8×8 grid of samples may start at position (x, y), where y%8==4. The % operation means the modulo operation, defined as the remainder of dividing y by 8.

Работа с меньшими блокамиWorking with smaller blocks

Применение ISP может привести к появлению подразделов с высотой или шириной в 4 выборки. В примере на Фигуре 6 используется вертикальное разделение, если W составляет 16 выборок, тогда каждый подраздел имеет ширину 4 выборки. В этом случае, как показано на Фиг. 10, может использоваться слабый фильтр, который модифицирует не более одной выборки 10314 или 10331 вдоль границы 1032 подразделов между подразделом 1031 и подразделом 1033. В примере, показанном на Фигуре 10, фильтрация выполняется в каждой строке подразделов 1031, 1033, которая перпендикулярна и примыкает к границе 1032 подразделов между подразделом 1031 и подразделом 1033, например. Как показано на Фиг. 10, можно использовать слабый фильтр, который лишь модифицирует не более одной выборки 1108 или 10311 вдоль края 1020 между соседним блоком 1010 и текущим блоком 1030. В другом примере, показанном на Фигуре 10, фильтрация выполняется в каждой строке подраздела 1031 или соседнего блока 1010, которая перпендикулярна и примыкает к краю 1020 между соседним блоком 1010 и подразделом 1031 блока 1030, например. Иначе (если высота/ширина подраздела, ортогональная границам подразделов, больше 4 выборок, тогда может быть использован деблокирующий фильтр (например, деблокирующий фильтр, раскрытый в вышеупомянутом документе VVC) согласно версии 13 JVET-L1001 нормального VVC (http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=4834).Using an ISP may result in subsections that are 4 samples high or wide. The example in Figure 6 uses a vertical split, if W is 16 samples, then each subsection is 4 samples wide. In this case, as shown in FIG. 10, a weak filter can be used that modifies at most one sample 10314 or 10331 along the subsection boundary 1032 between subsection 1031 and subsection 1033. In the example shown in Figure 10, filtering is performed on each row of subsections 1031, 1033 that is perpendicular to and adjacent to subsection boundary 1032 between subsection 1031 and subsection 1033, for example. As shown in FIG. 10, a weak filter can be used that only modifies at most one sample 1108 or 10311 along the edge 1020 between adjacent block 1010 and current block 1030. In another example, shown in Figure 10, filtering is performed on each row of subsection 1031 or adjacent block 1010, which is perpendicular to and adjacent to the edge 1020 between adjacent block 1010 and subsection 1031 of block 1030, for example. Otherwise (if the height/width of the subsection orthogonal to the subsection boundaries is greater than 4 samples, then a deblocking filter (for example, the deblocking filter disclosed in the aforementioned VVC document) can be used according to JVET-L1001 version 13 of normal VVC ( http://phenix.it -sudparis.eu/jvet/doc_end_user/current_document.php?id=4834 ).

В другом варианте осуществления для любого из вышеперечисленных вариантов осуществления и примеров, когда границы подразделов не выровнены с сеткой 8×8, тогда деблокирующий фильтр не применяется.In another embodiment, for any of the above embodiments and examples, when the subsection boundaries are not aligned with the 8×8 grid, then no deblocking filter is applied.

Подробная информация о связанном с интра-подразделом определении предлагаемого способа приведена ниже в формате спецификации проекта VVC (части 7.3.9.5 и 7.4.10.5):Details of the intra-subsection related definition of the proposed method are given below in the format of the VVC project specification (parts 7.3.9.5 and 7.4.10.5):

7.3.9.5 Синтаксис единицы кодирования7.3.9.5 Syntax of a coding unit

intra_subpartitions_mode_flag[ x0 ][ y0 ] intra_subpartitions_mode_flag [ x0 ][ y0 ] ae(v)ae(v) if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 ) if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 ) intra_subpartitions_split_flag[ x0 ][ y0 ] intra_subpartitions_split_flag [ x0 ][ y0 ] ae(v)ae(v)

7.4.10.5 Семантика единицы кодирования7.4.10.5 Semantics of a coding unit

intra_subpartitions_mode_flag[ x0 ][ y0 ], равный 1, определяет, что текущая интра-единица кодирования разделена на NumIntraSubPartitions[ x0 ][ y0 ] прямоугольных подразделов блока преобразования. intra_subpartitions_mode_flag[ x0 ][ y0 ], равный 0, определяет, что текущая интра-единица кодирования не разделена на прямоугольные подразделы блока преобразования. intra_subpartitions_mode_flag [ x0 ][ y0 ] equal to 1 specifies that the current intra coding unit is divided into NumIntraSubPartitions[ x0 ][ y0 ] of rectangular transform block subpartitions. intra_subpartitions_mode_flag[ x0 ][ y0 ] equal to 0 specifies that the current intra coding unit is not divided into rectangular transform block subpartitions.

Когда intra_subpartitions_mode_flag[ x0 ][ y0 ] не присутствует, выводится, что он равен 0.When intra_subpartitions_mode_flag[ x0 ][ y0 ] is not present, it is inferred to be 0.

intra_subpartitions_split_flag[ x0 ][ y0 ] определяет, является ли типом разбиения на интра-подразделы горизонтальный или вертикальный тип. Когда intra_subpartitions_split_flag[ x0 ][ y0 ] не присутствует, он выводится следующим образом: intra_subpartitions_split_flag [ x0 ][ y0 ] specifies whether the type of intra-partitioning is horizontal or vertical. When intra_subpartitions_split_flag[ x0 ][ y0 ] is not present, it is output as follows:

- Если cbHeight больше MaxTbSizeY, intra_subpartitions_split_flag[ x0 ][ y0 ] выводится равным 0.- If cbHeight is greater than MaxTbSizeY, intra_subpartitions_split_flag[ x0 ][ y0 ] is output as 0.

- Иначе (cbWidth больше MaxTbSizeY), intra_subpartitions_split_flag[ x0 ][ y0 ] выводится равным 1.- Otherwise (cbWidth is greater than MaxTbSizeY), intra_subpartitions_split_flag[ x0 ][ y0 ] is output as 1.

Переменная IntraSubPartitionsSplitType определяет тип разбиения, используемого для текущего блока кодирования яркости, как проиллюстрировано в Таблице 13. IntraSubPartitionsSplitType получают следующим образом:The variable IntraSubPartitionsSplitType specifies the type of partitioning used for the current luma coding block, as illustrated in Table 13. The IntraSubPartitionsSplitType is obtained as follows:

- Если intra_subpartitions_mode_flag[ x0 ][ y0 ] равен 0, IntraSubPartitionsSplitType устанавливается равным 0.- If intra_subpartitions_mode_flag[ x0 ][ y0 ] is 0, IntraSubPartitionsSplitType is set to 0.

- Иначе IntraSubPartitionsSplitType устанавливается равным 1+intra_subpartitions_split_flag[ x0 ][ y0 ].- Otherwise, IntraSubPartitionsSplitType is set to 1+intra_subpartitions_split_flag[ x0 ][ y0 ].

Таблица 13 - Связь наименования с IntraSubPartitionsSplitTypeTable 13 - Name Relationship to IntraSubPartitionsSplitType

IntraSubPartitionsSplitTypeIntraSubPartitionsSplitType Наименование IntraSubPartitionsSplitTypeName IntraSubPartitionsSplitType 00 ISP_NO_SPLITISP_NO_SPLIT 1one ISP_HOR_SPLITISP_HOR_SPLIT 22 ISP_VER_SPLITISP_VER_SPLIT

Переменная NumIntraSubPartitions определяет число подразделов блока преобразования, на которые делится блок интра-кодирования яркости. NumIntraSubPartitions получают следующим образом:The NumIntraSubPartitions variable determines the number of transform block subparts into which the luminance intra-coding block is divided. NumIntraSubPartitions is obtained like this:

- Если IntraSubPartitionsSplitType равен ISP_NO_SPLIT, NumIntraSubPartitions устанавливается равным 1.- If IntraSubPartitionsSplitType is ISP_NO_SPLIT, NumIntraSubPartitions is set to 1.

- Иначе, если выполняется одно из следующих условий, NumIntraSubPartitions устанавливается равным 2:- Otherwise, if one of the following conditions is true, NumIntraSubPartitions is set to 2:

-- cbWidth равна 4 и cbHeight равна 8,-- cbWidth is 4 and cbHeight is 8,

-- cbWidth равна 8 и cbHeight равна 4.-- cbWidth is 8 and cbHeight is 4.

- Иначе NumIntraSubPartitions устанавливается равным 4.- Otherwise, NumIntraSubPartitions is set to 4.

ФИГ. 11 является блок-схемой последовательности операций способа деблокирования для деблокирования границы подразделов в блоке кодирования при кодировании изображения и/или декодировании изображения, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, при этом второй подраздел интра-предсказывается на основе первого подраздела. Дополнительные подробности способа описаны выше, например, со ссылкой на Фиг. с 6 по 10 .FIG. 11 is a flowchart of a deblocking method for deblocking a subsection boundary in a coding block in image encoding and/or image decoding, wherein the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections containing a first subsection and a second subsection , which is adjacent to the first subsection, with the second subsection intra-predicted based on the first subsection. Additional details of the method are described above, for example with reference to FIG. from 6 to 10 .

На этапе 1101 определяют первую максимальную длину фильтра равной 1 для первого подраздела и/или вторую максимальную длину фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;Step 1101 determines the first maximum filter length to be 1 for the first subsection and/or the second maximum filter length to be 1 for the second subsection when the first subsection is 4 samples wide or the second subsection is 4 samples wide or when the first subsection is 4 samples high or the height of the second subsection is 4 samples;

На этапе 1102 модифицируют значение не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которая/ который перпендикулярна/перпендикулярен и примыкает к границе подразделов между первым подразделом и вторым подразделом; и/илиAt 1102, the value of at most one sample of the first subsection is modified, wherein the sample of at most one is obtained from the row or column of the first subsection that is/is perpendicular/perpendicular to and adjacent to the subsection boundary between the first subsection and the second subsection; and/or

На этапе 1103 модифицируют значение не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которая/который перпендикулярна/перпендикулярен и примыкает к границе подразделов между первым подразделом и вторым подразделом.In step 1103, the value of at most one second subsection sample is modified, whereby at most one sample is obtained from the row or column of the second subsection that is/is perpendicular/perpendicular to and adjacent to the subsection boundary between the first subsection and the second subsection.

Основываясь на вышеупомянутом настоящее раскрытие позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакт блочности, который может быть вызван границами подразделов в блоке, в котором применено ISP, таким образом улучшая эффективность кодирования.Based on the above, the present disclosure allows a small number of sample values to be modified at a subsection boundary, and therefore the method can reduce blocking artifact that may be caused by subsection boundaries in a block in which ISP is applied, thus improving coding efficiency.

ФИГ. 12 является блок-схемой последовательности операций способа деблокирования для деблокирования краев блоков между блоками изображения при кодировании изображения и/или декодировании изображения, при этом края блоков содержат край между текущим подразделом текущего блока кодирования и соседним блоком этого текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы; Дополнительные подробности способа описаны выше, например, со ссылкой на Фиг. с 6 по 10.FIG. 12 is a flowchart of a deblocking method for deblocking block edges between image blocks in image encoding and/or image decoding, wherein the block edges comprise an edge between a current subsection of a current coding block and an adjacent block of that current coding block, wherein the current coding block encoded in intra-prediction mode, and the current coding block is divided into subsections; Additional details of the method are described above, for example with reference to FIG. from 6 to 10.

На этапе 1201 определяют третью максимальную длину фильтра равной 1 для текущего подраздела и/или четвертую максимальную длину фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;At step 1201, determine the third maximum filter length equal to 1 for the current subsection and/or the fourth maximum filter length equal to 1 for the neighboring block, when the width of the current subsection is 4 samples or the height of the current subsection is 4 samples;

На этапе 1202 модифицируют значение не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которая/который перпендикулярна/перпендикулярен и примыкает к краю между текущим подразделом и соседним блоком; и/илиAt 1202, the value of at most one sample of the current subsection is modified, whereby that sample of at most one is obtained from a row or column of the current subsection that is/is perpendicular/perpendicular to and adjacent to the edge between the current subsection and an adjacent block; and/or

На этапе 1203 модифицируют значение не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которая/который перпендикулярна/перпендикулярен и примыкает к краю между текущим подразделом и соседним блоком.In step 1203, the value of at most one neighboring block sample is modified, wherein at most one sample of the neighboring block is obtained from the row or column of the neighboring block that is/is perpendicular/perpendicular to and adjacent to the edge between the current subsection and the neighboring block.

Основываясь на вышеупомянутом настоящее раскрытие позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакт блочности, который может быть вызван границами подразделов в блоке, в котором применено ISP, одновременно с этим избегая перекрытий фильтраций между краем блоков и границей подразделов до определенной степени, тем самым повышая эффективность кодирования.Based on the above, the present disclosure allows a small number of sample values to be modified at a subsection boundary, and therefore the method can reduce the blocking artifact that can be caused by subsection boundaries in a block in which ISP is applied, while avoiding filtering overlaps between the block edge and the boundary. subsections to a certain extent, thereby improving coding efficiency.

ФИГ. 13 является блок-схемой, иллюстрирующей примерное устройство 1300 для деблокирования границы подразделов в блоке кодирования согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2 и 3, а также Фиг. с 6 по 10). Устройство для использования в кодере изображения и/или декодере изображения для деблокирования границы подразделов в блоке кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, в примере, второй подраздел интра-предсказывается на основе первого подраздела;FIG. 13 is a block diagram illustrating an exemplary apparatus 1300 for deblocking a subsection boundary in a coding block according to the techniques described in this disclosure (more details will be described below, for example, based on FIGS. 2 and 3, as well as FIGS. 6 through 10) . Device for use in an image encoder and/or image decoder for deblocking a subsection boundary in a coding block, wherein the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections containing a first subsection and a second subsection that is adjacent to the first subsection , in the example, the second subsection is intra-predicted based on the first subsection;

при этом устройство 1300 содержит деблокирующий фильтр 1310, выполненный с возможностью:wherein the device 1300 includes a deblocking filter 1310 configured to:

- определения первой максимальной длины фильтра равной 1 для первого подраздела и/или второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;- defining a first maximum filter length of 1 for the first subsection and/or a second maximum filter length of 1 for the second subsection when the width of the first subsection is 4 samples or the width of the second subsection is 4 samples or when the height of the first subsection is 4 samples or the height of the second subsection is 4 samples;

- модификации значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; и/или- modifications to the value of at most one sample of the first subsection, whereby this sample of at most one is obtained from a row or column of the first subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection; and/or

- модификации значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.- value modifications of at most one sample of the second subsection, whereby this sample of at most one is obtained from a row or column of the second subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection.

ФИГ. 14 является блок-схемой, иллюстрирующей примерное устройство 1400 для деблокирования краев блоков согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2 и 3, а также Фиг. с 6 по 10). Устройство для использования в кодере изображения и/или декодере изображения, при этом края блоков содержат край между текущим подразделом текущего блока кодирования и соседним блоком текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы;FIG. 14 is a block diagram illustrating an exemplary device 1400 for deblocking block edges according to the techniques described in this disclosure (more details will be described below, for example, based on FIGS. 2 and 3, and FIGS. 6 through 10). An apparatus for use in an image encoder and/or image decoder, wherein the block edges comprise an edge between the current subsection of the current coding block and an adjacent block of the current coding block, wherein the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections;

при этом устройство 1400 содержит деблокирующий фильтр 1410, выполненный с возможностью:wherein the device 1400 includes a deblocking filter 1410 configured to:

- определения третьей максимальной длины фильтра равной 1 для текущего подраздела и/или четвертой максимальной длины фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;- determining a third maximum filter length equal to 1 for the current subsection and/or a fourth maximum filter length equal to 1 for the neighboring block, when the width of the current subsection is 4 samples or the height of the current subsection is 4 samples;

- модификации значения не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком; и/или- modifying the value of at most one sample of the current subsection, whereby that sample of at most one is obtained from a row or column of the current subsection that is perpendicular to and adjacent to the edge between the current subsection and the adjacent block; and/or

- модификации значения не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком.- modifications to the value of at most one neighboring block sample, whereby this sample of at most one is obtained from a row or column of the neighboring block that is perpendicular and adjacent to the edge between the current subsection and the neighboring block.

ФИГ. 15 является блок-схемой последовательности операций способа кодирования (coding), реализуемого в устройстве декодирования или устройстве кодирования (encoding). FIG. 15 is a flowchart of a coding method implemented in a decoding apparatus or an encoding apparatus.

На этапе 1501 генерируют восстановленный блок текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; иIn step 1501, a reconstructed block of the current coding block that belongs to the current picture is generated, the current coding block is encoded in intra-prediction mode, and the current coding block is divided into sub-sections containing a first sub-section and a second sub-section, the second sub-section being intra-predicted based on the first subsection; and

На этапе 1502 выполняют фильтрацию в отношении восстановленного изображения текущего изображения, при этом выполнение фильтрации в отношении восстановленного изображения текущего изображения содержит: фильтрацию не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела составляет 4 выборки, или когда ширина текущего подраздела составляет 4 выборки, при этом упомянутая выборка в числе не более одной расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к упомянутой границе.In step 1502, filtering is performed on the reconstructed image of the current image, wherein performing filtering on the reconstructed image of the current image comprises: filtering at most one sample in the current subsection from the reconstructed subsections of the reconstructed block when the height of the current subsection is 4 samples, or when the width of the current of a subsection is 4 samples, wherein said sample of at most one is located in a row or column of the current subsection that is perpendicular to the boundary between the current subsection and another subsection that is adjacent to the current subsection, and this one sample is adjacent to the said boundary.

В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из столбца текущего подраздела, который перпендикулярен и примыкает к границе между текущим подразделом и упомянутым другим подразделом, который находится снизу или сверху от текущего подраздела, модифицируют, когда высота текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.In some form of implementation of this embodiment, the value of said one sample, which is obtained from the column of the current subsection, which is perpendicular to and adjacent to the boundary between the current subsection and said other subsection, which is below or above the current subsection, is modified when the height of the current subsection is 4 samples if the type of intra-subpartitioning for subdividing the current coding block into subsections is horizontal.

В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из строки текущего подраздела, которая перпендикулярна и примыкает к границе между текущим подразделом и упомянутым другим подразделом, который находится слева или справа от текущего подраздела, модифицируют, когда ширина текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным.In some form of implementation of this embodiment, the value of said one sample, which is obtained from the row of the current subsection, which is perpendicular to and adjacent to the boundary between the current subsection and said other subsection, which is to the left or right of the current subsection, is modified when the width of the current subsection is 4 samples if the intra-subsection type for subdividing the current coding block into subsections is vertical.

В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, является горизонтальной границей подразделов; илиIn some form of implementation of this embodiment, if the type of intra-subsection for dividing the current coding block into subsections is horizontal, the boundary between the current subsection and said other subsection that is adjacent to the current subsection is a horizontal subsection boundary; or

если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, является вертикальной границей подразделов.if the type of intra-subsection for dividing the current coding block into subsections is vertical, the boundary between the current subsection and said other subsection which is adjacent to the current subsection is a vertical subsection boundary.

В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел находится слева от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела;In some form of implementation of this embodiment, if the intra-subsection type for sub-dividing the current coding block into sub-sections is vertical, the first sub-section is to the left of the second sub-section and the second sub-section is intra-predicted based on the recovered value of the first sub-section;

В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел находится сверху от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела.In some form of implementation of this embodiment, if the type of intra-subsection for subdividing the current coding block into subsections is horizontal, the first subsection is on top of the second subsection and the second subsection is intra-predicted based on the recovered value of the first subsection.

В некоторой форме реализации данного варианта осуществления текущий подраздел представляет собой восстановленную версию первого подраздела или восстановленную версию второго подраздела.In some form of implementation of this embodiment, the current sub-section is a restored version of the first sub-section or a restored version of the second sub-section.

В некоторой форме реализации данного варианта осуществления число подразделов равно 2 или 4.In some form of implementation of this embodiment, the number of subsections is 2 or 4.

В некоторой форме реализации данного варианта осуществленияIn some form of implementation of this embodiment

- если ширина блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина блока кодирования равна 8, а высота блока кодирования равна 4, число подразделов равно 2,- if the coding block width is 4 and the coding block height is 8 and/or if the coding block width is 8 and the coding block height is 4, the number of subsections is 2,

- иначе число подразделов равно 4.- otherwise the number of subsections is 4.

В дополнительной возможной форме реализации данного варианта осуществления фильтрация не более одной выборки в текущем подразделе выполняется только если граница между текущим подразделом и другим подразделом перекрывается с n x n сеткой выборок восстановленного блока, где n - целое число. Например, n=4 или n=8. Таким образом, вычислительная нагрузка может быть снижена еще больше.In a further possible implementation form of this embodiment, filtering at most one sample in the current subsection is only performed if the boundary between the current subsection and another subsection overlaps with an n x n grid of reconstructed block samples, where n is an integer. For example, n=4 or n=8. Thus, the computational load can be further reduced.

В дополнительной возможной форме реализации данного варианта осуществленияIn a further possible implementation form of this embodiment

фильтрация не более одной выборки в текущем подразделе выполняется только когда высота всех подразделов составляет 4 выборки или когда ширина всех подразделов составляет 4 выборки. Таким образом, вычислительная нагрузка всего процесса кодирования может быть дополнительно снижена.filtering at most one selection in the current subsection is only done when all subsections are 4 selections high, or when all subsections are 4 selections wide. Thus, the computational load of the entire encoding process can be further reduced.

В частности, подразделы являются прямоугольными подразделами блока преобразования. Когда ISP разделен, каждый подраздел представляет собой блок преобразования.In particular, subsections are rectangular subsections of a transform block. When the ISP is split, each subsection is a transform block.

В настоящем раскрытии блок кодирования кодируется с использованием инструмента интра-подразделения, ISP.In the present disclosure, a coding block is encoded using an intra-partition tool, ISP.

В дополнительной возможной форме реализации данного варианта осуществления порядок интра-предсказания подразделов является порядком слева направо или справа налево, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным (например, разделение блока предсказания на подразделы может выполняться в вертикальном направлении) илиIn a further possible implementation form of this embodiment, the order of intra-subsection prediction is left-to-right or right-to-left order if the type of intra-subsection for subdividing the current coding block into subsections is vertical (e.g., division of a prediction block into subsections may be performed in the vertical direction ) or

порядок интра-предсказания подразделов является порядком сверху вниз или снизу-вверх, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным (например, разделение блока предсказания на подразделы может выполняться в горизонтальном направлении).the intra-subsection order is top-down or bottom-up if the intra-subsection type for subdividing the current coding block into subsections is horizontal (for example, division of the prediction block into subsections may be performed in a horizontal direction).

В частности, текущий подраздел является восстановленной версией (т.е. восстановленными значениями) первого подраздела или восстановленной версией (т.е. восстановленными значениями) второго подраздела. Например, число подразделов может равняться 2 или 4.In particular, the current subkey is a restored version (ie, restored values) of the first subkey or a restored version (ie, restored values) of the second subkey. For example, the number of subsections may be 2 or 4.

Блок кодирования может быть кодирован с использованием инструмента интра-подразделения, ISP. Инструмент кодирования ISP применяется только к блоку кодирования с интра-предсказанием. Разделение блока кодирования/блока интра-предсказания может привести в результате к 1D-подразделам или линии подразделов. Если данный способ предназначен для использования при кодировании изображения, генерирование восстановленного блока основано на следующем потоке обработки (известном в данной области техники): вычисление остаточного блока на основе текущего блока (т.е. исходного блока) и блока интра-предсказания, преобразование и квантование остаточных коэффициентов остаточного блока, обратное квантование и обратное преобразование для получения восстановленного остаточного блока (см. также подробное описание ниже). Восстановленный блок получается на основе восстановленного остаточного блока и блока предсказания. Если данный способ предназначен для использования при декодировании изображения, генерирование восстановленного блока основано на следующем потоке обработки (известном в данной области техники): получение остаточных коэффициентов остаточного блока на основе информации, включенной в принятый битовый поток, преобразование и квантование остаточных коэффициентов остаточного блока, обратное квантование и обратное преобразование для получения восстановленного остаточного блока (см. также подробное описание ниже). Восстановленный блок получается на основе восстановленного остаточного блока и блока предсказания. Кроме того, восстановленное изображение текущего изображения, содержащего текущий блок, вводится в процесс фильтрации, в схеме кодирования изображения на основе блоков, с фильтрацией не более одной выборки, под которой понимается фильтрация границы, содержащая модификацию не более одной выборки, примыкающей к границе блоков. Решение о таком виде деблокирования может быть основано лишь на трех выборках (соседних в одной строке для фильтрации границ между вертикальными подразделами или соседних в одном столбце для фильтрации границ между горизонтальными подразделами; см. также подробное описание выше).The encoding block may be encoded using the intra-subdivision tool, ISP. The ISP coding tool only applies to the intra-prediction coding block. Splitting the coding block/intra-prediction block may result in 1D subsections or a subsection line. If this method is intended to be used in image coding, the generation of the reconstructed block is based on the following processing flow (known in the art): calculation of the residual block based on the current block (i.e., the original block) and the intra-prediction block, transformation and quantization residual coefficients of the residual block, inverse quantization, and inverse transform to obtain a reconstructed residual block (see also the detailed description below). The recovered block is obtained based on the recovered residual block and the prediction block. If this method is intended to be used in image decoding, the generation of the reconstructed block is based on the following processing flow (known in the art): obtaining the residual coefficients of the residual block based on the information included in the received bitstream, transforming and quantizing the residual coefficients of the residual block, inverse quantization and inverse transformation to obtain a reconstructed residual block (see also the detailed description below). The recovered block is obtained based on the recovered residual block and the prediction block. In addition, the reconstructed image of the current image containing the current block is introduced into the filtering process, in a block-based image coding scheme, with no more than one sample filtering, which is understood as border filtering containing a modification of no more than one sample adjacent to the block boundary. The decision on this type of release can be based on only three selections (adjacent in the same row to filter boundaries between vertical subsections, or adjacent in the same column to filter boundaries between horizontal subsections; see also the detailed description above).

В общем, интенсивности границ всех границ между подразделами блока кодирования могут быть установлены равными постоянному значению, указывающему интенсивность процесса фильтрации (например, 2), чтобы упростить общую обработку.In general, the border intensities of all borders between subsections of a coding block may be set to a constant value indicating the strength of the filtering process (eg, 2) to simplify overall processing.

Слабая фильтрация, применяемая согласно изобретению (не более одной выборки), позволяет уменьшить артефакты блочности в небольших блоках без необходимости в избыточной высокой вычислительной нагрузке и ресурсах памяти.The weak filtering applied according to the invention (no more than one sample) allows to reduce blocking artifacts in small blocks without the need for excessively high computational load and memory resources.

ФИГ. 16 является блок-схемой последовательности операций другого способа кодирования (coding), реализуемого в устройстве декодирования или устройстве кодирования (encoding). FIG. 16 is a flowchart of another coding method implemented in a decoding apparatus or an encoding apparatus.

На этапе 1601 генерируют восстановленный блок текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; иStep 1601 generates a reconstructed block of the current coding block that belongs to the current picture, wherein the current coding block is encoded in intra-prediction mode, and the current coding block is divided into sub-sections containing a first sub-section and a second sub-section, the second sub-section being intra-predicted based on the first subsection; and

На этапе 1602 выполняется фильтрация в отношении восстановленного изображения текущего изображения, при этом выполнение фильтрации в отношении восстановленного изображения текущего изображения содержит: фильтрацию границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу (то есть соседний блок текущего блока), на основе максимальной длины фильтра текущего подраздела и максимальной длины фильтра соседнего блока, и максимальная длина фильтра текущего подраздела и максимальная длина фильтра соседнего блока равняется 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.In step 1602, filtering is performed on the reconstructed image of the current image, wherein performing filtering on the reconstructed image of the current image comprises: filtering the boundary between the current subsection of the reconstructed block and a neighboring block that is adjacent to the current subsection (i.e., a neighboring block of the current block), on based on the maximum filter length of the current subsection and the maximum length of the neighboring block filter, and the maximum filter length of the current subsection and the maximum length of the neighboring block filter is 1 when the height of the current subsection is 4 samples or when the width of the current subsection is 4 samples.

В примере, этап 1602 может включать в себя:In an example, block 1602 may include:

- модификацию, на основе максимальной длины фильтра MA текущего подраздела, значения одной выборки текущего подраздела, смежной с границей; и- modifying, based on the maximum filter length MA of the current subsection, the value of one sample of the current subsection adjacent to the boundary; and

- модификацию, на основе максимальной длины фильтра MB соседнего блока, значений выборок соседнего блока, смежных с границей.- modification, based on the maximum neighbor block filter length MB, of neighboring block sample values adjacent to the boundary.

MA=1, MB=1.MA=1, MB=1.

В частности, этап 1203 может включать в себя:In particular, step 1203 may include:

- модификацию значения выборки максимум в числе MA текущего подраздела, причем выборка максимум в числе MA находится на линии, перпендикулярной и примыкающей к границе, MA=1; и- modifying the value of the sample maximum in the number MA of the current subsection, and the sample maximum in the number MA is on a line perpendicular to and adjacent to the boundary, MA=1; and

при этом модификация, на основе максимальной длины фильтра MB, значений выборок соседнего блока, прилегающего к границе, содержит:while the modification, based on the maximum filter length MB, of the sample values of the neighboring block adjacent to the boundary, contains:

- модификацию значений выборок максимум в числе MB соседнего блока, причем выборки максимум в числе MB находятся на линии, перпендикулярной и примыкающей к границе, MB=1.- modification of the values of samples at most in the number of MBs of the neighboring block, and the samples at most in the number of MBs are on the line perpendicular to and adjacent to the boundary, MB=1.

Здесь максимальная длина фильтра текущего подраздела означает число выборок, разрешенных для модификации в процессе фильтрации для текущего подраздела. Максимальная длина фильтра соседнего блока означает число выборок, разрешенных для модификации в процессе фильтрации для соседнего блока.Here, the maximum filter length of the current subsection means the number of samples allowed for modification in the filtering process for the current subsection. The maximum length of the neighbor block filter means the number of samples allowed for modification in the filtering process for the neighbor block.

В некоторой форме реализации данного варианта осуществления первый подраздел интра-предсказывается на основе другого восстановленного блока, который расположен смежно с блоком кодирования.In some form of implementation of this embodiment, the first subsection is intra-predicted based on another reconstructed block that is adjacent to the coding block.

В дополнительной возможной форме реализации данного варианта осуществления фильтрация выполняется только если граница перекрывается с n x n сеткой выборок восстановленного блока, где n является целым числом. Например, n равно 4 или 8.In a further possible implementation form of this embodiment, filtering is performed only if the boundary overlaps with an n x n grid of reconstructed block samples, where n is an integer. For example, n is 4 or 8.

В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из столбца текущего подраздела, который перпендикулярен и примыкает к границе между текущим подразделом и упомянутым соседним блоком, который находится снизу или сверху от текущего подраздела, модифицируют, когда высота текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.In some form of implementation of this embodiment, the value of said one sample, which is obtained from the column of the current subsection, which is perpendicular to and adjacent to the boundary between the current subsection and said neighboring block, which is below or above the current subsection, is modified when the height of the current subsection is 4 samples if the type of intra-subpartitioning for subdividing the current coding block into subsections is horizontal.

В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из строки текущего подраздела, которая перпендикулярна и примыкает к границе между текущим подразделом и упомянутым соседним блоком, который находится слева или справа от текущего подраздела, модифицируют, когда ширина текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным.In some form of implementation of this embodiment, the value of said one sample, which is obtained from the row of the current subsection, which is perpendicular to and adjacent to the boundary between the current subsection and said adjacent block, which is to the left or right of the current subsection, is modified when the width of the current subsection is 4 samples if the intra-subsection type for subdividing the current coding block into subsections is vertical.

В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница между текущим подразделом и упомянутым соседним блоком, который расположен смежно с текущим подразделом, является горизонтальной границей; илиIn some form of implementation of this embodiment, if the type of intra-subpartitioning for dividing the current coding block into subsections is horizontal, the boundary between the current subsection and said neighboring block, which is adjacent to the current subsection, is a horizontal boundary; or

если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница между текущим подразделом и упомянутым соседним блоком, который расположен смежно с текущим подразделом, является вертикальной границей.if the intra-subpartition type for dividing the current coding block into subsections is vertical, the boundary between the current subsection and said neighboring block which is adjacent to the current subsection is a vertical boundary.

В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел находится слева от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела;In some form of implementation of this embodiment, if the intra-subsection type for sub-dividing the current coding block into sub-sections is vertical, the first sub-section is to the left of the second sub-section and the second sub-section is intra-predicted based on the recovered value of the first sub-section;

если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел находится сверху от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела.if the type of intra-subsection for dividing the current coding block into subsections is horizontal, the first subsection is on top of the second subsection, and the second subsection is intra-predicted based on the recovered value of the first subsection.

В частности число подразделов равняется 2 или 4. Когда число подразделов равно 2, соответственно, имеется первый подраздел и второй подраздел внутри текущего блока, и текущий подраздел может быть восстановленной версией первого подраздела или восстановленной версией второго подраздела.Specifically, the number of sub-sections is 2 or 4. When the number of sub-sections is 2, respectively, there is a first sub-section and a second sub-section within the current block, and the current sub-section may be a restored version of the first sub-section or a restored version of the second sub-section.

Когда число подразделов равно 4, соответственно, имеется первый подраздел, второй подраздел, третий подраздел и четвертый подраздел внутри текущего блока, и текущий подраздел может быть восстановленной версией первого подраздела или восстановленной версией четвертого подраздела.When the number of sub-sections is 4, respectively, there is a first sub-section, a second sub-section, a third sub-section and a fourth sub-section within the current block, and the current sub-section may be a restored version of the first sub-section or a restored version of the fourth sub-section.

Можно понять, что первый подраздел, второй подраздел, третий подраздел и четвертый подраздел просто используются по-разному для подразделов. В некоторых случаях высота всех подразделов составляет 4 выборки или ширина всех подразделов составляет 4 выборки.It can be understood that the first subsection, the second subsection, the third subsection, and the fourth subsection are simply used differently for subsections. In some cases, the height of all subsections is 4 samples, or the width of all subsections is 4 samples.

В дополнительной возможной форме реализации данного варианта осуществленияIn a further possible form of implementation of this embodiment

- если ширина блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина блока кодирования равна 8, а высота блока кодирования равна 4, число подразделов равно 2,- if the coding block width is 4 and the coding block height is 8 and/or if the coding block width is 8 and the coding block height is 4, the number of subsections is 2,

- иначе число подразделов равно 4.- otherwise the number of subsections is 4.

В дополнительной возможной форме реализации данного варианта осуществления фильтрация выполняется только если граница перекрывается с n x n сеткой выборок восстановленного блока, где n является целым числом. Например, n равно 4 или 8.In a further possible implementation form of this embodiment, filtering is performed only if the boundary overlaps with an n x n grid of reconstructed block samples, where n is an integer. For example, n is 4 or 8.

В частности, подразделы являются прямоугольными подразделами блока преобразования.In particular, subsections are rectangular subsections of a transform block.

В настоящем раскрытии блок кодирования кодируется с использованием инструмента интра-подразделения, ISP.In the present disclosure, a coding block is encoded using an intra-partition tool, ISP.

ФИГ. 17 является блок-схемой, иллюстрирующей примерное устройство 1700 согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. с 6 по 10, а также Фиг. 15). Устройство предназначено для использования в кодере изображений и/или декодере изображений. В примере данное устройство 1700 может соответствовать кодеру с ФИГ. 2. В другом примере данное устройство 1700 может соответствовать декодеру с ФИГ. 3. Устройство может включать в себя:FIG. 17 is a block diagram illustrating an exemplary apparatus 1700 according to the techniques described in this disclosure (more details will be described below, for example, based on FIGS. 6 through 10 as well as FIG. 15). The device is intended for use in an image encoder and/or image decoder. In an example, this device 1700 may correspond to the encoder of FIG. 2. In another example, this device 1700 may correspond to the decoder of FIG. 3. The device may include:

блок 1710 восстановления, выполненный с возможностью генерирования восстановленного блока текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; иa reconstructor 1710, configured to generate a reconstructed block of the current coding block that belongs to the current image, wherein the current coding block is encoded in intra-prediction mode, and the current coding block is divided into subsections comprising a first subsection and a second subsection, wherein the second subsection is intra -predicted on the basis of the first subsection; and

блок 1730 фильтрации, выполненный с возможностью осуществления фильтрации в отношении восстановленного изображения текущего изображения, при этом блок 1730 фильтрации в частности выполнен с возможностью фильтрации не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела составляет 4 выборки, или когда ширина текущего подраздела составляет 4 выборки, при этом упомянутая одна выборка расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к упомянутой границе.a filtering unit 1730, configured to perform filtering on the reconstructed image of the current image, wherein the filtering unit 1730 is specifically configured to filter at most one sample in the current subsection from the reconstructed subsections of the reconstructed block, when the height of the current subsection is 4 samples, or when the width of the current subsection is 4 samples, said one sample being located in a row or column of the current subsection that is perpendicular to the boundary between the current subsection and another subsection that is adjacent to the current subsection, and that one sample is adjacent to said boundary.

ФИГ. 18 является блок-схемой, иллюстрирующей примерное устройство 1800 согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. с 6 по 10, а также Фиг. 16). Устройство предназначено для использования в кодере изображений и/или декодере изображений. В примере данное устройство 1800 может соответствовать кодеру с ФИГ. 2. В другом примере данное устройство 1800 может соответствовать декодеру с ФИГ. 3. Устройство может включать в себя:FIG. 18 is a block diagram illustrating an exemplary apparatus 1800 according to the techniques described in this disclosure (more details will be described below, for example, based on FIGS. 6 through 10 as well as FIG. 16). The device is intended for use in an image encoder and/or image decoder. In an example, this device 1800 may correspond to the encoder of FIG. 2. In another example, this device 1800 may correspond to the decoder of FIG. 3. The device may include:

блок 1810 восстановления, выполненный с возможностью генерирования восстановленного блока текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; иa reconstructor 1810, configured to generate a reconstructed block of the current coding block that belongs to the current image, wherein the current coding block is encoded in intra-prediction mode, and the current coding block is divided into subsections comprising a first subsection and a second subsection, wherein the second subsection is intra -predicted on the basis of the first subsection; and

блок 1830 фильтрации, выполненный с возможностью осуществления фильтрации в отношении восстановленного изображения текущего изображения, при этом блок 1830 фильтрации в частности выполнен с возможностью фильтрации границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу, на основе максимальной длины фильтра текущего подраздела и максимальной длины фильтра соседнего блока, и соответствующие максимальные длины фильтров текущего подраздела и соседнего блока равняются 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.a filtering unit 1830, configured to perform filtering on the reconstructed image of the current image, wherein the filtering unit 1830 is specifically configured to filter the boundary between the current subsection of the reconstructed block and an adjacent block that is adjacent to the current subsection, based on the maximum filter length of the current subsection and the maximum neighbor block filter length, and the respective maximum filter lengths of the current subsection and the neighboring block are 1 when the height of the current subsection is 4 samples or when the width of the current subsection is 4 samples.

Основываясь на вышеупомянутом настоящее раскрытие позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакт блочности, который может быть вызван границами подразделов в блоке, в котором применено ISP, одновременно с этим избегая перекрытий фильтраций между краем блоков и границей подразделов до определенной степени, тем самым повышая эффективность кодирования.Based on the above, the present disclosure allows a small number of sample values to be modified at a subsection boundary, and therefore the method can reduce the blocking artifact that can be caused by subsection boundaries in a block in which ISP is applied, while avoiding filtering overlaps between the block edge and the boundary. subsections to a certain extent, thereby improving coding efficiency.

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

ФИГ. 19 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Данная система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и опционально включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.FIG. 19 is a block diagram showing a content supply system 3100 for realizing a content distribution service. This content delivery system 3100 includes a capture device 3102, a terminal device 3106, and optionally includes a display 3126. The capture device 3102 communicates with the terminal device 3106 over a communication line 3104. The communication link may include the communication channel 13 described above. Link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G/4G/5G), USB, or any combination thereof, or the like.

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

В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR) / цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения видеодекодирования. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.In the content delivery system 3100, the terminal device 310 receives and reproduces the encoded data. The terminal device 3106 may be a device with the ability to receive and retrieve data, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3112, a television 3114, a set-top box (STB) 3116, a videoconferencing system 3118 , a video surveillance system 3120, a personal digital assistant (PDA) 3122, a vehicle-mounted device 3124, or a combination thereof, or the like, capable of decoding the aforementioned encoded data. For example, terminal device 3106 may include sink device 14 described above. When the encoded data includes video, the video decoder 30 included in the terminal device is given priority to perform video decoding. When the encoded data includes audio, an audio decoder included in the terminal device is given priority to perform audio decoding processing.

Для терминального устройства со своим дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR) / цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.For a terminal device with its own display, such as a 3108 smartphone or tablet, 3110 computer or laptop, 3112 Network Video Recorder (NVR)/Digital Video Recorder (DVR), 3114 TV, 3122 Personal Digital Assistant (PDA), or 3124 Vehicle Mounted Device, terminal the device can send the decoded data to its display. For a non-display terminal device, such as an STB 3116, a video conferencing system 3118, or a video surveillance system 3120, it is contacted with an external display 3126 to receive and display decoded data.

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

ФИГ. 20 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.FIG. 20 is a diagram showing the structure of an exemplary terminal device 3106. After the terminal device 3106 receives a stream from the capture device 3102, the protocol processing unit 3202 parses the transmission protocol of said stream. The protocol includes, but is not limited to, Real Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP Live Streaming Protocol (HLS), MPEG-DASH, Real Time Transport Protocol (RTP), Interchange Protocol real-time messaging (RTMP) or any combination thereof, or the like.

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

Посредством обработки демультиплексирования генерируются элементарный поток (ES) видео, ES аудио и, опционально, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует ES видео с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в синхронизирующий блок 3212. Аудиодекодер 3208 декодирует ES аудио для генерирования аудиокадра и подает эти данные в синхронизирующий блок 3212. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в синхронизирующий блок 3212. Точно так же аудиокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в синхронизирующий блок 3212.Through the demultiplexing processing, elementary stream (ES) video, ES audio, and optionally subtitles are generated. The video decoder 3206, which includes the video decoder 30 described in the above embodiments, decodes the ES video using the decoding method as shown in the above embodiments to generate a video frame, and supplies this data to the sync block 3212. The audio decoder 3208 decodes the ES audio to generate audio frame and feeds the data to sync block 3212. Alternatively, a video frame may be stored in a buffer (not shown in FIG. Y) before being fed to sync block 3212. Similarly, an audio frame may be stored in a buffer (not shown in FIG. Y) before it is fed into the 3212 synchronizing block.

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

Если субтитр включен в поток, декодер 3210 субтитров декодирует субтитр и синхронизирует его с видеокадром и аудиокадром и передает видео/аудио/субтитр на дисплей 3216 видео/аудио/субтитров.If the subtitle is included in the stream, the subtitle decoder 3210 decodes the subtitle and synchronizes it with the video frame and the audio frame and transmits the video/audio/subtitle to the video/audio/subtitle display 3216.

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

Изобретение было описано в связи с различными вариантами осуществления в данном документе. Однако другие варианты раскрытых вариантов осуществления могут быть поняты и осуществлены специалистами в данной области техники при практической реализации заявленного изобретения на основе изучения чертежей, данного раскрытия и прилагаемой формулы изобретения. В формуле изобретения слово «содержащий» не исключает другие элементы или этапы, а упоминание чего-либо в единственном числе, не исключает множественности. Один процессор или другой блок может выполнять функции нескольких элементов, указанных в формуле изобретения. Простой факт, что определенные меры изложены в обычно различных зависимых пунктах формулы изобретения, не означает, что комбинация этих мер не может быть использована с выгодой. Компьютерная программа может храниться/распространяться на подходящем носителе, таком как оптический носитель данных или твердотельный носитель, поставляемый вместе с другим аппаратным обеспечением или как его часть, но также может распространяться в других формах, например, через Интернет или другие системы проводной или беспроводной связи.The invention has been described in connection with various embodiments herein. However, other variations of the disclosed embodiments may be understood and practiced by those skilled in the art in the practice of the claimed invention based on examination of the drawings, this disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and mentioning something in the singular does not exclude plurality. One processor or other block can perform the functions of several elements specified in the claims. The mere fact that certain measures are set forth in generally different dependent claims does not mean that a combination of these measures cannot be used to advantage. The computer program may be stored/distributed on a suitable medium, such as an optical storage medium or solid state media provided with or as part of other hardware, but may also be distributed in other forms, such as over the Internet or other wired or wireless communication systems.

Специалист в данной области техники поймет, что «блоки» («модули») на различных фигурах (способ и устройство) представляют или описывают функциональные возможности вариантов осуществления изобретения (а не обязательно отдельные «блоки» в аппаратном или программном обеспечении) и таким образом они в равной степени описывают функции или особенности вариантов осуществления устройства, а также варианты осуществления способа (блок=этап).One skilled in the art will appreciate that the "blocks" ("modules") in the various figures (method and apparatus) represent or describe the functionality of embodiments of the invention (rather than necessarily individual "blocks" in hardware or software) and thus they equally describe the functions or features of device embodiments as well as method embodiments (block=step).

Термин «блок» используется лишь для целей иллюстрации функциональных возможностей вариантов осуществления кодера/декодера и не предназначен для ограничения данного раскрытия.The term "block" is used for purposes of illustrating the functionality of encoder/decoder embodiments only and is not intended to limit this disclosure.

В нескольких вариантах осуществления, представленных в данной заявке, следует понимать, что раскрытые система, устройство и способ могут быть реализованы другими способами. Например, описанный вариант осуществления устройства является лишь примерным. Например, разделение на блоки является лишь логическим разделением по функциям, а в фактической реализации может иметь место другое разделение. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые признаки могут игнорироваться или не выполняться. Кроме того, показанные или описанные взаимные связи или прямые связи или коммуникационные соединения могут быть реализованы с использованием некоторых интерфейсов. Непрямые связи или коммуникационные соединения между устройствами или блоками могут быть реализованы электрическими, механическими или иметь другие формы.In several embodiments presented in this application, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the device embodiment described is exemplary only. For example, the division into blocks is only a logical division into functions, and in the actual implementation, another division may take place. For example, many blocks or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the interconnections or direct links or communication connections shown or described may be implemented using certain interfaces. Indirect connections or communication connections between devices or units can be implemented electrically, mechanically, or take other forms.

Блоки, описанные как отдельные части, могут быть или могут не быть физически отдельными, а части, показанные как блоки, могут быть или могут не быть физическими блоками, могут быть расположены в одном месте или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут быть выбраны согласно фактическим требованиям для достижения целей решений в вариантах осуществления.Blocks described as separate parts may or may not be physically separate, and parts shown as blocks may or may not be physical blocks, may be located in the same location, or may be distributed over multiple network blocks. Some or all of the blocks may be selected according to actual requirements to achieve the goals of the decisions in the embodiments.

Кроме того, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированы в один блок обработки, или каждый из блоков может существовать физически отдельно, или два или более блоков интегрируются в один блок.In addition, the functional blocks in the embodiments of the present invention may be integrated into one processing unit, or each of the units may physically exist separately, or two or more units are integrated into one unit.

Варианты осуществления изобретения могут дополнительно включать в себя устройство, например кодер и/или декодер, который содержит схему обработки, выполненную с возможностью выполнения любого из способов и/или процессов, описанных в данном документе.Embodiments of the invention may further include an apparatus, such as an encoder and/or decoder, that includes a processing circuit configured to perform any of the methods and/or processes described herein.

Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодирования, следует отметить, что варианты осуществления системы 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. Although embodiments of the present invention have been primarily described in terms of video coding, it should be noted that embodiments of encoding system 10, encoder 20, and decoder 30 (and thus system 10), as well as other embodiments described herein, may also be configured to process or encode 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 not be available if the encoding for image processing 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 can 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 loop 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 processing unit. 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, где диски (disks) обычно воспроизводят данные магнитным образом, а диски (discs)воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.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 coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that computer-readable 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 herein include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where discs (disks ) usually reproduce data magnetically, while disks (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 hardware components, 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 (56)

1. Способ деблокирования для деблокирования границы подразделов в блоке кодирования при кодировании изображения или декодировании изображения, в котором текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, причем способ содержит: 1. A deblocking method for deblocking a subsection boundary in a coding block in image encoding or image decoding, in which the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections containing a first subsection and a second subsection that is adjacent to the first subsection, wherein the method comprises: - определение первой максимальной длины фильтра равной 1 для первого подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки; и/или- defining a first maximum filter length of 1 for the first subsection when the first subsection width is 4 samples or the second subsection width is 4 samples, or when the first subsection height is 4 samples or the second subsection height is 4 samples; and/or - определение второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;- defining a second maximum filter length of 1 for the second subsection when the first subsection width is 4 samples or the second subsection width is 4 samples, or when the first subsection height is 4 samples or the second subsection height is 4 samples; - выполнение одной или более из:- doing one or more of: -- модификации, основываясь, по меньшей мере частично, на первой максимальной длине фильтра, значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; или-- modifications, based at least in part on the first maximum length of the filter, to values of at most one sample of the first subsection, where that sample of at most one is derived from a row or column of the first subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection; or -- модификации, основываясь, по меньшей мере частично, на второй максимальной длине фильтра, значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.-- modifications, based at least in part on the second maximum length of the filter, to values of at most one sample of the second subsection, where that sample of at most one is derived from a row or column of the second subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection. 2. Способ по п. 1, в котором выборку в числе не более одной, которую получают из столбца первого или второго подраздела, который перпендикулярен и примыкает к границе подразделов между первым и вторым подразделами, модифицируют, когда высота первого или второго подраздела составляет 4 выборки и если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.2. The method according to claim 1, wherein the sample of at most one, which is obtained from the column of the first or second subsection, which is perpendicular to and adjacent to the border of subsections between the first and second subsections, is modified when the height of the first or second subsection is 4 samples and if the type of intra-subsectioning for subdividing the current coding block into subsections is horizontal. 3. Способ по п. 1, в котором выборку в числе не более одной, которую получают из строки первого или второго подраздела, которая перпендикулярна и примыкает к границе подразделов между первым и вторым подразделами, модифицируют, когда ширина первого или второго подраздела составляет 4 выборки и если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным.3. The method according to claim 1, wherein the sample of at most one, which is obtained from the row of the first or second subsection, which is perpendicular to and adjacent to the border of subsections between the first and second subsections, is modified when the width of the first or second subsection is 4 samples and if the intra-subsection type for subdividing the current coding block into subsections is vertical. 4. Способ по любому из пп. 1-3, в котором, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница подразделов между первым и вторым подразделами является горизонтальной границей подразделов; или4. The method according to any one of paragraphs. 1-3, in which, if the type of intra-subsection for dividing the current coding block into subsections is horizontal, the subsection boundary between the first and second subsections is a horizontal subsection boundary; or если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница подразделов между первым и вторым подразделами является вертикальной границей подразделов.if the intra-subsection type for subdividing the current coding block into subsections is vertical, the subsection boundary between the first and second subsections is a vertical subsection boundary. 5. Способ по любому из пп. 1-3, в котором, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел располагается слева от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела; и5. The method according to any one of paragraphs. 1-3, in which, if the type of intra-subsection for dividing the current coding block into subsections is vertical, the first subsection is located to the left of the second subsection, and the second subsection is intra-predicted based on the recovered value of the first subsection; and если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел располагается сверху от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела.if the type of intra-subsection for dividing the current coding block into subsections is horizontal, the first subsection is positioned on top of the second subsection, and the second subsection is intra-predicted based on the recovered value of the first subsection. 6. Способ по любому из пп. 1-5, в котором число подразделов в текущем блоке кодирования равно 2 или 4.6. The method according to any one of paragraphs. 1-5, in which the number of subsections in the current coding block is 2 or 4. 7. Способ по любому из пп. 1-6, в котором7. The method according to any one of paragraphs. 1-6, in which если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8, или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов в текущем блоке кодирования равно 2,if the width of the current coding block is 4 and the height of the coding block is 8, or if the width of the current coding block is 8 and the height of the current coding block is 4, the number of subsections in the current coding block is 2, иначе число подразделов равно 4.otherwise, the number of subsections is 4. 8. Способ по любому из пп. 1-7, в котором выборку в числе не более одной в первом или втором подразделе модифицируют даже если граница подразделов между первым и вторым подразделами не перекрывается с n x n сеткой выборок, где n равно 4 или 8. 8. The method according to any one of paragraphs. 1-7, in which a sample of at most one in the first or second subsection is modified even if the subsection boundary between the first and second subsections does not overlap with an n x n grid of samples, where n is 4 or 8. 9. Способ по любому из пп. 1-7, в котором выборку в числе не более одной в первом или втором подразделе модифицируют только если граница подразделов между первым и вторым подразделами перекрывается с n x n сеткой выборок, где n равно 4 или 8.9. The method according to any one of paragraphs. 1-7, in which a sample of at most one in the first or second subsection is modified only if the subsection boundary between the first and second subsections overlaps with an n x n grid of samples, where n is 4 or 8. 10. Способ по одному из предшествующих пунктов, в котором выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.10. The method of one of the preceding claims, wherein the subsection samples are luminance samples or the subsection samples are chrominance samples. 11. Способ по одному из предшествующих пунктов, в котором подразделы представляют собой прямоугольные подразделы блока преобразования.11. The method of one of the preceding claims, wherein the subsections are rectangular subsections of the transform block. 12. Способ по одному из предшествующих пунктов, в котором порядком интра-предсказания подразделов является порядок слева направо, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или12. The method according to one of the preceding claims, wherein the intra-subsection prediction order is left-to-right order, if the intra-subsection type for subdividing the current coding block into subsections is vertical, or в котором порядком интра-предсказания подразделов является порядок сверху вниз, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.in which the intra-subsection prediction order is top-down order if the intra-subsection partitioning type for subdividing the current coding block into subsections is horizontal. 13. Способ по одному из предшествующих пунктов, в котором текущий блок кодирования кодируется с использованием инструмента интра-подразделения (ISP), или граница подразделов возникает под действием инструмента интра-подразделения (ISP).13. The method according to one of the preceding claims, wherein the current coding block is encoded using an intra-subdivision tool (ISP), or a sub-subsection boundary is generated by an intra-subdivision tool (ISP). 14. Устройство для использования в кодере изображения или декодере изображения для деблокирования границы подразделов в блоке кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу;14. Apparatus for use in an image encoder or image decoder for deblocking a subsection boundary in a coding block, wherein the current coding block is encoded in intra-prediction mode and the current coding block is divided into subsections containing a first subsection and a second subsection that is adjacent to the first subsection ; при этом устройство содержит деблокирующий фильтр, выполненный с возможностью: wherein the device comprises a deblocking filter configured to: - определения первой максимальной длины фильтра равной 1 для первого подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки; и/или- defining a first maximum filter length of 1 for the first subsection when the first subsection width is 4 samples or the second subsection width is 4 samples, or when the first subsection height is 4 samples or the second subsection height is 4 samples; and/or - определения второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки; и- defining a second maximum filter length equal to 1 for the second subsection when the first subsection width is 4 samples or the second subsection width is 4 samples, or when the first subsection height is 4 samples or the second subsection height is 4 samples; and - выполнения одной или более из:- performing one or more of: -- модификации, основываясь, по меньшей мере частично, на первой максимальной длине фильтра, значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; или-- modifications, based at least in part on the first maximum length of the filter, to values of at most one sample of the first subsection, where that sample of at most one is derived from a row or column of the first subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection; or -- модификации, основываясь, по меньшей мере частично, на второй максимальной длине фильтра, значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.-- modifications, based at least in part on the second maximum length of the filter, to values of at most one sample of the second subsection, where that sample of at most one is derived from a row or column of the second subsection that is perpendicular to and adjacent to the boundary of the subsections between the first subsection and the second subsection. 15. Устройство по п. 14, в котором выборка в числе не более одной, которую получают из столбца первого или второго подраздела, который перпендикулярен и примыкает к границе подразделов между первым и вторым подразделами, модифицируется, когда высота первого или второго подраздела составляет 4 выборки и если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.15. The apparatus of claim 14, wherein no more than one sample that is obtained from a column of the first or second subsection that is perpendicular to and adjacent to the subsection boundary between the first and second subsections is modified when the height of the first or second subsection is 4 samples and if the type of intra-subsectioning for subdividing the current coding block into subsections is horizontal. 16. Устройство по п. 14, в котором выборка в числе не более одной, которую получают из строки первого или второго подраздела, который перпендикулярен и примыкает к границе подразделов между первым и вторым подразделами, модифицируется, когда ширина первого или второго подраздела составляет 4 выборки и если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным.16. The apparatus of claim 14, wherein the sample of at most one that is obtained from the row of the first or second subsection that is perpendicular to and adjacent to the subsection boundary between the first and second subsections is modified when the width of the first or second subsection is 4 samples and if the intra-subsection type for subdividing the current coding block into subsections is vertical. 17. Устройство по любому из пп. 14-16, в котором, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница подразделов между первым и вторым подразделами является горизонтальной границей подразделов; или17. The device according to any one of paragraphs. 14-16, in which, if the type of intra-subsection for dividing the current coding block into subsections is horizontal, the subsection boundary between the first and second subsections is a horizontal subsection boundary; or если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница подразделов между первым и вторым подразделами является вертикальной границей подразделов.if the intra-subsection type for subdividing the current coding block into subsections is vertical, the subsection boundary between the first and second subsections is a vertical subsection boundary. 18. Устройство по любому из пп. 14-16, в котором, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел находится слева от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела; и18. The device according to any one of paragraphs. 14-16, in which, if the intra-subsection type for dividing the current coding block into sub-sections is vertical, the first sub-section is to the left of the second sub-section, and the second sub-section is intra-predicted based on the recovered value of the first sub-section; and если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел находится сверху от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела.if the type of intra-subsection for dividing the current coding block into subsections is horizontal, the first subsection is on top of the second subsection, and the second subsection is intra-predicted based on the recovered value of the first subsection. 19. Устройство по любому из пп. 14-18, в котором число подразделов в текущем блоке кодирования равно 2 или 4.19. The device according to any one of paragraphs. 14-18, in which the number of subsections in the current coding block is 2 or 4. 20. Устройство по любому из пп. 14-19, в котором20. The device according to any one of paragraphs. 14-19, in which - если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8, и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов в текущем блоке кодирования равно 2,- if the width of the current coding block is 4 and the height of the coding block is 8, and/or if the width of the current coding block is 8 and the height of the current coding block is 4, the number of subsections in the current coding block is 2, - иначе число подразделов равно 4.- otherwise the number of subsections is 4. 21. Устройство по любому из пп. 14-20, в котором выборка в числе не более одной в первом или втором подразделе модифицируется даже если граница подразделов между первым и вторым подразделами не перекрывается с n x n сеткой выборок, где n равно 4 или 8. 21. The device according to any one of paragraphs. 14-20, in which a sample of at most one in the first or second subsection is modified even if the subsection boundary between the first and second subsections does not overlap with an n x n sample grid where n is 4 or 8. 22. Устройство по любому из пп. 14-20, в котором выборка в числе не более одной в первом или втором подразделе модифицируется только если граница подразделов между первым и вторым подразделами перекрывается с n x n сеткой выборок, где n равно 4 или 8. 22. The device according to any one of paragraphs. 14-20, in which a sample of at most one in the first or second subsection is modified only if the subsection boundary between the first and second subsections overlaps with an n x n grid of samples, where n is 4 or 8. 23. Устройство по любому из пп. 14-22, в котором выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.23. The device according to any one of paragraphs. 14-22, in which the subsection samples are luminance samples or the subsection samples are chrominance samples. 24. Устройство по любому из пп. 14-23, в котором подразделы представляют собой прямоугольные подразделы блока преобразования.24. The device according to any one of paragraphs. 14-23, in which the subsections are rectangular subsections of the transform block. 25. Устройство по любому из пп. 14-24, в котором порядком интра-предсказания подразделов является порядок слева направо, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или25. The device according to any one of paragraphs. 14-24, in which the order of intra-subsection prediction is the order from left to right, if the type of intra-subsection for dividing the current coding block into subsections is vertical, or в котором порядком интра-предсказания подразделов является порядок сверху вниз, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.in which the intra-subsection prediction order is top-down order if the intra-subsection partitioning type for subdividing the current coding block into subsections is horizontal. 26. Устройство по любому из пп. 14-25, в котором текущий блок кодирования кодируется с использованием инструмента интра-подразделения (ISP), или граница подразделов возникает под действием инструмента интра-подразделения (ISP).26. The device according to any one of paragraphs. 14-25, in which the current coding block is encoded using an intra-subdivision tool (ISP), or a sub-section boundary occurs under an intra-subdivision tool (ISP). 27. Кодер (20), содержащий схему обработки для выполнения способа по любому из пп. 1-13.27. Encoder (20), containing the processing circuit for performing the method according to any one of paragraphs. 1-13. 28. Декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 1-13.28. Decoder (30), containing the processing circuit for performing the method according to any one of paragraphs. 1-13. 29. Считываемый компьютером носитель, содержащий программный код, который при исполнении вычислительным устройством побуждает вычислительное устройство к выполнению способа по любому из пп. 1-13.29. A computer-readable medium containing program code that, when executed by a computing device, causes the computing device to perform the method according to any one of paragraphs. 1-13. 30. Декодер (30), содержащий:30. Decoder (30), containing: один или более процессоров; иone or more processors; and долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программную часть для исполнения процессорами, причем программная часть, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любому из пп. 1-13.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-13. 31. Кодер (20), содержащий:31. Encoder (20), containing: один или более процессоров; иone or more processors; and долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программную часть для исполнения процессорами, причем программная часть, когда исполняется процессорами, конфигурирует кодер для выполнения способа по любому из пп. 1-13.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-13.
RU2021122462A 2019-01-10 2020-01-10 Deblocking filter for the boundaries of subsections that arise under the influence of the intra-subsection coding tool RU2777967C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/791,003 2019-01-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2022121376A Division RU2022121376A (en) 2019-01-10 2020-01-10 UNLOCKING FILTER FOR SUB-SECTION BOUNDARIES DUE TO THE INTRA-SUB-SECTION ENCODING TOOL

Publications (1)

Publication Number Publication Date
RU2777967C1 true RU2777967C1 (en) 2022-08-12

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7388996B2 (en) * 2000-01-21 2008-06-17 Nokia Corporation Method for filtering digital images, and a filtering device
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
WO2017045101A1 (en) * 2015-09-14 2017-03-23 Mediatek Singapore Pte. Ltd. Advanced deblocking filter in video coding
US9787988B2 (en) * 2010-05-12 2017-10-10 Sk Telecom Co., Ltd. Image-filtering method and apparatus, and encoding/decoding method and apparatus using same
US20170302966A1 (en) * 2014-09-15 2017-10-19 Hfi Innovation Inc. Method of Deblocking for Intra Block Copy in Video Coding
RU2653475C2 (en) * 2013-09-09 2018-05-08 Эппл Инк. Chroma quantization in video coding
US10116935B2 (en) * 2012-03-21 2018-10-30 Sun Patent Trust Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7388996B2 (en) * 2000-01-21 2008-06-17 Nokia Corporation Method for filtering digital images, and a filtering device
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
US9787988B2 (en) * 2010-05-12 2017-10-10 Sk Telecom Co., Ltd. Image-filtering method and apparatus, and encoding/decoding method and apparatus using same
US10116935B2 (en) * 2012-03-21 2018-10-30 Sun Patent Trust Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
RU2653475C2 (en) * 2013-09-09 2018-05-08 Эппл Инк. Chroma quantization in video coding
US20170302966A1 (en) * 2014-09-15 2017-10-19 Hfi Innovation Inc. Method of Deblocking for Intra Block Copy in Video Coding
WO2017045101A1 (en) * 2015-09-14 2017-03-23 Mediatek Singapore Pte. Ltd. Advanced deblocking filter in video coding

Similar Documents

Publication Publication Date Title
KR102621959B1 (en) Encoders, decoders and corresponding methods using IBC search range optimization for arbitrary CTU sizes
CA3122137C (en) An encoder, a decoder and corresponding methods of boundary strength derivation of deblocking filter
KR102625986B1 (en) Deblocking filter for subpartition boundaries with intra-subpartition coding tool
US11843806B2 (en) Encoder, a decoder and corresponding methods of deblocking filter adaptation
CN114449265A (en) Method and apparatus for intra smoothing
KR20210103572A (en) Encoders, decoders and corresponding methods for tile configuration signaling
AU2024201152A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
CN113228632B (en) Encoder, decoder, and corresponding methods for local illumination compensation
RU2777967C1 (en) Deblocking filter for the boundaries of subsections that arise under the influence of the intra-subsection coding tool
RU2783348C1 (en) Encoder, decoder and corresponding methods for obtaining the boundary power of the debloking filter
RU2809841C2 (en) Method and device for intra-frame prediction using linear model
RU2800681C2 (en) Coder, decoder and corresponding methods for intra prediction
RU2803063C2 (en) Encoder, decoder and corresponding methods that are used for the conversion process
RU2793802C2 (en) Video encoder, video decoder and corresponding methods
KR20240074918A (en) An encoder, a decoder and corresponding methods of deblocking filter adaptation