RU2803519C2 - Method and device for effective encoding of residual blocks - Google Patents
Method and device for effective encoding of residual blocks Download PDFInfo
- Publication number
- RU2803519C2 RU2803519C2 RU2022119482A RU2022119482A RU2803519C2 RU 2803519 C2 RU2803519 C2 RU 2803519C2 RU 2022119482 A RU2022119482 A RU 2022119482A RU 2022119482 A RU2022119482 A RU 2022119482A RU 2803519 C2 RU2803519 C2 RU 2803519C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- current block
- residual
- sub
- prediction
- Prior art date
Links
Images
Abstract
Description
Область техникиTechnical field
Настоящее изобретение, описанное на примере некоторых вариантов осуществления, относится к кодированию и декодированию видеоизображений. В частности, настоящее изобретение относится к способу и устройству для эффективного кодирования остаточных блоков.The present invention, described by way of example of some embodiments, relates to encoding and decoding of video images. In particular, the present invention relates to a method and apparatus for efficiently encoding residual blocks.
Уровень техникиState of the art
Поскольку видеоданные имеют большой объем данных по сравнению с аудиоданными или данными неподвижных изображений, требуется много аппаратных ресурсов, включая память, для хранения или передачи данных в необработанном виде перед тем, как подвергнуть их процессу сжатия.Since video data has a large data volume compared to audio data or still image data, it requires a lot of hardware resources, including memory, to store or transmit the data in raw form before subjecting it to the compression process.
Соответственно, хранение или передача видеоданных обычно сопровождается их сжатием с использованием кодирующего устройства до того, как блок декодирования сможет принимать, распаковывать и воспроизводить сжатые видеоданные. Известные технологии сжатия видеоизображений включают стандарт H.264/AVC и стандарт высокоэффективного кодирования видеоизображений (HEVC), повышающий эффективность кодирования Н.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 back the compressed video data. Well-known video compression technologies include the H.264/AVC standard and the High Efficiency Video Coding (HEVC) standard, which improves H.264/AVC coding efficiency by approximately 40%.
Однако постоянное увеличение размера, разрешения и частоты кадров видеоизображений и, как следствие, увеличение объема данных, подлежащих кодированию, требует нового и улучшенного метода сжатия с более высокой эффективностью кодирования и более высоким качеством изображения по сравнению с известными методами сжатия.However, the ever-increasing size, resolution, and frame rate of video images, and the resulting increase in the amount of data that needs to be encoded, requires a new and improved compression method with higher encoding efficiency and higher image quality than existing compression methods.
В процессе кодирования видеоизображений устройство кодирования видеоизображений генерирует остаточный блок, выполняя предсказание текущего блока посредством интра-предсказания или интер-предсказания, а затем вычитая значения отсчетов текущего блока из значений отсчетов блока предсказания. Устройство кодирования видеоизображений разделяет остаточный блок на один или несколько блоков преобразования, применяет преобразование к одному или нескольким блокам преобразования и тем самым преобразует остаточные значения блоков преобразования из области пикселей в область частот. В зависимости от точности предсказания в некоторых областях остаточного блока может не быть остаточных значений или быть не много остаточных значений, и иногда очень неэффективно вслепую разделять остаточный блок на блоки преобразования меньшего размера.In the video encoding process, the video encoding apparatus generates a residual block by predicting 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 encoding apparatus divides the residual block into one or more transform blocks, applies a transform to the one or more transform blocks, and thereby transforms the residual values of the transform blocks from the pixel domain to the frequency domain. Depending on the prediction accuracy, some regions of the residual block may have no residual values or not many residual values, and sometimes it is very inefficient to blindly divide the residual block into smaller transform blocks.
Раскрытие сущности изобретенияDisclosure of the invention
Техническая проблема, решаемая изобретениемTechnical problem solved by the invention
Настоящее изобретение, описанное на примере некоторых вариантов осуществления, направлено на то, чтобы предложить схему кодирования остаточных блоков, подходящую для остаточных блоков, имеющих области без остаточных значений или с небольшими остаточными значениями.The present invention, described by way of some embodiments, aims to provide a residual block encoding scheme suitable for residual blocks having regions with no residual values or small residual values.
Техническое решениеTechnical solution
В соответствии с по меньшей мере одним аспектом настоящего изобретения предложено устройство декодирования видеоизображений, включающее блок декодирования, блок предсказания, блок обратного квантования и обратного преобразования, сумматор и блок фильтрации. Блок декодирования выполнен с возможностью декодирования из потока битов флага, указывающего, были ли закодированы остаточные сигналы, соответствующие только частичной области текущего блока, и декодирования из потока битов информации о коэффициентах преобразования для одного подблока из двух разделенных подблоков из текущего блока для восстановления коэффициентов преобразования, когда флаг указывает, что были закодированы остаточные сигналы, соответствующие только частичной области текущего блока. Блок предсказания выполнен с возможностью предсказания текущего блока для генерации блока предсказания. Блок обратного квантования и обратного преобразования выполнен с возможностью выполнения обратного квантования и обратного преобразования коэффициентов преобразования в одном подблоке, для которого была декодирована информация о коэффициентах преобразования, чтобы генерировать остаточный блок для текущего блока. Сумматор выполнен с возможностью суммирования блока предсказания и остаточного блока для восстановления текущего блока. Блок фильтрации выполнен с возможностью установки сетки из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнения фильтрации удаления блочности на границе между двумя подблоками в текущем блоке, которая совпадает с границей сетки.In accordance with at least one aspect of the present invention, a video decoding apparatus is provided, including a decoding unit, a prediction unit, an inverse quantization and inverse transform unit, an adder, and a filtering unit. The decoding unit is configured to decode from the bitstream a flag indicating whether residual signals corresponding to only a partial area of the current block have been encoded, and decode from the bitstream information about transform coefficients for one subblock of two divided subblocks from the current block to recover 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 transform transformation of 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 a grid of N samples at regular intervals in the horizontal and vertical directions and perform deblocking filtering at the boundary between two subblocks in the current block, which 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 the bitstream 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 transform coefficient information bits 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) creating a residual block for the current block by performing inverse quantization and inverse transformation of the transform coefficients in one subblock for which the transform coefficient information has been decoded, (v) reconstructing the current block by adding the prediction block and the residual block, and (vi) establishing a grid of N samples through equal spacing in the horizontal and vertical directions, and performing deblocking filtering at the boundary between two subblocks in the current block that coincides with the grid boundary.
Краткое описание чертежейBrief description of drawings
На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением.In fig. 1 is a diagram illustrating a video encoding apparatus that can implement the methods proposed by the present invention.
На фиг. 2 показана схема, поясняющая способ разделения блока с использованием структуры QTBTTT.In fig. 2 is a diagram explaining a block division method using the QTBTTT structure.
На фиг. 3А показана схема, иллюстрирующая множество режимов интра-предсказания.In fig. 3A is a diagram illustrating a variety of intra-prediction modes.
На Фиг. 3В показана схема, иллюстрирующая множество режимов интра-предсказания, включая режимы широкоугольного интра-предсказания.In FIG. 3B is a diagram illustrating a variety of intra-prediction modes, including wide-angle intra-prediction modes.
На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать технологии, предложенные настоящим изобретением.In FIG. 4 is a diagram illustrating a video decoding apparatus capable of implementing the technologies proposed by the present invention.
На фиг. 5A-5D показаны различные типы разделения остаточного блока и подблоков, подлежащих кодированию.In fig. 5A-5D show various types of division of the residual block and subblocks to be encoded.
На фиг. 6 показана схема, поясняющая случай кодирования отдельного подблока в релевантном остаточном блоке текущего блока, иллюстрирующая позиции соседних блоков, на которые следует ссылаться для предсказания параметра квантования (QP).In fig. 6 is a diagram explaining the case of encoding a single sub-block in a relevant residual block of a current block, illustrating the positions of neighboring 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 luma block, which is combined with the chrominance block.
На фиг. 8 показана схема восстановленных текущих блоков, иллюстрирующая их релевантные остаточные блоки, подвергающиеся вертикальным разбиениям и трансформациям в своих левых подблоках для того, чтобы выявить границы их межблочного разделения по границе удаления блочности.In fig. 8 is a diagram of reconstructed current blocks, illustrating their relevant residual blocks undergoing vertical splits and transformations in their left subblocks to reveal their inter-block separation boundaries along the deblocking boundary.
На фиг. 9 показана схема, поясняющая фильтрацию удаления блочности, выполняемую на границе между остаточными подблоками на уровне остаточного сигнала.In fig. 9 is a diagram for explaining deblocking filtering performed at the boundary between residual subblocks at the residual signal level.
На фиг. 10 показана блок-схема способа, выполняемого устройством кодирования видеоизображений для кодирования с интер-предсказанием текущего блока видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In fig. 10 is a flowchart of a method performed by a video encoding apparatus for inter-predictive encoding 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 a current inter-prediction encoded block from a coded video bitstream according to at least one embodiment of the present invention.
Осуществление изобретенияCarrying out the invention
Далее вариант осуществления настоящего изобретения будет подробно описан со ссылкой на приложенные чертежи. В нижеследующем описании одинаковые номера позиций предпочтительно относятся к одинаковым элементам, несмотря на то, что эти элементы показаны на разных чертежах. Кроме того, в целях ясности и краткости изложения, в нижеследующем описании некоторых вариантов осуществления опущено подробное описание относящихся к ним известных компонентов и функций, в случае, когда они затрудняют понимание объекта настоящего изобретения.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. In the following description, like reference numerals preferably refer to like elements even though the elements are shown in different drawings. In addition, for the sake of clarity and brevity, the following description of certain embodiments has omitted detailed descriptions of related known components and functions insofar as they obscure the subject matter of the present invention.
На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением. Далее устройство кодирования видеоизображений и компоненты устройства будут описаны со ссылкой на фиг. 1.In fig. 1 is a diagram illustrating a video encoding apparatus that can implement the methods proposed by the present invention. Next, the video encoding device and components of the device will be described with reference to FIG. 1.
Устройство кодирования видеоизображений может быть сконфигурировано так, что оно содержит блок 110 разделения изображения, блок 120 предсказания, блок 130 вычитания, блок 140 преобразования, блок 145 квантования, блок 150 переупорядочивания, блок 155 энтропийного кодирования, блок 160 обратного квантования, блок 165 обратного преобразования, сумматор 170, блок 180 фильтрации и память 190.The video encoding apparatus may be configured to include an
Соответствующие компоненты устройства кодирования видеоизображений могут быть реализованы как аппаратное или программное обеспечение, или в виде комбинации аппаратного и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее выполнения микропроцессором.The corresponding components of the video encoding apparatus may be implemented as hardware or software, or a combination of hardware and software. In addition, the function of each component may be implemented in software, and the software function of each component may be implemented to be executed by a microprocessor.
Видеоизображение состоит из множества изображений. Каждое изображение разбивается на множество участков, и для каждого участка выполняется кодирование. Например, одно изображение разбивается на один или несколько фрагментов и/или секций. Здесь один или несколько фрагментов могут быть определены как группа фрагментов. Каждый фрагмент и/или секцию разделяют на одну или несколько единиц дерева кодирования (CTU). И каждую единицу CTU разделяют на одну или несколько единиц кодирования (CU) древовидной структурой. Информация, применяемая к соответствующим единицам CU, кодируется как синтаксис CU, а информация, обычно применяемая к единицам CU, включенным в одну единицу CTU, кодируется как синтаксис CTU. Кроме того, информация, обычно применяемая ко всем блокам в одной секции, кодируется как синтаксис заголовка секции, а информация, применяемая ко всем блокам, составляющим одно изображение, кодируется в наборе параметров изображения (PPS) или заголовке изображения. Кроме того, информация, на которую обычно ссылается множество изображений, кодируется в наборе параметров последовательности (SPS). Кроме того, информация, на которую обычно ссылаются один или несколько наборов SPS, кодируется в наборе параметров видеоизображения (VPS). Таким же образом информация, обычно применяемая к одному фрагменту или группе фрагментов, может быть закодирована как синтаксис заголовка фрагмента или заголовка группы фрагментов.A video image consists of many images. Each image is divided into multiple regions, and coding is performed for each region. For example, one image is divided into one or more fragments and/or sections. Here, one or more fragments may 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 (CUs) in a tree structure. Information applied to the corresponding CUs is encoded as CU syntax, and information generally applied to CUs included in a single CTU is encoded as CTU syntax. In addition, information typically applied to all blocks in one section is encoded as section header syntax, and information applied to all blocks constituting one image is encoded in picture parameter set (PPS) or image header. In addition, information typically referenced by multiple images is encoded in a Sequence Parameter Set (SPS). In addition, information typically referenced by one or more SPSs is encoded in a Video Parameter Set (VPS). In the same way, information typically 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 (ВТ)), в котором верхний узел разделен на два нижних узла, троичным деревом (TernaryTree (ТТ)), в котором верхний узел разделен на три нижних узла с соотношением размеров 1: 2: 1, или комбинацией двух или более из структуры QT, структуры ВТ и структуры ТТ. Например, может использоваться структура, включающая дерево квадрантов и двоичное дерево (QTBT), или структура, включающая дерево квадрантов и двоичное дерево троичное дерево (QTBTTT). Здесь ВТТТ может в совокупности называться деревом множественного типа (МТТ).The tree structure used can be a QuadTree (QT) in which the top node (or parent node) is divided into four equally sized lower nodes (or child nodes), a BinaryTree (BT) in which the top node divided into two lower nodes, by a ternary tree (TT) in which the top node is divided into three lower nodes with a size ratio of 1:2:1, or a combination of two or more of a QT structure, a BT structure, and a TT structure. For example, a structure including quadtree and binary tree (QTBT) or a structure including quadtree and binary tree ternary (QTBTTT) may be used. Here, the VTTT 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) блока корневого узла, разрешенного в структуре ВТ, он может быть дополнительно разделен на любую одну или более структур ВТ или структур ТТ. В структуре ВТ и/или структуре ТТ может быть множество направлений разделения. Например, может быть два направления, в которых блок соответствующего узла разделяется по горизонтали и по вертикали. Как показано на фиг. 2, когда начинается разделение МТТ, второй флаг (mtt_split_flag), указывающий, разделены ли узлы, и, если да, дополнительный флаг, указывающий направления разделения (вертикальное или горизонтальное), и/или флаг, указывающий разделение или тип разделения (двоичное или троичное) кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.In fig. Figure 2 shows the tree structure of the QTBTTT partition. As shown in FIG. 2, the CTU unit can be first divided into a QT structure. Quadtree splitting can be repeated until the splitting block size reaches the minimum block size (MinQTSize) of a 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) may be encoded indicating whether the node is split or not. When the value of a CU's split flag (split_cu_flag) indicates that a node has not been split, the block of that node becomes a leaf node in the split tree structure and becomes a coding unit (CU), which is the base coding unit. When the value of the CU split flag (split_cu_flag) indicates that a node has been split, the video encoding apparatus starts encoding from the first flag in the manner described above.
В качестве другого примера древовидной структуры, в которой используется структура QTBT, можно привести два типа разделения, включающие тип, в котором по горизонтали разделяют блок соответствующего узла на два блока одинакового размера (т.е. симметричное горизонтальное разделение), и тип, в котором его же разделяют по вертикали (т.е. симметричное вертикальное разделение). Кодируемым блоком 155 энтропийного кодирования и передаваемым в устройство декодирования видеоизображений является флаг разделения (split_flag), указывающий, разделен ли каждый узел структуры ВТ на блоки нижнего уровня, и информацию о типе разделения, указывающую тип его разделения. Между тем, может быть дополнительный тип, в котором блок соответствующего узла разбивается на два асимметрично сформированных блока. Асимметричная форма может включать в себя форму блока соответствующего узла, разбиваемого на два прямоугольных блока, имеющих соотношение размеров 1:3, или форму блока соответствующего узла, разбиваемого в диагональном направлении.As another example of a tree structure that uses the QTBT structure, there are two types of partitioning, including a type that horizontally divides the block of the corresponding node into two blocks of the same size (i.e., symmetrical horizontal partitioning), and a type that it is also divided vertically (i.e. symmetrical vertical division). Encoded by the
Единица CU может иметь различные размеры в зависимости от структуры QTBT или QTBTTT разделения единицы CTU. В дальнейшем блок, соответствующий единице CU, который должен быть закодирован или декодирован (то есть концевой узел QTBTTT), называется «текущим блоком». При использовании разделения QTBTTT текущий блок может иметь форму не только квадрата, но и прямоугольника.The CU unit can have different sizes depending on the structure of the QTBT or QTBTTT division of the CTU unit. In the following, the block corresponding to the CU to be encoded or decoded (i.e., the QTBTTT end node) is called the “current block”. When using QTBTTT splitting, the current block can be shaped not only as a square, but also as a rectangle.
Блок 120 предсказания предсказывает текущий блок, чтобы сгенерировать блок предсказания. Блок 120 предсказания включает в себя блок 122 интра-предсказания и блок 124 интер-предсказания.The
В общем, каждый из текущих блоков изображения может кодироваться с предсказанием. Предсказание текущего блока обычно может выполняться с использованием метода интра-предсказания или метода интер-предсказания, при этом метод интра-предсказания использует данные из самого изображения, содержащего текущий блок, а метод интер-предсказания использует данные из предыдущего изображения, закодированного перед изображением, содержащим текущий блок. Интер-предсказание включает в себя как однонаправленное, так и двунаправленное предсказание.In general, each of the current image blocks may be predictively encoded. Prediction of the current block can usually be done using an intra-prediction method or an inter-prediction method, with the intra-prediction method using data from the image containing the current block itself, and the inter-prediction method using data from the previous image encoded before the image containing current block. Inter-prediction includes both unidirectional and bidirectional prediction.
Блок 122 интра-предсказания предсказывает пиксели в текущем блоке, используя периферийные пиксели (опорные пиксели), расположенные вокруг текущего блока в текущем изображении. Различные направления предсказания представляют несколько соответствующих режимов интра-предсказания. Например, как показано на фиг. 3А, несколько режимов интра-предсказания могут включать в себя 2 ненаправленных режима, включая планарный режим и режим DC, а также 65 направленных режимов. Соответствующие режимы предсказания обеспечивают различные соответствующие определения соседних пикселей и формул вычисления, которые должны использоваться.The
Для эффективного направленного предсказания текущего блока прямоугольной формы дополнительными используемыми режимами могут быть направленные режимы, показанные на фиг. 3В пунктирными стрелками режимов интра-предсказания под номерами 67-80 и под номерами от -1 до -14. Они могут называться «режимами широкоугольного интра-предсказания». Стрелки на фиг. 3В указывают соответствующие опорные отсчеты, используемые для предсказания, а не направления предсказания. Направление предсказания противоположно направлению, указанному стрелкой. Режимы широкоугольного интра-предсказания - это режимы, применяемые, когда текущий блок имеет прямоугольную форму, чтобы выполнять предсказание конкретного направленного режима в обратном направлении без дополнительной передачи битов. В этом случае из режимов широкоугольного интра-предсказания некоторые режимы широкоугольного интра-предсказания, доступные для использования в текущем блоке, могут определяться отношением ширины к высоте прямоугольного текущего блока. Например, режимы широкоугольного интра-предсказания, которые имеют угол меньше 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 with dotted arrows of intra-prediction modes numbered 67-80 and numbers from -1 to -14. These may be called "wide-angle intra-prediction modes". Arrows in Fig. 3B indicate the corresponding reference samples used for prediction rather than the direction of prediction. The direction of the 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 shape to perform backward prediction of a specific directional mode without additional bit transmission. In this case, of 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 numbered 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 that have an angle of -135 degrees or greater (intra-prediction modes numbered -1 through -14) are available for use in the current block if 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 интер-предсказания.
Блок 140 преобразования разделяет остаточный блок на один или несколько блоков преобразования, применяет преобразование к одному или более блокам преобразования и, таким образом, преобразует остаточные значения блоков преобразования из области пикселей в область частот. В области частот преобразованные блоки называются блоками коэффициентов, содержащими одно или более значений коэффициентов преобразования. Ядро двумерного преобразования может использоваться для преобразования, а ядро одномерного преобразования может использоваться для каждого из горизонтального преобразования и преобразования в вертикальном направлении. Ядра преобразования могут быть основаны на дискретном косинусном преобразовании (DCT), дискретном синусоидальном преобразовании (DST) или другом подобном.The
Блок 140 преобразования может преобразовывать остаточные сигналы в остаточном блоке, используя весь размер остаточного блока в качестве блока преобразования. Кроме того, блок 140 преобразования может разделять остаточный блок на два подблока в горизонтальном или вертикальном направлении и выполнять преобразование только на одном из двух подблоков, как будет описано ниже со ссылкой на фигуры с 5А по 5D. Соответственно, размер блока преобразования может отличаться от размера остаточного блока (и, следовательно, размера блока предсказания). В подблоке, в котором не выполняется преобразование, может не быть ненулевых остаточных значений отсчетов или они могут быть очень немногочисленными. Для остаточных отсчетов подблока, в котором выполняется преобразование, сигнализация не выполняется, и все они могут рассматриваться устройством декодирования видеоизображений как «0». В зависимости от направлений и соотношений разделения может существовать несколько типов разделения. Блок 140 преобразования предоставляет блоку 155 энтропийного кодирования информацию о режиме кодирования (или режиме преобразования) остаточного блока, такую как информацию, указывающую, является ли преобразованный остаточный блок остаточным подблоком, информацию, указывающую тип разделения, выбранный для разделения остаточного блока на подблоки и информацию для идентификации подблока, в котором выполняется преобразование, и т.д. Блок 155 энтропийного кодирования может кодировать информацию о режиме кодирования (или режиме преобразования) остаточного блока.The
Блок 145 квантования квантует коэффициенты преобразования, выданные из блока 140 преобразования, и выводит квантованные коэффициенты преобразования в блок 155 энтропийного кодирования. Блок 145 квантования может напрямую квантовать соответствующий остаточный блок для определенного блока или кадра без преобразования.The
Блок 150 переупорядочивания может переупорядочивать значения коэффициентов на квантованных остаточных отсчетах. Блок 150 переупорядочивания может использовать сканирование коэффициентов для преобразования двумерной матрицы коэффициентов в одномерную последовательность коэффициентов. Например, блок 150 переупорядочивания может сканировать коэффициенты DC до коэффициентов в высокочастотной области посредством зигзагообразного сканирования или диагонального сканирования для вывода одномерной последовательности коэффициентов. В зависимости от размера блока преобразования и режима интра-предсказания используемое зигзагообразное сканирование может быть заменено вертикальным сканированием для сканирования двумерного массива коэффициентов в направлении столбца и горизонтальным сканированием для сканирования коэффициентов в форму двумерного блока в направлении строки. Другими словами, способ сканирования, который должен использоваться, может быть выбран из зигзагообразного сканирования, диагонального сканирования, вертикального сканирования и горизонтального сканирования в соответствии с размером блока преобразования и режимом интра-предсказания.
Блок 155 энтропийного кодирования использует различные методы кодирования, такие как контекстно-зависимое адаптивное двоичное арифметическое кодирование (САВАС), экспоненциальный код Голомба и т.п., для кодирования последовательности одномерных квантованных коэффициентов преобразования, выводимых из блока 150 переупорядочивания для генерации потока битов.
Кроме того, блок 155 энтропийного кодирования кодирует информацию о разделении блока, такую как размер единицы CTU, флаг разделения единицы CU, флаг разделения QT, тип разделения МТТ и направление разделения МТТ, позволяя устройству декодирования видеоизображений разделить блок таким же образом, как и устройство кодирования видеоизображений. Кроме того, блок 155 энтропийного кодирования кодирует информацию о типе предсказания, указывающую, закодирован ли текущий блок посредством интра-предсказания или интер-предсказания, и декодирует, в зависимости от типа предсказания, информацию интра-предсказания, то есть информацию о режиме интра-предсказания или информацию интер-предсказания, т.е. информацию об опорных изображениях и векторах движения.In addition, the
Блок 160 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования, выводимых из блока 145 квантования, для генерации коэффициентов преобразования. Блок 165 обратного преобразования преобразует коэффициенты преобразования, выданные из блока 160 обратного квантования, из частотной области в пространственную область, чтобы восстановить остаточный блок.The
Блок 170 суммирования складывает восстановленный остаточный блок и блок предсказания, сгенерированный блоком 120 предсказания, чтобы восстановить текущий блок. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании следующего блока.
Блок 180 фильтрации выполняет фильтрацию восстановленных пикселей для уменьшения блочных артефактов, артефактов звона, артефактов размытия и т.д., генерируемых вследствие предсказания на основе блоков и преобразования/квантования. Блок 180 фильтрации может включать в себя фильтр 182 удаления блочности и фильтр 184 адаптивного смещения отсчетов (SAO).The
Фильтр 180 удаления блочности фильтрует границу между восстановленными блоками, чтобы удалить блочный артефакт, вызванный поблочным кодированием/декодированием, а фильтр 184 SAO выполняет дополнительную фильтрацию отфильтрованного изображения с удаленной блочностью. Фильтр SAO 184 -это фильтр, используемый для компенсации разницы между восстановленным пикселем и исходным пикселем, вызванной кодированием с потерями.A
Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в приближающемся изображении, подлежащим кодированию.The reconstructed block is filtered through
На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать способы, предложенные настоящим изобретением. В дальнейшем устройство декодирования видеоизображений и компоненты устройства будут описаны со ссылкой на фиг. 4.In FIG. 4 is a diagram illustrating a video decoding apparatus configured to implement the methods of the present invention. Hereinafter, the video decoding apparatus and components of the apparatus will be described with reference to FIG. 4.
Устройство декодирования видеоизображений может быть сконфигурировано так, что оно включает блок 410 энтропийного декодирования, блок 415 переупорядочивания, блок 420 обратного квантования, блок 430 обратного преобразования, блок 440 предсказания, сумматор 450, блок 460 фильтрации и память 470.The video decoding apparatus may be configured to include an
Как и в устройстве кодирования видеоизображений с фиг. 1, соответствующие компоненты устройства декодирования видеоизображений могут быть реализованы как аппаратные средства или программное обеспечение, или как комбинация аппаратных средств и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее выполнения микропроцессором.As in the video encoding apparatus of FIG. 1, corresponding components of the video decoding apparatus may be implemented as hardware or software, or a combination of hardware and software. In addition, the function of each component may be implemented in software, and the software function of each component may be implemented to be executed by a microprocessor.
Блок 410 энтропийного декодирования декодирует поток битов, сгенерированный устройством кодирования видеоизображений, и извлекает информацию о разделении блоков для определения текущего блока, который должен быть декодирован, и извлекает информацию предсказания, необходимую для восстановления текущего блока, и информацию об остаточном сигнале и т.д.The
Блок 410 энтропийного декодирования извлекает информацию о размере единицы CTU из набора параметров последовательности (SPS) или набора параметров изображения (PPS), определяет размер единицы CTU и разделяет изображение на единицы CTU заданного размера. Затем блок 410 энтропийного декодирования определяет единицу CTU как наивысший уровень, то есть корневой узел древовидной структуры, и извлекает информацию разделения на единице CTU и тем самым разделяет единицу CTU с использованием древовидной структуры.
Например, при разделении единицы CTU с использованием структуры QTBTTT сначала извлекается первый флаг (QT_split_flag), связанный с разделением QT, и каждый узел разделяется на четыре узла нижнего уровня. Для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает второй флаг (МТТ_split_flag), связанный с разделением МТТ, и информацию о направлении разделения (вертикальное/горизонтальное) и/или типе разделения (двоичное/троичное) чтобы разделить этот концевой узел на структуру МТТ. Это позволяет рекурсивно разбивать соответствующие узлы ниже концевого узла QT на структуру ВТ или ТТ.For example, when splitting a CTU using the QTBTTT structure, the first flag (QT_split_flag) associated with the QT split is first retrieved, and each node is split into four lower-level nodes. For a node corresponding to a leaf node QT,
В качестве другого примера, при разделении единицы CTU с использованием структуры QTBTTT блок 410 энтропийного декодирования может сначала извлечь флаг разделения CU (split_cu_flag), указывающий, разделена ли единица CU, и после разделения соответствующего блока он также может извлечь первый флаг.(QT_split_flag). В процессе разделения каждый узел может иметь ноль или более рекурсивных разделений QT, за которыми следует ноль или более рекурсивных разделений МТТ. Например, единица CTU может сразу войти в разделение МТТ или, наоборот, иметь только несколько разделений QT.As another example, when splitting a CTU using a QTBTTT structure, the
В качестве еще одного примера, при разделении единицы CTU с использованием структуры QTBT блок 410 энтропийного декодирования извлекает первый флаг (QT_split_flag), связанный с разделением QT, чтобы разделить каждый узел на четыре узла нижнего уровня. И для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает флаг разделения (split_flag), указывающий, является ли этот узел дополнительно разделенным на ВТ и информацию о направлении разделения.As another example, when splitting a CTU using a 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 technologies of the embodiments illustrated herein generally relate to inter-prediction coding, that is, encoding and decoding of the current block. 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 subblocks in the horizontal or vertical direction, and encode only one residual subblock between the two residual subblocks. In other words, the transformation and quantization process can only be applied to one residual subblock. Residual values of another uncoded subblock 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 apparatus can select an optimal encoding mode from the first and second encoding modes, wherein the first encoding mode encodes the residual block, thereby converting the residual signals in the residual block into a transform block that is equal in size to the prediction block, and the second encoding mode divides the residual block. block into two subblocks in the horizontal or vertical direction and encodes only one subblock, thus transforming the residual signals in the residual block into a transform block that is different in size from the prediction block.
Далее подробно описан второй режим, связанный с кодированием остаточного блока. Нижеследующее описание в основном относится к технологии декодирования, в частности, к работе устройства декодирования видеоизображений, при этом технология кодирования описана кратко, поскольку последняя является обратной по отношению к подробно описанной технологии декодирования. Кроме того, термины «подблок(и) остаточного блока» и «остаточный(е) подблок(и)» могут использоваться взаимозаменяемо. 1. Тип разделения и положение преобразованияThe second mode associated with residual block encoding is described in detail next. The following description mainly relates to the decoding technology, in particular to the operation of the video decoding apparatus, while the encoding technology is described briefly since the latter is the inverse of the decoding technology described in detail. Additionally, the terms “residual block subblock(s)” and “residual subblock(s)” may be used interchangeably. 1. Split type and conversion position
На фиг. 5A-5D показаны различные типы разделения или разбиения остаточного блока и подблоков, которые подлежат кодированию (и, таким образом, преобразованию). Остаточный блок можно разделить на два подблока. В проиллюстрированных остаточных блоках 510-580 подблоки, которые подвергаются преобразованию, закрашены и помечены буквой «А». Подблок, расположенный на левой или верхней стороне в остаточном блоке, может быть выражен как расположенный в «позиции 0» в остаточном блоке, а подблок, расположенный на правой или нижней стороне в остаточном блоке, может быть выражен как расположенный в «позиция 1» в остаточном блоке. Положение подблока в остаточном блоке, в котором выполняется преобразование, может называться «позицией преобразования». Следовательно, позиция преобразования, обозначенная как «позиция 0», может представлять преобразование, выполняемое над подблоком, расположенным на левой или верхней стороне в остаточном блоке, позиция преобразования, обозначенная как «позиция 1», может представлять преобразование, выполняемое над подблоком, расположенным справа или снизу в остаточном блоке.In fig. 5A-5D show various types of partitioning or partitioning of the residual block and subblocks that are to be encoded (and thus transformed). The residual block can be divided into two subblocks. In the illustrated residual blocks 510-580, the subblocks that undergo transformation are shaded and labeled "A". A subblock located on the left or top side in a residual block can be expressed as located at "
Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Типы разделения блоков, которые следует принимать во внимание, включают первый тип, в котором разделение происходит симметрично в горизонтальном направлении, второй тип, в котором разделение происходит симметрично в вертикальном направлении, третий тип, в котором разделение происходит асимметрично в горизонтальном направлении (например, в соотношении 1:3 или 3:1), и четвертый тип, в котором разделение происходит асимметрично в вертикальном направлении (например, в соотношении 1:3 или 3:1).Different types of separation can be considered according to the direction of separation and the separation ratio. Types of block divisions to consider include the first type in which the division occurs symmetrically in the horizontal direction, the second type in which the division occurs symmetrically in the vertical direction, the third type in which the division occurs asymmetrically in the horizontal direction (e.g. ratio 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, а не в верхнем подблоке.
Блок 550 вертикально разделен на левый подблок и правый подблок с соотношением 1:3 и преобразование не выполняется в правом подблоке в позиции 1, а выполняется в левом подблоке в позиции 0. Блок 560 вертикально разделен на левый и правый подблоки с соотношением 3:1, и преобразование выполняется не в левом подблоке, а в правом подблоке в позиции 1. Блок 570 горизонтально разделен на верхний и нижний подблоки, имеющие соотношение 1: 3, и преобразование выполняется на верхнем подблоке в позиции 0, а не в нижнем подблоке. Блок 540 разделен на два подблока в горизонтальном направлении, и преобразование выполняется в нижнем подблоке в позиции 1, а не в верхнем подблоке.
Как и в случае блоков 550-580, показанных на фиг. 5С и 5D, когда остаточный блок разбивается асимметрично (например, в соотношении 1:3 или 3:1), по умолчанию может быть установлено выполнение преобразования для меньшего подблока.As with blocks 550-580 shown in FIGS. 5C and 5D, when a residual block is split asymmetrically (eg, 1:3 or 3:1), a default may be set to perform the transformation on the smaller subblock.
Доступные отношения разделения и направления разделения могут быть ограничены в соответствии с размером остаточного блока, чтобы обеспечить 4 или более пикселей для высоты или ширины подблока, который подвергается преобразованию. Например, первый тип горизонтально-симметричного разделения может быть разрешен для остаточных блоков, имеющих ширину 8 или более пикселей, а второй тип вертикально-симметричного разделения может быть разрешен для остаточных блоков, имеющих высоту 8 или более пикселей. Аналогично третий тип и четвертый тип, которые обеспечивают горизонтальное или вертикальное асимметричное разделение, могут быть разрешены для остаточных блоков, имеющих ширину или высоту 16 или более пикселей. 2. Выбор ядра преобразования.The available split ratios and split directions can be limited according to the size of the residual block to provide 4 or more pixels for the height or width of the subblock that is being transformed. For example, the first type of horizontally symmetrical division may be allowed for residual blocks having a width of 8 pixels or more, and the second type of vertically symmetrical division may be allowed for residual blocks having a height of 8 or more pixels. Likewise, the third type and fourth type, which provide horizontal or vertical asymmetrical division, may be allowed for residual blocks having a width or height of 16 pixels or more. 2. Selecting the transformation kernel.
В зависимости от направления разделения (горизонтального или вертикального) остаточного блока и его позиции преобразования, т.е. позиции преобразованного подблока, могут быть выбраны ядра преобразования (horTransform и verTransform) в горизонтальном и вертикальном направлениях, используемые для преобразования подблока.Depending on the direction of division (horizontal or vertical) of the residual block and its transformation position, i.e. position of the transformed subblock, transformation kernels (horTransform and verTransform) in the horizontal and vertical directions can be selected and used to transform the subblock.
Когда к остаточному блоку применяется вертикальное разделение, ядро, которое должно использоваться для преобразования подблока, может быть неявно получено следующим образом. В случае блоков 510 и 550, когда преобразуемый подблок находится в позиции 0, тогда (horTransform, verTransform)=(DCT-8, DST-7). В случае блоков 520 и 560, когда преобразуемый подблок находится в позиции 1, тогда (horTransform, verTransform)=(DST-7, DST-7).When vertical partitioning 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 vertical partitioning 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 sub-blocks is larger than 32 pixels, the DCT-2 kernel can be applied to both horizontal and vertical directions. Moreover, for a chrominance component residual block, the DCT-2 kernel can always be applied to transform the residual subblock, regardless of the split direction (horizontal or vertical) of the residual block and its transform position, i.e. positions of the transformed subblock. In some cases, information identifying the transformation kernels used for transformation in the horizontal and vertical directions may be explicitly conveyed.
3. Сигнализация режима остаточного кодирования3. Residual coding mode signaling
Когда текущий блок закодирован с интер-предсказанием, а соответствующий остаточный блок имеет по меньшей мере один ненулевой коэффициент, может быть явно сигнализирован первый флаг для указания, преобразован ли релевантный остаточный блок текущего блока или только один подблок остаточного блока закодирован.When the current block is inter-prediction encoded 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 reconstructing a residual block of a current interprediction encoded block, can decode a first flag from the bitstream to determine whether the video encoding apparatus has divided the residual block into two subblocks and encoded only one subblock of the two subblocks.
В некоторых вариантах осуществления может быть пропущена сигнализация первого флага в зависимости от ширины или высоты текущего блока или в зависимости от произведения ширины и высоты, отношения ширины к высоте и большего из значений ширины и высоты. Например, когда ширина и высота текущего блока меньше 8 пикселей, устройство декодирования видеоизображений может пропустить декодирование первого флага и сделать вывод, что весь остаточный блок текущего блока был преобразован.In some embodiments, the first flag 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 are less than 8 pixels, the video decoding apparatus may skip decoding the first flag and conclude that the entire residual block of the current block has been converted.
Когда кодируется только один подблок остаточного блока, могут дополнительно сигнализироваться тип разделения и позиция преобразования остаточного блока. В устройство кодирования видеоизображений может быть предоставлена информация о типе разделения и позиции преобразования различными способами. Например, один элемент синтаксиса может использоваться для представления типа разделения остаточного блока, или два флага могут использоваться для представления коэффициента разделения и направления разделения. Кроме того, один флаг может использоваться для представления позиции преобразования, которая является позицией преобразуемого подблока. Например, можно установить флаг, указывающий позицию преобразования, на значение «0», когда преобразование применяется к подблоку, расположенному на левой или верхней стороне в остаточном блоке, и установить флаг, указывающий позицию преобразования, на значение «1», когда преобразование применяется к подблоку, расположенному справа или снизу в остаточном блоке.When only one subblock of a residual block is encoded, the division type and transform position of the residual block may be further signaled. Information about the division type and the transform position may be provided to the video encoding device 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 ratio and split direction. In addition, one flag may be used to represent a transform position, which is the position of the subblock being converted. For example, you can set the flag indicating the transform position to "0" when the transform is applied to a subblock located on the left or top side in the remainder block, and set the flag indicating the transform position to "1" when the transform is applied to subblock located to the right or bottom in the residual block.
Остаточный блок при разделении в соотношении 1:3 или 3:1 может добавлять ограничение, соглансо которому преобразование неизменно выполняется в меньшем подблоке, что позволяет исключить сигнализацию флага, указывающего позицию преобразования.The remainder block, when partitioned 1:3 or 3:1, may add a constraint whereby the conversion is always performed in the smaller subblock, thereby eliminating signaling of the flag indicating the conversion position.
Кроме того, в зависимости от ширины и высоты остаточного блока или в зависимости от произведения ширины и высоты, отношения ширины к высоте и большего из значений ширины и высоты, возможно ограничение использования некоторого типа разделения или направления разделения и/или коэффициента разделения, что позволяет исключить сигнализацию элементов синтаксиса, представляющих один и тот же тип разделения или направление разделения и/или коэффициент разделения. Например, когда ширина и высота остаточного блока меньше 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 width and height, the ratio of width to height, and the greater of the width and height, it may be possible to limit the use of some type of partition or the direction of partition and/or partition ratio, thereby eliminating 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 are less than 16 pixels, splitting the residual block "in a ratio of 1:3 or 3:1" cannot be allowed. Accordingly, the video decoding apparatus may respond to the residual block when the width and height are less than 16 pixels to output the division ratio as 1:1 without decoding the flag indicating the division ratio. In another example, when the width (or height) of the residual block is less than 8 pixels, the residual block cannot be allowed to be split in the vertical direction (or horizontal direction). Accordingly, the video decoding apparatus may 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 direction of division. Similarly, the video decoding apparatus may respond to a residual block when it is less than 8 pixels in height to infer that division is performed in the vertical direction. According to yet another example, the device may react such that when the width is greater than the height, it is concluded that division is performed in the vertical direction, and when the height is greater than the width, it is concluded that division is performed in the horizontal direction.
Остаточный блок, связанный с компонентом яркости, может иметь свой единственный остаточный подблок, кодированный исключительно, в этом случае соответствующий остаточный блок, связанный с компонентом цветности, может также иметь свой единственный остаточный подблок, кодированный исключительно. Соответственно, первый флаг, переданный на уровне единицы CU, может совместно использоваться остаточным блоком компонента яркости и остаточными блоками компонента цветности.The residual block associated with the luma component may have its single residual subblock exclusively coded, in which case the corresponding residual block associated with the chrominance component may also have its single residual subblock exclusively coded. Accordingly, the first flag transmitted at the CU unit level can be shared by the luma component residual block and the chrominance component residual blocks.
Тот же режим остаточного кодирования, выбранный для остаточного блока компонента яркости, может быть применен к остаточному блоку компонента цветности, расположенному совместно с остаточным блоком компонента яркости. Другими словами, когда остаточный блок компонента яркости имеет только один кодированный подблок, остаточный блок компонента цветности может аналогичным образом иметь только один кодированный подблок. В этом случае информация о типе разделения остаточного блока и позиции подблока, подлежащего кодированию, может совместно использоваться блоком яркости и блоками цветности.The same residual encoding mode selected for the luma component residual block can be applied to a chrominance component residual block co-located with the luma component residual block. In other words, when a luma component residual block has only one coded subblock, a chrominance component residual block may likewise have only one coded subblock. In this case, information about the division type of the residual block and the position of the subblock to be encoded can be shared between the luma block and the chrominance blocks.
В по меньшей мере одном варианте осуществления единой древовидной структуры один и тот же режим остаточного кодирования может применяться к компоненту яркости и компоненту цветности, и та же информация о направлении разделения, определенном для остаточного блока компонента яркости, и позиции подблока, подлежащего кодированию, может применяться к остаточным блокам компонентов цветности. Согласно другому примеру, в случае кодирования только одного подблока остаточного блока компонента цветности, когда аналогичным образом кодируется только один подблок совмещенного остаточного блока компонента яркости, одна и та же информация о направлении разделения, определенная для остаточного блока компонента яркости и позиции подблока, подлежащего кодированию, может применяться к остаточным блокам компонента цветности.In at least one embodiment of a single tree structure, the same residual encoding mode may be applied to the luma component and the chrominance component, and the same information about the split direction determined for the luma component residual block and the position of the subblock to be encoded may be applied to the residual blocks of chromaticity components. According to another example, in the case of encoding only one subblock of a residual chrominance component block, when only one subblock of a combined residual luma component block is encoded in the same way, the same split direction information determined for the residual luma component block and the position of the subblock to be encoded is can be applied to the residual blocks of the chroma component.
4. Восстановление остаточного блока4. Restoring the residual block
Устройство декодирования видеоизображений может определять на основе типа разделения и позиции преобразования позицию подблока в остаточном блоке, где декодировать соответствующую информацию о коэффициентах преобразования из потока битов, а также размер подблока. Устройство декодирования видеоизображений может декодировать информацию о коэффициентах преобразования из потока битов, чтобы восстановить коэффициенты преобразования подблока, соответствующего позиции преобразования. Устройство декодирования видеоизображений применяет процесс обратного квантования/обратного преобразования к восстановленным коэффициентам преобразования для генерации остаточных сигналов подблока, соответствующего позиции преобразования, и устанавливает для всех остаточных сигналов другого подблока, соответствующего позиции без преобразования, значение «0», тем самым восстанавливая остаточный блок ткущего блока.The video decoding apparatus can determine, based on the division type and the transform position, the position of a sub-block in the residual block where to decode the corresponding transform coefficient information from the bit stream, as well as the size of the sub-block. The video decoding apparatus may decode transform coefficient information from the bitstream to recover transform coefficients of a subblock 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 a sub-block corresponding to a transform position, and sets all residual signals of another sub-block corresponding to a position without transform to "0", thereby recovering a residual block of the current block. .
Аналогично, устройство кодирования видеоизображений выполняет преобразование и квантование остаточного подблока, соответствующего позиции преобразования, энтропийно кодирует квантованные коэффициенты преобразования и применяет процесс обратного квантования/обратного преобразования к квантованным коэффициентам преобразования, чтобы восстановить остаточный подблок, соответствующий позиции преобразования и устанавливает все остаточные сигналы другого подблока, соответствующие позиции без преобразования, равными «0», тем самым восстанавливая остаточный блок текущего блока. 5. Расчет параметров квантования.Similarly, the video encoding apparatus transforms and quantizes 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 residual signals of the other subblock. the corresponding positions without transformation are equal to "0", thereby restoring the residual block of the current block. 5. Calculation of quantization parameters.
Устройство кодирования видеоизображений может определять значение параметра квантования (QP) для текущего блока (CU) и определять на основе значения QP и значения предсказания QP значение параметра дифференциального квантования (Delta QP или DQP) для текущего блока. Устройство кодирования видеоизображений может быть сконфигурировано для сигнализации значения DQP и квантования текущего блока с использованием определенного значения QP. Устройство кодирования видеоизображений может регулировать значение QP текущего блока и, таким образом, регулировать степень квантования, применяемую к блокам коэффициентов, относящихся к текущему блоку.The video encoding apparatus may determine a quantization parameter (QP) value for a current unit (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 specific QP value. The video encoding apparatus may adjust the QP value of the current block and thus adjust the degree of quantization applied to the coefficient blocks 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. Specifically, the video encoding apparatus outputs a 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 reconstructed 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 the left block, the top left block, and the top block relative to the current block may be defined as the QP prediction value for the current block.
В некоторых вариантах осуществления кодируют только один подблок соответствующего остаточного блока текущего блока, при этом информация о разделениях остаточного блока, форма разделения или позиция подблока для кодирования и т.д. используются в качестве основы для выбора соседних блоков, на которые следует ссылаться. Затем фактические значения QP для выбора соседних блоков могут использоваться в качестве значения предсказания QP текущего блока, или фактические значения QP выбранного соседнего блока(ов) могут использоваться в качестве основы для получения значения предсказания QP для текущего блока.In some embodiments, only one subblock of the corresponding residual block of the current block is encoded, with information about the divisions of the residual block, the shape of the division or the position of the subblock to be encoded, etc. are used as a basis for selecting neighboring blocks to reference. Then, the actual QP values for selecting neighboring blocks can be used as the QP prediction value of the current block, or the actual QP values of the selected neighboring block(s) can 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 a relevant residual block of a current block, illustrating the positions of neighboring blocks to be referred to for quantization parameter (QP) prediction.
Когда остаточный блок 610 разделен по вертикали и остаточный сигнал имеется только в левом подблоке, то есть кодируется только левый подблок, по меньшей мере одно из значений предсказания QP соседних блоков «а, b, d, е», смежных с левым подблоком, может использоваться в качестве основы для вычисления значения предсказания QP текущего блока. Например, значение предсказания QP текущего блока может быть вычислено на основе среднего значения значений QP блока «а» и блока «b».When the
Когда остаточный блок 620 разделен по вертикали и остаточный сигнал имеется только в правом подблоке, то есть кодируется только правый подблок, значение QP блока «с», который является соседним блоком, смежным с правым подблоком, может быть определено как значение предсказания QP текущего блока.When the
На фиг. 7 показана схема блока цветности и, по меньшей мере, одного блока яркости, который совмещен с блоком цветности.In fig. 7 shows a diagram of a chrominance block and at least one luma block, which is combined with the chrominance block.
Значение QP для блока цветности может быть определено на основании определенного значения QP для соответствующего блока(ов) яркости. Значение предсказания QP блока цветности может быть определено на основании значения QP блока яркости в том же месте. В качестве примера значение QP блока яркости «а», расположенного в верхнем левом углу текущего блока, может использоваться в качестве значения предсказания QP для остаточного блока компонента цветности. В качестве альтернативы используемое значение предсказания QP остаточного блока компонента цветности может быть наиболее частым значением, максимальным значением, минимальным значением, средним значением или средним значением среди значений QP блоков яркости от «а до i».The QP value for a chrominance block may be determined based on the determined QP value for the corresponding luminance block(s). The QP prediction value of a chrominance block can be determined based on the QP value of a 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 can be used as the QP prediction value for the residual chrominance component block. Alternatively, the residual chroma component block prediction value QP used may be the most frequent value, maximum value, minimum value, average value, or average value among the QP values of luminance blocks a to i.
При кодировании одного подблока в остаточном блоке компонента цветности используемое значение предсказания QP блока цветности может быть значением QP блока яркости, выбранным на основе большего значения (альтернативно меньшего значения) среди направления разделения остаточного блока, позиции подблока для кодирования, размера подблока, отношения горизонтали к вертикали подблока, а также ширины или высоты подблока. По меньшей мере в одном варианте осуществления используемое значение предсказания QP блока компонента цветности представляет собой значение QP одного из блока «d» и блока которые являются блоками яркости, соответствующими подблоку А, кодируемому в компоненте цветности, остаточному блоку или среднему значению значений QP блока «d» и блока 6.When encoding one subblock in a chrominance component residual block, the chrominance block QP prediction value used may be the luminance block QP value selected based on a larger value (alternatively a smaller value) among the splitting direction of the residual block, the position of the subblock to be encoded, the size of the subblock, the horizontal to vertical ratio subblock, and the width or height of the subblock. In at least one embodiment, the used QP prediction value of a chrominance component block is the QP value of one of the "d" block and a block which are luminance blocks corresponding to the subblock A encoded in the chrominance component, a residual block, or the average of the QP values of the "d" block "and
Внутриконтурная фильтрацияIn-loop filtration
Устройство кодирования видеоизображений и устройство декодирования видеоизображений могут выполнять внутриконтурную фильтрацию, включая фильтрацию удаления блочности на восстановленном текущем блоке, и сохранять отфильтрованный текущий блок в буфере (например, в памяти 190 на фиг. 1 и в памяти 470 на фиг. 4) для будущего использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении.The video encoding apparatus and the video decoding apparatus may perform in-loop filtering, including deblocking filtering, on the reconstructed current block, and store the filtered current block in a buffer (eg,
Фильтр удаления блочности применяется к пикселям на границе блока, чтобы уменьшить блочные артефакты, вызванные границей между блоками в восстановленном изображении. Фильтрация удаления блочности выполняется на вертикальной границе и горизонтальной границе. Фильтрация, сначала выполняемая на вертикальной границе, может служить входом для последующей фильтрации горизонтальной границы.A deblocking filter is applied to pixels at a block boundary to reduce blocking artifacts caused by the boundary between blocks in the reconstructed image. Deblocking filtering is performed on the vertical edge and horizontal edge. Filtering performed first on the vertical boundary can serve as an input for subsequent filtering on the horizontal boundary.
На фиг. 8 показана схема восстановленных текущих блоков (810, 820), иллюстрирующая их соответствующие остаточные блоки, подвергающиеся вертикальным разделениям и преобразованиям в их левых подблоках (то есть позиция преобразования равна 0), чтобы показать их границы разделения между подблоками и границу удаления блочности.In fig. 8 is a diagram of reconstructed current blocks (810, 820) illustrating their respective residual blocks undergoing vertical splits and transformations in their left subblocks (ie, transformation position is 0) to show their inter-subblock division boundaries and deblocking boundaries.
Устройство кодирования видеоизображений и устройство декодирования видеоизображений могут определять, применять или нет фильтрацию удаления блочности к текущему блоку на основе того, совпадает ли граница удаления блочности размером 4×4 (или 8×8) с границей между подблоками остаточного блока. Например, устройство декодирования видеоизображений может установить сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнять фильтрацию удаления блочности только тогда, когда граница между двумя подблоками в текущем блоке совпадает с границей сетки. Соответственно, фильтрация удаления блочности не может выполняться на границах между подблоками, которые не совпадают с границей сетки. Здесь N может быть установлено равным 2n (n - натуральное число). В качестве альтернативы устройство кодирования видеоизображений и устройство декодирования видеоизображений могут определять, применять ли фильтрацию удаления блочности к текущему блоку, на основе пикселей, включенных в несколько столбцов или строк, включенных в текущий блок. Сетка в различных единицах может использоваться в зависимости от того, является ли текущий блок блоком яркости или блоком цветности. Например, сетка может быть установлена в единицах 4×4 для блока яркости, и сетка может быть установлена в единицах 8×8 для блока цветности.The video encoding apparatus and the video decoding apparatus may determine whether or not to apply deblocking filtering to the current block based on whether a 4x4 (or 8x8) deblocking boundary coincides with a boundary between subblocks of the residual block. For example, a video decoding apparatus may establish a grid of N samples at regular intervals in the horizontal and vertical directions and perform deblocking filtering only when the boundary between two subblocks in the current block coincides with the grid boundary. Accordingly, deblocking filtering cannot be performed on boundaries between subblocks that do not coincide with the grid boundary. Here N can be set to 2n (n is a natural number). Alternatively, the video encoding apparatus and the video decoding apparatus 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 can be set in 4x4 units for a luma block, and the grid can be set in 8x8 units for a 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 at the boundary between residual subblocks at the residual signal level. On ifg. 9 shows a 4x8 residual block that undergoes horizontal splitting and transformation in its bottom 4x4 subblock (ie, transformation position is 1). After the residual signals corresponding to the lower sub-block are recovered and the residual signals of the upper sub-block are filled with "0" to complete the reconstructed residual block, deblocking filtering can be performed on the residual block. The embodiment of FIG. 9 illustrates a one-dimensional average filter having a parameter [1 2 1] applied to the boundary between two subblocks.
При применении фильтра удаления блочности к текущему блоку в соответствии с требуемой силой фильтрации удаления блочности может быть выбран сильный фильтр или слабый фильтр. Кроме того, можно рассмотреть возможность использования различных обычных фильтров в общих методах обработки изображений, таких как фильтр среднего значения, фильтр медианного значения и двусторонний фильтр.When applying a deblocking filter to the current block, a strong filter or a weak filter can be selected according to the desired deblocking filtering strength. In addition, one can consider using various conventional filters in common image processing techniques, such as mean filter, median filter, and two-way filter.
Что касается выбора фильтра, устройство видеодекодирования может быть проинформировано устройством кодирования видеоизображений о фильтре, который будет использоваться, перед выбором фильтра для использования в фильтрации остаточного удаления блочности. Например, индекс фильтра, который должен использоваться, может сообщаться среди множества заранее определенных фильтров. В качестве альтернативы можно использовать один заранее определенный фильтр.Regarding filter selection, the video decoding apparatus may be informed by the video encoding apparatus 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, embodiments calculate filtering parameters related to the selected filter, particularly parameters that determine filter intensity and cutoff values for pixel changes, and based on the calculated filtering parameters filter on the residual sample boundary.
Для параметров фильтра может передаваться информация о местоположении соседнего блока кодирования, такая как предыдущий кадр, соседний блок, группа соседних фрагментов, соседний фрагмент и т.п., и могут использоваться параметры фильтра соседнего блока декодирования, соответствующие местоположению, для текущего блока, как он есть, или параметры фильтра для текущего блока восстанавливаются из значений соседних параметров и дополнительных сигнализированных значений разности.For filter parameters, the location information of a neighboring encoding 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 a neighboring decoding block corresponding to the location for the current block, as it is present, or the filter parameters for the current block are reconstructed from the values of neighboring parameters and additional signaled difference values.
На фиг. 10 показана блок-схема способа, выполняемого устройством кодирования видеоизображений для кодирования с интер-предсказанием текущего блока видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In fig. 10 is a flowchart of a method performed by a video encoding apparatus for inter-predictive encoding of a current video block according to at least one embodiment of the present invention.
На этапе S1010 устройство кодирования видеоизображений может сгенерировать блок предсказания посредством интер-предсказания текущего блока кодируемых видеоданных, и оно может сгенерировать остаточный блок путем вычитания блока предсказания из текущего блока видеоданных.In step S1010, the video encoding apparatus can generate a prediction block by inter-prediction of the current block of video data to be encoded, and it can generate a residual block by subtracting the prediction block from the current block of video data.
На этапе S1020 устройство кодирования видеоизображений может определить режим остаточного кодирования для остаточного блока текущего блока. В частности, устройство кодирования видеоизображений может выбирать, кодировать ли остаточный блок текущего блока или кодировать только один подблок, который является частичной областью остаточного блока. Этот выбор может быть основан на тесте «скорость-искажение».In step S1020, the video encoding apparatus may determine a residual encoding mode for a residual block of the current block. In particular, the video encoding apparatus may select whether to encode a residual block of the current block or encode only one sub-block that is a partial area of the residual block. This choice may be based on a speed-distortion test.
На этапе S1030 устройство кодирования видеоизображений может кодировать информацию о режиме остаточного кодирования, выбранном для соответствующего остаточного блока текущего блока.In step S1030, the video encoding apparatus may encode information about the residual encoding 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 coded.
Когда кодируется только один подблок остаточного блока, устройство кодирования видеоизображений может дополнительно кодировать информацию, указывающую тип разделения для разделения остаточного блока на два подблока. Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Например, метод кодирования с интер-предсказанием может предусматривать использование типов разделения, включающих первый тип, который обеспечивает горизонтальное симметричное разделение на два подблока, второй тип, который обеспечивает вертикальное симметричное разделение на два подблока, третий тип, который обеспечивает горизонтальное асимметричное разделение на два подблока, (например, с соотношением 1:3 или 3:1), и четвертый тип, который обеспечивает асимметричное разделение по вертикали на два подблока (например, с соотношением 1:3 или 3:1). Один или несколько элементов синтаксиса могут использоваться, чтобы сигнализировать тип разделения (или направление разделения и коэффициент разделения) для соответствующего остаточного блока текущего блока.When only one subblock of the residual block is encoded, the video encoding apparatus may further encode information indicating a division type for dividing the residual block into two subblocks. Different types of separation can be considered according to the direction of separation and the separation ratio. For example, an inter-prediction coding technique may use partition types including a first type that provides a horizontal symmetric partition into two sub-blocks, a second type that provides a vertical symmetric partition into two sub-blocks, a third type that provides a horizontal asymmetric partition into two sub-blocks , (for example, with a ratio of 1:3 or 3:1), and a fourth type, which provides an asymmetrical 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 remainder 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 encoding apparatus may limit the use of certain division directions, division coefficients, and/or division types, and thus it may omit signaling of syntax elements expressing split direction, split ratio, and/or split type depending on the width and height of the remainder 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 are less than 16 pixels, the residual block cannot be allowed to be divided in a "1:3 or 3:1 ratio". Accordingly, when the width and height of the residual block are less than 16 pixels, the video decoding apparatus may infer that the division ratio may be 1:1, which may be taken into account by the video encoding apparatus to skip syntax element signaling (for example, a 1-bit flag) , expressing the direction of separation. In another embodiment, when the width of the current block is less than 8 pixels, vertical division of the current block may be prohibited. When the height of the current block is less than 8 pixels, horizontal division of the current block may be prohibited. Accordingly, when the width (or height) of the residual block is less than 8 pixels, the current block can be divided at a 1:1 ratio in the vertical (or horizontal) direction by the video decoding apparatus, which allows the video encoding apparatus to bypass syntax element signaling (e.g., 1-bit flag) expressing the direction of division.
Кроме того, устройство кодирования видеоизображений может явно сигнализировать флаг для идентификации подблока из двух подблоков, классифицированных в соответствии с типом разделения, который должен быть кодирован (и, таким образом, подвергаться преобразованию). В некоторых вариантах осуществления устройство кодирования видеоизображений может реагировать на то, когда тип разделения текущего блока является третьим типом или четвертым типом, то есть когда текущий блок асимметрично разделен в горизонтальном или вертикальном направлении, для немедленного решения, о том, что должен кодироваться меньший подблок из двух блоков, пропуская при этом сигнализацию флага для идентификации подблока, подлежащего кодированию.In addition, the video encoding apparatus may explicitly signal a flag to identify a sub-block of two sub-blocks classified according to the division type to be encoded (and thus converted). In some embodiments, a video encoding device may respond when the division type of the current block is a third type or a fourth type, that is, when the current block is asymmetrically divided in the horizontal or vertical direction, to immediately decide that a smaller subblock of two blocks while passing flag signaling to identify the subblock to be encoded.
На этапах с S1040 по S1050 устройство кодирования видеоизображений кодирует остаточный блок или один подблок остаточного блока в соответствии с режимом остаточного кодирования, выбранным для соответствующего остаточного блока текущего блока. Когда выбирается кодирование остаточного блока, устройство кодирования видеоизображений может выполнять преобразование и квантование остаточного блока в единице преобразования, равной по размеру остаточному блоку, и энтропийно кодировать квантованные коэффициенты преобразования. Когда выбирается кодирование только одного подблока остаточного блока, устройство кодирования видеоизображений может выполнять преобразование и квантование подблока, соответствующего позиции преобразования, и энтропийно кодировать квантованные коэффициенты преобразования. Остаточные сигналы других подблоков, соответствующих непреобразованным позициям, считаются равными 0, что устраняет необходимость преобразования информации о коэффициентах.In steps S1040 to S1050, the video encoding apparatus encodes a residual block or one subblock of a residual block in accordance with the residual encoding mode selected for the corresponding residual block of the current block. When residual block encoding is selected, the video encoding apparatus may transform and quantize the residual block in a transform unit equal in size to the residual block, and entropy encode the quantized transform coefficients. When encoding of only one subblock of the residual block is selected, the video encoding apparatus may perform transform and quantization of the subblock corresponding to the transform position and entropy encode the quantized transform coefficients. The residual signals of the other subblocks corresponding to the untransformed positions are considered to be 0, eliminating the need to transform the 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 residual signals corresponding to transform positions, and set all residual signals of other subblocks corresponding to untransformed positions to 0, thereby recovering the residual block for current block. The video encoding apparatus may add the reconstructed residual block with the prediction block to generate a reconstructed current block.
На этапе S1070 устройство кодирования видеоизображений может выполнять фильтрацию удаления блочности, по меньшей мере, на восстановленном текущем блоке и сохранять отфильтрованный текущий блок в буфере, например, в памяти 190 на фиг. 1 для использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении. В частности, устройство кодирования видеоизображений может установить сетку на N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и определить, применять ли фильтрацию удаления блочности к текущему блоку на основе того, совпадает ли граница между подблоками остаточного блока с границей сетки. Устройство кодирования видеоизображений может выполнять фильтрацию удаления блочности только тогда, когда граница между двумя остаточными подблоками в текущем блоке совпадает с границей сетки. Другими словами, фильтрация удаления блочности может выполняться только тогда, когда граница удаления блочности размером 4×4 (или 8×8) совпадает с границей между остаточными подблоками.At step S1070, the video encoding apparatus may perform deblocking filtering on at least the reconstructed current block and store the filtered current block in a buffer, for example, in
На фиг. 11 показана блок-схема способа, выполняемого устройством декодирования видеоизображений для декодирования текущего блока, кодированного с интер-предсказанием, из кодированного потока битов видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.In fig. 11 is a flowchart of a method performed by a video decoding apparatus for decoding a current inter-prediction encoded block from a coded video bitstream according to at least one embodiment of the present invention.
На этапе S1110 устройство декодирования видеоизображений, например блок энтропийного декодирования с фиг. 4, может декодировать информацию о режиме остаточного кодирования соответствующего остаточного блока текущего блока.In step S1110, a video decoding apparatus such as the entropy decoding unit in FIG. 4 can decode the residual encoding mode information of the corresponding residual block of the current block.
Например, устройство декодирования видеоизображений может декодировать из потока битов первый флаг, указывающий, был ли закодирован релевантный остаточный блок текущего блока или только один подблок остаточного блока. Первый флаг, имеющий первое значение (например, «0»), может указывать, что остаточный блок был преобразован, а первый флаг, имеющий второе значение (например, «1»), может указывать, что только один подблок остаточного блока был преобразован.For example, a video decoding apparatus may decode from the bit stream a first flag indicating whether the 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 subblock of the residual block has been converted.
Когда первый флаг указывает, что был преобразован только один подблок остаточного блока, устройство декодирования видеоизображений может дополнительно декодировать из потока битов один или несколько элементов синтаксиса, представляющих тип разделения (направление разделения и/или коэффициент разделения) остаточного блока и может определять тип разделения остаточного блока, по меньшей мере частично, на основе декодированного одного или нескольких элементов синтаксиса. Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Например, типы разделения могут включать первый тип, который обеспечивает горизонтальное симметричное разделение на два подблока, второй тип, который обеспечивает вертикальное симметричное разделение на два подблока, третий тип, который обеспечивает горизонтальное асимметричное разделение на два подблока, (например, с соотношением 1:3 или 3:1), и четвертый тип, который обеспечивает асимметричное разделение по вертикали на два подблока (например, с соотношением 1:3 или 3:1).When the first flag indicates that only one subblock of the residual block has been converted, the video decoding apparatus may further decode from the bitstream one or more syntax elements representing the division type (division direction and/or division coefficient) of the residual block and may determine the division type of the residual block , at least in part, based on the decoded one or more syntax elements. Different types of separation can be considered according to the direction of separation and the separation ratio. For example, the division types may include a first type that provides a horizontal symmetric division into two sub-blocks, a second type that provides a vertical symmetric division into two sub-blocks, a third type that provides a horizontal asymmetric division into two sub-blocks, (for example, with a 1:3 ratio or 3:1), and a fourth type that provides an asymmetrical vertical division into two sub-units (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 additionally be taken into account along with information indicating the split type. The use of some split types (or split direction and/or split ratio) may be restricted depending on the width and height of the current block, which may preclude signaling of 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 width and height of the current block is less than 16 pixels by disallowing the current block to be split in a "1:3 or 3:1 ratio." Accordingly, when the width and height of the residual block are less than 16 pixels, the video decoding apparatus can simply infer that the division ratio is 1:1 without having to decode a syntax element indicating the division 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 block is less than 8 pixels by prohibiting the current block 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 dividing direction as the horizontal direction without having to decode the syntax element indicating the dividing 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 dividing direction as the vertical direction without having to decode the syntax element indicating the direction.
Чтобы идентифицировать подблок, из которого должна быть декодирована информация о коэффициентах преобразования, устройство декодирования видеоизображений может дополнительно декодировать из потока битов элемент синтаксиса (например, 1-битовый флаг), указывающий позицию кодированного подблока, и, таким образом, позицию подблока, в которой было выполнено преобразование. В некоторых вариантах осуществления устройство декодирования видеоизображений может реагировать на то, когда тип разделения текущего блока является третьим или четвертым типом, немедленно делая вывод о том, что преобразование претерпел меньший подблок из двух блоков, пропуская декодирование элемента синтаксиса для указания позиции подблока, где было выполнено преобразование.To identify the subblock from which 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 conversion completed. In some embodiments, a video decoding apparatus may respond when the division type of the current block is a third or fourth type by immediately inferring that the smaller subblock of the two blocks has undergone the transformation, skipping decoding the syntax element to indicate the position of the subblock where the transformation was performed. transformation.
На этапах с S1120 по S1130 устройство декодирования видеоизображений может восстанавливать релевантный остаточный блок текущего блока на основе декодированной информации режима остаточного кодирования.In steps S1120 to S1130, the video decoding apparatus can recover a relevant residual block of the current block based on the decoded residual encoding 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 bit stream to recover the transform coefficients. Thereafter, the video decoding apparatus inversely quantizes the transform coefficients and inversely transforms the quantized transform coefficients in a transform unit equal in size to the residual block, thereby reconstructing 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 transform transformation coefficients to generate residual signals for a 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.
На этапе S1140 устройство декодирования видеоизображений может сгенерировать блок предсказания посредством интер-предсказания текущего блока и может восстановить текущий блок, суммируя блок предсказания и остаточный блок.In step S1140, the video decoding apparatus can generate a prediction block by inter-predicting the current block, and can 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
Следует понимать, что в приведенном выше описании представлены иллюстративные варианты осуществления, которые могут быть реализованы различными другими способами. Функции, описанные в некоторых вариантах осуществления, могут быть реализованы с помощью оборудования, программного обеспечения, встроенного программного обеспечения и/или их комбинации. Также следует понимать, что функциональные компоненты, описанные в настоящем описании, помечены как «…блок», чтобы особо подчеркнуть возможность их автономной реализации.It should be understood that the above description presents illustrative embodiments that may be implemented in various other ways. The functions described in some embodiments may be implemented by hardware, software, firmware, and/or a combination thereof. It should also be understood that the functional components described herein are labeled "...block" to specifically emphasize their ability to be implemented independently.
Между тем, различные способы или функции, приведенные в настоящем описании, могут быть реализованы как инструкции, хранящиеся на энергонезависимом носителе информации, которые могут быть прочитаны и выполнены одним или несколькими процессорами. Энергонезависимый носитель записи включает в себя, например, все типы записывающих устройств, в которых данные хранятся в форме, читаемой компьютерной системой. Например, энергонезависимый носитель информации может включать в себя, среди прочего, носители данных, такие как стираемое программируемое постоянное запоминающее устройство (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. Non-volatile recording media includes, for example, all types of recording devices in which data is stored in a form readable by a computer system. For example, the nonvolatile storage medium may include, but is not limited to, 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).
Несмотря на то, что примерные варианты осуществления настоящего изобретения были описаны в иллюстративных целях, специалисты в данной области техники поймут, что возможны различные модификации, дополнения и замены без отклонения от идеи и объема заявленного изобретения. Следовательно, для краткости и ясности были описаны примерные варианты осуществления настоящего изобретения. Объем технической идеи настоящих вариантов осуществления не ограничен иллюстрациями. Соответственно, рядовому специалисту понятно, что объем заявленного изобретения ограничивается не ариантами осуществления, которые были непосредственно описаны выше, а формулой изобретения и ее эквивалентами.Although 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, exemplary embodiments of the present invention have been described for brevity and clarity. The scope of the technical idea of the present embodiments is not limited to the illustrations. Accordingly, it is clear to an ordinary specialist that the scope of the claimed invention is limited not by the embodiments that were directly described above, but by the claims and their equivalents.
Ссылка на родственную заявкуLink to related application
Эта заявка испрашивает приоритет корейской заявки на получение патента №10-2019-0028364, поданной 12 марта 2019 г., описание которой полностью включено в настоящий документ посредством ссылки.This application claims priority to Korean Patent Application No. 10-2019-0028364, filed March 12, 2019, the disclosure of which is incorporated herein by reference in its entirety.
Claims (14)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0028364 | 2019-03-12 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021127506A Division RU2776871C1 (en) | 2019-03-12 | 2020-03-12 | Method and device for efficient coding of residual blocks |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2022119482A RU2022119482A (en) | 2022-09-01 |
RU2803519C2 true RU2803519C2 (en) | 2023-09-14 |
RU2803519C9 RU2803519C9 (en) | 2023-11-14 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2549157C1 (en) * | 2010-04-23 | 2015-04-20 | М энд К ХОЛДИНГС ИНК. | Moving image encoder |
WO2016043933A1 (en) * | 2014-09-15 | 2016-03-24 | Mediatek Inc. | Method of deblocking for intra block copy in video coding |
RU2016147170A (en) * | 2014-06-04 | 2018-07-16 | Квэлкомм Инкорпорейтед | BLOCK ADAPTIVE ENCODING WITH COLOR SPACE TRANSFORM |
WO2018221817A1 (en) * | 2017-05-31 | 2018-12-06 | 엘지전자 주식회사 | Method and device for performing image decoding on basis of intra prediction in image coding system |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2549157C1 (en) * | 2010-04-23 | 2015-04-20 | М энд К ХОЛДИНГС ИНК. | Moving image encoder |
RU2016147170A (en) * | 2014-06-04 | 2018-07-16 | Квэлкомм Инкорпорейтед | BLOCK ADAPTIVE ENCODING WITH COLOR SPACE TRANSFORM |
WO2016043933A1 (en) * | 2014-09-15 | 2016-03-24 | Mediatek Inc. | Method of deblocking for intra block copy in video coding |
WO2018221817A1 (en) * | 2017-05-31 | 2018-12-06 | 엘지전자 주식회사 | Method and device for performing image decoding on basis of intra prediction in image coding system |
Non-Patent Citations (2)
Title |
---|
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. * |
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. 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. * |
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 | |
US20230048262A1 (en) | Decoding device and method for predicting block partitioned into random shape | |
US11924453B2 (en) | Coding tool setting method and video decoding apparatus | |
EP4068776A1 (en) | Decoding device and method for predicting block partitioned into random shapes | |
RU2803519C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803519C9 (en) | Method and device for effective encoding of residual blocks | |
RU2803537C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803532C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803426C2 (en) | Method and device for effective encoding of residual blocks | |
RU2776871C1 (en) | Method and device for efficient coding of residual blocks | |
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 | |
RU2803473C2 (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 | |
RU2785384C1 (en) | Image decoding device using differential encoding | |
US20240214566A1 (en) | Method of restoration in subblock units, and video decoding apparatus | |
RU2809228C2 (en) | Image decoding device using differential coding | |
RU2815809C2 (en) | Image decoding device using differential coding | |
RU2810127C2 (en) | Image decoding device using differential coding | |
RU2810083C2 (en) | Image decoding device using differential coding | |
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 | |
US20220132156A1 (en) | Image decoding device using differential coding | |
CN116458160A (en) | Image coding and decoding method using adaptive substitution mode |