RU2803065C2 - Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks - Google Patents
Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks Download PDFInfo
- Publication number
- RU2803065C2 RU2803065C2 RU2022121160A RU2022121160A RU2803065C2 RU 2803065 C2 RU2803065 C2 RU 2803065C2 RU 2022121160 A RU2022121160 A RU 2022121160A RU 2022121160 A RU2022121160 A RU 2022121160A RU 2803065 C2 RU2803065 C2 RU 2803065C2
- Authority
- RU
- Russia
- Prior art keywords
- current block
- intra
- sub
- prediction
- block
- Prior art date
Links
Abstract
Description
Область техникиTechnical field
[0001] Настоящее изобретение в некоторых вариантах осуществления относится к кодированию и декодированию видео. Более конкретно, настоящее изобретение относится к способу и устройству для интра-предсказания, в которых единица предсказания делится на субблоки и предсказывается в субблоках.[0001] The present invention, in some embodiments, relates to video encoding and decoding. More specifically, the present invention relates to a method and apparatus for intra-prediction in which a prediction unit is divided into sub-blocks and predicted in sub-blocks.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART
[0002] Поскольку видеоданные имеют большой объем данных по сравнению с аудиоданными или данными неподвижных изображений, требуется много аппаратных ресурсов, включая память, для хранения или передачи данных в необработанном виде перед тем, как подвергнуть их процессу сжатия.[0002] Since video data has a large data volume compared to audio data or still image data, a lot of hardware resources, including memory, are required to store or transmit the data in raw form before subjecting it to the compression process.
[0003] Соответственно, хранение или передача видеоданных обычно сопровождает их сжатие с использованием кодера до того, как декодер сможет принимать, распаковывать и воспроизводить сжатые видеоданные. Известные технологии сжатия видеоизображений включают стандарт H.264/AVC и стандарт высокоэффективного кодирования видеоизображений (HEVC), повышающий эффективность кодирования H.264 / AVC примерно на 40%.[0003] Accordingly, storage or transmission of video data typically involves compressing it using an encoder before the decoder 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%.
[0004] Однако постоянное увеличение размера, разрешения и частоты кадров видеоизображений и, как следствие, увеличение объема данных, подлежащих кодированию, требует нового и улучшенного метода сжатия с более высокой эффективностью кодирования и более высоким качеством изображения по сравнению с известными методами сжатия. [0004] However, the ever-increasing size, resolution, and frame rate of video images, and the resulting increase in the amount of data to be encoded, requires a new and improved compression method with higher encoding efficiency and higher image quality than known compression methods.
[0005] Между тем, при интра-предсказании предсказание выполняется с ранее реконструированными отсчетами, расположенными рядом с текущим блоком, где соседний отсчет, используемый для интра-предсказания, упоминается как опорный отсчет. Как правило, интра-предсказание использует опорный отсчет для максимального предсказания всех отсчетов в текущем блоке. Например, для блока 16×16, 256 значения отсчетов, принадлежащих блоку 16×16, предсказываются с использованием их соседних отсчетов. Поскольку в видео существует пространственная корреляция, чем ближе текущий отсчет блока к опорному отсчету, тем лучше результаты предсказания в целом. Соответственно, текущие отсчеты блоков, смежные с опорными отсчетами, могут иметь точные значения предсказания, однако те, которые далеки от опорных отсчетов, могут приводить к неточным значениям предсказания.[0005] Meanwhile, in intra-prediction, prediction is performed with previously reconstructed samples located adjacent to the current block, where the adjacent sample used for intra-prediction is referred to as a reference sample. Typically, intra-prediction uses a reference sample to best predict all samples in the current block. For example, for a 16x16 block, 256, the values of the samples belonging to the 16x16 block are predicted using their neighboring samples. Since there is spatial correlation in video, the closer the current block sample is to the reference sample, the better the overall prediction results. Accordingly, current block samples adjacent to the reference samples may have accurate prediction values, but those that are far from the reference samples may result in inaccurate prediction values.
Сущность изобретенияThe essence of the invention
Техническая проблемаTechnical problem
[0006] Настоящее изобретение, как правило, стремится создать метод интра-предсказания для разделения единицы предсказания на субблоки таким образом, чтобы разместить восстановленные соседние отсчеты, используемые для предсказания текущего отсчета, чтобы он был ближе к текущему отсчету, и предсказания субблоков блоков с использованием общего режима интра-предсказания.[0006] The present invention generally seeks to provide an intra-prediction method for dividing a prediction unit into sub-blocks so as to accommodate reconstructed neighboring samples used to predict the current sample to be closer to the current sample, and predicting sub-blocks of blocks using general mode of intra-prediction.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION
[0007] Согласно по меньшей мере одному аспекту настоящего изобретения предложен способ декодирования видео для восстановления текущего блока с использованием интра-предсказания, включающий этап определения, разделять ли текущий блок на множество субблоков; этап определения, когда текущий блок разделяется на множество субблоков, направления разделения для текущего блока между направлением горизонтального разделения и направлением вертикального разделения и определения количества субблоков на основе информации разделения, декодированной из потока битов, и ширину и высоту текущего блока; этап восстанавления текущего блока путем последовательного восстановления субблоков, заданных в соответствии с направлением разделения и количеством субблоков, с использованием интра-предсказания; и этап установки сетки из N отсчетов на равных интервалах в горизонтальном и вертикальном направлениях и выполнения деблокирующей фильтрации среди границ между субблоками в текущем блоке, причем границы совпадают с границей сетки.[0007] According to at least one aspect of the present invention, there is provided a video decoding method for reconstructing a current block using intra-prediction, comprising the step of determining whether to divide the current block into a plurality of sub-blocks; a step of determining, when the current block is divided into a plurality of sub-blocks, a division direction for the current block between the horizontal division direction and the vertical division direction, and determining the number of sub-blocks based on the division information decoded from the bitstream, and the width and height of the current block; a step of reconstructing the current block by sequentially reconstructing subblocks specified according to the division direction and the number of subblocks using intra-prediction; and the step of establishing a grid of N samples at equal intervals in the horizontal and vertical directions and performing deblocking filtering among the boundaries between subblocks in the current block, the boundaries being the same as the grid boundary.
[0008] Согласно другому аспекту настоящего изобретения предложено устройство декодирования видео для восстановления текущего блока с использованием интра-предсказания. Устройство декодирования видео включает средство для определения, следует ли разделить текущий блок на множество субблоков, средство для определения, когда текущий блок разделен на множество субблоков, направления разделения для текущего блока между направлением горизонтального разделения и направлением вертикального разделения, и количества субблоков на основе информации разделения, декодированной из потока битов, а также ширины и высоты текущего блока, средство восстановления текущего блока путем последовательного восстановления субблоков, которые указаны в соответствии с направлением разделения и количеством субблоков, с использованием интра-предсказания, и средство установки сетки из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнения деблокирующей фильтрации среди границ между субблоками в текущем блоке, причем границы совпадают с границей сетки.[0008] According to another aspect of the present invention, a video decoding apparatus is provided for reconstructing a current block using intra-prediction. The video decoding apparatus includes means for determining whether a current block should be divided into a plurality of sub-blocks, means for determining when the current block is divided into a plurality of sub-blocks, a dividing direction for the current block between a horizontal dividing direction and a vertical dividing direction, and a number of sub-blocks based on the dividing information. decoded from the bit stream and the width and height of the current block, means for reconstructing the current block by sequentially reconstructing sub-blocks that are specified according to the division direction and number of sub-blocks using intra-prediction, and means for setting a grid of N samples at regular intervals. in the horizontal and vertical directions and performing deblocking filtering among the boundaries between subblocks in the current block, the boundaries being the same as the grid boundary.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0009] На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать методы, предложенные настоящим изобретением.[0009] In FIG. 1 is a diagram illustrating a video encoding apparatus that can implement the methods proposed by the present invention.
[0010] На фиг. 2 показана схема, поясняющая способ разделения блока с использованием структуры QTBTTT.[0010] In FIG. 2 is a diagram explaining a block division method using the QTBTTT structure.
[0011] На фиг. 3A показана схема, иллюстрирующая множество режимов интра-предсказания.[0011] In FIG. 3A is a diagram illustrating a variety of intra-prediction modes.
[0012] На фиг. 3B показана схема, иллюстрирующая множество режимов интра-предсказания, включая режимы широкоугольного интра-предсказания.[0012] In FIG. 3B is a diagram illustrating a variety of intra-prediction modes, including wide-angle intra-prediction modes.
[00013] На фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать методы, предложенные настоящим изобретением.[00013] In FIG. 4 is a diagram illustrating a video decoding apparatus configured to implement the methods proposed by the present invention.
[0014]На фиг. 5A-5C показаны схемы, иллюстрирующие типы, в которых текущий блок может быть разделен на множество субблоков, когда текущий блок кодируется интра-предсказанием согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0014] In FIG. 5A-5C are diagrams illustrating types in which a current block can be divided into a plurality of sub-blocks when the current block is intra-prediction encoded according to at least one embodiment of the present invention.
[0015]На фиг. 6 показана функциональная блок-схема, иллюстрирующая примерную конфигурацию блока интра-предсказания в устройстве кодирования видео согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0015] In FIG. 6 is a functional block diagram illustrating an exemplary configuration of an intra-prediction unit in a video encoding apparatus according to at least one embodiment of the present invention.
[0016] На фиг. 7 показана блок-схема способа, выполняемого устройством кодирования видео для кодирования с интра-предсказанием текущего блока видео согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0016] In FIG. 7 is a flowchart of a method performed by a video encoding apparatus for intra-predictive encoding of a current block of video according to at least one embodiment of the present invention.
[0017] На фиг. 8 показана функциональная блок-схема, иллюстрирующая примерную конфигурацию блока интра-предсказания в устройстве кодирования видео согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0017] In FIG. 8 is a functional block diagram illustrating an exemplary configuration of an intra-prediction unit in a video encoding apparatus according to at least one embodiment of the present invention.
[0018] На фиг. 9 показана блок-схема способа, выполняемого устройством декодирования видео для декодирования текущего блока, кодированного с интра-предсказанием, из потока битов кодированного видео, согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0018] In FIG. 9 is a flowchart of a method performed by a video decoding apparatus for decoding a current intra-prediction encoded block from a coded video bit stream, according to at least one embodiment of the present invention.
[0019] На фиг. 10A и 10B показаны схемы, иллюстрирующие блок кодирования, подвергающийся восстановлению последовательно в единицах субблоков при генерации субблока предсказания субблока.[0019] In FIG. 10A and 10B are diagrams illustrating a coding block undergoing reconstruction sequentially in units of subblocks when generating a subblock prediction subblock.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION
[0020] Далее варианты осуществления настоящего изобретения будут подробно описаны со ссылкой на приложенные чертежи. В нижеследующем описании одинаковые номера позиций предпочтительно относятся к одинаковым элементам, несмотря на то, что эти элементы показаны на разных чертежах. Кроме того, в целях ясности и краткости изложения, в нижеследующем описании некоторых вариантов осуществления опущено подробное описание относящихся к ним известных компонентов и функций, в случае, когда они затрудняют понимание объекта настоящего изобретения.[0020] In the following, embodiments 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.
[0021] На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать методы, предложенные настоящим изобретением. Далее устройство кодирования виде и субкомпоненты устройства будут описаны со ссылкой на фиг. 1.[0021] In FIG. 1 is a diagram illustrating a video encoding apparatus that can implement the methods proposed by the present invention. Next, the form encoding apparatus and subcomponents of the apparatus will be described with reference to FIG. 1.
[0022] Устройство кодирования видео может быть конфигурировано так, что оно содержит блок 110 разделения изображения, блок 120 предсказания, блок 130 вычитания, блок 140 преобразования, блок 145 квантования, блок 150 переупорядочивания, блок 155 энтропийного кодирования, блок 160 обратного квантования, блок 165 обратного преобразования, сумматор 170, блок 180 фильтрации и память 190.[0022] The video encoding device may be configured to include an image division block 110, a prediction block 120, a subtraction block 130, a transform block 140, a quantization block 145, a reordering block 150, an entropy encoding block 155, an inverse quantization block 160, a inverse conversion 165, adder 170, filtering unit 180, and memory 190.
[0023] Соответствующие компоненты устройства кодирования видео могут быть реализованы в виде аппаратного или программного обеспечения, или в виде комбинации аппаратного и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее исполнения микропроцессором.[0023] The corresponding components of the video encoding device 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.
[0024] Видео состоит из множества изображений. Каждое изображение разбивается на множество участков, и для каждого участка выполняется кодирование. Например, одно изображение разбивается на один или более мозаичных элементов и/или секций. Здесь один или более мозаичных элементов могут быть определены как группа мозаичных элементов. Каждый мозаичный элемент и/или секцию разделяют на одну или более единиц дерева кодирования (CTU). И каждую CTU разделяют на одну или более единиц кодирования (CU) древовидной структурой. Информация, применяемая к соответствующим CU, кодируется как синтаксис CU, а информация, обычно применяемая к CU, включенным в одну единицу CTU, кодируется как синтаксис CTU. Кроме того, информация, обычно применяемая ко всем блокам в одной секции, кодируется как синтаксис заголовка секции, а информация, применяемая ко всем блокам, составляющим одно изображение, кодируется в наборе параметров изображения (PPS) или заголовке изображения. Кроме того, информация, на которую обычно ссылается множество изображений, кодируется в наборе параметров последовательности (SPS). Кроме того, информация, на которую обычно ссылаются один или более наборов SPS, кодируется в наборе параметров видеоизображения (VPS). Таким же образом информация, обычно применяемая к одному мозаичному элементу или группе мозаичных элементов, может быть кодирована как синтаксис заголовка мозаичного элемента или заголовка группы мозаичных элементов.[0024] A video consists of multiple 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 tiles and/or sections. Here, one or more tiles may be defined as a group of tiles. Each tile and/or section is divided into one or more coding tree units (CTUs). And each CTU is divided into one or more coding units (CU) in a tree structure. Information 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 one tile or group of tiles may be encoded as tile header or tile group header syntax.
[0025] Блок 110 разделения изображения определяет размер единицы дерева кодирования CTU. Информация о размере CTU (размер CTU) кодируется как синтаксис набора SPS или набора PPS и передается в устройство декодирования видео.[0025] The image division unit 110 determines the unit size of the CTU coding tree. CTU size information (CTU size) is encoded as SPS set or PPS set syntax and transmitted to the video decoding device.
[0026] Блок 110 разделения изображения разделяет каждое изображение, составляющее видео, на множество CTU, имеющих заранее определенный размер, а затем использует древовидную структуру для рекурсивного разделения CTU. Концевой узел в древовидной структуре становится единицей кодирования CU, которая является базовой единицей кодирования.[0026] The image division unit 110 divides each image constituting a video into a plurality of CTUs having a predetermined size, and then uses a tree structure to recursively divide the CTUs. The leaf node in the tree structure becomes the CU coding unit, which is the basic coding unit.
[0027] Древовидная структура для может быть деревом квадрантов (QuadTree (QT)), в котором верхний узел (или родительский узел) разделен на четыре нижних узла одинакового размера (или дочерние узлы), двоичным деревом (BinaryTree (BT)), в котором верхний узел разделен на два нижних узла, троичным деревом (TernaryTree (TT)), в котором верхний узел разделен на три нижних узла с соотношением размеров 1: 2: 1, или комбинацией двух или более из структуры QT, структуры BT и структуры TT. Например, может использоваться структура, включающая дерево квадрантов и двоичное дерево (QTBT), или структура, включающая дерево квадрантов и двоичное дерево троичное дерево (QTBTTT). Здесь BTTT может в совокупности называться деревом множественного типа (MTT).[0027] The tree structure for may be a quadtree (QT) in which a top node (or parent node) is divided into four equally sized lower nodes (or child nodes), a binary tree (BT) in which the top node is divided into two bottom nodes, by a ternary tree (TernaryTree (TT)), in which the top node is divided into three bottom 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, BTTT may be collectively referred to as multiple type tree (MTT).
[0028] На фиг. 2 показана древовидная структура разделения QTBTTT. Как показано на фиг. 2, CTU может быть сначала разделена на структуру QT. Разделение дерева квадрантов может повторяться до тех пор, пока размер блока разделения не достигнет минимального размера блока (MinQTSize) концевого узла, разрешенного в структуре QT. Первый флаг (QT_split_flag), указывающий, разделен ли каждый узел структуры QT на четыре узла нижнего уровня, кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видео. Если концевой узел структуры QT не превышает максимальный размер (MaxBTSize) блока корневого узла, разрешенного в структуре BT, он может быть дополнительно разделен на любую одну или более структур BT или структур TT. В структуре BT и/или структуре TT может быть множество направлений разделения. Например, может быть два направления, в которых блок соответствующего узла разделяется по горизонтали и по вертикали. Как показано на фиг. 2, когда начинается разделение MTT, второй флаг (mtt_split_flag), указывающий, разделены ли узлы, и, если да, дополнительный флаг, указывающий направления разделения (вертикальное или горизонтальное), и/или флаг, указывающий разделение или тип разделения (двоичное или троичное) кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видео.[0028] In FIG. Figure 2 shows the tree structure of the QTBTTT partition. As shown in FIG. 2, CTU can be first divided into 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 entropy encoding unit 155 and transmitted to the video decoding device. If a leaf node of a QT structure does not exceed the maximum block size (MaxBTSize) of the root node allowed in a BT structure, it may be further divided into any one or more BT structures or TT structures. There may be multiple division directions in a BT structure and/or a TT structure. For example, there may be two directions in which the block of the corresponding node is divided horizontally and vertically. As shown in FIG. 2, when MTT splitting begins, a second flag (mtt_split_flag) indicating whether the nodes are split, and, if so, an additional flag indicating the split directions (vertical or horizontal), and/or a flag indicating the split or split type (binary or ternary ) is encoded by entropy encoding unit 155 and transmitted to the video decoding device.
[0029] В качестве альтернативы, перед кодированием первого флага (QT_split_flag), указывающего, разделен ли каждый узел на четыре узла нижнего уровня, может быть закодирован флаг разделения единицы CU (split_cu_flag), указывающий, разделен ли этот узел или нет. Когда значение флага разделения CU (split_cu_flag) указывает, что разделение не выполняется, блок соответствующего узла становится конечным узлом в структуре дерева разделения и обслуживает единицу кодирования (CU), которая является базовой единицей кодирования. Когда значение флага разделения единицы CU (split_cu_flag) указывает, что узел был разделен, устройство кодирования видео начинает кодирование с первого флага описанным выше способом.[0029] 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 the CU split flag (split_cu_flag) indicates that no split is being performed, the block of the corresponding node becomes the leaf node in the split tree structure and serves a coding unit (CU), which is the basic 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.
[0030] В качестве другого примера древовидной структуры, в которой используется структура QTBT, можно привести два типа разделения, включающие тип, в котором по горизонтали разделяют блок соответствующего узла на два блока одинакового размера (т.е. симметричное горизонтальное разделение), и тип, в котором его же разделяют по вертикали (т. е. симметричное вертикальное разделение). Кодируемым блоком 155 энтропийного кодирования и передаваемым в устройство декодирования видеоизображений является флаг разделения (split_flag), указывающий, разделен ли каждый узел структуры BT на блоки нижнего уровня, и информацию о типе разделения, указывающую тип его разделения. Между тем, может быть дополнительный тип, в котором блок соответствующего узла разбивается на два асимметрично сформированных блока. Асимметричная форма может включать в себя форму блока соответствующего узла, разбиваемого на два прямоугольных блока, имеющих соотношение размеров 1:3, или форму блока соответствующего узла, разбиваемого в диагональном направлении.[0030] As another example of a tree structure that uses the QTBT structure, there are two types of partitioning, including a type in which the block of the corresponding node is horizontally divided into two blocks of the same size (i.e., symmetrical horizontal partition), and a type , in which it is also divided vertically (i.e., symmetrical vertical division). Encoded by the entropy encoding block 155 and transmitted to the video decoding device is a split flag (split_flag) indicating whether each node of the BT structure is divided into lower-level blocks, and split type information indicating its division type. Meanwhile, there may be an additional type in which the block of the corresponding node is split into two asymmetrically formed blocks. The asymmetrical shape may include a block shape of the corresponding node being divided into two rectangular blocks having an aspect ratio of 1:3, or a block shape of the corresponding node being divided in a diagonal direction.
[0031] CU может иметь различные размеры в зависимости от структуры QTBT или QTBTTT разделения CTU. В дальнейшем блок, соответствующий CU, который должен быть закодирован или декодирован (то есть концевой узел QTBTTT), называется «текущим блоком». При использовании разделения QTBTTT текущий блок может иметь форму не только квадрата, но и прямоугольника.[0031] The CU may have different sizes depending on the QTBT or QTBTTT structure of the CTU partition. 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.
[0032] Блок 120 предсказания предсказывает текущий блок, чтобы сгенерировать блок предсказания. Блок 120 предсказания включает в себя блок 122 интра-предсказания и блок 124 интер-предсказания.[0032] Prediction block 120 predicts the current block to generate a prediction block. The prediction block 120 includes an intra-prediction block 122 and an inter-prediction block 124.
[0033] В общем, каждый из текущих блоков изображения может кодироваться с предсказанием. Предсказание текущего блока обычно может выполняться с использованием метода интра-предсказания или метода интер-предсказания, при этом метод интра-предсказания использует данные из изображения, содержащего текущий блок, а метод интер-предсказания использует данные из изображения, закодированного до изображения, содержащего текущий блок. Интер-предсказание включает в себя как однонаправленное, так и двунаправленное предсказание.[0033] In general, each of the current image blocks may be predictively encoded. Prediction of the current block can usually be performed using an intra-prediction method or an inter-prediction method, with the intra-prediction method using data from the image containing the current block, and the inter-prediction method using data from the image encoded before the image containing the current block . Inter-prediction includes both unidirectional and bidirectional prediction.
[0034] Блок 122 интра-предсказания предсказывает пиксели в текущем блоке, используя соседние пиксели (опорные пиксели), расположенные вокруг текущего блока в текущем изображении. Существует множество режимов интра-предсказания согласно направлениям предсказания. Например, как показано на фиг. 3A, несколько режимов интра-предсказания могут включать в себя 2 ненаправленных режима, включая планарный режим и режим DC, а также 65 направленных режимов. Соответствующие режимы предсказания обеспечивают различные соответствующие определения соседних пикселей и формул вычисления, которые должны использоваться.[0034] The intra-prediction unit 122 predicts pixels in the current block using neighboring pixels (reference pixels) located around the current block in the current image. There are many intra-prediction modes according to the prediction directions. For example, as shown in FIG. 3A, multiple intra-prediction modes can include 2 omnidirectional modes including planar mode and DC mode, as well as 65 directional modes. The corresponding prediction modes provide various appropriate definitions of neighboring pixels and calculation formulas to be used.
[0035] Для эффективного направленного прогнозирования блока тока прямоугольной формы могут использоваться дополнительные направленные режимы, как показано на фиг. 3B пунктирными стрелками режимов интра-предсказания под номерами 67-80 и номерами -1- -14. Они могут называться «режимами широкоугольного интра-предсказания». Стрелки на фиг. 3B указывают соответствующие опорные отсчеты, используемые для предсказания, а не направления предсказания. Направление предсказания противоположно направлению, указанному стрелкой. Режим широкоугольного внутреннего предсказания - это режим, в котором предсказание выполняется в направлении, противоположном определенному направленному режиму без дополнительной передачи битов, когда текущий блок имеет прямоугольную форму. В этом случае из режимов широкоугольного интра-предсказания некоторые режимы широкоугольного интра-предсказания, доступные для использования в текущем блоке, могут определяться отношением ширины к высоте прямоугольного текущего блока. Например, режимы широкоугольного интра-предсказания, которые имеют угол меньше 45 градусов (режимы интра-предсказания под номерами 67-80), могут использоваться, когда текущий блок имеет прямоугольную форму с высотой меньше ширины. Режимы широкоугольного интра-предсказания, имеющие угол -135 градусов или больше (режимы интра-предсказания под номерами -1 - -14) могут использоваться, когда текущий блок имеет прямоугольную форму с высотой больше ширины.[0035] Additional directional modes can be used to effectively directionally predict a square wave block of current, as shown in FIG. 3B with dotted arrows of intra-prediction modes numbered 67-80 and numbers -1- -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 mode is a mode in which prediction is performed in the opposite direction to a specific directional mode without additional bit transmission when the current block is rectangular in shape. 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) can be used when the current block is rectangular in shape with a height less than its width. Wide-angle intra-prediction modes having an angle of -135 degrees or greater (intra-prediction modes numbered -1 to -14) can be used when the current block is rectangular in shape with a height greater than its width.
[0036] Блок 122 интра-предсказания может определять режим интра-предсказания, который будет использоваться для кодирования текущего блока. В некоторых примерах блок 122 интра-предсказания может кодировать текущий блок с использованием нескольких режимов интра-предсказания и выбирать для использования подходящий режим интра-предсказания из проверенных режимов. Например, блок 122 интра-предсказания может вычислять значения скоростного искажения посредством анализа скорости-искажения нескольких протестированных режимов интра-предсказания и выбирать режим интра-предсказания, который имеет лучшие характеристики скорости-искажения среди протестированных режимов.[0036] The intra-prediction block 122 may determine the intra-prediction mode to be used to encode the current block. In some examples, intra-prediction block 122 may encode the current block using multiple intra-prediction modes and select an appropriate intra-prediction mode from the tested modes to use. For example, intra-prediction block 122 may calculate speed distortion values by analyzing the speed-distortion of several tested intra-prediction modes and select the intra-prediction mode that has the best speed-distortion characteristics among the tested modes.
[0037] Блок 122 интра-предсказания выбирает один режим интра-предсказания из множества режимов интра-предсказания и предсказывает текущий блок, используя по меньшей мере один соседний пиксель (опорный пиксель), определенный согласно выбранному режиму интра-предсказания и формуле вычисления. Информация о выбранном режиме интра-предсказания кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.[0037] The intra prediction unit 122 selects one intra prediction mode from a plurality of intra prediction modes and predicts the current block using at least one neighboring pixel (reference pixel) determined according to the selected intra prediction mode and calculation formula. Information about the selected intra-prediction mode is encoded by entropy encoding unit 155 and transmitted to the video decoding device.
[0038] Блок 124 интер-предсказания генерирует блок предсказания для текущего блока посредством процесса компенсации движения. Блок 124 внешнего предсказания ищет блок, наиболее похожий на текущий блок в опорном изображении, которое был кодировано и декодировано раньше, чем текущее изображение, и генерирует блок предсказания текущего блока, используя найденный блок. Затем блок 124 интер-предсказания генерирует вектор движения, соответствующий смещению между текущим блоком в текущем изображении и блоком предсказания в опорном изображении. В общем, оценку движения выполняют для компонента яркости, а вектор движения, вычисленный на основе компонента яркости, используется как для компонента яркости, так и для компонента цветности. Информация о движении, включающая в себя информацию об опорном изображении и информацию о векторе движения, используемую для предсказания текущего блока, кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.[0038] The inter-prediction block 124 generates a prediction block for the current block through a motion compensation process. The inter prediction unit 124 searches for a block most similar to the current block in a reference picture that was encoded and decoded earlier than the current picture, and generates a current block prediction block using the found block. Then, the inter-prediction block 124 generates a motion vector corresponding to the offset between the current block in the current image and the prediction block in the reference image. In general, motion estimation is performed on the luminance component, and a motion vector calculated based on the luminance component is used for both the luminance component and the chrominance component. Motion information including reference image information and motion vector information used for predicting the current block is encoded by the entropy encoding unit 155 and transmitted to the video decoding apparatus.
[0039] Блок 130 вычитания генерирует остаточный блок путем вычитания из текущего блока предсказания, сгенерированного блоком 122 интра-предсказания или блоком 124 интер-предсказания.[0039] Subtraction block 130 generates a residual block by subtracting from the current prediction block generated by intra-prediction block 122 or inter-prediction block 124.
[0040] Блок 140 преобразования преобразует остаточный сигнал в остаточном блоке, имеющем значения пикселей в пространственной области, в коэффициенты преобразования в частотной области. Блок 140 преобразования может преобразовывать остаточные сигналы в остаточном блоке, используя полный размер остаточного блока в качестве блока преобразования, или разделять остаточный блок на два субблока, которые являются областью преобразования и областью без преобразования, и преобразовывать остаточные сигналы, используя только субблок области преобразования в качестве единицы преобразования. Здесь субблок области преобразования может быть одним из двух прямоугольных блоков, имеющих соотношение размеров 1: 1 по горизонтальной оси (или вертикальной оси). В этом случае флаг (cu_sbt_flag), указывающий, что преобразован только один субблок, информация о направлении (по вертикали/горизонтали) (cu_sbt_horizontal_flag) и/или информация о положении (cu_sbt_pos_flag) кодируются блоком 155 энтропийного кодирования и передаются в устройство декодирования видео. Кроме того, размер субблока области преобразования может иметь соотношение размеров 1: 3 по горизонтальной оси (или вертикальной оси). В этом случае флаг (cu_sbt_quad_flag), определяющий соответствующее разделение, дополнительно кодируется энтропийным кодером 155 и передается в устройство декодирования видео.[0040] The conversion unit 140 converts the residual signal in the residual block having pixel values in the spatial domain into transform coefficients in the frequency domain. The transform block 140 may transform the residual signals in the residual block using the entire size of the residual block as a transform block, or divide the residual block into two subblocks that are a transform region and a non-transform region, and transform the residual signals using only a transform region subblock as conversion units. Here, the transform region subblock may be one of two rectangular blocks having a 1:1 aspect ratio along the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag) indicating that only one sub-block is converted, direction information (vertical/horizontal) (cu_sbt_horizontal_flag) and/or position information (cu_sbt_pos_flag) are encoded by the entropy encoding unit 155 and transmitted to the video decoding device. Additionally, the transform region subblock size may have an aspect ratio of 1:3 along the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_quad_flag) specifying the corresponding division is further encoded by the entropy encoder 155 and transmitted to the video decoding device.
[0041] Между тем, для преобразования может быть определен максимальный и/или минимальный размер преобразования. Преобразованию запрещено использовать блок преобразования, размер которого меньше минимального размера преобразования. Кроме того, когда остаточный блок текущего блока больше, чем максимальный размер преобразования, блок 140 преобразования разделяет остаточный блок на субблоки, имеющие размер, равный или меньший, чем максимальный размер преобразования, и выполняет преобразование, используя субблоки в качестве единицы преобразования. Здесь максимальный и/или минимальный размер преобразования может быть определен как фиксированный размер, установленный между устройством кодирования видео и устройством декодирования видео. В качестве альтернативы, информация о максимальном и/или минимальном размере преобразования может быть включена в SPS или PPS и передана из устройства кодирования видео в устройство декодирования видео.[0041] Meanwhile, a maximum and/or minimum transformation size can be determined for the transformation. A transform is prohibited from using a transform block that is smaller than the minimum transform size. In addition, when the residual block of the current block is larger than the maximum transformation size, the transformation unit 140 divides the residual block into subblocks having a size equal to or smaller than the maximum transformation size, and performs the transformation using the subblocks as the transformation unit. Here, the maximum and/or minimum transform size may be defined as a fixed size set between the video encoding device and the video decoding device. Alternatively, information about the maximum and/or minimum transform size may be included in the SPS or PPS and transmitted from the video encoding device to the video decoding device.
[0042] Блок 145 квантования квантует коэффициенты преобразования, выданные из блока 140 преобразования, и выводит квантованные коэффициенты преобразования в блок 155 энтропийного кодирования.[0042] The quantization unit 145 quantizes the transform coefficients output from the transform unit 140 and outputs the quantized transform coefficients to the entropy encoding unit 155 .
[0043] Блок 150 переупорядочивания может выполнять переупорядочение значений коэффициентов с помощью квантованных коэффициентов преобразования. Блок 150 переупорядочивания может использовать сканирование коэффициентов для преобразования двумерной матрицы коэффициентов в одномерную последовательность коэффициентов. Например, блок 150 переупорядочивания может сканировать коэффициенты DC до коэффициентов в высокочастотной области посредством зигзагообразного сканирования или диагонального сканирования для вывода одномерной последовательности коэффициентов. В зависимости от размера блока преобразования и режима интра-предсказания используемое зигзагообразное сканирование может быть заменено вертикальным сканированием для сканирования двумерного массива коэффициентов в направлении столбца и горизонтальным сканированием для сканирования коэффициентов в форму двумерного блока в направлении строки. Другими словами, способ сканирования, который должен использоваться, может быть выбран из зигзагообразного сканирования, диагонального сканирования, вертикального сканирования и горизонтального сканирования в соответствии с размером блока преобразования и режимом интра-предсказания.[0043] Reordering unit 150 may perform reordering of coefficient values using the quantized transform coefficients. Reorderer 150 may use coefficient scanning to transform a two-dimensional matrix of coefficients into a one-dimensional sequence of coefficients. For example, reordering unit 150 may scan DC coefficients to high-frequency domain coefficients through a zigzag scan or a diagonal scan to output a one-dimensional sequence of coefficients. Depending on the size of the transform block and the intra-prediction mode, the zigzag scan used can be replaced by a vertical scan to scan a two-dimensional array of coefficients in the column direction and a horizontal scan to scan the coefficients into a two-dimensional block shape in the row direction. In other words, the scanning method to be used can be selected from zigzag scanning, diagonal scanning, vertical scanning and horizontal scanning according to the transform block size and the intra-prediction mode.
[0044] Блок 155 энтропийного кодирования кодирует последовательность одномерных квантованных коэффициентов преобразования, выводимых из блока 150 переупорядочивания, с использованием различных методов кодирования, таких как контекстно-зависимый адаптивный двоичный арифметический код (CABAC), экспоненциальный алгоритм Голомба и т.п. кодирования для генерации битового потока.[0044] Entropy encoding block 155 encodes a sequence of one-dimensional quantized transform coefficients output from reordering block 150 using various encoding techniques such as context-sensitive adaptive binary arithmetic code (CABAC), exponential Golomb algorithm, and the like. encoding to generate a bitstream.
[0045] Кроме того, блок 155 энтропийного кодирования кодирует информацию о разделении блока, такую как размер единицы CTU, флаг разделения единицы CU, флаг разделения QT, тип разделения MTT и направление разделения MTT, позволяя устройству декодирования видео разделить блок таким же образом, как и устройство кодирования видео. Кроме того, блок 155 энтропийного кодирования кодирует информацию о типе предсказания, указывающую, закодирован ли текущий блок посредством интра-предсказания или интер-предсказания, и декодирует, в зависимости от типа предсказания, информацию интра-предсказания, то есть информацию о режиме интра-предсказания или информацию интер-предсказания, т. е. информацию об опорных изображениях и векторах движения.[0045] In addition, the entropy encoding unit 155 encodes block division information such as CTU unit size, CU division flag, QT division flag, MTT division type, and MTT division direction, allowing the video decoding apparatus to divide the block in the same manner as and a video encoding device. In addition, the entropy encoding unit 155 encodes prediction type information indicating whether the current block is encoded by intra-prediction or inter-prediction, and decodes, depending on the prediction type, intra-prediction information, that is, intra-prediction mode information or inter-prediction information, i.e., information about reference images and motion vectors.
[0046] Блок 160 обратного квантования обратно квантовывает квантованные коэффициенты преобразования, выведенные из блока 145 квантования, для генерации коэффициентов преобразования. Блок 165 обратного преобразования преобразует коэффициенты преобразования, выданные из блока 160 обратного квантования, из частотной области в пространственную область, чтобы восстановить остаточный блок.[0046] The inverse quantization unit 160 inversely quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients. The inverse transform block 165 converts the transform coefficients output from the inverse quantization block 160 from the frequency domain to the spatial domain to reconstruct the residual block.
[0047] Сумматор 170 складывает восстановленный остаточный блок и блок предсказания, сгенерированный блоком 120 предсказания, чтобы восстановить текущий блок. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании следующего блока.[0047] An adder 170 adds the reconstructed residual block and the prediction block generated by the prediction block 120 to reconstruct the current block. The pixels in the reconstructed current block are used as reference pixels for intra-prediction of the next block.
[0048] Блок 180 фильтрации выполняет фильтрацию восстановленных пикселей для уменьшения блочных артефактов, артефактов звона, артефактов размытия и т.д., генерируемых вследствие предсказания на основе блоков и преобразования/квантования. Блок 180 фильтрации может включать в себя фильтр 182 удаления блочности и фильтр 184 адаптивного смещения отсчетов (SAO).[0048] The filtering unit 180 filters the reconstructed pixels to reduce blocking artifacts, ringing artifacts, blur artifacts, etc. generated due to block-based prediction and transform/quantization. Filtering block 180 may include a deblocking filter 182 and an adaptive sample offset (SAO) filter 184.
[0049] Фильтр 180 удаления блочности фильтрует границу между восстановленными блоками, чтобы удалить блочный артефакт, вызванный поблочным кодированием/декодированием, а фильтр 184 SAO выполняет дополнительную фильтрацию отфильтрованного изображения с удаленной блочностью. Фильтр 184 SAO - это фильтр, используемый для компенсации разницы между восстановленным пикселем и исходным пикселем, вызванной кодированием с потерями.[0049] A deblocking filter 180 filters the boundary between reconstructed blocks to remove block artifact caused by block encoding/decoding, and an SAO filter 184 further filters the deblocked filtered image. The SAO filter 184 is a filter used to compensate for the difference between the reconstructed pixel and the original pixel caused by lossy encoding.
[0050] Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в приближающемся изображении, подлежащим кодированию.[0050] The reconstructed block is filtered through deblocking filter 182 and SAO filter 184 and stored in memory 190. When all blocks in one image are reconstructed, the reconstructed image can be used as a reference image for inter-prediction of blocks in the upcoming image to be encoded.
[0051] На фиг. 4 показана схема, иллюстрирующая устройство декодирования видео, выполненное с возможностью реализовывать методы, предложенные настоящим изобретением. В дальнейшем устройство декодирования видео и компоненты устройства будут описаны со ссылкой на фиг. 4.[0051] In FIG. 4 is a diagram illustrating a video decoding apparatus configured to implement the methods proposed by the present invention. Hereinafter, the video decoding apparatus and components of the apparatus will be described with reference to FIG. 4.
[0052] Устройство декодирования видео может быть конфигурировано так, что оно включает блок 410 энтропийного декодирования, блок 415 переупорядочивания, блок 420 обратного квантования, блок 430 обратного преобразования, блок 440 предсказания, сумматор 450, блок 460 фильтрации и память 470.[0052] The video decoding apparatus may be configured to include an entropy decoding unit 410, a reordering unit 415, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, a filtering unit 460, and a memory 470.
[0053] Как и в устройстве кодирования видеоизображений с фиг. 1, соответствующие компоненты устройства декодирования видео могут быть реализованы как аппаратные средства или программное обеспечение, или как комбинация аппаратных средств и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее исполнения микропроцессором.[0053] As with 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.
[0054] Блок 410 энтропийного декодирования декодирует поток битов, сгенерированный устройством кодирования видео, и извлекает информацию о разделе блока, чтобы определить текущий блок, который должен быть декодирован, и извлекает информацию прогнозирования и информацию об остаточном сигнале и тому подобное, необходимое для восстановления текущего блока.[0054] The entropy decoding unit 410 decodes the bitstream generated by the video encoding device and extracts block section information to determine the current block to be decoded, and extracts prediction information and residual signal information and the like necessary to reconstruct the current block.
[0055] Блок 410 энтропийного декодирования извлекает информацию о размере CTU из набора параметров последовательности (SPS) или набора параметров изображения (PPS), определяет размер CTU и разделяет изображение на CTU заданного размера. Затем блок 410 энтропийного декодирования определяет CTU как наивысший уровень, то есть корневой узел древовидной структуры, и извлекает информацию разделения на CTU и тем самым разделяет CTU с использованием древовидной структуры.[0055] Entropy decoding unit 410 extracts CTU size information from the Sequence Parameter Set (SPS) or Picture Parameter Set (PPS), determines the CTU size, and divides the image into CTUs of a given size. Then, the entropy decoding unit 410 determines the CTU as the highest level, that is, the root node of the tree structure, and extracts the partitioning information into the CTU and thereby partitions the CTU using the tree structure.
[0056] Например, при разделении CTU с использованием структуры QTBTTT сначала извлекается первый флаг (QT_split_flag), связанный с разделением QT, и каждый узел разделяется на четыре узла нижнего уровня. Для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает второй флаг (MTT_split_flag), связанный с разделением MTT, и информацию о направлении разделения (вертикальное/горизонтальное) и/или типе разделения (двоичное/троичное), чтобы разделить соответствующий концевой узел на структуру MTT. Это позволяет рекурсивно разбивать соответствующие узлы ниже концевого узла QT на структуру BT или TT.[0056] 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 QT leaf node, entropy decoding unit 410 extracts a second flag (MTT_split_flag) associated with the MTT split and information about the split direction (vertical/horizontal) and/or split type (binary/ternary) to split the corresponding leaf node to the MTT structure. This allows the corresponding nodes below the QT leaf node to be recursively split into a BT or TT structure.
[0057] В качестве другого примера, при разделении CTU с использованием структуры QTBTTT блок 410 энтропийного декодирования может сначала извлечь флаг разделения CU (split_cu_flag), указывающий, разделена ли CU. Когда соответствующий блок разделен, он может извлечь первый флаг (QT_split_flag). В процессе разделения каждый узел может иметь ноль или более рекурсивных разделений QT, за которыми следует ноль или более рекурсивных разделений MTT. Например, CTU может сразу войти в разделение MTT или, наоборот, иметь только несколько разделений QT.[0057] As another example, when splitting a CTU using a QTBTTT structure, entropy decoding unit 410 may first retrieve a CU split flag (split_cu_flag) indicating whether the CU is split. When the corresponding block is split, it can extract the first flag (QT_split_flag). In a partitioning process, each node may have zero or more recursive QT partitions followed by zero or more recursive MTT partitions. For example, a CTU may immediately enter an MTT partition or, conversely, have only a few QT partitions.
[0058] В качестве еще одного примера, при разделении CTU с использованием структуры QTBT блок 410 энтропийного декодирования извлекает первый флаг (QT_split_flag), связанный с разделением QT, чтобы разделить каждый узел на четыре узла нижнего уровня. И для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает флаг разделения (split_flag), указывающий, является ли этот узел дополнительно разделенным на BT и информацию о направлении разделения.[0058] As another example, when splitting a CTU using a QTBT structure, the entropy decoding unit 410 extracts the first flag (QT_split_flag) associated with the QT split to split each node into four lower layer nodes. And for the node corresponding to the leaf node QT, the entropy decoding unit 410 extracts a split flag (split_flag) indicating whether this node is further divided into BT and split direction information.
[0059] Между тем, когда блок 410 энтропийного декодирования определяет текущий блок, который должен быть декодирован посредством разделения древовидной структуры, он извлекает информацию о типе предсказания, указывающую, был ли текущий блок предсказан интра-предсказанием или интер-предсказанием. Когда информация о типе предсказания указывает на интра-предсказание, блок 410 энтропийного декодирования извлекает элемент синтаксиса для информации интра-предсказания (режим интра-предсказания) текущего блока. Когда информация о типе предсказания указывает на интер-предсказание, блок 410 энтропийного декодирования извлекает элемент синтаксиса для информации интер-предсказания, то есть информацию, указывающую вектор движения и опорное изображение, на которое ссылается вектор движения.[0059] Meanwhile, when the entropy decoding unit 410 determines the current block to be decoded by dividing the tree structure, it extracts prediction type information indicating whether the current block has been predicted by intra-prediction or inter-prediction. When the prediction type information indicates intra-prediction, the entropy decoding unit 410 extracts a syntax element for the intra-prediction information (intra-prediction mode) of the current block. When the prediction type information indicates inter-prediction, the entropy decoding unit 410 extracts a syntax element for the inter-prediction information, that is, information indicating the motion vector and the reference image referenced by the motion vector.
[0060] Кроме того, блок 410 энтропийного декодирования извлекает информацию о квантованных коэффициентах преобразования текущего блока в качестве информации об остаточном сигнале.[0060] In addition, the entropy decoding unit 410 extracts information about the quantized transform coefficients of the current block as residual signal information.
[0061] Блок 415 переупорядочения изменяет в обратном порядке сканирования коэффициентов, выполняемого устройством кодирования видео, последовательность одномерных квантованных коэффициентов преобразования, энтропийно декодированных блоком 410 энтропийного декодирования, в двумерный массив коэффициентов. (т.е. блок).[0061] Reordering unit 415 reverses the coefficient scanning order of the video encoding device, the sequence of one-dimensional quantized transform coefficients entropy decoded by entropy decoding unit 410 into a two-dimensional array of coefficients. (i.e. block).
[0062] Блок 420 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования. Блок 430 обратного преобразования выполняет обратное преобразование коэффициентов обратного квантованного преобразования из частотной области в пространственную для восстановления остаточных сигналов и, таким образом, генерирования остаточного блока текущего блока.[0062] An inverse quantization unit 420 performs inverse quantization of the quantized transform coefficients. The inverse transform block 430 deconverts the inverse quantized transform coefficients from the frequency domain to the spatial domain to recover the residual signals and thereby generate a residual block of the current block.
[0063] Кроме того, когда блок 430 обратного преобразования выполняет обратное преобразование только частичной области (субблока) блока преобразования, он извлекает флаг (cu_sbt_flag), указывающий, что был преобразован только субблок блока преобразования, направленность субблока (вертикальная / horizontal) информации (cu_sbt_horizontal_flag) и / или информации о положении субблока (cu_sbt_pos_flag) и обратно преобразует коэффициенты преобразования субблока из частотной области в пространственную область для восстановления остаточных сигналов. В то же время блок 430 обратного преобразования заполняет оставшуюся область, которая не подвергается обратному преобразованию, значением «0» в качестве остаточных сигналов, и тем самым генерирует последний остаточный блок для текущего блока. Между тем, преобразование не допускается при использовании блока преобразования с размером меньше минимального размера преобразования. Кроме того, когда остаточный блок текущего блока больше, чем максимальный размер преобразования, блок 430 обратного преобразования разделяет остаточный блок на субблоки, имеющие размер, равный или меньший, чем максимальный размер преобразования, и выполняет обратное преобразование, используя субблоки в качестве единиц преобразования.[0063] In addition, when the demapping unit 430 deconverts only a partial region (subblock) of the transform block, it extracts a flag (cu_sbt_flag) indicating that only a subblock of the transform block has been converted, the directionality of the subblock (vertical/horizontal) information (cu_sbt_horizontal_flag ) and/or subblock position information (cu_sbt_pos_flag) and inversely converts the subblock transform coefficients from the frequency domain to the spatial domain to recover the residual signals. At the same time, the deconversion block 430 fills the remaining region that is not deconverted with the value "0" as residual signals, and thereby generates the last residual block for the current block. Meanwhile, conversion is not allowed when using a conversion block with a size smaller than the minimum conversion size. In addition, when the residual block of the current block is larger than the maximum transform size, the inverse transform unit 430 divides the residual block into subblocks having a size equal to or smaller than the maximum transform size, and performs the inverse transform using the subblocks as transform units.
[0064] Блок 440 предсказания может включать в себя блок 442 интра-предсказания и блок 444 интер-предсказания. Блок 442 интра-предсказания активируется, когда тип предсказания текущего блока является интра-предсказанием, и блок 444 интер-предсказания активируется, когда тип предсказания текущего блока является интер-предсказанием.[0064] The prediction block 440 may include an intra-prediction block 442 and an inter-prediction block 444. The intra-prediction block 442 is activated when the prediction type of the current block is intra-prediction, and the inter-prediction block 444 is activated when the prediction type of the current block is inter-prediction.
[0065] Блок 442 интра-предсказания определяет, из числа множества режимов интра-предсказания, режим интра-предсказания текущего блока из элемента синтаксиса для режима интра-предсказания, извлеченного блоком 410 энтропийного декодирования, и в соответствии с определенным режимом интра-предсказания, он предсказывает текущий блок, используя соседние опорные пиксели текущего блока. Режим интра-предсказания, определенный синтаксическим элементом для режима интра-предсказания, может быть значением, указывающим один из всех режимов интра-предсказания (например, всего 67 режимов), как описано выше. В случае, когда текущий блок является прямоугольным, некоторые направленные режимы из числа общего количества 67 режимов могут быть заменены одним из режимов широкоугольного интра-предсказания на основе отношения ширины к высоте текущего блока.[0065] The intra-prediction unit 442 determines, from among a plurality of intra-prediction modes, the intra-prediction mode of the current block from the syntax element for the intra-prediction mode extracted by the entropy decoding unit 410, and according to the determined intra-prediction mode, it predicts the current block using adjacent reference pixels of the current block. The intra-prediction mode specified by the syntax element for intra-prediction mode may be a value indicating one of all intra-prediction modes (eg, a total of 67 modes) as described above. In the case where the current block is rectangular, some directional modes out of a total of 67 modes may be replaced by one of the wide-angle intra-prediction modes based on the width-to-height ratio of the current block.
[0066] Блок 444 интер-предсказания использует элемент синтаксиса для режима интра-предсказания, извлеченный блоком 410 энтропийного декодирования, для определения вектора движения текущего блока и опорного изображения, на которое ссылается вектор движения, и он использует вектор движения и опорное изображение для предсказания текущего блока.[0066] The inter-prediction block 444 uses the syntax element for the intra-prediction mode extracted by the entropy decoding block 410 to determine the motion vector of the current block and the reference image referenced by the motion vector, and it uses the motion vector and the reference image to predict the current block.
[0067] Сумматор 450 суммирует остаточный блок, выданный из блока обратного преобразования, и блок предсказания, выданный из блока интер-предсказания или блока интра-предсказания, для восстановления текущего блока. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании подлежащих декодированию приходящих блоков.[0067] The adder 450 adds the residual block output from the inverse transform block and the prediction block output from the inter-prediction block or intra-prediction block to reconstruct the current block. The pixels in the reconstructed current block are used as reference pixels when intra-predicting incoming blocks to be decoded.
[0068] Блок 460 фильтрации может включать в себя фильтр 462 удаления блочности и фильтр 464 SAO. Фильтр 462 удаления блочности выполняет фильтрацию удаления блочности на границе между реконструированными блоками, чтобы удалить артефакт блокировки, вызванный поблочным декодированием. Фильтр 464 SAO выполняет дополнительную фильтрацию на восстановленном блоке после фильтрации удаления блочности, чтобы компенсировать разницу между восстановленным пикселем и исходным пикселем, вызванную кодированием с потерями. Восстановленный блок фильтруется через фильтр 462 удаления блочности и фильтр 464 SAO и сохраняется в памяти 470. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания подлежих кодированию блоков в изображении.[0068] Filtering block 460 may include deblocking filter 462 and SAO filter 464. The deblocking filter 462 performs deblocking filtering at the boundary between reconstructed blocks to remove blocking artifact caused by block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed block after the deblocking filtering to compensate for the difference between the reconstructed pixel and the original pixel caused by lossy encoding. The reconstructed block is filtered through deblocking filter 462 and SAO filter 464 and stored in memory 470. When all blocks in one image are reconstructed, the reconstructed image can be used as a reference image for inter-prediction of blocks to be encoded in the image.
[0069] Технологии вариантов осуществления, проиллюстрированных здесь, в целом относятся к кодированию с интра-предсказанием, то есть кодированию и декодированию текущего блока. Соответственно, определенные технологии настоящего изобретения могут выполняться блоком 122 интра-предсказания или блоком 442 интра-предсказания. В некоторых вариантах осуществления блок 122 интра-предсказания или блок 442 интра-предсказания выполняет методы настоящего изобретения, описанные со ссылкой на фиг. 5-9. В других вариантах осуществления один или более других блоков устройства кодирования видео или устройства декодирования видео могут дополнительно участвовать в выполнении методов настоящего изобретения. Нижеследующее описание в основном относится к технологии декодирования, в частности, к работе устройства декодирования видео, при этом технология кодирования описана кратко, поскольку последняя является обратной по отношению к подробно описанной технологии декодирования.[0069] The technologies of the embodiments illustrated herein generally relate to intra-predictive coding, that is, encoding and decoding of the current block. Accordingly, certain techniques of the present invention may be performed by intra-prediction unit 122 or intra-prediction unit 442. In some embodiments, intra-prediction block 122 or intra-prediction block 442 performs the methods of the present invention described with reference to FIGS. 5-9. In other embodiments, one or more other blocks of the video encoding device or video decoding device may further participate in performing the methods of the present invention. 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.
[0070] В интра-предсказании предсказание выполняется с ранее реконструированными отсчетами, расположенными рядом с текущим блоком, где соседний отсчет, используемый для интра-предсказания, упоминается как опорный отсчет. Обычно в интра-предсказании все отсчеты в текущем блоке предсказываются как единое целое с использованием опорных отсчетов. Например, для блока 16×16, 256 значения отсчетов, принадлежащих блоку 16×16, предсказываются с использованием их соседних отсчетов. Поскольку в видео существует пространственная корреляция, чем ближе текущий отсчет блока к опорному отсчету, тем лучше результаты предсказания в целом. Соответственно, в режиме вертикального предсказания (режим 50 на фиг. 3B) или в режиме горизонтального предсказания (режим 18 на фиг. 3B) текущие отсчеты блоков, смежные с опорными отсчетами, могут иметь точные значения предсказания, но те, которые далеки от опорных отсчетов, могут привести к неточным значениям предсказания.[0070] In intra-prediction, prediction is performed on previously reconstructed samples located adjacent to the current block, where the adjacent sample used for intra-prediction is referred to as a reference sample. Typically, in intra-prediction, all samples in the current block are predicted as a whole using reference samples. For example, for a 16x16 block, 256, the values of the samples belonging to the 16x16 block are predicted using their neighboring samples. Since there is spatial correlation in video, the closer the current block sample is to the reference sample, the better the overall prediction results. Accordingly, in the vertical prediction mode (mode 50 in FIG. 3B) or in the horizontal prediction mode (mode 18 in FIG. 3B), current block samples adjacent to the reference samples may have accurate prediction values, but those that are far from the reference samples , may lead to inaccurate prediction values.
[0071] Инструмент интра-кодирования, описанный ниже, относится к разделению CU в зависимости от ее размера на множество субблоков равного размера в вертикальном или горизонтальном направлении и выполнению предсказания для каждого субблока в одном и том же режиме интра-предсказания. Восстановленные значения отсчетов (или предсказанные значения отсчетов) каждого субблока доступны для предсказания следующего субблока, которое итеративно применяется для соответствующих субблоков. Например, когда текущий блок (CU) делится на четыре параллельных субблока, первый субблок может быть предсказан по соседним отсчетам текущего блока (CU), второй субблок может быть предсказан по его соседним пикселям, включая отсчеты первого субблока, третий субблок может быть предсказан из его соседних отсчетов, включая отсчеты второго субблока, а четвертый субблок может быть предсказан из соседних отсчетов, включая отсчеты третьего субблока. Таким образом, вместо предсказания всех пикселей текущего блока (CU) из отсчетов ранее кодированных или декодированных блоков, смежных с текущим блоком (CU), отсчеты в текущем блоке (CU) могут использоваться для предсказания других отсчетов в том же текущем блоке (CU).[0071] The intra-coding tool described below relates to dividing a CU depending on its size into a plurality of sub-blocks of equal size in the vertical or horizontal direction, and performing prediction for each sub-block in the same intra-prediction mode. The reconstructed sample values (or predicted sample values) of each sub-block are available for next sub-block prediction, which is iteratively applied to the corresponding sub-blocks. For example, when the current block (CU) is divided into four parallel sub-blocks, the first sub-block can be predicted from the neighboring samples of the current block (CU), the second sub-block can be predicted from its neighboring pixels including the samples of the first sub-block, the third sub-block can be predicted from its neighboring samples, including samples of the second sub-block, and the fourth sub-block can be predicted from neighboring samples, including samples of the third sub-block. Thus, instead of predicting all pixels of the current block (CU) from samples of previously encoded or decoded blocks adjacent to the current block (CU), samples in the current block (CU) can be used to predict other samples in the same current block (CU).
[0072] Одно преимущество инструмента интра-кодирования, предложенного согласно изобретению, состоит в том, что восстановленные соседние отсчеты имеют тенденцию быть намного ближе к предсказанному отсчету, чем в обычном сценарии интра-предсказания. Расположенные ближе к текущему отсчету в качестве основы для предсказания текущего отсчета, восстановленные соседние отсчеты могут повысить точность предсказания текущего отсчета.[0072] One advantage of the intra-coding tool proposed according to the invention is that the reconstructed neighboring samples tend to be much closer to the predicted sample than in a conventional intra-prediction scenario. By placing closer to the current sample as a basis for current sample prediction, reconstructed neighboring samples can improve the accuracy of current sample prediction.
[0073] 1. Разделение субблоков и сигнализация[0073] 1. Sub-unit separation and signaling
[0074]На фиг. 5A-5C показаны схемы, иллюстрирующие типы, в которых текущий блок может быть разделен на множество субблоков, когда текущий блок кодируется интра-предсказанием согласно по меньшей мере одному варианту осуществления настоящего изобретения. Минимальный размер блока, применимый к инструменту интра-кодирования согласно изобретению, может составлять 4×8 или 8×4. Дополнительно может быть добавлено ограничение, согласно которому все субблоки имеют минимум 16 отсчетов. Как показано на фиг. 5A-5C, блок размером 4×8 или 8×4 делится на два, и блок большего размера может быть разделен на 4 или 8 блоков. Размер CU, для которого может использоваться инструмент интра-кодирования, может быть ограничен максимумом 64×64 из-за блока данных виртуального конвейера (VPDU), который является блоком обработки VVC.[0074] In FIG. 5A-5C are diagrams illustrating types in which a current block can be divided into a plurality of sub-blocks when the current block is intra-prediction encoded according to at least one embodiment of the present invention. The minimum block size applicable to the intra-coding tool according to the invention may be 4x8 or 8x4. Additionally, a constraint may be added that all subblocks have a minimum of 16 samples. As shown in FIG. 5A-5C, a 4x8 or 8x4 block is divided into two, and a larger block can be divided into 4 or 8 blocks. The size of the CU for which the intra-encoding tool can be used may be limited to a maximum of 64x64 due to the virtual pipeline data unit (VPDU), which is a VVC processing unit.
[0075] Устройство кодирования видео может сигнализировать флаг разделения, указывающий, что текущий блок был разделен на несколько субблоков и интра-предсказан каждым субблоком. Соответственно, устройство декодирования видео может декодировать флаг разделения из потока битов видеоданных и определять, следует ли разделить текущий блок, на основе флага разделения. Флаг разделения первого значения (например, «0») указывает, что текущий блок не был разделен на множество субблоков, а флаг разделения второго значения (например, «1») указывает, что текущий блок был разделен на множество субблоков и интра-предсказан каждым субблоком.[0075] The video encoding device may signal a split flag indicating that the current block has been divided into multiple subblocks and intra-predicted by each subblock. Accordingly, the video decoding apparatus can decode a division flag from the video bit stream and determine whether the current block should be divided based on the division flag. The first value split flag (eg, "0") indicates that the current block has not been split into multiple sub-blocks, and the second value split flag (eg, "1") indicates that the current block has been split into multiple sub-blocks and intra-predicted by each subblock.
[0076] Флаг разделения может быть выведен устройством декодирования видео без явной сигнализации, то есть без декодирования из потока битов, но вместо этого в зависимости от ширины и высоты текущего блока, площади текущего блока, минимального размера преобразования и/или максимального размера преобразования, разрешенного для преобразования коэффициентов преобразования.[0076] The split flag may be output by the video decoding device without explicit signaling, that is, without decoding from the bitstream, but instead depending on the width and height of the current block, the area of the current block, the minimum transform size and/or the maximum transform size allowed to convert the conversion factors.
[0077] По меньшей мере в одном варианте осуществления, когда ширина и высота текущего блока меньше, чем минимальный размер преобразования, флаг разделения может не нуждаться в декодировании из потока битов, а вместо этого должен быть установлен на первое значение, указывающее, что текущий блок не разделяется. В другом варианте осуществления, когда область текущего блока (т. е. количество пикселей, включенных в текущий блок) меньше, чем область блока преобразования (т. е. количество пикселей, включенных в блок преобразования), определяемая минимумом размер преобразования, флаг разделения может не нуждается в декодировании из потока битов, но вместо этого должен быть установлен на первое значение, указывающее, что текущий блок не разделен. В еще одном варианте осуществления, когда ширина и высота текущего блока больше, чем максимальный размер преобразования, флаг разделения не может быть декодирован из потока битов. В этом случае можно сделать вывод, что флаг разделения имеет второе значение, т. е. что текущий блок был разделен на множество субблоков и интра-предсказан каждым субблоком. В качестве альтернативы можно сделать вывод, что флаг разделения имеет первое значение. Другими словами, когда ширина и высота текущего блока больше, чем максимальный размер преобразования, когда инструмент кодирования настоящего изобретения, который разделяет текущий блок на множество субблоков и выполняет интра-предсказание для каждого субблока, может не применяться к текущему блоку. В еще одном варианте осуществления, когда текущий блок расположен на границе изображения (или мозаичного элемента), инструмент интра-кодирования настоящего изобретения не используется для текущего блока, и предполагается, что флаг разделения имеет первое значение. В качестве альтернативы, текущий блок, когда он расположен на границе изображения (или мозаичного элемента), может сопровождать использование инструмента интра-кодирования настоящего изобретения, и, таким образом, предполагается, что флаг разделения имеет второе значение, тем самым устраняя необходимость в дополнительных блочных разбиениях CTU на границе изображения.[0077] In at least one embodiment, when the width and height of the current block are less than the minimum transform size, the split flag may not need to be decoded from the bitstream, but instead should be set to a first value indicating that the current block not divided. In another embodiment, when the current block area (i.e., the number of pixels included in the current block) is smaller than the transform block area (i.e., the number of pixels included in the transform block) defined by the minimum transform size, the split flag may does not need to be decoded from the bitstream, but should instead be set to the first value indicating that the current block is not divided. In yet another embodiment, when the width and height of the current block are greater than the maximum transform size, the split flag cannot be decoded from the bitstream. In this case, we can conclude that the split flag has a second meaning, i.e., that the current block has been divided into many subblocks and intra-predicted by each subblock. Alternatively, one can infer that the split flag has the first value. In other words, when the width and height of the current block are larger than the maximum transform size, when the encoding tool of the present invention, which divides the current block into a plurality of sub-blocks and performs intra-prediction for each sub-block, may not be applied to the current block. In yet another embodiment, when the current block is located on an image (or tile) boundary, the intra-encoding tool of the present invention is not used for the current block, and the split flag is assumed to have the first value. Alternatively, the current block, when located at the boundary of an image (or tile), may accompany the use of the intra-encoding tool of the present invention, and thus the split flag is assumed to have a second value, thereby eliminating the need for additional block CTU splits at the image boundary.
[0078] Кроме того, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, информация о направлении и количестве разделов субблока может предоставляться различными способами. Например, направление и количество разделов субблока могут быть определены на основе элементов синтаксиса (например, флагов), извлеченных из потока битов, размера текущего блока, положения текущего блока, длины (например, ширины или высоты) одной стороны текущего блока, количества пикселей, включенных в текущий блок, режима интра-предсказания текущего блока, размера минимального или максимального блока преобразования и т.п.[0078] In addition, when the intra-encoding tool of the present invention is applied to the current block, information about the direction and number of sections of the sub-block can be provided in various ways. For example, the direction and number of sections of a subblock can be determined based on syntax elements (eg, flags) extracted from the bitstream, the size of the current block, the position of the current block, the length (eg, width or height) of one side of the current block, the number of pixels included into the current block, the intra-prediction mode of the current block, the size of the minimum or maximum transformation block, etc.
[0079] В некоторых вариантах осуществления, когда текущий блок разделяется на множество субблоков, устройство декодирования видео может определять направление разделения и количество субблоков на основе информации разделения, декодированной из потока битов, а также ширины и высоты текущего блока.[0079] In some embodiments, when a current block is divided into a plurality of subblocks, the video decoding apparatus may determine the division direction and the number of subblocks based on the division information decoded from the bit stream and the width and height of the current block.
[0080] В частности, количество субблоков может определяться шириной и высотой текущего блока. Например, как показано в таблице 1, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков определяется равным 2, а когда ширина и высота текущего блока больше, чем 4×4 и не равно 4×8 и 8×4, количество субблоков может быть определено как равное 4. В качестве другого примера, как показано в таблице 2, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков определяется как равное 2, а когда ширина и высота текущего блока равны от 8×N до 32×N или от N× 8 до N×32 (здесь N> 4), количество субблоков может быть определено как равное 4. Кроме того, количество субблоков может быть определено как равное 8 для текущих блоков, размер которых превышает 32×N и N×32.[0080] In particular, the number of sub-blocks may be determined by the width and height of the current block. For example, as shown in Table 1, when the width and height of the current block are 4x8 or 8x4, the number of subblocks is determined to be 2, and when the width and height of the current block are greater than 4x4 and not equal to 4x8 and 8 ×4, the number of subblocks can be determined to be 4. As another example, as shown in Table 2, when the width and height of the current block are 4x8 or 8x4, the number of subblocks is determined to be 2, and when the width and height of the current block are 8×N to 32×N or N×8 to N×32 (here N>4), the number of sub-blocks can be defined as 4. In addition, the number of sub-blocks can be defined as 8 for the current blocks , the size of which exceeds 32×N and N×32.
[0081] Таблица 1[0081] Table 1
[0082] Таблица 2[0082] Table 2
32×N и N×324x8 and 8x4
32×N and N×32
[0083] Является ли направление разделения горизонтальным или вертикальным, может определяться информацией разделения. В качестве альтернативы или дополнения направление разделения может быть определено (или выведено) на основе отношения ширины к высоте текущего блока. Например, направление разделения может быть определено как горизонтальное, когда ширина текущего блока больше, чем его высота, и может быть определено как вертикальное, когда ширина текущего блока меньше его высоты.[0083] Whether the dividing direction is horizontal or vertical may be determined by the dividing information. Alternatively or in addition, the direction of division can be determined (or inferred) based on the width to height ratio of the current block. For example, the division direction can be defined as horizontal when the width of the current block is greater than its height, and can be defined as vertical when the width of the current block is less than its height.
[0084] Альтернативно или дополнительно, когда текущий блок существует на границе изображения (или мозаичного элемента, группы мозаичных элементов и т. д.), форма разделения и количество субблоков могут быть выведены в соответствии с положением текущего блока.[0084] Alternatively or additionally, when the current block exists on the boundary of an image (or tile, group of tiles, etc.), the division shape and number of sub-blocks can be output according to the position of the current block.
[0085] Дополнительно, является ли направление разделения горизонтальным или вертикальным, может быть определено на основе направленности режимов предсказания, включенных в кандидатов режима интра-предсказания (то есть список MPM), определенных для текущего блока. В качестве примера, когда режимы с относительно горизонтальным интра-предсказанием, например, режимы с 3 по 33, показанные на фиг. 3B (далее «горизонтально ориентированные режимы») существуют или доминируют в списке MPM, направление разделения может быть определено как вертикальное. И когда режимы с относительно вертикальным интра-предсказанием, например, режимы с 35 по 65, показанные на фиг. 3B (далее «вертикально ориентированные режимы») существуют или доминируют в списке MPM, направление разделения может быть определено как горизонтальное.[0085] Additionally, whether the dividing direction is horizontal or vertical can be determined based on the directionality of the prediction modes included in the intra-prediction mode candidates (ie, the MPM list) defined for the current block. As an example, when relatively horizontal intra-prediction modes, such as modes 3 to 33 shown in FIG. 3B (hereinafter referred to as "horizontally oriented modes") exist or dominate the MPM list, the division direction can be defined as vertical. And when relatively vertical intra-prediction modes, such as modes 35 to 65 shown in FIG. 3B (hereinafter referred to as "vertically oriented modes") exist or dominate the MPM list, the division direction can be defined as horizontal.
[0086] 2. Определение режима интра-предсказания[0086] 2. Define intra-prediction mode
[0087] Когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, режим интра-предсказания, определенный для текущего блока, может обычно применяться к интра-предсказанию субблоков текущего блока.[0087] When the intra-encoding tool of the present invention is applied to the current block, the intra-prediction mode defined for the current block may generally be applied to the intra-prediction of sub-blocks of the current block.
[0088] Режим широкоугольного интра-предсказания все еще может использоваться для текущего блока, к которому применяется инструмент интра-кодирования настоящего изобретения. В этом случае режим широкоугольного интра-предсказания может определяться соотношением между шириной и высотой текущего блока, а не соотношением между шириной и высотой субблока, отделенного от текущего блока.[0088] The wide-angle intra-prediction mode can still be used for the current block to which the intra-coding tool of the present invention is applied. In this case, the wide-angle intra-prediction mode may be determined by the ratio between the width and height of the current block, rather than the ratio between the width and height of a subblock separated from the current block.
[0089] Устройство декодирования видео может определять режим интра-предсказания текущего блока путем декодирования из потока битов информации режима интра-предсказания текущего блока. Например, устройство декодирования видео выбирает заранее определенное количество кандидатов режима интра-предсказания из множества режимов интра-предсказания и использует информацию режима интра-предсказания текущего блока для определения из числа кандидатов режима интра-предсказания (т. е. список MPM), режима интра-предсказания текущего блока.[0089] The video decoding apparatus may determine the intra-prediction mode of the current block by decoding the intra-prediction mode of the current block from the information bit stream. For example, a video decoding apparatus selects a predetermined number of intra-prediction mode candidates from a plurality of intra-prediction modes, and uses the intra-prediction mode information of the current block to determine from among the intra-prediction mode candidates (i.e., the MPM list), the intra-prediction mode. predictions of the current block.
[0090] Кандидаты в режим интра-предсказания могут быть выбраны различными способами в зависимости от того, является ли направление разделения горизонтальным или вертикальным. Например, когда направление разделения является горизонтальным, режимы с вертикальной ориентацией из числа множества режимов интра-предсказания могут быть выбраны в качестве кандидатов в режимы интра-предсказания, а не режимы с горизонтальной ориентацией. Кроме того, когда направление разделения является вертикальным, режимы с горизонтальной ориентацией из числа множества режимов с интра-предсказанием могут быть выбраны в качестве кандидатов в режимы интра-предсказания, а не режимы с вертикальной ориентацией. В качестве другого примера, когда направление разделения является горизонтальным, горизонтальные режимы (например, режим 18 на фиг. 3B) или режимы с горизонтальной ориентацией могут быть исключены из выбора кандидатов режима интра-предсказания, а когда направление разделения является вертикальным, вертикальным режимы (например, 50 на фиг. 3B) или режимы с вертикальной ориентацией могут быть исключены из выбора кандидатов режима интра-предсказания.[0090] Intra-prediction mode candidates can be selected in various ways depending on whether the dividing direction is horizontal or vertical. For example, when the dividing direction is horizontal, vertically oriented modes from among a plurality of intra-prediction modes may be selected as candidates for intra-prediction modes rather than horizontally oriented modes. In addition, when the dividing direction is vertical, horizontally oriented modes from among a plurality of intra-prediction modes may be selected as candidates for intra-prediction modes rather than vertically oriented modes. As another example, when the split direction is horizontal, horizontal modes (eg, mode 18 in FIG. 3B) or horizontally oriented modes may be excluded from the selection of intra-prediction mode candidates, and when the split direction is vertical, vertical modes (eg , 50 in Fig. 3B) or vertically oriented modes may be excluded from the selection of intra-prediction mode candidates.
[0091] 3. Генерация блока интра-предсказания в единицах субблоков[0091] 3. Generating an intra-prediction block in units of subblocks
[0092] Устройство декодирования видео восстанавливает текущий блок путем последовательного восстановления множества субблоков с использованием режима интра-предсказания, определенного для текущего блока. Например, устройство декодирования видео может сгенерировать интра-предсказанный субблок путем предсказания из восстановленных пикселей вокруг субблока целевого субблока, который будет восстановлен в текущий момент, из числа множества субблоков. Устройство декодирования видео может восстанавливать коэффициенты преобразования путем декодирования из потока битов информации о коэффициентах преобразования, соответствующей целевому субблоку, и может выполнять обратное квантование и обратное преобразование коэффициентов преобразования, используя тот же размер преобразования, что и размер целевого субблока, тем самым генерируя остаточный субблок, имеющий остаточные сигналы. Устройство декодирования видео может восстанавливать целевой субблок, используя интра-предсказанный субблок и остаточный субблок. В частности, пиксели в восстановленном субблоке могут использоваться для интра-предсказания следующего субблока в текущем блоке. За счет этого процесса субблоки текущего блока обрабатываются, начиная с субблока, включающего верхний левый отсчет текущего блока, до субблоков в направлении вниз последовательно, когда направление разделения является горизонтальным, и до субблоков в правом направлении последовательно, когда направление разделения вертикальное.[0092] The video decoding apparatus reconstructs the current block by sequentially reconstructing a plurality of sub-blocks using the intra-prediction mode defined for the current block. For example, a video decoding apparatus may generate an intra-predicted sub-block by predicting, from the reconstructed pixels around the sub-block, a target sub-block that will be currently reconstructed from among a plurality of sub-blocks. The video decoding apparatus can recover transform coefficients by decoding from the bitstream the transform coefficient information corresponding to the target subblock, and can perform inverse quantization and inverse transform of the transform coefficients using the same transform size as the size of the target subblock, thereby generating a residual subblock, having residual signals. The video decoding apparatus may reconstruct the target subblock using the intra-predicted subblock and the residual subblock. In particular, the pixels in the reconstructed subblock can be used to intra-predict the next subblock in the current block. By this process, the subblocks of the current block are processed from the subblock including the top left sample of the current block, to the subblocks in the downward direction sequentially when the dividing direction is horizontal, and to the subblocks in the right direction sequentially when the dividing direction is vertical.
[0093] В некоторых случаях, чтобы сохранить ширину минимальной единицы предсказания для субблоков равной 4 отсчетам, зависимость предсказания подблока 1×N/2×N от восстановленных значений ранее декодированного субблока 1× N/2×N текущего блока не может быть разрешена. Другими словами, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, допускается преобразование в единицах 1×N и 2×N, но может быть запрещено предсказание в единицах 1×N и 2×N. Например, текущий блок 8×N (N> 4), разделенный в вертикальном направлении, может быть разделен на четыре субблока 2×N. Соответственно, остаточные сигналы текущего блока генерируются путем восстановления и обратного преобразования в единицах 2×N субблоков. Однако, поскольку предсказание не допускается в единицах субблоков 2×N, текущий блок предсказывается в единицах субблоков 4×N, имеющих ширину 4 отсчета. Другими словами, текущий блок 8×N (N> 4), разделенный в вертикальном направлении, может быть разделен на две области предсказания 4×N и четыре области предсказания 2×N. Кроме того, текущий блок 4×N, разделенный в вертикальном направлении, может быть предсказан как область предсказания 4×N и разделен на четыре области преобразования 1×N. Это ограничение связано с типичной особенностью конструкции аппаратного обеспечения, хранящей результаты интра-предсказанных блоков, разделенных на несколько тактов в строковых единицах, что требует количества тактов, используемых для обработки блоков 1×N или 2×N, чтобы не превысить счет тактов для блоков 4×N.[0093] In some cases, in order to keep the width of the minimum prediction unit for subblocks equal to 4 samples, the dependence of the prediction of the 1xN/2xN subblock on the reconstructed values of the previously decoded 1xN/2xN subblock of the current block cannot be resolved. In other words, when the intra-encoding tool of the present invention is applied to the current block, transformation in 1×N and 2×N units is allowed, but prediction in 1×N and 2×N units may be prohibited. For example, a current 8×N block (N>4) divided in the vertical direction can be divided into four 2×N subblocks. Accordingly, the residual signals of the current block are generated by reconstruction and deconversion in units of 2×N subblocks. However, since prediction is not allowed in 2×N subblock units, the current block is predicted in 4×N subblock units having a width of 4 samples. In other words, the current 8×N block (N>4) divided in the vertical direction can be divided into two 4×N prediction areas and four 2×N prediction areas. In addition, the current 4×N block divided in the vertical direction can be predicted as a 4×N prediction area and divided into four 1×N transform areas. This limitation is due to a typical hardware design feature storing the results of intra-predicted blocks divided into multiple clock cycles in string units, which requires the number of clock cycles used to process 1xN or 2xN blocks so as not to exceed the clock count for 4 blocks ×N.
[0094] 4. Внутриконтурная фильтрация[0094] 4. In-loop filtration
[0095] Устройство декодирования видео может выполнять внутриконтурную фильтрацию, включая деблокировочную фильтрацию на восстановленном текущем блоке, и может сохранять отфильтрованный текущий блок в буфере (например, в памяти 470 на фиг. 4) для использования в качестве опорного изображения для блоки взаимного предсказания, которые должны быть закодированы в выдающемся изображении.[0095] The video decoding apparatus may perform in-loop filtering, including deblocking filtering, on the reconstructed current block, and may store the filtered current block in a buffer (e.g., memory 470 in FIG. 4) for use as a reference image for inter-prediction blocks that must be encoded in a prominent image.
[0096] В иллюстративном варианте осуществления устройство декодирования видео устанавливает сетку из M отсчетов с регулярными интервалами на CTU или изображении, содержащем текущий блок в горизонтальном и вертикальном направлениях, и выполняет деблокирующую фильтрацию на границах, которые совпадают с границами сетки среди границ между множеством субблоков в текущем блоке, к которому применяется инструмент интра-кодирования настоящего изобретения. Соответственно, деблокирующая фильтрация не может выполняться на границах между множеством субблоков, которые не совпадают с границей сетки. Например, при выполнении деблокирующей фильтрации в единицах 8×8, деблокирующая фильтрация может выполняться только на границе между субблоками, совпадающими с границей единичной сетки 8×8 среди границ между субблоками 2×N (или N×2) или 4×N (или N×4) размер. Хотя в качестве примера дана сетка размером 8×8 единиц, размер сетки не обязательно ограничивается 8×8. Например, количество M выборок может быть выражено в форме 2n (n - натуральное число) и может иметь любое значение 4, 8, 16 и т.п.[0096] In an exemplary embodiment, the video decoding apparatus establishes a grid of M samples at regular intervals on the CTU or image containing the current block in the horizontal and vertical directions, and performs deblocking filtering on the boundaries that coincide with the grid boundaries among the boundaries between the plurality of sub-blocks in the current block to which the intra-encoding tool of the present invention is applied. Accordingly, deblocking filtering cannot be performed on boundaries between multiple subblocks that do not coincide with the mesh boundary. For example, when performing deblocking filtering in 8x8 units, deblocking filtering can only be performed on the boundary between subblocks coinciding with the boundary of a unit 8x8 grid among the boundaries between 2xN (or Nx2) or 4xN (or N) subblocks ×4) size. Although a grid size of 8x8 units is given as an example, the grid size is not necessarily limited to 8x8. For example, the number M of samples can be expressed in the form 2n (n is a natural number) and can have any value 4, 8, 16, etc.
[0097] В некоторых случаях внутриконтурная фильтрация может выполняться только на части границы между субблоками в соответствии с направлением разделения субблока и количеством разделов. Например, с текущим разделением блоков в горизонтальном направлении может выполняться только вертикальная деблокирующая фильтрация, а горизонтальная деблокирующая фильтрация может быть опущена. Аналогично, с текущим разделением блоков в вертикальном направлении, может выполняться только деблокирующая фильтрация в горизонтальном направлении, а деблокирующая фильтрация в вертикальном направлении может быть опущена.[0097] In some cases, in-loop filtering may be performed on only part of the boundary between subblocks according to the subblock division direction and the number of partitions. For example, with the current block division in the horizontal direction, only vertical deblocking filtering may be performed, and horizontal deblocking filtering may be omitted. Similarly, with the current block division in the vertical direction, only deblocking filtering in the horizontal direction can be performed, and deblocking filtering in the vertical direction can be omitted.
[0098] В некоторых вариантах осуществления, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, может быть определено, выполняется ли внутриконтурная фильтрация в единицах каждого субблока. Соответственно, устройство декодирования видео может проверять, выполняется ли внутриконтурная фильтрация в единицах каждого субблока, или может проверять то же самое посредством синтаксиса высокого уровня.[0098] In some embodiments, when the intra-encoding tool of the present invention is applied to the current block, it can be determined whether intra-loop filtering is performed in the units of each sub-block. Accordingly, the video decoding apparatus may check whether in-loop filtering is performed in the units of each sub-block, or may check the same through high-level syntax.
[0099] При выполнении внутриконтурной фильтрации для текущего блока, способ выполнения внутриконтурной фильтрации или способ вычисления параметров внутриконтурной фильтрации может отличаться в соответствии с критериями, вычисленными на основе по меньшей мере одного из элементов информации, размера субблока, местоположения, глубины, QP и т.п.[0099] When performing in-loop filtering for the current block, a method for performing in-loop filtering or a method for calculating in-loop filtering parameters may differ according to criteria calculated based on at least one of information elements, sub-block size, location, depth, QP, etc. P.
[0100] Например, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, субблок текущего блока может быть меньше, чем блок, в котором выполняется вычисление параметров внутриконтурной фильтрации, например параметров для определения интенсивности фильтра и значения отсечения для изменения пикселя. В этом случае вместо вычисления параметров фильтрации в единицах субблоков параметры фильтрации могут быть вычислены относительно текущего блока, а внутриконтурная фильтрация может выполняться в единицах каждого субблока. В качестве альтернативы, общие параметры фильтрации могут быть вычислены относительно каждых двух или более объединенных субблоков, и эти субблоки могут совместно использовать общие параметры фильтрации.[0100] For example, when the intra-encoding tool of the present invention is applied to a current block, a sub-block of the current block may be smaller than a block in which calculation of in-loop filtering parameters, such as parameters for determining filter intensity and a cutoff value for changing a pixel, is performed. In this case, instead of calculating filtering parameters in units of subblocks, filtering parameters can be calculated relative to the current block, and in-loop filtering can be performed in units of each subblock. Alternatively, common filtering parameters may be calculated with respect to every two or more combined sub-blocks, and these sub-blocks may share common filtering parameters.
[0101] В качестве другого примера, когда блок для вычисления параметров ALF охватывает границу субблока, параметры ALF могут быть получены в единицах, например, {N×1, 1×N, N×2, 2×N} для выполнения ALF. В другом примере настоящее изобретение может избежать вычисления параметров для определения того, выполнять ли деблокировочную фильтрацию (или коэффициенты фильтра), конфигурируя деблокировочную фильтрацию, чтобы она когда-либо выполнялась или никогда не выполнялась в текущем блоке. В качестве другого примера, настоящее изобретение зависит от того, перекрывает ли граница текущего субблока границу CU (или CTU, или VPDU) для адаптивного изменения метода выполнения внутриконтурной фильтрации или метода вычисления параметров.[0101] As another example, when a block for calculating ALF parameters spans a sub-block boundary, the ALF parameters may be obtained in units such as {N×1, 1×N, N×2, 2×N} to perform ALF. In another example, the present invention can avoid calculating parameters for determining whether to perform deblocking filtering (or filter coefficients) by configuring the deblocking filtering to ever be performed or never performed in the current block. As another example, the present invention depends on whether the boundary of the current subblock overlaps the boundary of the CU (or CTU, or VPDU) to adaptively change the method of performing in-loop filtering or the method of calculating parameters.
[0102] 5. Сигнальный флаг кодированного блока[0102] 5. Coded Block Signal Flag
[0103] Когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, элемент синтаксиса (например, флаг кодированного блока; CBF) может сигнализироваться для каждого субблока, указывая, существует ли по меньшей мере один ненулевой коэффициент в этом субблоке. Например, CBF, равный «0», может указывать на то, что все коэффициенты в соответствующем субблоке являются нулевыми коэффициентами, а CBF, равный «1», может указывать, что по меньшей мере один ненулевой коэффициент существует в соответствующем субблоке.[0103] When the intra-coding tool of the present invention is applied to the current block, a syntax element (eg, coded block flag; CBF) may be signaled for each sub-block, indicating whether at least one non-zero coefficient exists in that sub-block. For example, a CBF equal to "0" may indicate that all coefficients in the corresponding sub-block are zero coefficients, and a CBF equal to "1" may indicate that at least one non-zero coefficient exists in the corresponding sub-block.
[0104] CBF может быть выведен на основе количества разделенных субблоков, размера (ширины или высоты) субблоков, режима интра-предсказания, положения блока, QP, количества пикселей, включенных в субблок, и тому подобное. Например, считается, что по меньшей мере один CBF для субблоков текущего блока не равен «0». Соответственно, когда текущий блок имеет n субблоков и все CBF предыдущих n-1 субблоков равны «0», CBF n-го субблока считается равным «1» и, таким образом, CBF явно не сигнализируются.[0104] The CBF may be derived based on the number of divided sub-blocks, the size (width or height) of the sub-blocks, intra-prediction mode, block position, QP, the number of pixels included in the sub-block, and the like. For example, at least one CBF for subblocks of the current block is considered to be not equal to "0". Accordingly, when the current block has n subblocks and all CBFs of the previous n-1 subblocks are "0", the CBF of the nth subblock is considered to be "1" and thus the CBFs are not explicitly signaled.
[0105] В качестве другого примера, когда ширина или высота субблоков данного текущего блока не больше 2, инструмент интра-кодирования настоящего изобретения может применяться только тогда, когда CBF каждого субблока не равен 0. В этом случае, например, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку 8×16 и делится на 4 субблока 2×16, CBF каждого субблока выводится равным «1» и, таким образом, явно не сигнализируется. С другой стороны, если текущий блок 8 × 16 разделен на два субблока 4×16, CBF каждого субблока должен быть явно сигнализирован.[0105] As another example, when the width or height of the sub-blocks of a given current block is not greater than 2, the intra-encoding tool of the present invention can only be applied when the CBF of each sub-block is not 0. In this case, for example, when the intra-encoding tool of the present invention is applied to the current 8×16 block and divided into 4 2×16 sub-blocks, the CBF of each sub-block is output as “1” and thus is not explicitly signaled. On the other hand, if the current 8×16 block is divided into two 4×16 subblocks, the CBF of each subblock must be explicitly signaled.
[0106] 6. Параметр квантования сигнализации[0106] 6. Signaling quantization parameter
[0107] Устройство кодирования видео определяет значение параметра квантования (QP) для текущего блока (CU) и определяет значение параметра дельта-квантования (DQP) для текущего блока на основе значения QP и значения предсказания QP. Устройство кодирования видео может быть конфигурировано для сигнализации значения DQP и квантования текущего блока с использованием определенного значения QP. Устройство кодирования видео может регулировать значение QP текущего блока и, таким образом, регулировать степень квантования, применяемую к блокам коэффициентов, относящихся к текущему блоку.[0107] The video encoding apparatus determines a quantization parameter (QP) value for the current block (CU) and determines a delta quantization parameter (DQP) value for the current block based on the QP value and the QP prediction value. The video encoding device 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.
[0108] DQP определяется как разница между текущим QP (то есть фактическим QP, используемым в текущем блоке) и значением предсказания текущего QP (т.е. значением предсказания QP). На основе сигнализированного DQP соответствующее текущее значение QP может быть восстановлено путем добавления DQP к значению предсказания QP. Другими словами, в устройстве кодирования видео DQP вычисляется путем вычитания значения предсказания QP из фактического QP текущего блока, а в устройстве декодирования видео фактический QP текущего блока восстанавливается путем добавления принятого DQP к значению предсказания QP. В некоторых примерах значение предсказания QP определяется для текущего блока как среднее из фактических значений QP для верхнего блока и левого блока.[0108] The DQP is defined as the difference between the current QP (ie, the actual QP used in the current block) and the prediction value of the current QP (ie, the QP prediction value). Based on the signaled DQP, the corresponding current QP value can be recovered by adding the DQP to the QP prediction value. In other words, in the video encoding apparatus, the DQP is calculated by subtracting the QP prediction value from the actual QP of the current block, and in the video decoding apparatus, the actual QP of the current block is recovered by adding the received DQP to the QP prediction value. In some examples, the QP prediction value is determined for the current block as the average of the actual QP values for the top block and the left block.
[0109] Устройство декодирования видео может быть конфигурировано для приема значения DQP для текущего блока квантования, определения значения QP для текущего блока квантования на основе принятого значения DQP и значения предсказания QP и обратного квантования текущего блока квантования путем использования определенного значения QP.[0109] The video decoding apparatus may be configured to receive a DQP value for a current quantization block, determine a QP value for the current quantization block based on the received DQP value and a QP prediction value, and inversely quantize the current quantization block by using the determined QP value.
[0110] Когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, DQP может определяться с каждым субблоком как единица. В этом случае настоящее решение может проверять флаг, чтобы определить, использовать ли DQP по единицам субблока, или может проверять посредством синтаксиса высокого уровня, применять ли DQP.[0110] When the intra-encoding tool of the present invention is applied to the current block, the DQP may be determined with each sub-block as a unit. In this case, the present solution may check a flag to determine whether to use DQP per subblock unit, or may check through high-level syntax whether to use DQP.
[0111] В некоторых примерах, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, один и тот же QP может использоваться для всех субблоков. Соответственно, значение QP текущего блока может быть определено с использованием QP (левого и/или верхнего) CU, смежных с текущим блоком, и переданного значения DQP. В качестве альтернативы значение QP текущего блока может быть выведено через переданное значение DQP и синтаксис высокого уровня.[0111] In some examples, when the intra-encoding tool of the present invention is applied to the current block, the same QP may be used for all sub-blocks. Accordingly, the QP value of the current block can be determined using the QPs of the (left and/or top) CUs adjacent to the current block and the transmitted DQP value. Alternatively, the QP value of the current block can be inferred via the passed DQP value and high-level syntax.
[0112] В некоторых других примерах для каждого субблока может использоваться другой DQP. В этом случае QP каждого субблока может быть определено с использованием QP, определенного для текущего блока, и значения DQP каждого субблока. В качестве альтернативы, QP каждого субблока может определяться посредством DQP между соответствующими субблоками, или QP текущего блока может определяться с использованием QP конкретного субблока.[0112] In some other examples, a different DQP may be used for each subblock. In this case, the QP of each sub-block can be determined using the QP determined for the current block and the DQP value of each sub-block. Alternatively, the QP of each subblock may be determined by the DQP between corresponding subblocks, or the QP of the current block may be determined using the QP of a specific subblock.
[0113] В некоторых других примерах может сигнализироваться QP текущего блока, или значение QP, которое должно использоваться, может выводиться посредством синтаксиса высокого уровня.[0113] In some other examples, the QP of the current block may be signaled, or the QP value to be used may be inferred via high-level syntax.
[0114] Фиг. 6 - функциональная блок-схема, иллюстрирующая примерную конфигурацию блока интра-предсказания в устройстве кодирования видео согласно по меньшей мере одному варианту осуществления настоящего изобретения, причем блок интра-предсказания поддерживает инструмент интра-кодирования настоящего изобретения. Как показано на фиг. 6, блок 600 интра-предсказания может включать в себя блок 610 выбора режима, блок 620 построения опорного отсчета, блок 630 фильтрации опорного отсчета и блок 640 генерации сигнала предсказания.[0114] FIG. 6 is a functional block diagram illustrating an exemplary configuration of an intra-prediction block in a video encoding apparatus according to at least one embodiment of the present invention, wherein the intra-prediction block supports the intra-coding tool of the present invention. As shown in FIG. 6, the intra-prediction block 600 may include a mode selection block 610, a reference sample construction block 620, a reference sample filtering block 630, and a prediction signal generation block 640.
[0115] Селектор 610 режима может определять режим интра-предсказания, который будет использоваться для кодирования текущего блока. Например, селектор 610 режима может кодировать текущий блок, используя различные режимы интра-предсказания, и выбирать подходящий режим интра-предсказания, который будет использоваться, из тестируемых режимов.[0115] Mode selector 610 may determine the intra-prediction mode that will be used to encode the current block. For example, mode selector 610 may encode the current block using different intra-prediction modes, and select the appropriate intra-prediction mode to be used from the modes being tested.
[0116] В некоторых случаях селектор 610 режима может сигнализировать о режиме интра-предсказания для текущего блока, используя процесс наиболее вероятного режима (MPM). Например, селектор 610 режима может устанавливать режимы интра-предсказания соседних блоков, смежных с текущим блоком, например, блока, расположенного вверху текущего блока, и блока, расположенного слева от текущего блока, в качестве кандидатов MPM. Когда два кандидата MPM не могут быть найдены, например, когда ни один соседний блок не был интра-предсказан, или когда соседние блоки имеют одинаковый инра-режим, селектор 610 режима может заменить режим интра-предсказания соседнего блока на планарный режим. Когда количество кандидатов MPM, включенных в список кандидатов MPM, меньше максимального количества (например, 6), настоящее решение может вставлять в список кандидатов MPM режимы по умолчанию, отличные от ранее вставленных кандидатов MPM в список кандидатов MPM и режимы направленности, аналогичные ранее вставленным кандидатам MPM.[0116] In some cases, mode selector 610 may signal the intra-prediction mode for the current block using a most likely mode (MPM) process. For example, mode selector 610 may set the intra-prediction modes of neighboring blocks adjacent to the current block, such as the block located at the top of the current block and the block located to the left of the current block, as MPM candidates. When two MPM candidates cannot be found, for example, when no neighboring block has been intra-predicted, or when neighboring blocks have the same intra-mode, mode selector 610 may change the neighboring block's intra-prediction mode to a planar mode. When the number of MPM candidates included in the MPM candidate list is less than the maximum number (e.g., 6), the present solution may insert default modes into the MPM candidate list that are different from previously inserted MPM candidates into the MPM candidate list and directional modes similar to the previously inserted candidates. MPM.
[0117] Информация, например флаг MPM, указывающая, является ли режим интра-предсказания текущего блока таким же, как любой из кандидатов MPM, может передаваться через поток битов. Когда режим интра-предсказания текущего блока такой же, как у любого из кандидатов MPM, селектор 610 режима может установить флаг MPM на первое значение и дополнительно сигнализировать информацию индекса MPM для идентификации совпадающего кандидата MPM. В качестве альтернативы, селектор 610 режима может сначала сигнализировать флаг, указывающий, является ли режим интра-предсказания текущего блока плоским режимом, и если нет, он может сигнализировать информацию индекса MPM. Когда режим интра-предсказания текущего блока не соответствует ни одному из кандидатов MPM, селектор 610 режима может установить флаг MPM на второе значение и может сигнализировать информацию об остаточном режиме через поток битов, чтобы указать, какой из оставшихся режимов интра-предсказания соответствует режиму и интра-предсказания текущего блока.[0117] Information, such as an MPM flag indicating whether the intra-prediction mode of the current block is the same as any of the MPM candidates, may be transmitted via the bit stream. When the intra-prediction mode of the current block is the same as any of the MPM candidates, the mode selector 610 may set the MPM flag to the first value and further signal the MPM index information to identify the matching MPM candidate. Alternatively, mode selector 610 may first signal a flag indicating whether the intra-prediction mode of the current block is a flat mode, and if not, it may signal MPM index information. When the intra prediction mode of the current block does not match any of the MPM candidates, mode selector 610 may set the MPM flag to a second value and may signal the residual mode information via a bit stream to indicate which of the remaining intra prediction modes matches the mode and intra -predictions of the current block.
[0118] Селектор 610 режима может выбирать инструмент интра-кодирования настоящего изобретения, который предсказывает текущий блок последовательно в единицах субблоков. В этом случае селектор 610 режима может выполнять анализ коэффициента искажения для определения направления разделения текущего блока на субблоки. Другими словами, селектор 610 режима может определять, следует ли разделить текущий блок на множество субблоков в горизонтальном направлении или на множество субблоков в вертикальном направлении.[0118] The mode selector 610 may select the intra-coding tool of the present invention that predicts the current block sequentially in units of sub-blocks. In this case, the mode selector 610 may perform distortion factor analysis to determine the direction in which the current block is divided into subblocks. In other words, the mode selector 610 can determine whether the current block should be divided into a plurality of sub-blocks in the horizontal direction or into a plurality of sub-blocks in the vertical direction.
[0119] Когда текущий блок предсказываается без разделения на множество субблоков, селектор 610 режима может установить флаг разделения на первое значение, например, «0», указывающее, разделен ли текущий блок или нет. Когда текущий блок предсказывается после разделения на множество субблоков, селектор 610 режима может установить флаг разделения, указывающий, разделен ли текущий блок на второе значение, например, «1». Селектор 610 режима может передать флаг разделения, например, энтропийному декодеру 155 с фиг. 1, чтобы сигнализировать о флаге разделения.[0119] When the current block is predicted without being divided into multiple sub-blocks, the mode selector 610 may set the division flag to a first value, for example, "0", indicating whether the current block is divided or not. When the current block is predicted after being divided into a plurality of sub-blocks, the mode selector 610 may set a division flag indicating whether the current block is divided into a second value, for example, "1". Mode selector 610 may pass a split flag to, for example, entropy decoder 155 of FIG. 1 to signal the split flag.
[0120] В некоторых случаях селектор 610 режима может быть ограничен от использования инструмента интра-кодирования настоящего решения, описанного выше, если не удовлетворяются заранее определенные критерии. Например, может ли использоваться инструмент интра-кодирования настоящего изобретения, может быть определено в зависимости от положения текущего блока, ширины и высоты текущего блока, области текущего блока, минимального размера преобразования, максимального размер преобразования и тому подобное. В этом случае настоящее решение может не указывать флаг разделения, указывающий, следует ли использовать его инструмент интра-кодирования. Это означает, что флаг разделения не включен в поток битов.[0120] In some cases, mode selector 610 may be restricted from using the intra-encoding tool of the present solution described above if predetermined criteria are not met. For example, whether the intra-encoding tool of the present invention can be used can be determined depending on the position of the current block, the width and height of the current block, the area of the current block, the minimum transform size, the maximum transform size and the like. In this case, the present solution may not specify a split flag indicating whether its intra-encoding tool should be used. This means that the split flag is not included in the bit stream.
[0121] Например, когда текущий блок меньше предварительно установленного размера (например, 4×8 или 8×4 и т.д.), селектор 610 режима может не использовать инструмент интра-кодирования настоящего изобретения. В качестве другого примера инструмент интра-кодирования настоящего изобретения не применяется, и флаг разделения не сигнализируется, когда ширина и высота текущего блока меньше, чем минимальный размер преобразования, или когда область текущего блока (т. е. количество пикселей, включенных в текущий блок) меньше, чем площадь единицы преобразования (т. е. количество пикселей, включенных в единицу преобразования), определяемая минимальным размером преобразования. В этом случае устройство декодирования видео определяет флаг разделения как значение, указывающее, что текущий блок не разделен. В качестве другого примера, сигнализация флага разделения может быть опущена, когда ширина и высота текущего блока больше, чем максимальный размер преобразования. В этом случае устройство декодирования видео может быть реализовано для вывода флага разделения как значения, указывающего, что текущий блок разделен на несколько субблоков и интра-предсказан каждым субблоком. В качестве альтернативы, устройство декодирования видео может сделать вывод, что флаг разделения является значением, указывающим, что текущий блок не разделен на субблоки.[0121] For example, when the current block is smaller than a preset size (eg, 4x8 or 8x4, etc.), the mode selector 610 may not use the intra-coding tool of the present invention. As another example, the intra-coding tool of the present invention is not applied and the split flag is not signaled when the width and height of the current block is smaller than the minimum transform size, or when the area of the current block (i.e., the number of pixels included in the current block) less than the area of the transform unit (i.e., the number of pixels included in the transform unit), determined by the minimum transform size. In this case, the video decoding apparatus defines the division flag as a value indicating that the current block is not divided. As another example, the split flag signaling may be omitted when the width and height of the current block are greater than the maximum transform size. In this case, the video decoding apparatus may be implemented to output a split flag as a value indicating that the current block is divided into multiple sub-blocks and intra-predicted by each sub-block. Alternatively, the video decoding apparatus may infer that the division flag is a value indicating that the current block is not divided into subblocks.
[0122] Когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, направление и количество разделов субблока может быть определено на основе размера текущего блока, положения текущего блока, длины одной стороны (т.е. ширина или высота) текущего блока, количества пикселей, включенных в текущий блок, режима интра-предсказания текущего блока, размера минимального или максимального блока преобразования и т.п.[0122] When the intra-encoding tool of the present invention is applied to the current block, the direction and number of sections of the sub-block can be determined based on the size of the current block, the position of the current block, the length of one side (i.e., width or height) of the current block, the number of pixels included in the current block, the intra-prediction mode of the current block, the size of the minimum or maximum transformation block, etc.
[0123] Информация о направлении и количестве разделов субблока может предоставляться различными способами. Например, селектор 610 режима может использовать один или более элементов синтаксиса, таких как 1-битный флаг, для сигнализации направления и количества разделов субблока.[0123] Information about the direction and number of subblock sections may be provided in various ways. For example, mode selector 610 may use one or more syntax elements, such as a 1-bit flag, to signal the direction and number of sections of a subblock.
[0124] В частности, количество субблоков может определяться шириной и высотой текущего блока. Например, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков может быть определено как равное 2, а когда ширина и высота текущего блока больше, чем 4×4 и не равно 4×8 и 8×4, количество субблоков может быть определено как равное 4. В качестве другого примера, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков может быть определено как равное 2, а когда ширина и высота текущего блока составляют от 8×N до 32×N или от N×8 до Nx32 (здесь N> 4), количество субблоков может быть определено как равное 4, а количество субблоков может быть определено как равное 8 для текущих блоков, размер которых превышает 32xN и Nx32.[0124] In particular, the number of sub-blocks may be determined by the width and height of the current block. For example, when the width and height of the current block are 4x8 or 8x4, the number of subblocks can be defined as 2, and when the width and height of the current block are greater than 4x4 and not equal to 4x8 and 8x4, the number of sub-blocks can be defined as 4. As another example, when the width and height of the current block are 4×8 or 8×4, the number of sub-blocks can be defined as 2, and when the width and height of the current block are between 8×N to 32×N or from N×8 to Nx32 (here N>4), the number of sub-blocks can be defined as 4, and the number of sub-blocks can be defined as 8 for current blocks whose size is greater than 32xN and Nx32.
[0125] Является ли направление разделения горизонтальным или вертикальным, может определяться информацией разделения. В качестве альтернативы или дополнения направление разделения может быть определено (или выведено) на основе отношения ширины к высоте текущего блока. Например, направление разделения может быть определено как горизонтальное разделение, когда ширина текущего блока больше, чем его высота, и может быть определено как вертикальное разделение, когда ширина текущего блока меньше его высоты. Альтернативно или дополнительно, когда текущий блок существует на границе изображения (или мозаичного элемента, группы мозаичных элементов и т.д.), форма и количество разделов субблока могут быть выведены согласно положению текущего блока. Дополнительно, является ли направление разделения горизонтальным или вертикальным, может быть определено на основе направленности режимов предсказания, включенных в кандидатов режима интра-предсказания (то есть список MPM), определенных для текущего блока. Это может освободить поток битов от сигнализации одного или более элементов синтаксиса, указывающих информацию о форме и/или количестве разделов субблока.[0125] Whether the dividing direction is horizontal or vertical may be determined by the dividing information. Alternatively or additionally, the direction of division can be determined (or inferred) based on the width to height ratio of the current block. For example, a split direction can be defined as a horizontal split when the current block's width is greater than its height, and can be defined as a vertical split when the current block's width is less than its height. Alternatively or additionally, when the current block exists on the boundary of an image (or tile, group of tiles, etc.), the shape and number of sections of the sub-block can be inferred according to the position of the current block. Additionally, whether the dividing direction is horizontal or vertical can be determined based on the directionality of the prediction modes included in the intra-prediction mode candidates (ie, the MPM list) defined for the current block. This may free the bitstream from signaling one or more syntax elements indicating information about the shape and/or number of sections of the subblock.
[0126] Блок 620 построения опорного отсчета может проверять наличие доступных соседних отсчетов и использовать доступные отсчеты для построения опорных отсчетов, которые будут использоваться для предсказания. Когда нет доступного отсчета, или когда не выполняется интра-предсказание с использованием соседних отсчетов, блок 620 построения опорного отсчета может произвольно построить опорный отсчет.[0126] Reference sample builder 620 may check for available neighboring samples and use the available samples to construct reference samples to be used for prediction. When there is no sample available, or when intra-prediction is not performed using neighboring samples, the reference sample builder 620 may arbitrarily construct the reference sample.
[0127] Блок 630 фильтрации опорного отсчета может определять, выполнять ли фильтрацию. Следует ли выполнять фильтрацию, может быть определено на основе информации по меньшей мере об одном из размера, глубины, QP и режима текущего блока. Когда необходимо выполнить фильтрацию, блок 630 фильтрации опорного отсчета может выбрать фильтр для выполнения фильтрации. В этом случае информация о том, какую фильтрацию выполнять, может передаваться в потоке битов.[0127] The reference sample filtering unit 630 may determine whether to perform filtering. Whether to perform filtering may be determined based on information about at least one of the size, depth, QP, and mode of the current block. When it is necessary to perform filtering, the reference sample filtering unit 630 may select a filter to perform the filtering. In this case, information about what filtering to perform can be carried in the bit stream.
[0128] Блок 640 генерации сигнала предсказания может генерировать субблок предсказания путем предсказания субблока, который должен быть закодирован из числа множества субблоков, из ранее восстановленных пикселей вокруг субблока. Блок 640 генерации сигнала предсказания может использовать режим интра-предсказания, определенный для текущего блока, при выполнении интра-предсказания множества субблоков. Затем субблок предсказания может быть вычтен по отношению к соответствующему субблоку текущего блока, чтобы сгенерировать остаточный субблок. Остаточный субблок может быть восстановлен путем процесса преобразования/квантования и процесса обратного квантования/обратного преобразования. Восстановленный остаточный субблок суммируется с субблоком предсказания, сгенерированным блоком 640 генерации сигнала предсказания, чтобы сгенерировать восстановленный субблок. В частности, при предсказании следующего субблока блок 640 генерации сигнала предсказания может использовать восстановленные пиксели предыдущего субблока и восстановленные пиксели ранее восстановленного CU.[0128] The prediction signal generating unit 640 may generate a prediction sub-block by predicting a sub-block to be encoded among a plurality of sub-blocks from previously reconstructed pixels around the sub-block. The prediction signal generating unit 640 may use the intra-prediction mode defined for the current block when performing intra-prediction on a plurality of sub-blocks. The prediction subblock can then be subtracted from the corresponding subblock of the current block to generate a residual subblock. The residual subblock can be reconstructed by a transform/quantization process and an inverse quantization/inverse transform process. The reconstructed residual subblock is added to the prediction subblock generated by the prediction signal generating unit 640 to generate the reconstructed subblock. Specifically, when predicting the next subblock, the prediction signal generation unit 640 may use the reconstructed pixels of the previous subblock and the reconstructed pixels of the previously reconstructed CU.
[0129] На фиг. 7 показана блок-схема способа, выполняемого устройством кодирования видео для кодирования с интра-предсказанием текущего блока видео согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0129] In FIG. 7 is a flowchart of a method performed by a video encoding apparatus for intra-predictive encoding of a current block of video according to at least one embodiment of the present invention.
[0130] На этапе S710 устройство кодирования видео может определить режим интра-предсказания, который будет использоваться для кодирования текущего блока. Кроме того, устройство кодирования видео может определять, применять ли инструмент интра-кодирования настоящего изобретения, и, если да, определять направление разделения текущего блока между горизонтальным направлением и вертикальным направлением.[0130] In step S710, the video encoding apparatus may determine an intra-prediction mode to be used for encoding the current block. In addition, the video encoding device can determine whether to apply the intra encoding tool of the present invention, and, if so, determine the dividing direction of the current block between the horizontal direction and the vertical direction.
[0131] На этапе S720 устройство кодирования видео может кодировать режим интра-предсказания текущего блока и элементы синтаксиса, указывающие, должен ли текущий блок предсказываться после разделения на множество субблоков. Устройство кодирования видео может использовать процесс наиболее вероятного режима (MPM) для сигнализации режима интра-предсказания для текущего блока. Кроме того, устройство кодирования видео может сигнализировать флаг разделения, указывающий, предсказывается ли текущий блок после разделения на множество субблоков.[0131] In step S720, the video encoding apparatus may encode an intra-prediction mode of the current block and syntax elements indicating whether the current block is to be predicted after being divided into a plurality of sub-blocks. The video encoding device may use a most probable mode (MPM) process to signal the intra-prediction mode for the current block. In addition, the video encoding device may signal a split flag indicating whether the current block is predicted after being divided into a plurality of sub-blocks.
[0132] В некоторых случаях устройству кодирования видео может быть запрещено использовать инструмент интра-кодирования настоящего изобретения, если не выполняются заранее определенные критерии. Например, может ли использоваться инструмент интра-кодирования настоящего изобретения или нет, может быть определено в зависимости от положения текущего блока, ширины и высоты текущего блока, области текущего блока, минимального размера преобразования, максимального размер преобразования и тому подобное. В этом случае настоящее решение может опускать сигнализацию флага разделения, указывающую, использовать ли инструмент интра-кодирования настоящего изобретения в потоке битов.[0132] In some cases, a video encoding device may be prohibited from using the intra-encoding tool of the present invention if predetermined criteria are not met. For example, whether the intra-encoding tool of the present invention can be used or not can be determined depending on the position of the current block, the width and height of the current block, the area of the current block, the minimum transformation size, the maximum transformation size and the like. In this case, the present solution may omit split flag signaling indicating whether to use the intra-coding tool of the present invention in the bitstream.
[0133] Когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, направление и количество разделов субблока может быть определено на основе размера текущего блока, положения текущего блока, и длины одной стороны (т.е. ширина или высота) текущего блока, количества пикселей, включенных в текущий блок, режима интра-предсказания текущего блока, размера минимального или максимального блока преобразования и т.п.[0133] When the intra-encoding tool of the present invention is applied to the current block, the direction and number of sections of the sub-block can be determined based on the size of the current block, the position of the current block, and the length of one side (i.e., width or height) of the current block, the number pixels included in the current block, the intra-prediction mode of the current block, the size of the minimum or maximum transform block, etc.
[0134] Информация о направлении и количестве разделов субблока может предоставляться различными способами. Например, устройство кодирования видео может использовать один или более элементов синтаксиса, таких как 1-битный флаг, для сигнализации информации разделения, такой как направление и/или количество разделов субблока.[0134] Information about the direction and number of subblock sections may be provided in various ways. For example, a video encoding device may use one or more syntax elements, such as a 1-bit flag, to signal division information, such as the direction and/or number of divisions of a subblock.
[0135] В частности, количество субблоков может определяться шириной и высотой текущего блока. Например, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков может быть определено как равное 2, а когда ширина и высота текущего блока больше, чем 4×4 и не равно 4×8 и 8×4, количество субблоков может быть определено как равное 4.[0135] In particular, the number of sub-blocks may be determined by the width and height of the current block. For example, when the width and height of the current block are 4x8 or 8x4, the number of subblocks can be defined as 2, and when the width and height of the current block are greater than 4x4 and not equal to 4x8 and 8x4, the number of subblocks can be defined as 4.
[0136] Устройство кодирования видео может явно сигнализировать флаг, указывающий направление разделения субблока, например, является ли направление горизонтальным или вертикальным. В качестве альтернативы или дополнения направление разделения может быть определено (или выведено) на основе отношения ширины к высоте текущего блока. Например, направление разделения может быть определено как горизонтальное разделение, когда ширина текущего блока больше, чем его высота, и может быть определено как вертикальное разделение, когда ширина текущего блока меньше его высоты. В этом случае сигнализация флага, указывающего направление разделения, может быть опущена.[0136] The video encoding device may explicitly signal a flag indicating the direction of division of the subblock, for example, whether the direction is horizontal or vertical. Alternatively or additionally, the direction of division can be determined (or inferred) based on the width to height ratio of the current block. For example, a split direction can be defined as a horizontal split when the current block's width is greater than its height, and can be defined as a vertical split when the current block's width is less than its height. In this case, the signaling of the flag indicating the direction of separation may be omitted.
[0137] На этапе S730, когда инструмент интра-кодирования настоящего изобретения применяется к текущему блоку, устройство кодирования видео может последовательно кодировать множество субблоков с использованием режима интра-предсказания, определенного для текущего блока.[0137] In step S730, when the intra-encoding tool of the present invention is applied to the current block, the video encoding device can sequentially encode a plurality of sub-blocks using the intra-prediction mode determined for the current block.
[0138] Например, устройство кодирования видео может генерировать субблок предсказания путем предсказания целевого субблока, который должен быть закодирован среди множества субблоков, из ранее восстановленных пикселей вокруг целевого субблока (S732). Устройство кодирования видео может генерировать остаточный субблок из целевого субблока и субблока предсказания (S734). Устройство кодирования видео может преобразовывать и квантовать остаточный субблок, используя тот же размер преобразования, что и целевой субблок (S736). Устройство кодирования видео может энтропийно кодировать квантованный коэффициент преобразования (S738). Кроме того, устройство кодирования видео может восстанавливать остаточный субблок, применяя процесс обратного квантования/обратного преобразования к квантованному коэффициенту преобразования, и может добавить восстановленный остаточный субблок к субблоку предсказания, чтобы сгенерировать восстановленный субблок (S738). В частности, пиксели в восстановленном субблоке могут использоваться для интра-предсказания следующего субблока в текущем блоке. Благодаря этому процессу текущий блок обрабатывается последовательно, начиная с субблока, включая верхний левый образец текущего блока, в нисходящем направлении при горизонтальном разделении и в правом направлении при вертикальном разделении.[0138] For example, a video encoding apparatus may generate a prediction sub-block by predicting a target sub-block to be encoded among a plurality of sub-blocks from previously reconstructed pixels around the target sub-block (S732). The video encoding apparatus may generate a residual subblock from the target subblock and the prediction subblock (S734). The video encoding apparatus may transform and quantize the residual subblock using the same transform size as the target subblock (S736). The video encoding apparatus may entropy encode the quantized transform coefficient (S738). In addition, the video encoding apparatus may reconstruct the residual subblock by applying an inverse quantization/inverse transform process to the quantized transform coefficient, and may add the reconstructed residual subblock to the prediction subblock to generate the reconstructed subblock (S738). In particular, the pixels in the reconstructed subblock can be used to intra-predict the next subblock in the current block. Through this process, the current block is processed sequentially, starting from the sub-block, including the top-left example of the current block, in a downward direction in a horizontal split, and in a right direction in a vertical split.
[0139] На этапе S740 устройство кодирования видео может выполнять деблокировочную фильтрацию и другие процессы в восстановленном текущем блоке и может сохранять отфильтрованный текущий блок в буфере (например, в памяти 190 с фиг. 1) для использования в качестве опорного изображения для интер-предсказания незавершенных блоков, подлежащих кодированию в изображении. Устройство кодирования видео может устанавливать сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнять деблокировочную фильтрацию на границах, которые совпадают с границей сетки, из числа границ между множеством субблоков в текущем блоке.[0139] In step S740, the video encoding apparatus may perform deblocking filtering and other processes on the reconstructed current block, and may store the filtered current block in a buffer (eg, memory 190 of FIG. 1) for use as a reference image for inter-prediction of unfinished blocks to be encoded in the image. The video encoding apparatus may establish a grid of N samples at regular intervals in the horizontal and vertical directions and perform deblocking filtering on boundaries that coincide with the grid boundary from among the boundaries between a plurality of sub-blocks in the current block.
[0140] Фиг. 8 - функциональная блок-схема, иллюстрирующая примерную конфигурацию блока интра-предсказания в устройстве декодирования видео согласно по меньшей мере одному варианту осуществления настоящего изобретения, причем блок интра-предсказания поддерживает инструмент интра-кодирования настоящего изобретения. Как показано на фиг. 8, блок 800 интра-предсказания может включать блок 810 определения режима, блок 820 построения опорного отсчета, блок 830 фильтрации опорного отсчета и блок 840 генерации сигнала предсказания.[0140] FIG. 8 is a functional block diagram illustrating an exemplary configuration of an intra prediction unit in a video decoding apparatus according to at least one embodiment of the present invention, wherein the intra prediction unit supports the intra encoding tool of the present invention. As shown in FIG. 8, the intra-prediction block 800 may include a mode determination block 810, a reference sample construction block 820, a reference sample filtering block 830, and a prediction signal generation block 840.
[0141] Блок 810 определения режима может определять режим интра-предсказания текущего блока путем декодирования из потока битов информации режима интра-предсказания текущего блока. Например, блок 810 определения режима может выбрать предварительно установленное количество кандидатов режима интра-предсказания из множества режимов интра-предсказания и использовать информацию режима интра-предсказания текущего блока для определения режима интра-предсказания текущего блока из числа кандидатов режима интра-предсказания.[0141] The mode determination unit 810 may determine the intra-prediction mode of the current block by decoding the intra-prediction mode of the current block from the information bitstream. For example, the mode determination unit 810 may select a predetermined number of intra-prediction mode candidates from a plurality of intra-prediction modes, and use the intra-prediction mode information of the current block to determine the intra-prediction mode of the current block from among the intra-prediction mode candidates.
[0142] Блок 810 определения режима также может определять, разделять ли текущий блок, кодированный с интра-предсказанием, на множество субблоков. В частности, блок 810 определения режима может разделить текущий блок на субблоки одинакового размера и определить, выполнять ли интра-предсказание для соответствующих субблоков, используя тот же режим интра-предсказания, что и режим интра-предсказания текущего блока.[0142] The mode determination unit 810 may also determine whether to divide the current intra-prediction encoded block into a plurality of sub-blocks. In particular, the mode determination unit 810 may divide the current block into sub-blocks of the same size and determine whether to perform intra-prediction for the corresponding sub-blocks using the same intra-prediction mode as the intra-prediction mode of the current block.
[0143] Например, блок 810 определения режима может декодировать из потока битов флаг разделения, указывающий, следует ли разбивать текущий блок, и определять, следует ли разбивать текущий блок на множество субблоков, на основе флага разделения. Первое значение, например, «0» флага разделения указывает, что текущий блок не разделен на субблоки, а второе значение, например, «1» флага разделения указывает, что текущий блок был разделен на субблоки и был интра-предсказан каждым субблоком.[0143] For example, the mode determination unit 810 may decode from the bit stream a split flag indicating whether the current block should be split, and determine whether the current block should be split into a plurality of sub-blocks based on the split flag. The first value, eg "0" of the split flag, indicates that the current block is not divided into sub-blocks, and the second value, eg, "1" of the split flag, indicates that the current block has been split into sub-blocks and has been intra-predicted by each sub-block.
[0144] Флаг разделения может быть выведен устройством декодирования видео без явной сигнализации, то есть без декодирования из потока битов, но вместо этого в зависимости от ширины и высоты текущего блока, площади текущего блока, минимального размера преобразования и/или максимального размера преобразования, разрешенного для преобразования коэффициентов преобразования. Соответственно, блок 810 определения режима может вывести значение флага разделения на основе ширины и высоты текущего блока, площади текущего блока и минимального и максимального размеров преобразования, разрешенных для преобразования коэффициентов преобразования.[0144] The split flag may be output by the video decoding device without explicit signaling, that is, without decoding from the bitstream, but instead depending on the width and height of the current block, the area of the current block, the minimum transform size and/or the maximum transform size allowed to convert the conversion factors. Accordingly, the mode determination unit 810 may derive the value of the division flag based on the width and height of the current block, the area of the current block, and the minimum and maximum transform sizes allowed for transform coefficient conversion.
[0145] По меньшей мере в одном варианте осуществления, когда ширина и высота текущего блока меньше, чем минимальный размер преобразования, флаг разделения может не нуждаться в декодировании из потока битов, а вместо этого должен быть установлен на значение, указывающее, что текущий блок не разделяется. В другом варианте осуществления, когда область текущего блока (т. е. количество пикселей, включенных в текущий блок) меньше, чем область блока преобразования (т. е. количество пикселей, включенных в блок преобразования), определяемая минимумом размер преобразования, флаг разделения может не нуждается в декодировании из потока битов, но вместо этого должен быть установлен на значение, указывающее, что текущий блок не разделен. В еще одном варианте осуществления, когда ширина и высота текущего блока больше, чем максимальный размер преобразования, флаг разделения может не нуждаться в декодировании из потока битов, но вместо этого можно сделать вывод, что флаг разделения имеет второе значение (например, '1'), т. е. текущий блок был разделен на множество субблоков и интра-предсказан каждым субблоком. В качестве альтернативы, наоборот, можно сделать вывод, что флаг разделения имеет первое значение (например, «0»), то есть что инструмент кодирования настоящего решения не применим, с сохранением его процесса разделения текущего блока на множество субблоков и интра-предсказанием соответствующих субблоков.[0145] In at least one embodiment, when the width and height of the current block is less than the minimum transform size, the split flag may not need to be decoded from the bitstream, but instead must be set to a value indicating that the current block is not is divided. In another embodiment, when the current block area (i.e., the number of pixels included in the current block) is smaller than the transform block area (i.e., the number of pixels included in the transform block) defined by the minimum transform size, the split flag may does not need to be decoded from the bitstream, but should instead be set to a value indicating that the current block is not divided. In yet another embodiment, when the width and height of the current block are greater than the maximum transform size, the split flag may not need to be decoded from the bitstream, but instead the split flag can be inferred to have a second value (e.g., '1') , i.e., the current block has been divided into many subblocks and intra-predicted by each subblock. Alternatively, conversely, one can infer that the split flag has the first value (for example, "0"), that is, that the encoding tool of the present solution is not applicable, retaining its process of dividing the current block into many sub-blocks and intra-predicting the corresponding sub-blocks .
[0146] Когда инструмент кодирования настоящего изобретения применяется к текущему блоку, блок 810 определения режима может определять направление и количество разделов субблока. Блок 810 определения режима может извлекать один или более элементов синтаксиса из потока битов, чтобы определять направление и количество разделов субблока. Например, о том, является ли направление разделения горизонтальным или вертикальным, можно явно сигнализировать с помощью элемента синтаксиса, такого как 1-битовый флаг. Соответственно, блок 810 определения режима может извлекать из потока битов элемент синтаксиса, указывающий направление разделения текущего блока.[0146] When the encoding tool of the present invention is applied to the current block, the mode determination unit 810 can determine the direction and number of sections of the subblock. A mode determination unit 810 may extract one or more syntax elements from the bitstream to determine the direction and number of sections of the subblock. For example, whether the dividing direction is horizontal or vertical can be explicitly signaled using a syntax element such as a 1-bit flag. Accordingly, mode determination unit 810 may extract from the bit stream a syntax element indicating the dividing direction of the current block.
[0147] Альтернативно или дополнительно, направление и количество разделов подблока могут быть определены или выведены на основании размера текущего блока, положения текущего блока, длины одной стороны (то есть ширины или высоты) текущего блока, количества пикселей, включенных в текущий блок, режима интра-предсказания текущего блока, размера минимального или максимального блока преобразования и т.п.[0147] Alternatively or additionally, the direction and number of subblock sections may be determined or inferred based on the size of the current block, the position of the current block, the length of one side (i.e., width or height) of the current block, the number of pixels included in the current block, the intra mode -prediction of the current block, the size of the minimum or maximum transformation block, etc.
[0148] Например, направление разделения может быть определено (или выведено) на основе отношения ширины к высоте текущего блока. Например, направление разделения может быть определено как горизонтальное разделение, когда ширина текущего блока больше, чем его высота, и может быть определено как вертикальное разделение, когда ширина текущего блока меньше его высоты. Альтернативно или дополнительно, когда текущий блок существует на границе изображения (или мозаичного элемента, группы мозаичных элементов и т.д.), форма и количество разделов субблока могут быть выведены согласно положению текущего блока. Дополнительно, является ли направление разделения горизонтальным или вертикальным, может быть определено на основе направленности режимов предсказания, включенных в кандидатов режима интра-предсказания (то есть список MPM), определенных для текущего блока. Это может освободить поток битов от сигнализации одного или более элементов синтаксиса, указывающих информацию о форме и/или количестве разделов субблока.[0148] For example, the dividing direction may be determined (or inferred) based on the width-to-height ratio of the current block. For example, a split direction can be defined as a horizontal split when the current block's width is greater than its height, and can be defined as a vertical split when the current block's width is less than its height. Alternatively or additionally, when the current block exists on the boundary of an image (or tile, group of tiles, etc.), the shape and number of sections of the sub-block can be inferred according to the position of the current block. Additionally, whether the dividing direction is horizontal or vertical can be determined based on the directionality of the prediction modes included in the intra-prediction mode candidates (ie, the MPM list) defined for the current block. This may free the bitstream from signaling one or more syntax elements indicating information about the shape and/or number of sections of the subblock.
[0149] Количество субблоком может быть определено на основании размера текущего блока, положения текущего блока, длины одной стороны (то есть ширины или высоты) текущего блока, количества пикселей, включенных в текущий блок, режима интра-предсказания текущего блока, размера минимального или максимального блока преобразования и т.п.[0149] The number of sub-blocks may be determined based on the size of the current block, the position of the current block, the length of one side (i.e., width or height) of the current block, the number of pixels included in the current block, the intra-prediction mode of the current block, the size of the minimum or maximum conversion block, etc.
[0150] В некоторых случаях, количество субблоков может определяться шириной и высотой текущего блока. Например, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков может быть определено как равное 2, а когда ширина и высота текущего блока больше, чем 4×4 и не равно 4×8 и 8×4, количество субблоков может быть определено как равное 4. В качестве другого примера, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков может быть определено как равное 2, а когда ширина и высота текущего блока составляют от 8×N до 32×N или от N×8 до Nx32 (здесь N> 4), количество субблоков может быть определено как равное 4, а количество субблоков может быть определено как равное 8 для текущих блоков, размер которых превышает 32xN и Nx32.[0150] In some cases, the number of subblocks may be determined by the width and height of the current block. For example, when the width and height of the current block are 4x8 or 8x4, the number of subblocks can be defined as 2, and when the width and height of the current block are greater than 4x4 and not equal to 4x8 and 8x4, the number of sub-blocks can be defined as 4. As another example, when the width and height of the current block are 4×8 or 8×4, the number of sub-blocks can be defined as 2, and when the width and height of the current block are between 8×N to 32×N or from N×8 to Nx32 (here N>4), the number of sub-blocks can be defined as 4, and the number of sub-blocks can be defined as 8 for current blocks whose size is greater than 32xN and Nx32.
[0151] Блок 820 построения опорного отсчета может проверять наличие доступных соседних отсчетов и использовать доступные отсчеты для построения опорных отсчетов, которые будут использоваться для предсказания. Когда нет доступного отсчета, или когда не выполняется интра-предсказание с использованием соседних отсчетов, блок 820 построения опорного отсчета может произвольно построить опорный отсчет.[0151] The reference sample builder 820 may check for available neighboring samples and use the available samples to construct reference samples to be used for prediction. When there is no sample available, or when intra-prediction using neighboring samples is not performed, the reference sample builder 820 may arbitrarily construct the reference sample.
[0152] Блок 830 фильтрации опорного отсчета определяет, выполнять ли фильтрацию. Следует ли выполнять фильтрацию, может быть определено на основе информации по меньшей мере об одном из размера, глубины, QP и режима текущего блока. Когда необходимо выполнить фильтрацию, блок 830 фильтрации опорного отсчета может выбрать фильтр для выполнения фильтрации. В этом случае информация о том, какую фильтрацию выполнять, может быть извлечена из потока битов.[0152] The reference sample filtering unit 830 determines whether to perform filtering. Whether to perform filtering may be determined based on information about at least one of the size, depth, QP, and mode of the current block. When it is necessary to perform filtering, the reference sample filtering unit 830 may select a filter to perform the filtering. In this case, information about what filtering to perform can be extracted from the bitstream.
[0153] Блок 840 генерации сигнала предсказания может генерировать интра-предсказанный субблок путем предсказания субблока, подлежащего восстановлению в текущий момент из числа множества субблоков, из ранее восстановленных пикселей вокруг субблока. В частности, при предсказании следующего субблока блок 840 генерации сигнала предсказания может использовать восстановленный сигнал предыдущего субблока и восстановленный сигнал ранее восстановленного CU. Чтобы сгенерировать восстановленный субблок, интра-предсказанный субблок может быть суммирован с восстановленным остаточным субблоком из потока битов.[0153] The prediction signal generation unit 840 may generate an intra-predicted sub-block by predicting a sub-block currently to be reconstructed from among a plurality of sub-blocks from previously reconstructed pixels around the sub-block. Specifically, when predicting the next subblock, the prediction signal generation unit 840 may use the reconstructed signal of the previous subblock and the reconstructed signal of the previously reconstructed CU. To generate a reconstructed subblock, the intra-predicted subblock can be summed with the reconstructed residual subblock from the bitstream.
[0154] На фиг. 9 показана блок-схема способа, выполняемого устройством декодирования видео для декодирования текущего блока, кодированного с интра-предсказанием, из потока битов кодированного видео, согласно по меньшей мере одному варианту осуществления настоящего изобретения.[0154] In FIG. 9 is a flow diagram of a method performed by a video decoding apparatus for decoding a current intra-prediction encoded block from a coded video bitstream, according to at least one embodiment of the present invention.
[0155] На этапе S910 устройство декодирования видео определяет, следует ли разделить текущий блок, кодированный с интра-предсказанием, на множество субблоков. В частности, устройство декодирования видео разделяет текущий блок на субблоки одинакового размера и определяет, выполнять ли интра-предсказание для соответствующих субблоков, используя тот же режим интра-предсказания, что и режим интра-предсказания текущего блока.[0155] In step S910, the video decoding apparatus determines whether the current intra-prediction encoded block should be divided into a plurality of sub-blocks. Specifically, the video decoding apparatus divides the current block into equal-sized subblocks and determines whether to perform intra-prediction for the corresponding sub-blocks using the same intra-prediction mode as the intra-prediction mode of the current block.
[0156] Например, устройство декодирования видео может декодировать из потока битов флаг разделения, указывающий, следует ли разбивать текущий блок, и определять, следует ли разбивать текущий блок, на основе флага разделения. Первое значение (например, «0») флага разделения может указывать на то, что текущий блок не был разделен на множество субблоков, а второе значение (например, «1») флага разделения может указывать на то, что текущий блок был разделен на множество субблоков и был интра-предсказан каждым субблоком.[0156] For example, a video decoding apparatus may decode from the bit stream a split flag indicating whether the current block should be split, and determine whether the current block should be split based on the split flag. The first value (eg, "0") of the split flag may indicate that the current block has not been split into multiple subblocks, and the second value (eg, "1") of the split flag may indicate that the current block has been split into multiple subblocks and was intra-predicted by each subblock.
[0157] Флаг разделения может быть выведен устройством декодирования видео без явной сигнализации, то есть без декодирования из потока битов, но вместо этого в зависимости от ширины и высоты текущего блока, площади текущего блока, минимального размера преобразования и максимального размера преобразования, разрешенного для преобразования коэффициентов преобразования. Соответственно, устройство декодировани видео может вывести значение флага разделения на основе ширины и высоты текущего блока, площади текущего блока и минимального и максимального размеров преобразования, разрешенных для преобразования коэффициентов преобразования.[0157] The split flag may be output by the video decoding device without explicit signaling, that is, without decoding from the bitstream, but instead depending on the width and height of the current block, the area of the current block, the minimum transform size, and the maximum transform size allowed for the transform conversion factors. Accordingly, the video decoding apparatus may derive a split flag value based on the width and height of the current block, the area of the current block, and the minimum and maximum transform sizes allowed for transform transform coefficients.
[0158] На этапе S920 устройство декодирования видео может реагировать на то, что текущий блок разделяется на множество субблоков, для определения направления разделения для текущего блока между горизонтальным направлением разделения и вертикальным направлением разделения и количество субблоков на основе о разделенной информации, декодированной из потока битов и ширины и высоты текущего блока.[0158] In step S920, the video decoding apparatus may respond to the fact that the current block is divided into a plurality of sub-blocks, to determine the division direction for the current block between the horizontal division direction and the vertical division direction and the number of sub-blocks based on the divided information decoded from the bit stream and the width and height of the current block.
[0159] Является ли направление разделения горизонтальным или вертикальным, может определяться информацией разделения. В качестве альтернативы или дополнения, направление разделения может быть определено на основе отношения ширины к высоте текущего блока. Например, направление разделения может быть определено как горизонтальное разделение, когда ширина текущего блока больше, чем его высота, и может быть определено как вертикальное разделение, когда ширина текущего блока меньше его высоты.[0159] Whether the dividing direction is horizontal or vertical may be determined by the dividing information. Alternatively or additionally, the dividing direction can be determined based on the width to height ratio of the current block. For example, a split direction can be defined as a horizontal split when the current block's width is greater than its height, and can be defined as a vertical split when the current block's width is less than its height.
[0160] Количество субблоков может определяться шириной и высотой текущего блока. Например, когда ширина и высота текущего блока равны 4×8 или 8×4, количество субблоков может быть определено как равное 2, а когда ширина и высота текущего блока больше, чем 4×4 и не равно 4×8 и 8×4, количество субблоков может быть определено как равное 4.[0160] The number of sub-blocks may be determined by the width and height of the current block. For example, when the width and height of the current block are 4x8 or 8x4, the number of subblocks can be defined as 2, and when the width and height of the current block are greater than 4x4 and not equal to 4x8 and 8x4, the number of subblocks can be defined as 4.
[0161] На этапе S930 устройство декодирования видео восстанавливает текущий блок путем последовательного восстановления множества субблоков, разделенных согласно направлению разделения и количеству субблоков, посредством интра-предсказания.[0161] In step S930, the video decoding apparatus reconstructs the current block by sequentially reconstructing a plurality of sub-blocks divided according to the dividing direction and the number of sub-blocks through intra-prediction.
[0162] Например, устройство декодирования видео может генерировать интра-предсказанный субблок путем предсказания целевого субблока, подлежащего кодированию из числа множества субблоков, из ранее восстановленных пикселей вокруг целевого субблока (S932). Устройство декодирования видео может декодировать из потока битов информацию о коэффициентах преобразования, соответствующую целевому субблоку, чтобы восстановить коэффициенты преобразования (S934), и обратно квантовать и обратно преобразовать коэффициенты преобразования, используя тот же размер преобразования, что и у целевого субблока, чтобы сгенерировать остаточный субблок, имеющий остаточные сигналы (S939). Устройство декодирования видео может восстанавливать целевой субблок, используя интра-предсказанный субблок и остаточный субблок (S938). Пиксели в восстановленном субблоке могут использоваться для интра-предсказания следующего субблока в текущем блоке.[0162] For example, a video decoding apparatus may generate an intra-predicted sub-block by predicting a target sub-block to be encoded from among a plurality of sub-blocks from previously reconstructed pixels around the target sub-block (S932). The video decoding apparatus may decode transform coefficient information corresponding to the target subblock from the bit stream to recover transform coefficients (S934), and inversely quantize and inversely transform the transform coefficients using the same transform size as the target subblock to generate a residual subblock , having residual signals (S939). The video decoding apparatus may reconstruct the target subblock using the intra-predicted subblock and the residual subblock (S938). The pixels in the reconstructed sub-block can be used to intra-predict the next sub-block in the current block.
[0163] Дополнительно, на этапе S930 или до него устройство декодирования видео может декодировать информацию режима интра-предсказания текущего блока из потока битов, чтобы определить режим интра-предсказания текущего блока. Например, устройство декодирования видео может выбрать предварительно установленное количество кандидатов режима интра-предсказания (то есть кандидатов MPM) из множества режимов интра-предсказания и использовать информацию режима интра-предсказания текущего блока для определения режима интра-предсказания текущего блока из числа кандидатов MPM. Кандидаты в режим интра-предсказания могут быть выбраны разными способами в соответствии с тем, является ли направление разделения горизонтальным или вертикальным. Например, когда направление разделения является горизонтальным, режимы с вертикальной ориентацией могут быть выбраны в качестве кандидатов MPM из числа множества режимов интра-предсказания вместо режимов с горизонтальной ориентацией. Кроме того, когда направление разделения является вертикальным, режимы с горизонтальной ориентацией могут быть выбраны в качестве кандидатов MPM из числа множества режимов интра-предсказания вместо режимов с вертикальной ориентацией.[0163] Additionally, at or before step S930, the video decoding apparatus may decode intra-prediction mode information of the current block from the bitstream to determine the intra-prediction mode of the current block. For example, a video decoding apparatus may select a predetermined number of intra-prediction mode candidates (ie, MPM candidates) from a plurality of intra-prediction modes, and use the intra-prediction mode information of the current block to determine the intra-prediction mode of the current block from among the MPM candidates. Intra-prediction mode candidates can be selected in different ways according to whether the split direction is horizontal or vertical. For example, when the dividing direction is horizontal, vertically oriented modes may be selected as MPM candidates from among a plurality of intra-prediction modes instead of horizontally oriented modes. In addition, when the dividing direction is vertical, modes with horizontal orientation may be selected as MPM candidates from among a plurality of intra-prediction modes instead of modes with vertical orientation.
[0164] Кроме того, на этапе S930 или до него устройство декодирования видео может декодировать из потока битов флаг субблока, указывающий, существует ли ненулевой коэффициент преобразования в целевом субблоке, на основе положения целевого субблока в текущем блоке и количестве субблоков. В этом случае устройство декодирования видео может восстанавливать коэффициенты преобразования, соответствующие целевому субблоку, из потока битов, когда флаг субблока указывает, что ненулевой коэффициент преобразования существует в целевом субблоке. Если флаг субблока не декодирован из потока битов, устройство декодирования видео может установить флаг субблока на значение, указывающее, что в субблоке существует ненулевой коэффициент преобразования.[0164] In addition, at or before step S930, the video decoding apparatus may decode from the bit stream a sub-block flag indicating whether a non-zero transform coefficient exists in the target sub-block based on the position of the target sub-block in the current block and the number of sub-blocks. In this case, the video decoding apparatus can recover transform coefficients corresponding to the target sub-block from the bit stream when the sub-block flag indicates that a non-zero transform coefficient exists in the target sub-block. If the subblock flag is not decoded from the bitstream, the video decoding apparatus may set the subblock flag to a value indicating that a non-zero transform coefficient exists in the subblock.
[0165] На этапе S940 устройство кодирования видео может выполнять деблокировочную фильтрацию и другие процессы в восстановленном текущем блоке и может сохранять отфильтрованный текущий блок в буфере (например, в памяти 470 с фиг. 4) для использования в качестве части опорного изображения для интер-предсказания незавершенных блоков, подлежащих кодированию в изображении. Устройство кодирования видео может устанавливать сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнять деблокировочную фильтрацию на границах, которые совпадают с границей сетки, из числа границ между множеством субблоков в текущем блоке.[0165] In step S940, the video encoding apparatus may perform deblocking filtering and other processes on the reconstructed current block, and may store the filtered current block in a buffer (eg, memory 470 of FIG. 4) for use as part of a reference picture for inter-prediction incomplete blocks to be encoded in the image. The video encoding apparatus may establish a grid of N samples at regular intervals in the horizontal and vertical directions and perform deblocking filtering on boundaries that coincide with the grid boundary from among the boundaries between a plurality of sub-blocks in the current block.
[0166] Между тем, когда блок (CU) кодируется последовательно в единицах субблоков согласно вышеописанному инструменту интра-кодирования, как интра-предсказание, так и интер-предсказание могут выполняться при генерации сигнала предсказания (для добавления к соответствующему остаточному сигналу) субблока. Фиг. 10A и 10B - схемы, иллюстрирующие блок кодирования, в котором первый субблок восстановлен первым, и второй субблок, который находится в процессе восстановления, при генерации субблока предсказания второго субблока.[0166] Meanwhile, when a block (CU) is encoded sequentially in units of sub-blocks according to the intra-coding tool described above, both intra-prediction and inter-prediction can be performed when generating a prediction signal (to be added to the corresponding residual signal) of the sub-block. Fig. 10A and 10B are diagrams illustrating a coding block in which a first subblock is recovered first, and a second subblock that is in the process of recovery, when generating a prediction subblock of the second subblock.
[0167] Как показано на фиг. 10A, где первый субблок был восставновлен, а второй субблок блока кодирования (CU) находится в процессе восстановления, взвешенная сумма (или средневзвешенное значение) выполняется для субблока 1010 предсказания из интра-предсказания второго субблока в режим интра-предсказания и субблок 1020 предсказания из интер-предсказания второго субблока, тем самым генерируя окончательный субблок 1030 предсказания (который должен быть добавлен к соответствующему остаточному сигналу) второго субблока. Здесь, для интер-предсказания в единицах субблоков информация о движении может передаваться в единицах субблоков по отдельности, или информация о движении, передаваемая для блока кодирования (CU), может обычно использоваться для всех субблоков CU.[0167] As shown in FIG. 10A, where the first subblock has been restored and the second subblock of the coding unit (CU) is in the process of recovery, a weighted sum (or weighted average) is performed on the prediction subblock 1010 from intra prediction of the second subblock to intra prediction mode and the prediction subblock 1020 from inter -prediction of the second sub-block, thereby generating a final prediction sub-block 1030 (to be added to the corresponding residual signal) of the second sub-block. Here, for inter-prediction in sub-block units, motion information may be transmitted in sub-block units individually, or motion information transmitted for a coding unit (CU) can be generally used for all sub-blocks of the CU.
[0168] Когда CU восстанавливается последовательно в единицах субблоков, блок 1060 предсказания из интер-предсказания CU может использоваться в процессе восстановления соответствующих субблоков. Как показано на фиг. 10B, где первый субблок был воссстановлен, а второй субблок блока кодирования (CU) находится в процессе восстановления, взвешенная сумма (или средневзвешенное значение) выполняется для (1) субблока предсказания, который соответствует второму субблоку и извлекается из блока 1060 предсказания, и (2) субблока 1010 предсказания, который генерируется из интра-предсказания второго субблока, тем самым генерируя окончательный субблок 1030 предсказания второго субблока. Блок 1060 предсказания CU может быть сгенерирован перед генерацией окончательного субблока предсказания для первого субблока и сохранен в буфере до генерации окончательного субблока предсказания для четвертого субблока.[0168] When the CU is reconstructed sequentially in units of subblocks, the prediction block 1060 from the inter-prediction of the CU can be used in the process of recovering the corresponding subblocks. As shown in FIG. 10B, where the first subblock has been reconstructed and the second subblock of the coding unit (CU) is in the process of recovery, a weighted sum (or weighted average) is performed on (1) a prediction subblock that corresponds to the second subblock and is extracted from prediction block 1060, and (2 ) of the prediction subblock 1010, which is generated from the intra-prediction of the second subblock, thereby generating the final second subblock prediction subblock 1030. The CU prediction block 1060 may be generated before the final prediction subblock is generated for the first subblock and stored in a buffer before the final prediction subblock is generated for the fourth subblock.
[0169] Соответственно, в некоторых вариантах осуществления, когда вышеописанный инструмент интра-кодирования применяется к текущему блоку, устройство декодирования видео может восстанавливать текущий блок последовательно в единицах субблоков таким образом, чтобы обрабатывать целевой субблок, подлежащий восстановлению, путем: генерации его интра-предсказанного субблока и интер-предсказанного субблока; выполнения взвешенного усреднения для двух субблоков предсказания, чтобы сгенерировать окончательный субблок предсказания для целевого субблока; и добавления окончательного субблока предсказания к остаточному субблоку, декодированному из потока битов. Это может восстановить целевой субблок.[0169] Accordingly, in some embodiments, when the above-described intra-encoding tool is applied to a current block, the video decoding apparatus may reconstruct the current block sequentially in units of sub-blocks so as to process the target sub-block to be reconstructed by: generating its intra-predicted subblock and inter-predicted subblock; performing a weighted average on the two prediction subblocks to generate a final prediction subblock for the target subblock; and adding the final prediction subblock to the residual subblock decoded from the bitstream. This can restore the target subblock.
[0170] Следует понимать, что в приведенном выше описании представлены иллюстративные варианты осуществления, которые могут быть реализованы различными другими способами. Функции, описанные в некоторых вариантах осуществления, могут быть реализованы с помощью оборудования, программного обеспечения, встроенного программного обеспечения и/или их комбинации. Также следует понимать, что функциональные компоненты, описанные в настоящем описании, помечены как «... блок», чтобы особо подчеркнуть возможность их автономной реализации.[0170] 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 emphasize their ability to be implemented independently.
[0171] Между тем, различные способы или функции, приведенные в настоящем описании, могут быть реализованы как инструкции, хранящиеся на энергонезависимом носителе информации, которые могут быть прочитаны и выполнены одним или несколькими процессорами. Невременный носитель записи включает в себя, например, все типы записывающих устройств, в которых данные хранятся в форме, читаемой компьютерной системой. Например, невременный носитель информации может включать в себя, среди прочего, носители данных, такие как стираемое программируемое постоянное запоминающее устройство (EPROM), флэш-накопитель, оптический накопитель, магнитный жесткий диск и твердотельный накопитель (SSD).[0171] Meanwhile, various methods or functions described herein may be implemented as instructions stored on a non-volatile storage medium that can be read and executed by one or more processors. Non-transitory recording medium includes, for example, all types of recording devices in which data is stored in a form readable by a computer system. For example, non-transitory storage media may include, but are 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).
[0172] Несмотря на то, что примерные варианты осуществления настоящего изобретения были описаны в иллюстративных целях, специалисты в данной области техники поймут, что возможны различные модификации, дополнения и замены без отклонения от идеи и объема заявленного изобретения. Следовательно, для краткости и ясности были описаны примерные варианты осуществления настоящего изобретения. Объем технической идеи настоящих вариантов осуществления не ограничен иллюстрациями. Соответственно, рядовому специалисту понятно, что объем заявленного изобретения ограничивается не ариантами осуществления, которые были непосредственно описаны выше, а формулой изобретения и ее эквивалентами.[0172] 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.
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННОЕ ЗАЯВЛЕНИЕCROSS REFERENCE TO RELATED STATEMENT
Эта заявка испрашивает приоритет корейской заявки на получение патента № 10-2019-0028356, поданной 12 марта 2019 г., описание которой полностью включено в настоящий документ посредством ссылки.This application claims priority to Korean Patent Application No. 10-2019-0028356, filed March 12, 2019, the disclosure of which is incorporated herein by reference in its entirety.
Claims (70)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0028356 | 2019-03-12 | ||
KR0-2019-0028356 | 2019-03-12 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021127514A Division RU2777755C1 (en) | 2019-03-12 | 2020-03-12 | Method and device for intra-prediction, in which the prediction block is divided into sub-blocks and predicted in sub-blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2022121160A RU2022121160A (en) | 2022-09-01 |
RU2803065C2 true RU2803065C2 (en) | 2023-09-06 |
Family
ID=
Citations (3)
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 |
RU2587465C2 (en) * | 2011-10-20 | 2016-06-20 | Квэлкомм Инкорпорейтед | Deblocking encoding mode with intra-pulse-code modulation (ipcm) and lossless encoding for video encoding |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2549157C1 (en) * | 2010-04-23 | 2015-04-20 | М энд К ХОЛДИНГС ИНК. | Moving image encoder |
RU2587465C2 (en) * | 2011-10-20 | 2016-06-20 | Квэлкомм Инкорпорейтед | Deblocking encoding mode with intra-pulse-code modulation (ipcm) and lossless encoding for video encoding |
WO2016043933A1 (en) * | 2014-09-15 | 2016-03-24 | Mediatek Inc. | Method of deblocking for intra block copy in video coding |
Non-Patent Citations (1)
Title |
---|
KENNETH ANDERSSON et al., CE11: Deblocking for 4 x N, N x 4 and 8 x N and N x 8 block boundaries that not are aligned with 8x8 grid (test 11.2.1), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC29/WG11, JVET-M0299-v1, 13th Meeting: Marrakech, 9-18 Jan. 2019. S. DE-LUXAN-HERNANDEZET et al., CE3: Line-based intra coding mode (Tests 2.1.1 and 2.1.2), Joint Video Experts Team (JVET) of ITU-T SG 1 6 WP 3 and ISO/EEC JTC 1/SC 29/WG11, JVET-L0076-v2, 12th Meeting, Macao, 3-12 Oct. 2018. CHEN JIANLE et al., Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and I SO/IEC JTC 1 /SC 29/WG11, JVET-M1002-v2, 13th Meeting, Marrakech, 9-18 Jan. 2019. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220191530A1 (en) | Intra prediction method and device for predicting and dividing prediction unit into sub-units | |
CN116916017A (en) | Video encoding/decoding method and apparatus, and recording medium storing bit stream | |
CN113574877B (en) | Method and apparatus for efficiently decoding residual block | |
US11962777B2 (en) | Inverse quantization device and method used in video decoding device | |
US20220353505A1 (en) | Method for reconstructing residual blocks of chroma blocks, and video decoding apparatus | |
RU2803065C2 (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 | |
RU2803425C2 (en) | Method and device for intra-prediction in which prediction block is divided into sub-blocks and prediction in sub-blocks | |
RU2777755C1 (en) | Method and device for intra-prediction, in which the prediction block is divided into sub-blocks and predicted in sub-blocks | |
RU2803532C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803519C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803426C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803537C2 (en) | Method and device for effective encoding of residual blocks | |
RU2803519C9 (en) | Method and device for effective encoding of residual blocks | |
RU2776871C1 (en) | Method and device for efficient coding of residual blocks | |
RU2785384C1 (en) | Image decoding device using differential encoding | |
RU2809228C2 (en) | Image decoding device using differential coding | |
RU2810127C2 (en) | Image decoding device using differential coding | |
RU2810083C2 (en) | Image decoding device using differential coding | |
RU2815809C2 (en) | Image decoding device using differential coding | |
CN114270842B (en) | Video encoding and decoding using differential encoding | |
US11956427B2 (en) | Method of restoration in subblock units, and video decoding apparatus | |
CN114762328B (en) | Video encoding and decoding method using differential modulation | |
US20220150470A1 (en) | Method and apparatus for intra predictionbased on deriving prediction mode |