RU2776871C1 - Method and device for efficient coding of residual blocks - Google Patents
Method and device for efficient coding of residual blocks Download PDFInfo
- Publication number
- RU2776871C1 RU2776871C1 RU2021127506A RU2021127506A RU2776871C1 RU 2776871 C1 RU2776871 C1 RU 2776871C1 RU 2021127506 A RU2021127506 A RU 2021127506A RU 2021127506 A RU2021127506 A RU 2021127506A RU 2776871 C1 RU2776871 C1 RU 2776871C1
- Authority
- RU
- Russia
- Prior art keywords
- block
- sub
- residual
- current block
- current
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 claims abstract description 52
- 230000001131 transforming Effects 0.000 claims description 66
- 238000001914 filtration Methods 0.000 claims description 39
- 238000005192 partition Methods 0.000 claims description 13
- 241001442055 Vipera berus Species 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 abstract 1
- 238000003384 imaging method Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000000926 separation method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 239000000284 extract Substances 0.000 description 14
- 238000000034 method Methods 0.000 description 11
- 230000011664 signaling Effects 0.000 description 9
- 241000023320 Luma <angiosperm> Species 0.000 description 6
- 238000007906 compression Methods 0.000 description 5
- 101710003546 INPP5K Proteins 0.000 description 4
- 101710029276 SPHKAP Proteins 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000003044 adaptive Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002457 bidirectional Effects 0.000 description 1
- 230000001419 dependent Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 230000003287 optical Effects 0.000 description 1
- 230000002093 peripheral Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Abstract
Description
Область техникиTechnical field
Настоящее изобретение, описанное на примере некоторых вариантов осуществления, относится к кодированию и декодированию видеоизображений. В частности, настоящее изобретение относится к способу и устройству для эффективного кодирования остаточных блоков.The present invention, described in terms of some embodiments, relates to the encoding and decoding of video images. In particular, the present invention relates to a method and apparatus for efficient encoding of residual blocks.
Уровень техникиState of the art
Поскольку видеоданные имеют большой объем данных по сравнению с аудиоданными или данными неподвижных изображений, требуется много аппаратных ресурсов, включая память, для хранения или передачи данных в необработанном виде перед тем, как подвергнуть их процессу сжатия.Because video data has a large amount of data compared to audio data or still image data, a lot of hardware resources, including memory, are required to store or transmit the data in its raw form before being subjected to the compression process.
Соответственно, хранение или передача видеоданных обычно сопровождается их сжатием с использованием кодирующего устройства до того, как блок декодирования сможет принимать, распаковывать и воспроизводить сжатые видеоданные. Известные технологии сжатия видеоизображений включают стандарт H.264/AVC и стандарт высокоэффективного кодирования видеоизображений (HEVC), повышающий эффективность кодирования H.264 / AVC примерно на 40%.Accordingly, storage or transmission of video data is typically accompanied by compression using an encoder before the decoding unit can receive, decompress and play the compressed video data. Known video compression technologies include the H.264/AVC standard and the High Efficiency Video Coding (HEVC) standard, which improves H.264/AVC encoding efficiency by about 40%.
Однако постоянное увеличение размера, разрешения и частоты кадров видеоизображений и, как следствие, увеличение объема данных, подлежащих кодированию, требует нового и улучшенного метода сжатия с более высокой эффективностью кодирования и более высоким качеством изображения по сравнению с известными методами сжатия.However, the ever-increasing size, resolution, and frame rate of video images, and the consequent increase in the amount of data to be encoded, requires a new and improved compression method with higher coding efficiency and higher image quality than known compression methods.
В процессе кодирования видеоизображений устройство кодирования видеоизображений генерирует остаточный блок, выполняя предсказание текущего блока посредством интра-предсказания или интер-предсказания, а затем вычитая значения отсчетов текущего блока из значений отсчетов блока предсказания. Устройство кодирования видеоизображений разделяет остаточный блок на один или несколько блоков преобразования, применяет преобразование к одному или нескольким блокам преобразования и тем самым преобразует остаточные значения блоков преобразования из области пикселей в область частот. В зависимости от точности предсказания в некоторых областях остаточного блока может не быть остаточных значений или быть не много остаточных значений, и иногда очень неэффективно вслепую разделять остаточный блок на блоки преобразования меньшего размера.In the video encoding process, the video encoding device generates a residual block by performing prediction of the current block by intra-prediction or inter-prediction, and then subtracting the sample values of the current block from the sample values of the prediction block. The video coding apparatus divides the residual block into one or more transform blocks, applies a transform to one or more transform blocks, and thereby converts the residual values of the transform blocks from the pixel domain to the frequency domain. Depending on the accuracy of the prediction, some areas of the residual block may not have residuals or not many residuals, and it is sometimes very inefficient to blindly divide the residual block into smaller transform blocks.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Техническая проблема, решаемая изобретениемTechnical problem solved by the invention
Настоящее изобретение, описанное на примере некоторых вариантов осуществления, направлено на то, чтобы предложить схему кодирования остаточных блоков, подходящую для остаточных блоков, имеющих области без остаточных значений или с небольшими остаточными значениями.The present invention, described in terms of some embodiments, aims to provide a residual block coding scheme suitable for residual blocks having regions with no residuals or small residuals.
Техническое решениеTechnical solution
В соответствии с по меньшей мере одним аспектом настоящего изобретения предложено устройство декодирования видеоизображений, включающее блок декодирования, блок предсказания, блок обратного квантования и обратного преобразования, сумматор и блок фильтрации. Блок декодирования выполнен с возможностью декодирования из потока битов флага, указывающего, были ли закодированы остаточные сигналы, соответствующие только частичной области текущего блока, и декодирования из потока битов информации о коэффициентах преобразования для одного подблока из двух разделенных подблоков из текущего блока для восстановления коэффициентов преобразования, когда флаг указывает, что были закодированы остаточные сигналы, соответствующие только частичной области текущего блока. Блок предсказания выполнен с возможностью предсказания текущего блока для генерации блока предсказания. Блок обратного квантования и обратного преобразования выполнен с возможностью выполнения обратного квантования и обратного преобразования коэффициентов преобразования в одном подблоке, для которого была декодирована информация о коэффициентах преобразования, чтобы генерировать остаточный блок для текущего блока. Сумматор выполнен с возможностью суммирования блока предсказания и остаточного блока для восстановления текущего блока. Блок фильтрации выполнен с возможностью установки сетки из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнения фильтрации удаления блочности на границе между двумя подблоками в текущем блоке, которая совпадает с границей сетки.In accordance with at least one aspect of the present invention, there is provided a video image decoding apparatus, including a decoding unit, a prediction unit, an inverse quantization and inverse transform unit, an adder, and a filtering unit. The decoding block is configured to decode from the bitstream a flag indicating whether the residual signals corresponding to only a partial area of the current block have been encoded, and decode from the bitstream information about the transform coefficients for one subblock of two separated subblocks from the current block to restore the transform coefficients, when the flag indicates that residual signals corresponding to only a partial area of the current block have been encoded. The prediction block is configured to predict the current block to generate a prediction block. The inverse quantization and inverse transform block is configured to perform inverse quantization and inverse transformation of the transform coefficients in one sub-block for which the transform coefficient information has been decoded to generate a residual block for the current block. The adder is configured to add the prediction block and the residual block to restore the current block. The filtering unit is configured to set up a grid of N samples at regular intervals in the horizontal and vertical directions, and perform deblocking filtering at a boundary between two sub-blocks in the current block that coincides with the grid boundary.
Согласно другому аспекту настоящего изобретения предложен способ декодирования видеоизображений, причем способ включает в себя этапы (i) декодирования из потока битов флага, указывающего, были ли закодированы остаточные сигналы, соответствующие только частичной области текущего блока, (ii) восстановление коэффициентов преобразования путем декодирования из потока битов информации о коэффициентах преобразования для одного подблока из двух подблоков, отделенных от текущего блока, когда флаг указывает, что были закодированы остаточные сигналы, соответствующие только частичной области текущего блока, (iii) предсказание текущего блока для генерации блока предсказания, (iv) создание остаточного блока для текущего блока путем выполнения обратного квантования и обратного преобразования коэффициентов преобразования в одном подблоке, для которого была декодирована информация о коэффициентах преобразования, (v ) восстановление текущего блока путем сложения блока предсказания и остаточного блока, и (vi) установка сетки из N отсчетов через равные интервалы в горизонтальном и вертикальном направлениях и выполнение фильтрации удаления блочности на границе между двумя подблоками в текущем блоке, которая совпадает с границей сетки.According to another aspect of the present invention, a method for decoding video images is provided, the method including the steps of (i) decoding from a bit stream a flag indicating whether residual signals corresponding to only a partial area of the current block have been encoded, (ii) recovering transform coefficients by decoding from the stream bits of transform coefficient information for one sub-block of two sub-blocks separated from the current block, when the flag indicates that residual signals corresponding to only a partial area of the current block have been encoded, (iii) predicting the current block to generate a prediction block, (iv) generating a residual block for the current block by performing inverse quantization and inverse transformation of the transform coefficients in one sub-block for which the transform coefficient information has been decoded, (v) recovering the current block by adding the prediction block and the residual block, and (vi) setting up a grid of N samples at equal intervals in the horizontal and vertical directions, and performing deblocking filtering on a boundary between two sub-blocks in the current block that coincides with the grid boundary.
Краткое описание чертежейBrief description of the drawings
На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением.In FIG. 1 is a diagram illustrating a video coding device that can implement the methods of the present invention.
На фиг. 2 показана схема, поясняющая способ разделения блока с использованием структуры QTBTTT.In FIG. 2 is a diagram explaining a block splitting method using a QTBTTT structure.
На фиг. 3A показана схема, иллюстрирующая множество режимов интра-предсказания.In FIG. 3A is a diagram illustrating a plurality of intra prediction modes.
На Фиг. 3B показана схема, иллюстрирующая множество режимов интра-предсказания, включая режимы широкоугольного интра-предсказания.On FIG. 3B is a diagram illustrating a plurality of intra-prediction modes, including wide-angle intra-prediction modes.
На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать технологии, предложенные настоящим изобретением.On FIG. 4 is a diagram illustrating a video decoding apparatus capable of implementing the techniques proposed by the present invention.
На фиг. 5A-5D показаны различные типы разделения остаточного блока и подблоков, подлежащих кодированию.In FIG. 5A-5D show different types of separation of the residual block and subblocks to be encoded.
На фиг. 6 показана схема, поясняющая случай кодирования отдельного подблока в релевантном остаточном блоке текущего блока, иллюстрирующая позиции соседних блоков, на которые следует ссылаться для предсказания параметра квантования (QP).In FIG. 6 is a diagram for explaining a case of encoding a single sub-block in a relevant residual block of a current block, illustrating positions of adjacent blocks to be referred to for quantization parameter (QP) prediction.
На фиг. 7 показана схема блока цветности и, по меньшей мере, одного блока яркости, который совмещен с блоком цветности.In FIG. 7 shows a diagram of a chrominance block and at least one luminance block that is aligned with the chrominance block.
На фиг. 8 показана схема восстановленных текущих блоков, иллюстрирующая их релевантные остаточные блоки, подвергающиеся вертикальным разбиениям и трансформациям в своих левых подблоках для того, чтобы выявить границы их межблочного разделения по границе удаления блочности.In FIG. 8 is a diagram of the reconstructed current blocks illustrating their relevant residual blocks undergoing vertical splits and transformations in their left subblocks in order to reveal their inter-block separation boundaries along the deblocking boundary.
На фиг. 9 показана схема, поясняющая фильтрацию удаления блочности, выполняемую на границе между остаточными подблоками на уровне остаточного сигнала.In FIG. 9 is a diagram for explaining deblocking filtering performed on a boundary between residual sub-blocks at a residual signal level.
На фиг. 10 показана блок-схема способа, выполняемого устройством кодирования видеоизобpажений для кодирования с интер-предсказанием текущего блока видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In FIG. 10 is a flowchart of a method performed by a video coding apparatus for inter-prediction coding of a current video block according to at least one embodiment of the present invention.
На фиг. 11 показана блок-схема способа, выполняемого устройством декодирования видеоизображений для декодирования текущего блока, кодированного с интер-предсказанием, из кодированного потока битов видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In FIG. 11 is a flowchart of a method performed by a video decoding apparatus for decoding an inter-prediction encoded current block from an encoded video bitstream according to at least one embodiment of the present invention.
Осуществление изобретенияImplementation of the invention
Далее вариант осуществления настоящего изобретения будет подробно описан со ссылкой на приложенные чертежи. В нижеследующем описании одинаковые номера позиций предпочтительно относятся к одинаковым элементам, несмотря на то, что эти элементы показаны на разных чертежах. Кроме того, в целях ясности и краткости изложения, в нижеследующем описании некоторых вариантов осуществления опущено подробное описание относящихся к ним известных компонентов и функций, в случае, когда они затрудняют понимание объекта настоящего изобретения.Hereinafter, an embodiment of the present invention will be described in detail with reference to the attached drawings. In the following description, like reference numerals preferably refer to like elements, even though these elements are shown in different drawings. In addition, for the sake of clarity and brevity, in the following description of some embodiments, a detailed description of known components and functions related thereto is omitted when they obscure the subject matter of the present invention.
На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением. Далее устройство кодирования видеоизображений и компоненты устройства будут описаны со ссылкой на фиг. 1.In FIG. 1 is a diagram illustrating a video encoding device that can implement the methods of the present invention. Next, the video encoding apparatus and components of the apparatus will be described with reference to FIG. one.
Устройство кодирования видеоизображений может быть сконфигурировано так, что оно содержит блок 110 разделения изображения, блок 120 предсказания, блок 130 вычитания, блок 140 преобразования, блок 145 квантования, блок 150 переупорядочивания, блок 155 энтропийного кодирования, блок 160 обратного квантования, блок 165 обратного преобразования, сумматор 170, блок 180 фильтрации и память 190.The video coding apparatus may be configured to include an
Соответствующие компоненты устройства кодирования видеоизображений могут быть реализованы как аппаратное или программное обеспечение, или в виде комбинации аппаратного и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее выполнения микропроцессором.The respective components of the video encoder may be implemented as hardware or software, or as a combination of hardware and software. In addition, the function of each component may be implemented in software, and the software function for each component may be implemented with the possibility of executing the microprocessor.
Видеоизображение состоит из множества изображений. Каждое изображение разбивается на множество участков, и для каждого участка выполняется кодирование. Например, одно изображение разбивается на один или несколько фрагментов и/или секций. Здесь один или несколько фрагментов могут быть определены как группа фрагментов. Каждый фрагмент и/или секцию разделяют на одну или несколько единиц дерева кодирования (CTU). И каждую единицу CTU разделяют на одну или несколько единиц кодирования (CU) древовидной структурой. Информация, применяемая к соответствующим единицам CU, кодируется как синтаксис CU, а информация, обычно применяемая к единицам CU, включенным в одну единицу CTU, кодируется как синтаксис CTU. Кроме того, информация, обычно применяемая ко всем блокам в одной секции, кодируется как синтаксис заголовка секции, а информация, применяемая ко всем блокам, составляющим одно изображение, кодируется в наборе параметров изображения (PPS) или заголовке изображения. Кроме того, информация, на которую обычно ссылается множество изображений, кодируется в наборе параметров последовательности (SPS). Кроме того, информация, на которую обычно ссылаются один или несколько наборов SPS, кодируется в наборе параметров видеоизображения (VPS). Таким же образом информация, обычно применяемая к одному фрагменту или группе фрагментов, может быть закодирована как синтаксис заголовка фрагмента или заголовка группы фрагментов.A video image consists of a plurality of images. Each image is divided into a plurality of sections, and encoding is performed for each section. For example, one image is divided into one or more fragments and/or sections. Here, one or more fragments can be defined as a group of fragments. Each fragment and/or section is divided into one or more coding tree units (CTUs). And each CTU is divided into one or more coding units (CU) in a tree structure. Information applicable to corresponding CUs is encoded as CU syntax, and information normally applied to CUs included in one CTU is encoded as CTU syntax. In addition, information generally applicable to all blocks in one section is encoded as section header syntax, and information applicable to all blocks constituting one picture is encoded in a picture parameter set (PPS) or picture header. In addition, information commonly referred to by a plurality of pictures is encoded in a sequence parameter set (SPS). In addition, information typically referred to by one or more SPSs is encoded in a Video Parameter Set (VPS). In the same way, information normally applied to a single fragment or group of fragments can be encoded as fragment header or fragment group header syntax.
Блок 110 разделения изображения определяет размер единицы дерева кодирования CTU. Информация о размере единицы CTU (размер единицы CTU) кодируется как синтаксис набора SPS или набора PPS и передается в устройство декодирования видеоизображений.The
Блок 110 разделения изображения разделяет каждое изображение, составляющее видеоизображение, на множество единиц CTU, имеющих заранее определенный размер, а затем использует древовидную структуру для рекурсивного разделения единиц CTU. Концевой узел в древовидной структуре становится единицей кодирования CU, которая является базовой единицей кодирования.The
Используемая древовидная структура для может быть деревом квадрантов (QuadTree (QT)), в котором верхний узел (или родительский узел) разделен на четыре нижних узла одинакового размера (или дочерние узлы), двоичным деревом (BinaryTree (BT)), в котором верхний узел разделен на два нижних узла, троичным деревом (TernaryTree (TT)), в котором верхний узел разделен на три нижних узла с соотношением размеров 1: 2: 1, или комбинацией двух или более из структуры QT, структуры BT и структуры TT. Например, может использоваться структура, включающая дерево квадрантов и двоичное дерево (QTBT), или структура, включающая дерево квадрантов и двоичное дерево троичное дерево (QTBTTT). Здесь BTTT может в совокупности называться деревом множественного типа (MTT).The tree structure used for can be a quadtree (QuadTree (QT)), in which the top node (or parent node) is divided into four lower nodes of the same size (or child nodes), a binary tree (BinaryTree (BT)), in which the top node divided into two lower nodes, by a ternary tree (TernaryTree (TT)), in which the upper node is divided into three lower nodes with a 1:2:1 size ratio, or by a combination of two or more of the QT structure, the BT structure, and the TT structure. For example, a structure including quadtree and binary tree (QTBT) or a structure including quadtree and binary tree ternary tree (QTBTTT) may be used. Here, BTTT may be collectively referred to as a multiple type tree (MTT).
На фиг. 2 показана древовидная структура разделения QTBTTT. Как показано на фиг. 2, единица CTU может быть сначала разделена на структуру QT. Разделение дерева квадрантов может повторяться до тех пор, пока размер блока разделения не достигнет минимального размера блока (MinQTSize) концевого узла, разрешенного в структуре QT. Первый флаг (QT_split_flag), указывающий, разделен ли каждый узел структуры QT на четыре узла нижнего уровня, кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений. Если концевой узел структуры QT не превышает максимальный размер (MaxBTSize) блока корневого узла, разрешенного в структуре BT, он может быть дополнительно разделен на любую одну или более структур BT или структур TT. В структуре BT и/или структуре TT может быть множество направлений разделения. Например, может быть два направления, в которых блок соответствующего узла разделяется по горизонтали и по вертикали. Как показано на фиг. 2, когда начинается разделение MTT, второй флаг (mtt_split_flag), указывающий, разделены ли узлы, и, если да, дополнительный флаг, указывающий направления разделения (вертикальное или горизонтальное), и/или флаг, указывающий разделение или тип разделения (двоичное или троичное) кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.In FIG. 2 shows a tree structure of the QTBTTT partition. As shown in FIG. 2, the CTU may first be divided into a QT structure. The splitting of the quadtree may be repeated until the splitting block size reaches the minimum block size (MinQTSize) of the leaf node allowed in the QT structure. The first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four lower level nodes is encoded by the
В качестве альтернативы, перед кодированием первого флага (QT_split_flag), указывающего, разделен ли каждый узел на четыре узла нижнего уровня, может быть закодирован флаг разделения единицы CU (split_cu_flag), указывающий, разделен ли этот узел или нет. Когда значение флага разделения единицы CU (split_cu_flag) указывает, что узел не был разделен, блок этого узла становится концевым узлом в структуре дерева разделения и превращается в единицу кодирования (CU), которая является базовой единицей кодирования. Когда значение флага разделения единицы CU (split_cu_flag) указывает, что узел был разделен, устройство кодирования видеоизображений начинает кодирование с первого флага описанным выше способом.Alternatively, before encoding the first flag (QT_split_flag) indicating whether each node is split into four lower level nodes, a CU split flag (split_cu_flag) indicating whether the node is split or not may be encoded. When the value of the CU's split flag (split_cu_flag) indicates that a node has not been split, that node's block becomes a leaf node in the split tree structure and becomes a coding unit (CU), which is a basic coding unit. When the value of the CU split flag (split_cu_flag) indicates that the node has been split, the video encoding device starts encoding from the first flag in the manner described above.
В качестве другого примера древовидной структуры, в которой используется структура QTBT, можно привести два типа разделения, включающие тип, в котором по горизонтали разделяют блок соответствующего узла на два блока одинакового размера (т.е. симметричное горизонтальное разделение), и тип, в котором его же разделяют по вертикали (т. е. симметричное вертикальное разделение). Кодируемым блоком 155 энтропийного кодирования и передаваемым в устройство декодирования видеоизображений является флаг разделения (split_flag), указывающий, разделен ли каждый узел структуры BT на блоки нижнего уровня, и информацию о типе разделения, указывающую тип его разделения. Между тем, может быть дополнительный тип, в котором блок соответствующего узла разбивается на два асимметрично сформированных блока. Асимметричная форма может включать в себя форму блока соответствующего узла, разбиваемого на два прямоугольных блока, имеющих соотношение размеров 1:3, или форму блока соответствующего узла, разбиваемого в диагональном направлении.As another example of a tree structure that uses the QTBT structure, there are two types of partitioning, including a type in which the block of the corresponding node is horizontally divided into two blocks of the same size (i.e., symmetrical horizontal partitioning), and a type in which it is also divided vertically (i.e., symmetrical vertical separation). The
Единица CU может иметь различные размеры в зависимости от структуры QTBT или QTBTTT разделения единицы CTU. В дальнейшем блок, соответствующий единице CU, который должен быть закодирован или декодирован (то есть концевой узел QTBTTT), называется «текущим блоком». При использовании разделения QTBTTT текущий блок может иметь форму не только квадрата, но и прямоугольника.The CU may have different sizes depending on the structure of the QTBT or QTBTTT partition of the CTU. Hereinafter, a block corresponding to a CU to be encoded or decoded (ie, a QTBTTT end node) is referred to as a "current block". When using the QTBTTT division, the current block can be in the form of not only a square, but also a rectangle.
Блок 120 предсказания предсказывает текущий блок, чтобы сгенерировать блок предсказания. Блок 120 предсказания включает в себя блок 122 интра-предсказания и блок 124 интер-предсказания.
В общем, каждый из текущих блоков изображения может кодироваться с предсказанием. Предсказание текущего блока обычно может выполняться с использованием метода интра-предсказания или метода интер-предсказания, при этом метод интра-предсказания использует данные из самого изображения, содержащего текущий блок, а метод интер-предсказания использует данные из предыдущего изображения, закодированного перед изображением, содержащим текущий блок. Интер-предсказание включает в себя как однонаправленное, так и двунаправленное предсказание.In general, each of the current image blocks may be predictively encoded. Prediction of the current block can usually be performed using an intra-prediction method or an inter-prediction method, wherein the intra-prediction method uses data from the image containing the current block itself, and the inter-prediction method uses data from the previous image encoded before the image containing current block. Inter prediction includes both unidirectional and bidirectional prediction.
Блок 122 интра-предсказания предсказывает пиксели в текущем блоке, используя периферийные пиксели (опорные пиксели), расположенные вокруг текущего блока в текущем изображении. Различные направления предсказания представляют несколько соответствующих режимов интра-предсказания. Например, как показано на фиг. 3A, несколько режимов интра-предсказания могут включать в себя 2 ненаправленных режима, включая планарный режим и режим DC, а также 65 направленных режимов. Соответствующие режимы предсказания обеспечивают различные соответствующие определения соседних пикселей и формул вычисления, которые должны использоваться.The
Для эффективного направленного предсказания текущего блока прямоугольной формы дополнительными используемыми режимами могут быть направленные режимы, показанные на фиг. 3B пунктирными стрелками режимов интра-предсказания под номерами 67-80 и под номерами от -1 до -14. Они могут называться «режимами широкоугольного интра-предсказания». Стрелки на фиг. 3B указывают соответствующие опорные отсчеты, используемые для предсказания, а не направления предсказания. Направление предсказания противоположно направлению, указанному стрелкой. Режимы широкоугольного интра-предсказания - это режимы, применяемые, когда текущий блок имеет прямоугольную форму, чтобы выполнять предсказание конкретного направленного режима в обратном направлении без дополнительной передачи битов. В этом случае из режимов широкоугольного интра-предсказания некоторые режимы широкоугольного интра-предсказания, доступные для использования в текущем блоке, могут определяться отношением ширины к высоте прямоугольного текущего блока. Например, режимы широкоугольного интра-предсказания, которые имеют угол меньше 45 градусов (режимы интра-предсказания под номерами 67-80), доступны для использования в текущем блоке, когда они имеют прямоугольную форму, в которой высота меньше ширины. Режимы широкоугольного интра-предсказания, имеющие угол -135 градусов или больше (режимы интра-предсказания под номерами от -1 до -14) доступны для использования в текущем блоке при наличии прямоугольной формы с высотой больше ширины.For efficient directional prediction of the current rectangular block, additional modes used may be the directional modes shown in FIG. 3B by dashed intra-prediction mode arrows 67-80 and -1 to -14. These may be referred to as "wide-angle intra-prediction modes". The arrows in Fig. 3B indicate the respective reference samples used for prediction rather than the direction of prediction. The direction of prediction is opposite to the direction indicated by the arrow. Wide-angle intra-prediction modes are modes applied when the current block is rectangular in order to perform prediction of a particular directional mode in the reverse direction without additional bit transmission. In this case, among the wide-angle intra-prediction modes, some of the wide-angle intra-prediction modes available for use in the current block may be determined by the width-to-height ratio of the rectangular current block. For example, wide-angle intra-prediction modes that have an angle of less than 45 degrees (intra-prediction modes 67-80) are available for use in the current block when they have a rectangular shape in which the height is less than the width. Wide-angle intra-prediction modes having an angle of -135 degrees or more (intra-prediction modes numbered from -1 to -14) are available for use in the current block when there is a rectangular shape with a height greater than the width.
Блок 122 интра-предсказания может определять режим интра-предсказания, который будет использоваться для кодирования текущего блока. В некоторых примерах блок 122 интра-предсказания может кодировать текущий блок с использованием нескольких режимов интра-предсказания и выбирать для использования подходящий режим интра-предсказания из проверенных режимов. Например, блок 122 интра-предсказания может вычислять значения скоростного искажения посредством анализа скорости-искажения нескольких протестированных режимов интра-предсказания и выбирать режим интра-предсказания, который имеет лучшие характеристики скорости-искажения среди протестированных режимов.The
Блок 122 интра-предсказания выбирает один режим интра-предсказания из множества режимов интра-предсказания и предсказывает текущий блок, используя по меньшей мере один соседний пиксель (опорный пиксель), определенный согласно выбранному режиму интра-предсказания и формуле вычисления. Информация о выбранном режиме интра-предсказания кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.The
Блок 124 интер-предсказания генерирует блок предсказания для текущего блока посредством процесса компенсации движения. Блок 124 интер-предсказания ищет блок, наиболее похожий на текущий блок в кодированном и декодированном опорном изображении перед текущим изображением, и генерирует блок предсказания текущего блока, используя найденный блок. Затем блок 124 интер-предсказания генерирует вектор движения, соответствующий смещению между текущим блоком в текущем изображении и блоком предсказания в опорном изображении. В общем, оценку движения выполняют для компонента яркости, а вектор движения, вычисленный на основе компонента яркости, используется как для компонента яркости, так и для компонента цветности. Информация о движении, включающая в себя информацию об опорном изображении и информацию о векторе движения, используемую для предсказания текущего блока, кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.The
Блок 130 вычитания генерирует остаточный блок путем вычитания из текущего блока блока предсказания, сгенерированного блоком 122 интра-предсказания или блоком 124 интер-предсказания.The
Блок 140 преобразования разделяет остаточный блок на один или несколько блоков преобразования, применяет преобразование к одному или более блокам преобразования и, таким образом, преобразует остаточные значения блоков преобразования из области пикселей в область частот. В области частот преобразованные блоки называются блоками коэффициентов, содержащими одно или более значений коэффициентов преобразования. Ядро двумерного преобразования может использоваться для преобразования, а ядро одномерного преобразования может использоваться для каждого из горизонтального преобразования и преобразования в вертикальном направлении. Ядра преобразования могут быть основаны на дискретном косинусном преобразовании (DCT), дискретном синусоидальном преобразовании (DST) или другом подобном.The
Блок 140 преобразования может преобразовывать остаточные сигналы в остаточном блоке, используя весь размер остаточного блока в качестве блока преобразования. Кроме того, блок 140 преобразования может разделять остаточный блок на два подблока в горизонтальном или вертикальном направлении и выполнять преобразование только на одном из двух подблоков, как будет описано ниже со ссылкой на фигуры с 5А по 5D. Соответственно, размер блока преобразования может отличаться от размера остаточного блока (и, следовательно, размера блока предсказания). В подблоке, в котором не выполняется преобразование, может не быть ненулевых остаточных значений отсчетов или они могут быть очень немногочисленными. Для остаточных отсчетов подблока, в котором выполняется преобразование, сигнализация не выполняется, и все они могут рассматриваться устройством декодирования видеоизображений как «0». В зависимости от направлений и соотношений разделения может существовать несколько типов разделения. Блок 140 преобразования предоставляет блоку 155 энтропийного кодирования информацию о режиме кодирования (или режиме преобразования) остаточного блока, такую как информацию, указывающую, является ли преобразованный остаточный блок остаточным подблоком, информацию, указывающую тип разделения, выбранный для разделения остаточного блока на подблоки и информацию для идентификации подблока, в котором выполняется преобразование, и т. д. Блок 155 энтропийного кодирования может кодировать информацию о режиме кодирования (или режиме преобразования) остаточного блока.The
Блок 145 квантования квантует коэффициенты преобразования, выданные из блока 140 преобразования, и выводит квантованные коэффициенты преобразования в блок 155 энтропийного кодирования. Блок 145 квантования может напрямую квантовать соответствующий остаточный блок для определенного блока или кадра без преобразования.The
Блок 150 переупорядочивания может переупорядочивать значения коэффициентов на квантованных остаточных отсчетах. Блок 150 переупорядочивания может использовать сканирование коэффициентов для преобразования двумерной матрицы коэффициентов в одномерную последовательность коэффициентов. Например, блок 150 переупорядочивания может сканировать коэффициенты DC до коэффициентов в высокочастотной области посредством зигзагообразного сканирования или диагонального сканирования для вывода одномерной последовательности коэффициентов. В зависимости от размера блока преобразования и режима интра-предсказания используемое зигзагообразное сканирование может быть заменено вертикальным сканированием для сканирования двумерного массива коэффициентов в направлении столбца и горизонтальным сканированием для сканирования коэффициентов в форму двумерного блока в направлении строки. Другими словами, способ сканирования, который должен использоваться, может быть выбран из зигзагообразного сканирования, диагонального сканирования, вертикального сканирования и горизонтального сканирования в соответствии с размером блока преобразования и режимом интра-предсказания.The
Блок 155 энтропийного кодирования использует различные методы кодирования, такие как контекстно-зависимое адаптивное двоичное арифметическое кодирование (CABAC), экспоненциальный код Голомба и т.п., для кодирования последовательности одномерных квантованных коэффициентов преобразования, выводимых из блока 150 переупорядочивания для генерации потока битов.The
Кроме того, блок 155 энтропийного кодирования кодирует информацию о разделении блока, такую как размер единицы CTU, флаг разделения единицы CU, флаг разделения QT, тип разделения MTT и направление разделения MTT, позволяя устройству декодирования видеоизображений разделить блок таким же образом, как и устройство кодирования видеоизображений. Кроме того, блок 155 энтропийного кодирования кодирует информацию о типе предсказания, указывающую, закодирован ли текущий блок посредством интра-предсказания или интер-предсказания, и декодирует, в зависимости от типа предсказания, информацию интра-предсказания, то есть информацию о режиме интра-предсказания или информацию интер-предсказания, т. е. информацию об опорных изображениях и векторах движения.In addition, the
Блок 160 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования, выводимых из блока 145 квантования, для генерации коэффициентов преобразования. Блок 165 обратного преобразования преобразует коэффициенты преобразования, выданные из блока 160 обратного квантования, из частотной области в пространственную область, чтобы восстановить остаточный блок.An
Блок 170 суммирования складывает восстановленный остаточный блок и блок предсказания, сгенерированный блоком 120 предсказания, чтобы восстановить текущий блок. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании следующего блока.
Блок 180 фильтрации выполняет фильтрацию восстановленных пикселей для уменьшения блочных артефактов, артефактов звона, артефактов размытия и т.д., генерируемых вследствие предсказания на основе блоков и преобразования/квантования. Блок 180 фильтрации может включать в себя фильтр 182 удаления блочности и фильтр 184 адаптивного смещения отсчетов (SAO).The
Фильтр 180 удаления блочности фильтрует границу между восстановленными блоками, чтобы удалить блочный артефакт, вызванный поблочным кодированием/декодированием, а фильтр 184 SAO выполняет дополнительную фильтрацию отфильтрованного изображения с удаленной блочностью. Фильтр SAO 184 - это фильтр, используемый для компенсации разницы между восстановленным пикселем и исходным пикселем, вызванной кодированием с потерями.The
Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в приближающемся изображении, подлежащим кодированию.The reconstructed block is filtered through the
На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать способы, предложенные настоящим изобретением. В дальнейшем устройство декодирования видеоизображений и компоненты устройства будут описаны со ссылкой на фиг. 4.On FIG. 4 is a diagram illustrating a video decoding apparatus capable of implementing the methods of the present invention. Hereinafter, the video decoding apparatus and components of the apparatus will be described with reference to FIG. four.
Устройство декодирования видеоизображений может быть сконфигурировано так, что оно включает блок 410 энтропийного декодирования, блок 415 переупорядочивания, блок 420 обратного квантования, блок 430 обратного преобразования, блок 440 предсказания, сумматор 450, блок 460 фильтрации и память 470.The video decoder may be configured to include an
Как и в устройстве кодирования видеоизображений с фиг. 1, соответствующие компоненты устройства декодирования видеоизображений могут быть реализованы как аппаратные средства или программное обеспечение, или как комбинация аппаратных средств и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее выполнения микропроцессором.As in the video encoding device of FIG. 1, the respective components of the video decoding apparatus may be implemented as hardware or software, or as a combination of hardware and software. In addition, the function of each component may be implemented in software, and the software function for each component may be implemented with the possibility of executing the microprocessor.
Блок 410 энтропийного декодирования декодирует поток битов, сгенерированный устройством кодирования видеоизображений, и извлекает информацию о разделении блоков для определения текущего блока, который должен быть декодирован, и извлекает информацию предсказания, необходимую для восстановления текущего блока, и информацию об остаточном сигнале и т. д.The
Блок 410 энтропийного декодирования извлекает информацию о размере единицы CTU из набора параметров последовательности (SPS) или набора параметров изображения (PPS), определяет размер единицы CTU и разделяет изображение на единицы CTU заданного размера. Затем блок 410 энтропийного декодирования определяет единицу CTU как наивысший уровень, то есть корневой узел древовидной структуры, и извлекает информацию разделения на единице CTU и тем самым разделяет единицу CTU с использованием древовидной структуры.The
Например, при разделении единицы CTU с использованием структуры QTBTTT сначала извлекается первый флаг (QT_split_flag), связанный с разделением QT, и каждый узел разделяется на четыре узла нижнего уровня. Для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает второй флаг (MTT_split_flag), связанный с разделением MTT, и информацию о направлении разделения (вертикальное/горизонтальное) и/или типе разделения (двоичное/троичное) чтобы разделить этот концевой узел на структуру MTT. Это позволяет рекурсивно разбивать соответствующие узлы ниже концевого узла QT на структуру BT или TT.For example, when splitting a CTU using the QTBTTT structure, the first flag (QT_split_flag) associated with the QT split is first extracted and each node is split into four lower level nodes. For a node corresponding to a QT end node,
В качестве другого примера, при разделении единицы CTU с использованием структуры QTBTTT блок 410 энтропийного декодирования может сначала извлечь флаг разделения CU (split_cu_flag), указывающий, разделена ли единица CU, и после разделения соответствующего блока он также может извлечь первый флаг. (QT_split_flag). В процессе разделения каждый узел может иметь ноль или более рекурсивных разделений QT, за которыми следует ноль или более рекурсивных разделений MTT. Например, единица CTU может сразу войти в разделение MTT или, наоборот, иметь только несколько разделений QT.As another example, when splitting a CTU using the QTBTTT structure,
В качестве еще одного примера, при разделении единицы CTU с использованием структуры QTBT блок 410 энтропийного декодирования извлекает первый флаг (QT_split_flag), связанный с разделением QT, чтобы разделить каждый узел на четыре узла нижнего уровня. И для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает флаг разделения (split_flag), указывающий, является ли этот узел дополнительно разделенным на BT и информацию о направлении разделения.As another example, when splitting a CTU using the QTBT structure, the
Между тем, когда блок 410 энтропийного декодирования определяет текущий блок, который должен быть декодирован посредством разделения древовидной структуры, он извлекает информацию о типе предсказания, указывающую, был ли текущий блок предсказан интра-предсказанием или интер-предсказанием. Когда информация о типе предсказания указывает на интра-предсказание, блок 410 энтропийного декодирования извлекает элемент синтаксиса для информации интра-предсказания (режим интра-предсказания) текущего блока. Когда информация о типе предсказания указывает на интер-предсказание, блок 410 энтропийного декодирования извлекает элемент синтаксиса для информации интер-предсказания, то есть информацию, указывающую вектор движения и опорное изображение, на которое ссылается вектор движения.Meanwhile, when the
Между тем, блок 410 энтропийного декодирования извлекает из потока битов информацию о режиме кодирования остаточного блока, например, информацию о том, был ли закодирован остаточный блок или были закодированы только подблоки остаточного блока, информацию, указывающую выбранный тип разделения для разделения остаточного блока на подблоки, информацию, идентифицирующую закодированные остаточные подблоки, параметры квантования и т. д. Кроме того, блок 410 энтропийного декодирования извлекает информацию о квантованных коэффициентах преобразования текущего блока в качестве информации об остаточном сигнале.Meanwhile, the
Блок 415 переупорядочивания повторно упорядочивает, в обратной последовательности последовательности сканирования коэффициентов, выполняемой устройством кодирования видеоизображений, одномерные квантованные коэффициенты преобразования, которые энтропийно декодированы блоком 410 энтропийного декодирования в двумерный массив коэффициентов, т.е. блок.The
Блок 420 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования. Блок 430 обратного преобразования выполняет обратное преобразование, основанное на информации о режиме кодирования остаточного блока, обратно квантованных коэффициентов преобразования из частотной области в пространственную область, чтобы восстановить остаточные сигналы и тем самым сформировать восстановленный остаточный блок текущего блока.An
Блок 430 обратного преобразования реагирует на то, когда информация о режиме кодирования остаточного блока указывает, что остаточный блок текущего блока был закодирован в устройстве кодирования видеоизображений, выполняя обратное преобразование обратно квантованных коэффициентов преобразования с использованием размера текущего блока (таким образом, размер остаточного блока должен быть восстановлен) в качестве единицы преобразования для генерации восстановленного остаточного блока текущего блока.The
Кроме того, блок 430 обратного преобразования реагирует на то, когда информация о режиме кодирования остаточного блока указывает, что единственный подблок остаточного блока был закодирован в устройстве кодирования видеоизображений, выполняя обратное преобразование для обратно квантованных коэффициентов преобразования с использованием размера преобразованного подблока в качестве единицы преобразования для восстановления остаточных сигналов преобразованного подблока при заполнении остаточных сигналов непреобразованного подблока значениями «0», тем самым генерируя восстановленный остаточный блок текущего блока.In addition, the
Блок 440 предсказания может включать в себя блок 442 интра-предсказания и блок 444 интер-предсказания. Блок 442 интра-предсказания активируется, когда тип предсказания текущего блока является интра-предсказанием, а блок 444 интер-предсказания активируется, когда тип предсказания текущего блока является интер-предсказанием.The
Блок 442 интра-предсказания определяет, среди множества режимов интра-предсказания, режим интра-предсказания текущего блока из элемента синтаксиса для режима интра-предсказания, извлеченного блоком 410 энтропийного декодирования, и в соответствии с определенным режимом интра-предсказания он предсказывает текущий блок, используя соседние опорные пиксели текущего блока.The
Блок 444 интер-предсказания использует элемент синтаксиса для режима интра-предсказания, извлеченный блоком 410 энтропийного декодирования, для определения вектора движения текущего блока и опорного изображения, на которое ссылается вектор движения, и он использует вектор движения и опорное изображение как определенное для предсказания текущего блока.The
Сумматор 450 суммирует остаточный блок, выданный из блока обратного преобразования, и блок предсказания, выданный из блока интер-предсказания или блока интра-предсказания, для восстановления текущего блока. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании подлежащего декодированию приходящего блока.An
Блок 460 фильтрации может включать в себя фильтр 462 удаления блочности и фильтр 464 SAO. Фильтр 462 удаления блочности устраняет блочность и фильтрует границу между восстановленными блоками, чтобы удалить блочный артефакт, вызванный поблочным декодированием. Фильтр 464 SAO выполняет дополнительную фильтрацию на восстановленном блоке после фильтрации удаления блочности, чтобы компенсировать разницу между восстановленным пикселем и исходным пикселем, вызванную кодированием с потерями. Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в подлежащем кодированию приближающемся изображении.The
Технологии вариантов осуществления, проиллюстрированных в данном документе, в целом относятся к кодированию с интер-предсказанием, то есть кодированию и декодированию текущего блока. Чтобы эффективно кодировать остаточный блок, полученный в соответствии с компенсацией движения на основе блоков, устройство кодирования видеоизображений может разделить остаточный блок на два остаточных подблока в горизонтальном или вертикальном направлении и кодировать только один остаточный подблок между двумя остаточными подблоками. Другими словами, процесс преобразования и квантования может применяться только к одному остаточному подблоку. Остаточные значения другого некодированного подблока рассматриваются как «0» или игнорируются. Такой инструмент кодирования может быть эффективным при кодировании остаточного блока, когда некоторая его область не имеет остаточного значения или имеет малое остаточное значение.The techniques of the embodiments illustrated herein generally refer to inter-prediction coding, ie, encoding and decoding the current block. In order to efficiently encode the residual block obtained according to block-based motion compensation, the video encoding apparatus may divide the residual block into two residual sub-blocks in the horizontal or vertical direction, and encode only one residual sub-block between the two residual sub-blocks. In other words, the transformation and quantization process can only be applied to one residual sub-block. Residual values of the other uncoded sub-block are treated as "0" or ignored. Such an encoding tool can be effective in encoding a residual block when some area of it has no residual value or has a small residual value.
Устройство кодирования видеоизображений может выбрать оптимальный режим кодирования из первого и второго режима кодирования, при этом первый режим кодирования кодирует остаточный блок, таким образом, преобразуя остаточные сигналы в остаточном блоке в блок преобразования, который по размеру равен блоку предсказания, а второй режим кодирования разделяет остаточный блок на два подблока в горизонтальном или вертикальном направлении и кодирует только один подблок, таким образом, преобразуя остаточные сигналы в остаточном блоке в блок преобразования, который отличается по размеру от блока предсказания.The video encoding device may select the optimal coding mode from the first and second coding modes, wherein the first coding mode encodes the residual block, thereby converting the residual signals in the residual block into a transformation block that is equal in size to the prediction block, and the second coding mode separates the residual block. block into two sub-blocks in the horizontal or vertical direction, and encodes only one sub-block, thus converting the residual signals in the residual block into a transformation block that is different in size from the prediction block.
Далее подробно описан второй режим, связанный с кодированием остаточного блока. Нижеследующее описание в основном относится к технологии декодирования, в частности, к работе устройства декодирования видеоизображений, при этом технология кодирования описана кратко, поскольку последняя является обратной по отношению к подробно описанной технологии декодирования. Кроме того, термины «подблок(и) остаточного блока» и «остаточный(е) подблок(и)» могут использоваться взаимозаменяемо.Next, the second mode associated with residual block coding is described in detail. The following description mainly refers to the decoding technology, in particular, to the operation of the video decoding apparatus, and the encoding technology is described briefly, since the latter is the reverse of the decoding technology described in detail. In addition, the terms "subunit(s) of the residual block" and "residual(s) subunit(s)" can be used interchangeably.
1. Тип разделения и положение преобразования1. Separation type and conversion position
На фиг. 5A-5D показаны различные типы разделения или разбиения остаточного блока и подблоков, которые подлежат кодированию (и, таким образом, преобразованию). Остаточный блок можно разделить на два подблока. В проиллюстрированных остаточных блоках 510-580 подблоки, которые подвергаются преобразованию, закрашены и помечены буквой «A». Подблок, расположенный на левой или верхней стороне в остаточном блоке, может быть выражен как расположенный в «позиции 0» в остаточном блоке, а подблок, расположенный на правой или нижней стороне в остаточном блоке, может быть выражен как расположенный в «позиция 1» в остаточном блоке. Положение подблока в остаточном блоке, в котором выполняется преобразование, может называться «позицией преобразования». Следовательно, позиция преобразования, обозначенная как «позиция 0», может представлять преобразование, выполняемое над подблоком, расположенным на левой или верхней стороне в остаточном блоке, позиция преобразования, обозначенная как «позиция 1», может представлять преобразование, выполняемое над подблоком. расположенным справа или снизу в остаточном блоке.In FIG. 5A-5D show various types of splitting or partitioning of the residual block and sub-blocks to be encoded (and thus transformed). The remaining block can be divided into two subblocks. In the illustrated residual blocks 510-580, the sub-blocks that undergo transformation are shaded and labeled "A". A sub-block located on the left or top side in the remainder block may be expressed as being located at "position 0" in the remainder block, and a sub-block located on the right or bottom side in the remainder block may be expressed as being located at "
Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Типы разделения блоков, которые следует принимать во внимание, включают первый тип, в котором разделение происходит симметрично в горизонтальном направлении, второй тип, в котором разделение происходит симметрично в вертикальном направлении, третий тип, в котором разделение происходит асимметрично в горизонтальном направлении (например, в соотношении 1:3 или 3:1), и четвертый тип, в котором разделение происходит асимметрично в вертикальном направлении (например, в соотношении 1:3 или 3:1).Different types of splitting can be considered according to the splitting direction and the splitting factor. The types of block separation to be considered include the first type in which the separation occurs symmetrically in the horizontal direction, the second type in which the separation occurs symmetrically in the vertical direction, the third type in which the separation occurs asymmetrically in the horizontal direction (for example, in ratio of 1:3 or 3:1), and a fourth type in which the separation occurs asymmetrically in the vertical direction (for example, in a ratio of 1:3 or 3:1).
Блок 510 вертикально разделен на левый подблок и правый подблок, и преобразование не выполняется в правом подблоке в позиции 1, а выполняется в левом подблоке в позиции 0. Блок 520 вертикально разделен на левый и правый подблоки, и преобразование не выполняется в левом подблоке, а выполняется в правом подблоке в позиции 1. Блок 530 горизонтально разделен на верхний и нижний подблоки и преобразование выполняется в верхнем подблоке в позиции 0, а не в нижнем подблоке. Блок 540 горизонтально разделен на два подблока и преобразование выполняется в нижнем подблоке в позиции 1, а не в верхнем подблоке.The
Блок 550 вертикально разделен на левый подблок и правый подблок с соотношением 1:3 и преобразование не выполняется в правом подблоке в позиции 1, а выполняется в левом подблоке в позиции 0. Блок 560 вертикально разделен на левый и правый подблоки с соотношением 3:1, и преобразование выполняется не в левом подблоке, а в правом подблоке в позиции 1. Блок 570 горизонтально разделен на верхний и нижний подблоки, имеющие соотношение 1: 3, и преобразование выполняется на верхнем подблоке в позиции 0, а не в нижнем подблоке. Блок 540 разделен на два подблока в горизонтальном направлении, и преобразование выполняется в нижнем подблоке в позиции 1, а не в верхнем подблоке.
Как и в случае блоков 550-580, показанных на фиг. 5C и 5D, когда остаточный блок разбивается асимметрично (например, в соотношении 1:3 или 3:1), по умолчанию может быть установлено выполнение преобразование для меньшего подблока.As with blocks 550-580 shown in FIG. 5C and 5D, when the residual block is split asymmetrically (eg, in a ratio of 1:3 or 3:1), a default may be set to perform transformation on a smaller subblock.
Доступные отношения разделения и направления разделения могут быть ограничены в соответствии с размером остаточного блока, чтобы обеспечить 4 или более пикселей для высоты или ширины подблока, который подвергается преобразованию. Например, первый тип горизонтально-симметричного разделения может быть разрешен для остаточных блоков, имеющих ширину 8 или более пикселей, а второй тип вертикально-симметричного разделения может быть разрешен для остаточных блоков, имеющих высоту 8 или более пикселей. Аналогично третий тип и четвертый тип, которые обеспечивают горизонтальное или вертикальное асимметричное разделение, могут быть разрешены для остаточных блоков, имеющих ширину или высоту 16 или более пикселей.The available split ratios and split direction may be limited according to the size of the residual block to provide 4 or more pixels for the height or width of the sub-block that is being transformed. For example, a first type of horizontally symmetrical separation may be allowed for residual blocks having a width of 8 or more pixels, and a second type of vertically symmetrical separation may be allowed for residual blocks having a height of 8 or more pixels. Similarly, a third type and a fourth type that provide horizontal or vertical asymmetric separation may be allowed for residual blocks having a width or height of 16 or more pixels.
2. Выбор ядра преобразования.2. Choice of the transformation kernel.
В зависимости от направления разделения (горизонтального или вертикального) остаточного блока и его позиции преобразования, т. е. позиции преобразованного подблока, могут быть выбраны ядра преобразования (horTransform и verTransform) в горизонтальном и вертикальном направлениях, используемые для преобразования подблока.Depending on the splitting direction (horizontal or vertical) of the residual box and its transform position, i.e. the position of the transformed subbox, the transform kernels (horTransform and verTransform) in the horizontal and vertical directions can be selected to be used to transform the subbox.
Когда к остаточному блоку применяется вертикальное разделение, ядро, которое должно использоваться для преобразования подблока, может быть неявно получено следующим образом. В случае блоков 510 и 550, когда преобразуемый подблок находится в позиции 0, тогда (horTransform, verTransform) = (DCT-8, DST-7). В случае блоков 520 и 560, когда преобразуемый подблок находится в позиции 1, тогда (horTransform, verTransform) = (DST-7, DST-7).When a vertical split is applied to a residual block, the kernel to be used to transform the subblock can be implicitly obtained as follows. In the case of
Когда к остаточному блоку применяется вертикальное разделение, ядро, которое должно использоваться для преобразования подблока, может быть неявно получено следующим образом. В случае блоков 510 и 550, когда преобразуемый подблок находится в позиции 0, тогда (horTransform, verTransform) = (DCT-8, DST-7). В случае блоков 520 и 560, когда преобразуемый подблок находится в позиции 1, тогда (horTransform, verTransform) = (DST-7, DST-7).When a vertical split is applied to a residual block, the kernel to be used to transform the subblock can be implicitly obtained as follows. In the case of
Когда один из остаточных подблоков больше 32 пикселей, ядро DCT-2 может применяться как для горизонтального, так и для вертикального направлений. Кроме того, для остаточного блока компонента цветности ядро DCT-2 может всегда применяться к преобразованию остаточного подблока, независимо от направления разделения (горизонтального или вертикального) остаточного блока и его позиции преобразования, т.е. позиции преобразованного подблока. В некоторых случаях может явно передаваться информация, идентифицирующая ядра преобразования, используемые для преобразования в горизонтальном и вертикальном направлениях.When one of the residual subblocks is larger than 32 pixels, the DCT-2 core can be applied to both horizontal and vertical directions. Furthermore, for a chrominance component residual block, a DCT-2 kernel can always be applied to the transformation of the residual sub-block, regardless of the division direction (horizontal or vertical) of the residual block and its transformation position, i.e. positions of the transformed subblock. In some cases, information may be explicitly transmitted identifying the transformation kernels used for the transformation in the horizontal and vertical directions.
3. Сигнализация режима остаточного кодирования3. Residual coding mode signaling
Когда текущий блок закодирован с интер-предсказанием, а соответствующий остаточный блок имеет по меньшей мере один ненулевой коэффициент, может быть явно сигнализирован первый флаг для указания, преобразован ли релевантный остаточный блок текущего блока или только один подблок остаточного блока закодирован.When the current block is encoded with inter-prediction and the corresponding residual block has at least one non-zero coefficient, a first flag may be explicitly signaled to indicate whether the relevant residual block of the current block is transformed or only one subblock of the residual block is encoded.
Соответственно, устройство декодирования видеоизображений во время восстановления остаточного блока текущего блока, закодированного с помощью интер-предсказания, может декодировать первый флаг из потока битов, чтобы определить, разделило ли устройство кодирования видеоизображений остаточный блок на два подблока и закодировало ли только один подблок из двух подблоков.Accordingly, the video decoding apparatus, at the time of restoring the residual block of the current block encoded with inter-prediction, may decode the first flag from the bitstream to determine whether the video encoding apparatus has divided the residual block into two subblocks and whether it has coded only one subblock of the two subblocks. .
В некоторых вариантах осуществления может быть пропущена сигнализация первого флага в зависимости от ширины или высоты текущего блока или в зависимости от произведения ширины и высоты, отношения ширины к высоте и большего из значений ширины и высоты. Например, когда ширина и высота текущего блока меньше 8 пикселей, устройство декодирования видеоизображений может пропустить декодирование первого флага и сделать вывод, что весь остаточный блок текущего блока был преобразован.In some embodiments, the first flag signaling may be omitted depending on the width or height of the current block, or depending on the product of the width and height, the ratio of width to height, and the greater of the width and height. For example, when the width and height of the current block is less than 8 pixels, the video decoding apparatus may skip decoding the first flag and conclude that the entire remaining block of the current block has been converted.
Когда кодируется только один подблок остаточного блока, могут дополнительно сигнализироваться тип разделения и позиция преобразования остаточного блока. В устройство кодирования видеоизображений может быть предоставлена информация о типе разделения и позиции преобразования различными способами. Например, один элемент синтаксиса может использоваться для представления типа разделения остаточного блока, или два флага могут использоваться для представления коэффициента разделения и направления разделения. Кроме того, один флаг может использоваться для представления позиции преобразования, которая является позицией преобразуемого подблока. Например, можно установить флаг, указывающий позицию преобразования, на значение «0», когда преобразование применяется к подблоку, расположенному на левой или верхней стороне в остаточном блоке, и установить флаг, указывающий позицию преобразования, на значение «1», когда преобразование применяется к подблоку, расположенному справа или снизу в остаточном блоке.When only one sub-block of the residual block is encoded, the split type and transformation position of the residual block may be additionally signaled. To the video encoding device, information about the split type and the transform position can be provided in various ways. For example, one syntax element may be used to represent the split type of the residual block, or two flags may be used to represent the split factor and split direction. In addition, one flag may be used to represent a transform position, which is the position of the sub-block to be converted. For example, you can set a flag indicating the position of the transformation to "0" when the transformation is applied to a sub-block located on the left or top side in the remainder block, and set a flag indicating the position of the transformation to "1" when the transformation is applied to subblock located to the right or bottom of the residual block.
Остаточный блок при разделении в соотношении 1:3 или 3:1 может добавлять ограничение, соглансо которому преобразование неизменно выполняется в меньшем подблоке, что позволяет исключить сигнализацию флага, указывающего позицию преобразования.The residual block, when split at a ratio of 1:3 or 3:1, can add a constraint that the transformation is invariably performed in a smaller subblock, thus avoiding signaling a flag indicating the position of the transformation.
Кроме того, в зависимости от ширины и высоты остаточного блока или в зависимости от произведения ширины и высоты, отношения ширины к высоте и большего из значений ширины и высоты, возможно ограничение использования некоторого типа разделения или направления разделения и/или коэффициента разделения, что позволяет исключить сигнализацию элементов синтаксиса, представляющих один и тот же тип разделения или направление разделения и/или коэффициент разделения. Например, когда ширина и высота остаточного блока меньше 16 пикселей, не может быть разрешено разделение остаточного блока «в соотношении 1:3 или 3:1». Соответственно, устройство декодирования видеоизображений может реагировать на остаточный блок, когда ширина и высота меньше 16 пикселей, для вывода отношения разделения как 1:1 без декодирования флага, указывающего коэффициент разделения. В другом примере, когда ширина (или высота) остаточного блока меньше 8 пикселей, не может быть разрешено разделение остаточного блока в вертикальном направлении (или горизонтальном направлении). Соответственно, устройство декодирования видеоизображений может реагировать на остаточный блок, имеющий ширину менее 8 пикселей для вывода о том, что остаточный блок разделен в горизонтальном направлении без флагов декодирования, указывающих направление разделения. Точно так же устройство декодирования видеоизображений может реагировать на остаточный блок, когда он имеет высоту менее 8 пикселей, для вывода о том, что разделение выполняется в вертикальном направлении. Согласно еще одну примеру устройство может реагировать так, что когда ширина больше, чем высота, то делается вывод о том, что разделение выполняется в вертикальном направлении, а когда высота больше, чем ширина, то делается вывод, что разделение выполняется в горизонтальном направлении.In addition, depending on the width and height of the residual block, or depending on the product of the width and height, the ratio of width to height, and the larger of the width and height values, it is possible to limit the use of some type of separation or separation direction and/or separation factor, which can eliminate signaling syntax elements representing the same split type or split direction and/or split factor. For example, when the width and height of the residual block is less than 16 pixels, division of the residual block "at a ratio of 1:3 or 3:1" cannot be allowed. Accordingly, the video decoding apparatus can respond to the residual block when the width and height are less than 16 pixels to output a split ratio as 1:1 without decoding a flag indicating a split ratio. In another example, when the width (or height) of the residual block is less than 8 pixels, division of the residual block in the vertical direction (or horizontal direction) cannot be allowed. Accordingly, the video decoding apparatus can respond to a residual block having a width of less than 8 pixels to infer that the residual block is divided in the horizontal direction without decoding flags indicating the division direction. Similarly, the video decoding apparatus may respond to the residual block when it is less than 8 pixels high to infer that the division is performed in the vertical direction. According to another example, the device may respond such that when the width is greater than the height, it is concluded that the separation is in the vertical direction, and when the height is greater than the width, it is inferred that the separation is in the horizontal direction.
Остаточный блок, связанный с компонентом яркости, может иметь свой единственный остаточный подблок, кодированный исключительно, в этом случае соответствующий остаточный блок, связанный с компонентом цветности, может также иметь свой единственный остаточный подблок, кодированный исключительно. Соответственно, первый флаг, переданный на уровне единицы CU, может совместно использоваться остаточным блоком компонента яркости и остаточными блоками компонента цветности.The residual block associated with the luminance component may have its single residual subblock exclusively coded, in which case the corresponding residual block associated with the chroma component may also have its single residual subblock exclusively coded. Accordingly, the first flag transmitted at the unit level of the CU may be shared between the luminance component residual block and the chrominance component residual blocks.
Тот же режим остаточного кодирования, выбранный для остаточного блока компонента яркости, может быть применен к остаточному блоку компонента цветности, расположенному совместно с остаточным блоком компонента яркости. Другими словами, когда остаточный блок компонента яркости имеет только один кодированный подблок, остаточный блок компонента цветности может аналогичным образом иметь только один кодированный подблок. В этом случае информация о типе разделения остаточного блока и позиции подблока, подлежащего кодированию, может совместно использоваться блоком яркости и блоками цветности.The same residual coding mode selected for the luminance component residual block may be applied to the chrominance component residual block co-located with the luminance component residual block. In other words, when the luminance component residual block has only one coded subblock, the chrominance component residual block may similarly have only one coded subblock. In this case, information about the division type of the residual block and the position of the sub-block to be encoded can be shared between the luminance block and the chrominance blocks.
В по меньшей мере одном варианте осуществления единой древовидной структуры один и тот же режим остаточного кодирования может применяться к компоненту яркости и компоненту цветности, и та же информация о направлении разделения, определенном для остаточного блока компонента яркости, и позиции подблока, подлежащего кодированию, может применяться к остаточным блокам компонентов цветности. Согласно другому примеру, в случае кодирования только одного подблока остаточного блока компонента цветности, когда аналогичным образом кодируется только один подблок совмещенного остаточного блока компонента яркости, одна и та же информация о направлении разделения, определенная для остаточного блока компонента яркости и позиции подблока, подлежащего кодированию, может применяться к остаточным блокам компонента цветности.In at least one embodiment of a single tree structure, the same residual coding mode may be applied to the luminance component and the chrominance component, and the same split direction information defined for the luminance component residual block and the position of the sub-block to be encoded may be applied. to the residual blocks of chrominance components. According to another example, in the case of encoding only one sub-block of the chroma component residual block, when only one sub-block of the aligned luminance component residual block is similarly encoded, the same split direction information specified for the luminance component residual block and the position of the sub-block to be encoded, can be applied to the residual blocks of the chrominance component.
4. Восстановление остаточного блока4. Recovery of the residual block
Устройство декодирования видеоизображений может определять на основе типа разделения и позиции преобразования позицию подблока в остаточном блоке, где декодировать соответствующую информацию о коэффициентах преобразования из потока битов, а также размер подблока. Устройство декодирования видеоизображений может декодировать информацию о коэффициентах преобразования из потока битов, чтобы восстановить коэффициенты преобразования подблока, соответствующего позиции преобразования. Устройство декодирования видеоизображений применяет процесс обратного квантования/обратного преобразования к восстановленным коэффициентам преобразования для генерации остаточных сигналов подблока, соответствующего позиции преобразования, и устанавливает для всех остаточных сигналов другого подблока, соответствующего позиции без преобразования, значение «0», тем самым восстанавливая остаточный блок ткущего блока.Based on the split type and the transform position, the video decoding apparatus can determine the position of the sub-block in the residual block where to decode the corresponding transform coefficient information from the bitstream, as well as the size of the sub-block. The video decoding apparatus may decode the transform coefficient information from the bit stream to recover the transform coefficients of the sub-block corresponding to the transform position. The video decoding apparatus applies an inverse quantization/inverse transform process to the reconstructed transform coefficients to generate residual signals of the sub-block corresponding to the transform position, and sets all residual signals of the other sub-block corresponding to the untransformed position to "0", thereby restoring the residual block of the current block .
Аналогично, устройство кодирования видеоизображений выполняет преобразование и квантование остаточного подблока, соответствующего позиции преобразования, энтропийно кодирует квантованные коэффициенты преобразования и применяет процесс обратного квантования/обратного преобразования к квантованным коэффициентам преобразования, чтобы восстановить остаточный подблок, соответствующий позиции преобразования и устанавливает все остаточные сигналы другого подблока, соответствующие позиции без преобразования, равными «0», тем самым восстанавливая остаточный блок текущего блока.Similarly, the video coding apparatus performs transformation and quantization of the residual subblock corresponding to the transform position, entropy encodes the quantized transform coefficients, and applies an inverse quantization/inverse transform process to the quantized transform coefficients to recover the residual subblock corresponding to the transform position, and sets all the residual signals of another subblock, corresponding positions without conversion to "0", thereby restoring the residual block of the current block.
5. Расчет параметров квантования.5. Calculation of quantization parameters.
Устройство кодирования видеоизображений может определять значение параметра квантования (QP) для текущего блока (CU) и определять на основе значения QP и значения предсказания QP значение параметра дифференциального квантования (Delta QP или DQP) для текущего блока. Устройство кодирования видеоизображений может быть сконфигурировано для сигнализации значения DQP и квантования текущего блока с использованием определенного значения QP. Устройство кодирования видеоизображений может регулировать значение QP текущего блока и, таким образом, регулировать степень квантования, применяемую к блокам коэффициентов, относящихся к текущему блоку.The video encoder may determine a quantization parameter (QP) value for the current block (CU), and determine, based on the QP value and the QP prediction value, a differential quantization parameter (Delta QP or DQP) value for the current block. The video encoder may be configured to signal the DQP value and quantize the current block using the determined QP value. The video encoder may adjust the QP value of the current block, and thus adjust the amount of quantization applied to blocks of coefficients related to the current block.
DQP определяется как разница между текущим QP, т.е. фактическим QP, используемым в текущем блоке, и предсказанным значением текущего QP или значением предсказания QP. На основе сигнализированного DQP соответствующее текущее значение QP может быть восстановлено путем добавления DQP к значению предсказания QP. В частности, устройство кодирования видеоизображений выдает DQP, который должен быть вычислен, путем вычитания значения предсказания QP из фактического QP текущего блока, а устройство декодирования видеоизображений выдает фактический QP текущего блока, который должен быть восстановлен, путем добавления принятого DQP к значению предсказания QP.DQP is defined as the difference between the current QP, i.e. the actual QP used in the current block and the predicted value of the current QP or the predicted QP value. Based on the signaled DQP, the corresponding current QP value can be recovered by adding the DQP to the QP prediction value. In particular, the video coding device outputs the DQP to be calculated by subtracting the QP prediction value from the actual QP of the current block, and the video decoding apparatus outputs the actual QP of the current block to be recovered by adding the received DQP to the QP prediction value.
В некоторых вариантах осуществления среднее значение фактических значений QP для верхнего блока и левого блока по отношению к текущему блоку может быть определено как значение предсказания QP текущего блока. В некоторых других вариантах осуществления репрезентативные значения (например, среднее, медианное и т. д.) фактических значений QP для левого блока, верхнего левого блока и верхнего блока относительно текущего блока могут быть определены как значение предсказания QP для текущего блока.In some embodiments, the average of the actual QP values for the top block and the left block with respect to the current block may be determined as the QP prediction value of the current block. In some other embodiments, representative values (eg, mean, median, etc.) of the actual QP values for left block, top left block, and top block relative to the current block may be determined as the QP prediction value for the current block.
В некоторых вариантах осуществления кодируют только один подблок соответствующего остаточного блока текущего блока, при этом информация о разделениях остаточного блока, форма разделения или позиция подблока для кодирования и т. д. используются в качестве основы для выбора соседних блоков, на которые следует ссылаться. Затем фактические значения QP для выбора соседних блоков могут использоваться в качестве значения предсказания QP текущего блока, или фактические значения QP выбранного соседнего блока (ов) могут использоваться в качестве основы для получения значения предсказания QP для текущего блока.In some embodiments, only one sub-block of the corresponding residual block of the current block is encoded, with the information about the partitions of the residual block, the split shape or position of the sub-block to encode, etc. being used as the basis for selecting neighboring blocks to refer to. Then, the actual QP values for selecting neighboring blocks may be used as the QP prediction value of the current block, or the actual QP values of the selected neighboring block(s) may be used as the basis for deriving the QP prediction value for the current block.
На фиг. 6 показана схема, поясняющая случай кодирования одного подблока в релевантном остаточном блоке текущего блока, иллюстрирующая позиции соседних блоков, на которые следует ссылаться для предсказания параметра квантования (QP).In FIG. 6 is a diagram explaining the case of encoding one sub-block in the relevant residual block of the current block, illustrating positions of neighboring blocks to be referred to for quantization parameter (QP) prediction.
Когда остаточный блок 610 разделен по вертикали и остаточный сигнал имеется только в левом подблоке, то есть кодируется только левый подблок, по меньшей мере одно из значений предсказания QP соседних блоков «a, b, d, e», смежных с левым подблоком, может использоваться в качестве основы для вычисления значения предсказания QP текущего блока. Например, значение предсказания QP текущего блока может быть вычислено на основе среднего значения значений QP блока «a» и блока «b».When the
Когда остаточный блок 620 разделен по вертикали и остаточный сигнал имеется только в правом подблоке, то есть кодируется только правый подблок, значение QP блока «c», который является соседним блоком, смежным с правым подблоком, может быть определено как значение предсказания QP текущего блока.When the
На фиг. 7 показана схема блока цветности и, по меньшей мере, одного блока яркости, который совмещен с блоком цветности.In FIG. 7 shows a diagram of a chrominance block and at least one luminance block that is aligned with the chrominance block.
Значение QP для блока цветности может быть определено на основании определенного значения QP для соответствующего блока(ов) яркости. Значение предсказания QP блока цветности может быть определено на основании значения QP блока яркости в том же месте. В качестве примера значение QP блока яркости «a», расположенного в верхнем левом углу текущего блока, может использоваться в качестве значения предсказания QP для остаточного блока компонента цветности. В качестве альтернативы используемое значение предсказания QP остаточного блока компонента цветности может быть наиболее частым значением, максимальным значением, минимальным значением, средним значением или средним значением среди значений QP блоков яркости от «a до i».The QP value for the chrominance block may be determined based on the determined QP value for the corresponding luminance block(s). The QP prediction value of the chrominance block may be determined based on the QP value of the luma block at the same location. As an example, the QP value of the luminance block "a" located in the upper left corner of the current block may be used as the QP prediction value for the residual chroma component block. Alternatively, the chrominance component residual block QP prediction value used may be the most frequent value, the maximum value, the minimum value, the average value, or the average value among the QP values of the luma blocks "a to i".
При кодировании одного подблока в остаточном блоке компонента цветности используемое значение предсказания QP блока цветности может быть значением QP блока яркости, выбранным на основе большего значения (альтернативно меньшего значения) среди направления разделения остаточного блока, позиции подблока для кодирования, размера подблока, отношения горизонтали к вертикали подблока, а также ширины или высоты подблока. По меньшей мере в одном варианте осуществления используемое значение предсказания QP блока компонента цветности представляет собой значение QP одного из блока «d» и блока «i», которые являются блоками яркости, соответствующими подблоку A, кодируемому в компоненте цветности, остаточному блоку или среднему значению значений QP блока «d» и блока «i».When encoding one subblock in a chrominance component residual block, the chrominance block QP prediction value used may be a luma block QP value selected based on a larger value (alternatively a smaller value) among the residual block split direction, subblock position for encoding, subblock size, horizontal to vertical ratio subblock, as well as the width or height of the subblock. In at least one embodiment, the QP prediction value of the chroma component block used is the QP value of one of the "d" block and the "i" block, which are the luminance blocks corresponding to the A subblock encoded in the chroma component, the residual block, or the mean of the values QP of block "d" and block "i".
6. Внутриконтурная фильтрация6. In-loop filtration
Устройство кодирования видеоизображений и устройство декодирования видеоизображений могут выполнять внутриконтурную фильтрацию, включая фильтрацию удаления блочности на восстановленном текущем блоке, и сохранять отфильтрованный текущий блок в буфере (например, в памяти 190 на фиг. 1 и в памяти 470 на фиг. 4) для будущего использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении.The video encoder and the video decoder may perform in-loop filtering, including deblocking filtering on the reconstructed current block, and store the filtered current block in a buffer (e.g., memory 190 in FIG. 1 and
Фильтр удаления блочности применяется к пикселям на границе блока, чтобы уменьшить блочные артефакты, вызванные границей между блоками в восстановленном изображении. Фильтрация удаления блочности выполняется на вертикальной границе и горизонтальной границе. Фильтрация, сначала выполняемая на вертикальной границе, может служить входом для последующей фильтрации горизонтальной границы.The deblocking filter is applied to the pixels at the block boundary to reduce block artifacts caused by the boundary between blocks in the reconstructed image. Deblocking filtering is performed on the vertical border and the horizontal border. Filtering, first performed on the vertical boundary, can serve as input for subsequent filtering of the horizontal boundary.
На фиг. 8 показана схема восстановленных текущих блоков (810, 820), иллюстрирующая их соответствующие остаточные блоки, подвергающиеся вертикальным разделениям и преобразованиям в их левых подблоках (то есть позиция преобразования равна 0), чтобы показать их границы разделения между подблоками и границу удаления блочности.In FIG. 8 is a diagram of the reconstructed current blocks (810, 820) illustrating their respective residual blocks undergoing vertical splits and transforms in their left subblocks (i.e., transform position is 0) to show their inter-subblock split boundaries and deblocking boundary.
Устройство кодирования видеоизображений и устройство декодирования видеоизображений могут определять, применять или нет фильтрацию удаления блочности к текущему блоку на основе того, совпадает ли граница удаления блочности размером 4x4 (или 8x8) с границей между подблоками остаточного блока. Например, устройство декодирования видеоизображений может установить сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнять фильтрацию удаления блочности только тогда, когда граница между двумя подблоками в текущем блоке совпадает с границей сетки. Соответственно, фильтрация удаления блочности не может выполняться на границах между подблоками, которые не совпадают с границей сетки. Здесь N может быть установлено равным 2n (n - натуральное число). В качестве альтернативы устройство кодирования видеоизображений и устройство декодирования видеоизображений могут определять, применять ли фильтрацию удаления блочности к текущему блоку, на основе пикселей, включенных в несколько столбцов или строк, включенных в текущий блок. Сетка в различных единицах может использоваться в зависимости от того, является ли текущий блок блоком яркости или блоком цветности. Например, сетка может быть установлена в единицах 4×4 для блока яркости, и сетка может быть установлена в единицах 8×8 для блока цветности.The video encoder and the video decoder may determine whether or not to apply deblocking filtering to the current block based on whether a 4x4 (or 8x8) deblocking boundary matches a boundary between sub-blocks of the residual block. For example, the video decoding apparatus may set up a grid of N samples at regular intervals in the horizontal and vertical directions, and perform deblocking filtering only when the boundary between two sub-blocks in the current block matches the grid boundary. Accordingly, deblocking filtering cannot be performed on boundaries between sub-blocks that do not coincide with a grid boundary. Here N can be set to 2n (n is a natural number). Alternatively, the video encoder and the video decoder may determine whether to apply deblocking filtering to the current block based on pixels included in multiple columns or rows included in the current block. A grid in different units can be used depending on whether the current block is a luma block or a chrominance block. For example, the grid may be set to 4x4 units for the luminance block, and the grid may be set to 8x8 units for the chrominance block.
В некоторых вариантах осуществления фильтрация удаления блочности может выполняться на уровне восстановленного остаточного сигнала. На фиг. 9 показана схема, поясняющая фильтрацию удаления блочности, выполняемую на границе между остаточными подблоками на уровне остаточного сигнала. На ифг. 9 показан остаточный блок 4 × 8, который подвергается горизонтальному разделению и преобразованию в своем нижнем подблоке 4×4 (то есть позиция преобразования равна 1). После того, как остаточные сигналы, соответствующие нижнему подблоку, восстановлены а остаточные сигналы верхнего подблока заполнены «0» для завершения восстановленного остаточного блока, для остаточного блока может быть выполнена фильтрация удаления блочности. Вариант осуществления с фиг. 9 иллюстрирует одномерный фильтр среднего значения, имеющий параметр [1 2 1], примененный к границе между двумя подблоками.In some embodiments, deblocking filtering may be performed at the reconstructed residual signal level. In FIG. 9 is a diagram for explaining deblocking filtering performed on a boundary between residual sub-blocks at a residual signal level. On ifg. 9 shows a 4×8 residual block that undergoes a horizontal split and transformation in its lower 4×4 subblock (ie, the transformation position is 1). After the residual signals corresponding to the lower sub-block are restored and the residual signals of the upper sub-block are filled with "0" to complete the restored residual block, deblocking filtering can be performed on the residual block. The embodiment of FIG. 9 illustrates a one-dimensional mean filter having the parameter [1 2 1] applied to the boundary between two sub-blocks.
При применении фильтра удаления блочности к текущему блоку в соответствии с требуемой силой фильтрации удаления блочности может быть выбран сильный фильтр или слабый фильтр. Кроме того, можно рассмотреть возможность использования различных обычных фильтров в общих методах обработки изображений, таких как фильтр среднего значения, фильтр медианного значения и двусторонний фильтр.When applying the deblocking filter to the current block, a strong filter or a weak filter can be selected according to the required strength of the deblocking filtering. In addition, you can consider using various conventional filters in common image processing methods such as mean value filter, median value filter, and two-sided filter.
Что касается выбора фильтра, устройство видеодекодирования может быть проинформировано устройством кодирования видеоизображений о фильтре, который будет использоваться, перед выбором фильтра для использования в фильтрации остаточного удаления блочности. Например, индекс фильтра, который должен использоваться, может сообщаться среди множества заранее определенных фильтров. В качестве альтернативы можно использовать один заранее определенный фильтр.With regard to filter selection, the video decoding device may be informed by the video encoding device of the filter to be used before selecting a filter to use in the residual deblocking filtering. For example, the filter index to be used may be reported among a plurality of predefined filters. Alternatively, one predefined filter can be used.
После того, как фильтр выбран, в вариантах осуществления вычисляют параметры фильтрации, относящиеся к выбранному фильтру, в частности, параметры, которые определяют интенсивность фильтра и значения отсечения для изменений в пикселях, и на основе вычисленных параметров фильтрации выполняют фильтрацию по остаточной границе выборки.Once a filter is selected, in embodiments, filtering parameters related to the selected filter are calculated, in particular, parameters that determine the filter intensity and cutoff values for pixel changes, and based on the calculated filtering parameters, filtering is performed on the residual sample boundary.
Для параметров фильтра может передаваться информация о местоположении соседнего блока кодирования, такая как предыдущий кадр, соседний блок, группа соседних фрагментов, соседний фрагмент и т.п., и могут использоваться параметры фильтра соседнего блока декодирования, соответствующие местоположению, для текущего блока, как он есть, или параметры фильтра для текущего блока восстанавливаются из значений соседних параметров и дополнительных сигнализированных значений разности.For the filter parameters, location information of a neighboring coding block, such as a previous frame, a neighboring block, a group of neighboring fragments, a neighboring fragment, etc., can be transmitted, and the filter parameters of the neighboring decoding block corresponding to the location for the current block can be used as it is. is, or the filter parameters for the current block are restored from the values of neighboring parameters and additional signaled difference values.
На фиг. 10 показана блок-схема способа, выполняемого устройством кодирования видеоизобpажений для кодирования с интер-предсказанием текущего блока видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In FIG. 10 is a flowchart of a method performed by a video coding apparatus for inter-prediction coding of a current video block according to at least one embodiment of the present invention.
На этапе S1010 устройство кодирования видеоизображений может сгенерировать блок предсказания посредством интер-предсказания текущего блока кодируемых видеоданных, и оно может сгенерировать остаточный блок путем вычитания блока предсказания из текущего блока видеоданных.In step S1010, the video encoding apparatus may generate a prediction block by inter-prediction of the current encoded video data block, and it may generate a residual block by subtracting the prediction block from the current video data block.
На этапе S1020 устройство кодирования видеоизображений может определить режим остаточного кодирования для остаточного блока текущего блока. В частности, устройство кодирования видеоизображений может выбирать, кодировать ли остаточный блок текущего блока или кодировать только один подблок, который является частичной областью остаточного блока. Этот выбор может быть основан на тесте «скорость-искажение».In step S1020, the video encoding device may determine the residual coding mode for the residual block of the current block. In particular, the video encoder may choose whether to encode the residual block of the current block, or to encode only one sub-block, which is a partial area of the residual block. This selection may be based on a rate-distortion test.
На этапе S1030 устройство кодирования видеоизображений может кодировать информацию о режиме остаточного кодирования, выбранном для соответствующего остаточного блока текущего блока.In step S1030, the video encoder may encode information about the residual coding mode selected for the corresponding residual block of the current block.
Информация о режиме остаточного кодирования может включать в себя первый флаг, указывающий, является ли кодированным остаточный блок или только один подблок остаточного блока.The residual coding mode information may include a first flag indicating whether the residual block or only one subblock of the residual block is encoded.
Когда кодируется только один подблок остаточного блока, устройство кодирования видеоизображений может дополнительно кодировать информацию, указывающую тип разделения для разделения остаточного блока на два подблока. Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Например, метод кодирования с интер-предсказанием может предусматривать использование типов разделения, включающих первый тип, который обеспечивает горизонтальное симметричное разделение на два подблока, второй тип, который обеспечивает вертикальное симметричное разделение на два подблока, третий тип, который обеспечивает горизонтальное асимметричное разделение на два подблока. (например, с соотношением 1:3 или 3:1), и четвертый тип, который обеспечивает асимметричное разделение по вертикали на два подблока (например, с соотношением 1:3 или 3:1). Один или несколько элементов синтаксиса могут использоваться, чтобы сигнализировать тип разделения (или направление разделения и коэффициент разделения) для соответствующего остаточного блока текущего блока.When only one sub-block of the residual block is encoded, the video coding apparatus may further encode information indicative of a partition type for dividing the residual block into two sub-blocks. Different types of splitting can be considered according to the splitting direction and the splitting factor. For example, an inter-prediction coding method may use partition types including a first type that provides a horizontally symmetrical split into two sub-blocks, a second type that provides a vertically symmetrical split into two sub-blocks, a third type that provides a horizontal asymmetric split into two sub-blocks . (for example, with a ratio of 1:3 or 3:1), and a fourth type, which provides an asymmetric vertical division into two sub-blocks (for example, with a ratio of 1:3 or 3:1). One or more syntax elements may be used to signal the split type (or split direction and split factor) for the corresponding residual block of the current block.
В зависимости от ширины и высоты соответствующего остаточного блока текущего блока и, таким образом, в зависимости от ширины и высоты блока предсказания, устройство кодирования видеоизображений может ограничивать использование некоторых направлений разделения, коэффициентов разделения и/или типов разделения, и, таким образом, оно может пропускать сигнализацию элементов синтаксиса, выражающих направление разделения, коэффициент разделения и/или тип разделения в зависимости от ширины и высоты остаточного блока.Depending on the width and height of the corresponding residual block of the current block, and thus depending on the width and height of the prediction block, the video encoder may restrict the use of certain split directions, split ratios, and/or split types, and thus it may skip signaling syntax elements expressing the split direction, split factor, and/or split type depending on the width and height of the residual block.
В по меньшей мере одном варианте осуществления, когда ширина и высота остаточного блока меньше 16 пикселей, не может быть разрешено разделение остаточного блока «в соотношении 1:3 или 3:1». Соответственно, когда ширина и высота остаточного блока меньше 16 пикселей, устройство декодирования видеоизображений может сделать вывод, что коэффициент разделения может быть 1:1, что может быть принято во внимание устройством кодирования видеоизображений для пропуска сигнализации элементов синтаксиса (например, 1-битного флага), выражающих направление разделения. В другом варианте осуществления, когда ширина текущего блока меньше 8 пикселей, может быть запрещено вертикальное разделение текущего блока. Когда высота текущего блока меньше 8 пикселей может быть запрещено горизонтальное разделение текущего блока. Соответственно, когда ширина (или высота) остаточного блока меньше 8 пикселей, текущий блок может быть разделен с соотношением 1:1 в вертикальном (или горизонтальном) направлении устройством декодирования видеоизображений, что позволяет устройству кодирования видеоизображений пропускать сигнализацию элементов синтаксиса (например, 1-битного флага), выражающих направление разделения.In at least one embodiment, when the width and height of the residual block is less than 16 pixels, division of the residual block "at a ratio of 1:3 or 3:1" cannot be allowed. Accordingly, when the width and height of the residual block is less than 16 pixels, the video decoder may conclude that the split ratio may be 1:1, which may be taken into account by the video encoder to skip signaling syntax elements (e.g., 1-bit flag) expressing the direction of separation. In another embodiment, when the width of the current box is less than 8 pixels, vertical splitting of the current box may be disabled. When the height of the current block is less than 8 pixels, horizontal splitting of the current block may be disabled. Accordingly, when the width (or height) of the residual block is less than 8 pixels, the current block can be divided at a ratio of 1:1 in the vertical (or horizontal) direction by the video decoding device, which allows the video encoding device to skip the signaling of syntax elements (e.g., 1-bit flag) expressing the direction of separation.
Кроме того, устройство кодирования видеоизображений может явно сигнализировать флаг для идентификации подблока из двух подблоков, классифицированных в соответствии с типом разделения, который должен быть кодирован (и, таким образом, подвергаться преобразованию). В некоторых вариантах осуществления устройство кодирования видеоизображений может реагировать на то, когда тип разделения текущего блока является третьим типом или четвертым типом, то есть когда текущий блок асимметрично разделен в горизонтальном или вертикальном направлении, для немедленного решения, о том, что должен кодироваться меньший подблок из двух блоков, пропуская при этом сигнализацию флага для идентификации подблока, подлежащего кодированию.In addition, the video encoder may explicitly signal a flag to identify a sub-block of two sub-blocks classified according to the partition type to be encoded (and thus be transformed). In some embodiments, the video encoder may respond when the split type of the current block is the third type or the fourth type, that is, when the current block is asymmetrically split in the horizontal or vertical direction, to immediately decide whether a smaller subblock of two blocks, while skipping flag signaling to identify the subblock to be encoded.
На этапах с S1040 по S1050 устройство кодирования видеоизображений кодирует остаточный блок или один подблок остаточного блока в соответствии с режимом остаточного кодирования, выбранным для соответствующего остаточного блока текущего блока. Когда выбирается кодирование остаточного блока, устройство кодирования видеоизображений может выполнять преобразование и квантование остаточного блока в единице преобразования, равной по размеру остаточному блоку, и энтропийно кодировать квантованные коэффициенты преобразования. Когда выбирается кодирование только одного подблока остаточного блока, устройство кодирования видеоизображений может выполнять преобразование и квантование подблока, соответствующего позиции преобразования, и энтропийно кодировать квантованные коэффициенты преобразования. Остаточные сигналы других подблоков, соответствующих непреобразованным позициям, считаются равными 0, что устраняет необходимость преобразования информации о коэффициентах.In steps S1040 to S1050, the video encoder encodes the residual block or one subblock of the residual block according to the residual coding mode selected for the corresponding residual block of the current block. When the residual block encoding is selected, the video coding apparatus can perform transformation and quantization of the residual block in a transformation unit equal in size to the residual block, and entropy encode the quantized transform coefficients. When encoding of only one sub-block of the residual block is selected, the video coding apparatus can perform transformation and quantization of the sub-block corresponding to the transformation position and entropy-code the quantized transformation coefficients. Residual signals of other sub-blocks corresponding to untransformed positions are considered to be 0, which eliminates the need to convert coefficient information.
На этапе S1060 устройство кодирования видеоизображений может применить процесс обратного квантования/обратного преобразования к квантованным коэффициентам преобразования, чтобы восстановить остаточные сигналы, соответствующие позициям преобразования, и установить для всех остаточных сигналов других подблоков, соответствующих непреобразованным позициям, значение 0, тем самым восстанавливая остаточный блок для текущего блока. Устройство кодирования видеоизображений может суммировать восстановленный остаточный блок с блоком предсказания, чтобы сгенерировать восстановленный текущий блок.In step S1060, the video encoding apparatus may apply an inverse quantization/inverse transform process to the quantized transform coefficients to recover the residual signals corresponding to the transform positions, and set all residual signals of other sub-blocks corresponding to the untransformed positions to 0, thereby restoring the residual block for current block. The video encoder may add the reconstructed residual block to the prediction block to generate the reconstructed current block.
На этапе S1070 устройство кодирования видеоизображений может выполнять фильтрацию удаления блочности, по меньшей мере, на восстановленном текущем блоке и сохранять отфильтрованный текущий блок в буфере, например, в памяти 190 на фиг. 1 для использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении. В частности, устройство кодирования видеоизображений может установить сетку на N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и определить, применять ли фильтрацию удаления блочности к текущему блоку на основе того, совпадает ли граница между подблоками остаточного блока с границей сетки. Устройство кодирования видеоизображений может выполнять фильтрацию удаления блочности только тогда, когда граница между двумя остаточными подблоками в текущем блоке совпадает с границей сетки. Другими словами, фильтрация удаления блочности может выполняться только тогда, когда граница удаления блочности размером 4×4 (или 8×8) совпадает с границей между остаточными подблоками.In step S1070, the video encoder may perform deblocking filtering on at least the reconstructed current block and store the filtered current block in a buffer, such as memory 190 in FIG. 1 to be used as a reference picture for inter-prediction of incoming blocks in the encoded picture. In particular, the video encoder may grid N samples at regular intervals in the horizontal and vertical directions, and determine whether to apply deblocking filtering to the current block based on whether the boundary between sub-blocks of the residual block coincides with the grid boundary. The video encoder can only perform deblocking filtering when the boundary between two residual sub-blocks in the current block matches the grid boundary. In other words, deblocking filtering can only be performed when a 4×4 (or 8×8) deblocking boundary matches the boundary between the residual sub-blocks.
На фиг. 11 показана блок-схема способа, выполняемого устройством декодирования видеоизображений для декодирования текущего блока, кодированного с интер-предсказанием, из кодированного потока битов видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In FIG. 11 is a flowchart of a method performed by a video decoding apparatus for decoding a current block encoded with inter prediction from an encoded video bitstream according to at least one embodiment of the present invention.
На этапе S1110 устройство декодирования видеоизображений, например блок энтропийного декодирования с фиг. 4, может декодировать информацию о режиме остаточного кодирования соответствующего остаточного блока текущего блока.In step S1110, the video decoding apparatus, such as the entropy decoding unit of FIG. 4 can decode the residual coding mode information of the corresponding residual block of the current block.
Например, устройство декодирования видеоизображений может декодировать из потока битов первый флаг, указывающий, был ли закодирован релевантный остаточный блок текущего блока или только один подблок остаточного блока. Первый флаг, имеющий первое значение (например, «0»), может указывать, что остаточный блок был преобразован, а первый флаг, имеющий второе значение (например, «1»), может указывать, что только один подблок остаточного блока был преобразован.For example, the video decoder may decode from the bitstream a first flag indicating whether a relevant residual block of the current block or only one subblock of the residual block has been encoded. The first flag having a first value (eg, "0") may indicate that the residual block has been converted, and the first flag having a second value (eg, "1") may indicate that only one sub-block of the residual block has been converted.
Когда первый флаг указывает, что был преобразован только один подблок остаточного блока, устройство декодирования видеоизображений может дополнительно декодировать из потока битов один или несколько элементов синтаксиса, представляющих тип разделения (направление разделения и/или коэффициент разделения) остаточного блока и может определять тип разделения остаточного блока, по меньшей мере частично, на основе декодированного одного или нескольких элементов синтаксиса. Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Например, типы разделения могут включать первый тип, который обеспечивает горизонтальное симметричное разделение на два подблока, второй тип, который обеспечивает вертикальное симметричное разделение на два подблока, третий тип, который обеспечивает горизонтальное асимметричное разделение на два подблока. (например, с соотношением 1:3 или 3:1), и четвертый тип, который обеспечивает асимметричное разделение по вертикали на два подблока (например, с соотношением 1:3 или 3:1).When the first flag indicates that only one sub-block of the residual block has been converted, the video decoding apparatus may further decode one or more syntax elements representing the split type (split direction and/or split ratio) of the residual block from the bitstream and may determine the split type of the residual block. , at least in part, based on the decoded one or more syntax elements. Different types of splitting can be considered according to the splitting direction and the splitting factor. For example, the partition types may include a first type that provides a horizontally symmetrical split into two subblocks, a second type that provides a vertically symmetrical split into two subblocks, a third type that provides a horizontal asymmetric split into two subblocks. (for example, with a ratio of 1:3 or 3:1), and a fourth type, which provides an asymmetric vertical division into two sub-blocks (for example, with a ratio of 1:3 or 3:1).
При определении типа разделения ширина и высота текущего блока могут дополнительно учитываться вместе с информацией, указывающей тип разделения. Использование некоторых типов разделения (или направления разделения и/или коэффициента разделения) может быть ограничено в зависимости от ширины и высоты текущего блока, что может исключать сигнализацию элементов синтаксиса, выражающих одни и те же типы разделения (или направление разделения и/или отношение разделения).When determining the split type, the width and height of the current block may be further taken into account, along with information indicating the split type. The use of some split types (or split direction and/or split factor) may be restricted depending on the width and height of the current box, which may preclude signaling syntax elements expressing the same split types (or split direction and/or split ratio) .
По меньшей мере в одном варианте осуществления устройство может реагировать на то, когда ширина и высота текущего блока меньше 16 пикселей, запрещая разделение текущего блока «в соотношении 1:3 или 3:1». Соответственно, когда ширина и высота остаточного блока меньше 16 пикселей, устройство декодирования видеоизображений может просто сделать вывод о том, что отношение разделения равно 1:1 без необходимости декодировать элемент синтаксиса, указывающий направление разделения, например, 1- битовый флаг.In at least one embodiment, the device may respond when the current block's width and height are less than 16 pixels by disallowing the current block to be split "at a ratio of 1:3 or 3:1". Accordingly, when the width and height of the residual block is less than 16 pixels, the video decoding apparatus can simply infer that the split ratio is 1:1 without having to decode a syntax element indicating the split direction, such as a 1-bit flag.
Согласно другому варианту осуществления устройство может реагировать на то, когда ширина (или высота) текущего блока меньше 8 пикселей, запрещая разделение текущего блока в вертикальном направлении (или горизонтальном направлении). Следовательно, когда ширина остаточного блока меньше 8 пикселей, устройство декодирования видеоизображений может просто сделать вывод о направлении разделения как о горизонтальном направлении без необходимости декодировать элемент синтаксиса, указывающий направление разделения. Таким же образом, когда высота остаточного блока меньше 8 пикселей, устройство декодирования видеоизображений может просто сделать вывод о направлении разделения как о вертикальном направлении без необходимости декодировать элемент синтаксиса, указывающий направление.According to another embodiment, the device may respond when the width (or height) of the current box is less than 8 pixels by preventing the current box from being split in the vertical direction (or horizontal direction). Therefore, when the width of the residual block is less than 8 pixels, the video decoding apparatus can simply infer the split direction as the horizontal direction without having to decode the syntax element indicating the split direction. In the same way, when the height of the residual block is less than 8 pixels, the video decoding apparatus can simply infer the split direction as a vertical direction without having to decode the syntax element indicating the direction.
Чтобы идентифицировать подблок, из которого должна быть декодирована информация о коэффициентах преобразования, устройство декодирования видеоизображений может дополнительно декодировать из потока битов элемент синтаксиса (например, 1-битовый флаг), указывающий позицию кодированного подблока, и, таким образом, позицию подблока, в которой было выполнено преобразование. В некоторых вариантах осуществления устройство декодирования видеоизображений может реагировать на то, когда тип разделения текущего блока является третьим или четвертым типом, немедленно делая вывод о том, что преобразование претерпел меньший подблок из двух блоков, пропуская декодирование элемента синтаксиса для указания позиции подблока, где было выполнено преобразование.In order to identify the subblock from which the transform coefficient information is to be decoded, the video decoding apparatus may further decode from the bitstream a syntax element (eg, a 1-bit flag) indicating the position of the encoded subblock, and thus the position of the subblock at which the conversion done. In some embodiments, the video decoder may respond when the split type of the current block is the third or fourth type by immediately inferring that the transformation has undergone a smaller subblock of two blocks, skipping decoding the syntax element to indicate the subblock position where it was performed. transformation.
На этапах с S1120 по S1130 устройство декодирования видеоизображений может восстанавливать релевантный остаточный блок текущего блока на основе декодированной информации режима остаточного кодирования.In steps S1120 to S1130, the video decoding apparatus may reconstruct the relevant residual block of the current block based on the decoded residual coding mode information.
Когда первый флаг указывает, что соответствующий остаточный блок текущего блока был закодирован, устройство декодирования видеоизображений может декодировать из потока битов информацию о коэффициентах преобразования для остаточного блока, чтобы восстановить коэффициенты преобразования. После этого устройство декодирования видеоизображений выполняет обратное квантование коэффициентов преобразования и выполняет обратное преобразование квантованных коэффициентов преобразования в единице преобразования, равной по размеру остаточному блоку, тем самым восстанавливая остаточный блок текущего блока.When the first flag indicates that the corresponding residual block of the current block has been encoded, the video decoding apparatus may decode transform coefficient information for the residual block from the bitstream to recover the transform coefficients. Thereafter, the video decoding apparatus performs inverse quantization of the transform coefficients and inversely transforms the quantized transform coefficients in a transform unit equal in size to the residual block, thereby recovering the residual block of the current block.
Когда первый флаг указывает, что был закодирован только один подблок остаточного блока, устройство декодирования видеоизображений может декодировать из потока битов информацию о коэффициентах преобразования для подблока, соответствующего позиции преобразования, чтобы восстановить коэффициенты преобразования. После этого устройство декодирования видеоизображений выполняет обратное квантование и обратное преобразование коэффициентов преобразования для генерации остаточных сигналов для подблока, соответствующего позиции преобразования, и устанавливает все остаточные сигналы другого подблока, соответствующего позиции без преобразования, в 0, таким образом восстанавливая остаточный блок текущего блока.When the first flag indicates that only one subblock of the residual block has been encoded, the video decoding apparatus may decode transform coefficient information for the subblock corresponding to the transform position from the bit stream to recover the transform coefficients. Thereafter, the video decoding apparatus performs inverse quantization and inverse transformation of the transform coefficients to generate residual signals for the subblock corresponding to the transform position, and sets all residual signals of the other subblock corresponding to the untransformed position to 0, thereby restoring the residual block of the current block.
На этапе S1140 устройство декодирования видеоизображений может сгенерировать блок предсказания посредством интер-предсказания текущего блока и может восстановить текущий блок, суммируя блок предсказания и остаточный блок.In step S1140, the video decoding apparatus may generate a prediction block by inter-prediction of the current block, and may reconstruct the current block by summing the prediction block and the residual block.
На этапе S1150 устройство декодирования видеоизображений может выполнить фильтрацию удаления блочности, по меньшей мере, на восстановленном текущем блоке и сохранить отфильтрованный текущий блок в буфере, и т.п., например, в памяти 470 с фиг. 4, для использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении. Устройство декодирования видеоизображений может установить сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и определить на основе границы установленной сетки, применять ли фильтрацию удаления блочности к текущему блоку. Например, фильтрация удаления блочности может применяться к границе между текущим блоком и другими блоками, которые уже были декодированы, когда эта граница совпадает с границей сетки. Кроме того, фильтрация удаления блочности может применяться к границе между подблоками остаточного блока, когда эта граница совпадает с границей сетки. Сетка в различных единицах может использоваться в зависимости от того, является ли текущий блок блоком яркости или блоком цветности. Например, сетка может быть установлена в единицах 4×4 для блока яркости, и сетка может быть установлена в единицах 8×8 для блока цветности.In step S1150, the video decoding apparatus may perform deblocking filtering on at least the reconstructed current block, and store the filtered current block in a buffer, etc., for example, in the
Следует понимать, что в приведенном выше описании представлены иллюстративные варианты осуществления, которые могут быть реализованы различными другими способами. Функции, описанные в некоторых вариантах осуществления, могут быть реализованы с помощью оборудования, программного обеспечения, встроенного программного обеспечения и/или их комбинации. Также следует понимать, что функциональные компоненты, описанные в настоящем описании, помечены как «… блок», чтобы особо подчеркнуть возможность их автономной реализации.It should be understood that the above description provides exemplary embodiments that may be implemented in various other ways. The functions described in some embodiments may be implemented using hardware, software, firmware, and/or combinations thereof. It should also be understood that the functional components described in the present description are marked as "... block" to emphasize the possibility of their stand-alone implementation.
Между тем, различные способы или функции, приведенные в настоящем описании, могут быть реализованы как инструкции, хранящиеся на энергонезависимом носителе информации, которые могут быть прочитаны и выполнены одним или несколькими процессорами. Энергонезависимый носитель записи включает в себя, например, все типы записывающих устройств, в которых данные хранятся в форме, читаемой компьютерной системой. Например, энергонезависимый носитель информации может включать в себя, среди прочего, носители данных, такие как стираемое программируемое постоянное запоминающее устройство (EPROM), флэш-накопитель, оптический накопитель, магнитный жесткий диск и твердотельный накопитель (SSD).Meanwhile, various methods or functions described herein may be implemented as instructions stored in a non-volatile storage medium that can be read and executed by one or more processors. A non-volatile recording medium includes, for example, all types of recording devices in which data is stored in a form readable by a computer system. For example, a non-volatile storage medium may include, among other things, storage media such as an erasable programmable read-only memory (EPROM), a flash drive, an optical drive, a magnetic hard disk, and a solid state drive (SSD).
Несмотря на то, что примерные варианты осуществления настоящего изобретения были описаны в иллюстративных целях, специалисты в данной области техники поймут, что возможны различные модификации, дополнения и замены без отклонения от идеи и объема заявленного изобретения. Следовательно, для краткости и ясности были описаны примерные варианты осуществления настоящего изобретения. Объем технической идеи настоящих вариантов осуществления не ограничен иллюстрациями. Соответственно, рядовому специалисту понятно, что объем заявленного изобретения ограничивается не ариантами осуществления, которые были непосредственно описаны выше, а формулой изобретения и ее эквивалентами.While the exemplary embodiments of the present invention have been described for illustrative purposes, those skilled in the art will appreciate that various modifications, additions, and substitutions are possible without departing from the spirit and scope of the claimed invention. Therefore, for brevity and clarity, exemplary embodiments of the present invention have been described. The scope of the technical idea of the present embodiments is not limited to the illustrations. Accordingly, one of ordinary skill in the art will appreciate that the scope of the claimed invention is not limited by the embodiments that have been directly described above, but by the claims and their equivalents.
Ссылка на родственную заявкуLink to related application
Эта заявка испрашивает приоритет корейской заявки на получение патента № 10-2019-0028364, поданной 12 марта 2019 г., описание которой полностью включено в настоящий документ посредством ссылки.This application claims priority from Korean Patent Application No. 10-2019-0028364, filed March 12, 2019, the disclosure of which is incorporated herein by reference in its entirety.
Claims (50)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0028364 | 2019-03-12 |
Related Child Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022119480A Division RU2803537C2 (en) | 2019-03-12 | 2020-03-12 | Method and device for effective encoding of residual blocks |
RU2022119482A Division RU2803519C9 (en) | 2019-03-12 | 2020-03-12 | Method and device for effective encoding of residual blocks |
RU2022119481A Division RU2803426C2 (en) | 2019-03-12 | 2020-03-12 | Method and device for effective encoding of residual blocks |
RU2022119483A Division RU2803532C2 (en) | 2019-03-12 | 2020-03-12 | Method and device for effective encoding of residual blocks |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2776871C1 true RU2776871C1 (en) | 2022-07-28 |
Family
ID=
Non-Patent Citations (1)
Title |
---|
KENNETH ANDERSSON et al, CE11: Deblocking for 4 x N, N x 4 and 8 x N and N x 8 block boundaries that not are aligned with 8x8 grid (test 11.2.1), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC29/WG11, JVET-M0299-v1, 13th Meeting: Marrakech, 9-18 Jan. 2019. KR20180085526 A - 2018-07-27. ZHAO, YIN et al., CE6: Sub-block transform for inter blocks (CE6.4.1), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC29/WG11, JVET-M0140-v3, 13th Meeting: Marrakech, 9-18 Jan. 2019. WO 2018221817 A1 - 2018-12-06. RU 2016147170 A - 2018-07-16. WO 2016043933 A1 - 2016-03-24. KAZUO SUGIMOTO et al, CE6.f: LUT-based adaptive filtering on intra prediction samples, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-E069, 5th Meeting: Geneva, 16-23 March, 2011. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113574877B (en) | Method and apparatus for efficiently decoding residual block | |
US20220191530A1 (en) | Intra prediction method and device for predicting and dividing prediction unit into sub-units | |
RU2776871C1 (en) | Method and device for efficient coding of residual blocks | |
RU2803519C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803537C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803519C9 (en) | Method and device for effective encoding of residual blocks | |
RU2803426C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803532C2 (en) | Method and device for effective encoding of residual blocks | |
RU2785384C1 (en) | Image decoding device using differential encoding | |
RU2803065C2 (en) | Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks | |
RU2803425C2 (en) | Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks | |
RU2803474C2 (en) | Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks | |
RU2803473C2 (en) | Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks | |
RU2815809C2 (en) | Image decoding device using differential coding | |
RU2809228C2 (en) | Image decoding device using differential coding | |
RU2810083C2 (en) | Image decoding device using differential coding | |
RU2810127C2 (en) | Image decoding device using differential coding | |
US11956427B2 (en) | Method of restoration in subblock units, and video decoding apparatus | |
RU2777755C1 (en) | Method and device for intra-prediction, in which the prediction block is divided into sub-blocks and predicted in sub-blocks | |
CN114762328B (en) | Video encoding and decoding method using differential modulation | |
CN114270842B (en) | Video encoding and decoding using differential encoding | |
US20220132156A1 (en) | Image decoding device using differential coding | |
US20240007645A1 (en) | Video encoding and decoding method using adaptive reference pixel selection | |
US20240007620A1 (en) | Image encoding and decoding method using adaptive alternative mode | |
CN116458160A (en) | Image coding and decoding method using adaptive substitution mode |