RU2786746C2 - Boundary block separation in video encoding - Google Patents

Boundary block separation in video encoding Download PDF

Info

Publication number
RU2786746C2
RU2786746C2 RU2021103246A RU2021103246A RU2786746C2 RU 2786746 C2 RU2786746 C2 RU 2786746C2 RU 2021103246 A RU2021103246 A RU 2021103246A RU 2021103246 A RU2021103246 A RU 2021103246A RU 2786746 C2 RU2786746 C2 RU 2786746C2
Authority
RU
Russia
Prior art keywords
block
splitting
video
forced
boundary
Prior art date
Application number
RU2021103246A
Other languages
Russian (ru)
Other versions
RU2021103246A (en
Inventor
Хань ГАО
Цзяньлэ Чэнь
Семих ЕСЕНЛИК
Чжицзе ЧЖАО
Ананд Мехер КОТРА
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2021103246A publication Critical patent/RU2021103246A/en
Application granted granted Critical
Publication of RU2786746C2 publication Critical patent/RU2786746C2/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: invention relates to means for video encoding. It is determined, whether the current image block is a boundary block, and whether a size of the current block exceeds the minimum permissible size of a leaf node of a quadrant tree. Forced separation of a binary tree (BT) is applied to the current block, when the current block is the boundary block, and the size of the current block does not exceed the minimum permissible size of the leaf node of the quadrant tree (MinQTSize). A stage of forced separation of the binary tree is recursive horizontal forced binary separation, when the current block is at a lower image boundary, or recursive vertical forced boundary separation, when the current block is located at a right image boundary.
EFFECT: increase in the efficiency of video encoding due to the absence of a requirement for additional signaling for forced separation of a binary tree.
15 cl, 13 dwg

Description

Область техники, к которой относится изобретениеThe technical field to which the invention belongs

Варианты осуществления настоящего изобретения в целом относятся к области кодирования видео и, в частности, к разделению и разбиению блока кодирования.Embodiments of the present invention generally relate to the field of video coding and, in particular, to splitting and splitting a coding block.

Уровень техникиState of the art

Объем видеоданных, необходимых для визуализации даже относительно короткого видео, может быть значительным, что может вызвать значительную нагрузку на среду передачи информации, когда данные должны передаваться в режиме потоковой передачи или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные перед передачей обычно сжимаются по современным сетям связи. Размер видео также должен учитываться при передаче информации, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное обеспечение и/или аппаратное обеспечение на источнике для кодирования видеоданных перед передачей или хранением, тем самым, уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются на стороне назначения устройством распаковки видео, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео требуется использовать улучшенные способы сжатия и распаковки, которые улучшают степень сжатия с минимальными потерями в качестве изображения или без них.The amount of video data required to render even a relatively short video can be significant, which can cause a significant load on the communication medium when the data must be streamed or otherwise transmitted over a communication network with limited bandwidth. Thus, video data is typically compressed over modern communication networks before transmission. The size of the video must also be taken into account when transmitting information when the video is stored on a storage device, since memory resources may be limited. Video compression devices often use source software and/or hardware to encode video data prior to transmission or storage, thereby reducing the amount of data needed to represent digital video images. The compressed data is then received at the destination side by a video decompressor, which decodes the video data. With limited network resources and ever-increasing demands for higher quality video, there is a need to use advanced compression and decompression methods that improve compression rates with little or no loss in image quality.

Раскрытие сущности изобретенияDisclosure of the essence of the invention

Варианты осуществления настоящего изобретения обеспечивают устройства и способы для кодирования и декодирования.Embodiments of the present invention provide devices and methods for encoding and decoding.

Первый аспект относится к способу разделения, содержащему определение, является ли текущий блок изображения граничным блоком и превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; и, если текущий блок является граничным блоком и размер текущего блока не превышает минимально допустимый размер (MinQTSize) листового узла дерева квадрантов, применение принудительного разделения двоичного дерева (BT) к текущему блоку.The first aspect relates to a partitioning method, comprising determining whether the current image block is a boundary block and whether the size of the current block exceeds the minimum allowable size of the leaf node of the quadtree; and, if the current box is a boundary box and the size of the current box does not exceed the minimum allowable size (MinQTSize) of the quadtree leaf node, applying forced binary tree splitting (BT) to the current box.

В первой форме реализации способа согласно первому аспекту как таковому принудительное разделение двоичного дерева является рекурсивным горизонтальным принудительным двоичным разделением в случае, если текущий блок расположен на нижней границе изображения или рекурсивным вертикальным принудительным граничным разделением в случае, если текущий блок расположен на правой границе изображения.In a first form of implementation of the method according to the first aspect, as such, the forced binary tree split is a recursive horizontal forced binary split in case the current block is located on the bottom border of the image, or a recursive vertical forced border split in case the current block is located on the right border of the image.

Во второй форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта принудительное разделение двоичного дерева продолжается, пока блок листового узла не окажется в пределах изображения.In the second form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, forced splitting of the binary tree continues until the leaf node block is within the image.

В третьей форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, принудительное двоичное разделение содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока не будет подразделение текущего блока находится у нижней границы изображения; и рекурсивное разделение подразделения с помощью вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен на правой границе изображения.In a third implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, forced binary splitting comprises recursively splitting the current block with a horizontal forced boundary splitting until the current block subdivision is at the bottom border of the image; and recursively splitting the subdivision with a vertical forced edge split until the leaf node is completely located on the right border of the image.

В четвертой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения, пока листовой узел не окажется полностью на правой границе.In a fourth implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the forced partition BT comprises recursively partitioning the current block with a vertical forced boundary partition until the division of the current block is at a lower boundary; and recursively splitting the subdivision with a horizontal forced boundary split until the leaf node is completely on the right boundary.

В пятой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит применение минимально допустимого размера листового узла дерева квадрантов для управления разделением неграничного блока.In a fifth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the method further comprises applying a minimum allowable size of the leaf node of the quadtree to control the division of the non-boundary block.

В шестой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, граничный блок представляет собой блок, который не полностью находится внутри изображения и не полностью вне изображения.In the sixth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the border block is a block that is not completely inside the image and not completely outside the image.

Второй аспект относится к способу декодирования для декодирования блока путем разделения блока в соответствии с первым аспектом как таковым или любой предшествующей формой реализации первого аспекта.The second aspect relates to a decoding method for decoding a block by dividing the block according to the first aspect as such or any previous form of implementation of the first aspect.

В первой форме реализации способа согласно второму аспекту как таковому способ дополнительно содержит прием минимально допустимого размера листового узла дерева квадрантов через набор параметров последовательности (SPS).In a first form of implementing the method according to the second aspect, as such, the method further comprises receiving a minimum allowable leaf node size of the quadtree via a sequence parameter set (SPS).

Третий аспект относится к способу кодирования для кодирования блока путем разделения блока в соответствии с первым аспектом как таковым или любой предшествующей формой реализации первого аспекта.The third aspect relates to an encoding method for encoding a block by dividing the block according to the first aspect as such or any previous form of implementation of the first aspect.

В первой форме реализации способа согласно третьему аспекту как таковому способ дополнительно содержит передачу минимально допустимого размера листового узла дерева квадрантов через набор параметров последовательности (SPS).In a first implementation form of the method according to the third aspect, as such, the method further comprises transmitting a minimum allowable quadtree leaf node size via a sequence parameter set (SPS).

Четвертый аспект относится к устройству декодирования, содержащему логическую схему, выполненную с возможностью декодировать блок путем разделения блока в соответствии со способом разделения первого аспекта как таковым или любой предшествующей формой реализации первого аспекта.The fourth aspect relates to a decoding device comprising a logic circuit configured to decode the block by dividing the block in accordance with the division method of the first aspect as such or any previous form of implementation of the first aspect.

В первой форме реализации устройства для декодирования согласно четвертому аспекту как таковому логическая схема дополнительно выполнена с возможностью принимать минимально допустимый размер листового узла дерева квадрантов через набор параметров последовательности (SPS).In the first implementation form of the device for decoding according to the fourth aspect, as such, the logic circuit is further configured to receive a minimum allowable size of a leaf node of the quadtree via a sequence parameter set (SPS).

Пятый аспект относится к устройству кодирования, содержащему логическую схему, выполненную с возможностью кодирования блока путем разделения блока согласно способу разделения первого аспекта как такового или любой предшествующей форме реализации первого аспекта.The fifth aspect relates to an encoding device comprising a logic circuit configured to encode a block by dividing the block according to the division method of the first aspect as such or any previous form of implementation of the first aspect.

В первой форме реализации устройства декодирования в соответствии с пятым аспектом как такового, логическая схема дополнительно выполнена с возможностью передавать минимально допустимый размер листового узла дерева квадрантов через набор параметров последовательности (SPS).In the first implementation form of the decoding apparatus according to the fifth aspect as such, the logic is further configured to communicate a minimum allowable quadtree leaf node size via a sequence parameter set (SPS).

Шестой аспект относится к энергонезависимому носителю данных для хранения инструкций, которые при выполнении процессором вызывают выполнение процессором любого из первого, второго или третьего аспекта как такового или любой предшествующей формы реализации первого, второго или третьего аспекта.A sixth aspect relates to a non-volatile storage medium for storing instructions that, when executed by the processor, cause the processor to execute any of the first, second, or third aspects as such, or any prior form of implementation of the first, second, or third aspect.

Седьмой аспект относится к способу, содержащему определение, что текущий блок изображения является граничным блоком и что размер текущего блока меньше или равен минимально допустимому размеру (MinQTSize) листового узла дерева квадрантов (QT); и применение, в ответ на определение, принудительного разделения двоичного дерева (BT) к текущему блоку.A seventh aspect relates to a method comprising determining that the current image block is a boundary block and that the size of the current block is less than or equal to a minimum allowable size (MinQTSize) of a quadtree (QT) leaf node; and applying, in response to the determination, a forced binary tree split (BT) to the current block.

В первой форме реализации способа согласно седьмому аспекту как таковому текущий блок расположен на нижней границе изображения и в котором принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT.In the first implementation form of the method according to the seventh aspect, as such, the current block is located at the bottom border of the image, and in which the BT forced separation is a recursive horizontal BT forced separation.

Во второй форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта текущий блок расположен на правой границе изображения, и в котором принудительное разделение BT является рекурсивным вертикальным принудительным разделением BT.In the second implementation form of the method according to the seventh aspect as such or any previous implementation form of the seventh aspect, the current block is located on the right border of the image, and in which the BT forced separation is a recursive vertical BT forced separation.

В третьей форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен на правой границе.In a third implementation form of the method according to the seventh aspect as such or any previous implementation form of the seventh aspect, the forced division BT comprises recursively dividing the current block with a horizontal forced boundary division until the division of the current block is at a lower boundary; and recursively splitting the subdivision by vertically forced boundary splitting until the leaf node is completely located on the right boundary.

В четвертой форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения до тех пор, пока листовой узел не окажется полностью на правой границе.In a fourth implementation form of the method according to the seventh aspect as such or any previous implementation form of the seventh aspect, the forced partition BT comprises recursively partitioning the current block with a vertical forced boundary partition until the division of the current block is at a lower boundary; and recursively splitting the subdivision with a horizontal forced boundary split until the leaf node is completely on the right boundary.

В пятой форме реализации способа согласно седьмому аспекту как таковой или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит применение MinQTSize для управления разделением неграничного блока.In the fifth implementation form of the method according to the seventh aspect as such or any previous implementation form of the seventh aspect, the method further comprises applying MinQTSize to control the division of the non-boundary block.

В шестой форме реализации способа согласно седьмому аспекту как таковой или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит прием MinQTSize через набор параметров последовательности (SPS).In a sixth implementation form of the method according to the seventh aspect as such or any previous implementation form of the seventh aspect, the method further comprises receiving MinQTSize via a sequence parameter set (SPS).

В седьмой форме реализации способа согласно седьмому аспекту как таковой или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит передачу MinQTSize через набор параметров последовательности (SPS).In a seventh implementation form of the method according to the seventh aspect as such or any previous implementation form of the seventh aspect, the method further comprises transmitting MinQTSize via a sequence parameter set (SPS).

Восьмой аспект относится к устройству, содержащему память; и процессор, соединенный с памятью и выполненный с возможностью определять, является ли текущий блок изображения граничным блоком, определять, когда текущий блок является граничным блоком, превышает ли размер текущего блока минимально допустимый размер (MinQTSize) листового узла дерева квадрантов (QT), и применять, когда размер текущего блока не превышает MinQTSize, принудительное разделение двоичного дерева (BT) на текущий блок.The eighth aspect relates to a device containing a memory; and a processor coupled to the memory and configured to determine whether the current image block is a boundary block, determine when the current block is a boundary block, whether the size of the current block exceeds a minimum allowable size (MinQTSize) of a quadtree (QT) leaf node, and apply , when the current block size is less than or equal to MinQTSize, force the binary tree (BT) split into the current block.

В первой форме реализации устройства в соответствии с восьмым аспектом как таковое принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT, когда текущий блок расположен на нижней границе изображения, или рекурсивным принудительным вертикальным разделением BT, когда текущий блок расположен на правой границе изображения.In the first implementation form of the apparatus according to the eighth aspect, the forced BT split as such is a recursive horizontal forced BT split when the current block is located on the lower border of the image, or a recursive forced vertical BT split when the current block is located on the right border of the image.

Во второй форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен на правой границе.In the second implementation form of the device according to the eighth aspect as such or any previous implementation form of the eighth aspect, the forced division BT comprises recursively dividing the current block with a horizontal forced boundary division until the division of the current block is at the lower boundary; and recursively splitting the subdivision by vertically forced boundary splitting until the leaf node is completely located on the right boundary.

В третьей форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения до тех пор, пока листовой узел не окажется полностью на правой границе.In the third implementation form of the device according to the eighth aspect as such or any previous implementation form of the eighth aspect, forced division BT comprises recursively dividing the current block with a vertical forced boundary division until the division of the current block is at the lower boundary; and recursively splitting the subdivision with a horizontal forced boundary split until the leaf node is completely on the right boundary.

В четвертой форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта процессор дополнительно выполнен с возможностью применять MinQTSize для управления разделением неграничного блока.In the fourth embodiment of the apparatus according to the eighth aspect as such or any preceding embodiment of the eighth aspect, the processor is further configured to apply MinQTSize to control the division of the non-boundary block.

В пятой форме реализации устройства в соответствии с восьмым аспектом как таковым или любой предшествующей форме реализации восьмого аспекта устройство дополнительно содержит приемник, подключенный к процессору и выполненный с возможностью принимать MinQTSize через набор параметров последовательности (SPS).In a fifth embodiment of the apparatus according to the eighth aspect as such or any preceding embodiment of the eighth aspect, the apparatus further comprises a receiver coupled to the processor and configured to receive a MinQTSize via a sequence parameter set (SPS).

В шестой форме реализации устройства в соответствии с восьмым аспектом как таковым или любой предшествующей формой реализации восьмого аспекта устройство дополнительно содержит передатчик, соединенный с процессором и выполненный с возможностью передавать MinQTSize через набор параметров последовательности (SPS).In a sixth embodiment of the apparatus according to the eighth aspect as such or any preceding embodiment of the eighth aspect, the apparatus further comprises a transmitter coupled to the processor and configured to transmit MinQTSize via a sequence parameter set (SPS).

Девятый аспект относится к компьютерному программному продукту, содержащему исполняемые компьютером инструкции, хранящиеся на энергонезависимом носителе, которые при выполнении процессором побуждает устройство определять, является ли текущий блок изображения граничным блоком; определять, когда текущий блок является граничным блоком, превышает ли размер текущего блока минимально допустимый размер (MinQTSize) листового узла дерева квадрантов (QT); и применять, когда размер текущего блока 0 не превышает MinQTSize, принудительное разделение двоичного дерева (BT) к текущему блоку.A ninth aspect relates to a computer program product comprising computer-executable instructions stored on a non-volatile medium that, when executed by a processor, causes a device to determine whether the current image block is a boundary block; determine, when the current box is a boundary box, whether the size of the current box exceeds the minimum allowable size (MinQTSize) of a quadtree (QT) leaf node; and apply, when current block size 0 does not exceed MinQTSize, force binary tree splitting (BT) to the current block.

В первой форме реализации устройства в соответствии с восьмым аспектом как таковым принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT, когда текущий блок расположен на нижней границе изображения, или рекурсивным вертикальным принудительным разделением BT. когда текущий блок расположен на правой границе изображения.In the first implementation form of the apparatus according to the eighth aspect, the forced BT split as such is a recursive horizontal forced BT split when the current block is located at the lower boundary of the image, or a recursive vertical forced BT split. when the current block is located on the right border of the image.

Во второй форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения, пока листовой узел не будет полностью расположен на правой границе.In the second embodiment of the device according to the ninth aspect as such or any preceding embodiment of the ninth aspect, the forced division BT comprises recursively dividing the current block with a horizontal forced boundary division until the division of the current block is at a lower boundary; and recursively splitting the subdivision by means of vertically forced boundary splitting until the leaf node is completely located on the right boundary.

В третьей форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения, пока листовой узел не окажется полностью на правой границе.In the third embodiment of the apparatus according to the ninth aspect as such or any preceding embodiment of the ninth aspect, the forced division BT comprises recursively dividing the current block with a vertical forced boundary division until the division of the current block is at a lower boundary; and recursively splitting the subdivision with a horizontal forced boundary split until the leaf node is completely on the right boundary.

В четвертой форме реализации устройства в соответствии с девятым аспектом как таковой или в любой предшествующей форме реализации девятого аспекта инструкции дополнительно побуждают устройство применять MinQTSize для управления разделением неграничного блока.In the fourth form of device implementation according to the ninth aspect, as such, or in any previous form of implementation of the ninth aspect, the instructions further cause the device to apply MinQTSize to control the division of the non-boundary block.

В пятой форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта инструкции дополнительно побуждает устройство принимать MinQTSize через набор параметров последовательности (SPS).In the fifth form of implementation of the device according to the ninth aspect as such or any previous form of implementation of the ninth aspect, the instruction further causes the device to receive MinQTSize via sequence parameter set (SPS).

В шестой форме реализации устройства в соответствии с девятым аспектом как таковым или любой предшествующей формой реализации девятого аспекта инструкции дополнительно побуждает устройство передавать MinQTSize через набор параметров последовательности (SPS).In a sixth form of implementation of the device according to the ninth aspect as such or any previous form of implementation of the ninth aspect, the instruction further causes the device to transmit MinQTSize via a sequence parameter set (SPS).

Для более ясного изложения любой из раскрытых здесь вариантов осуществления может быть объединен с любым одним или более другими вариантами осуществления для формирования нового варианта осуществления в пределах объема настоящего изобретения.For the sake of clarity, any of the embodiments disclosed herein may be combined with any one or more other embodiments to form a new embodiment within the scope of the present invention.

Эти и другие признаки будут более понятны из следующего подробного описания вместе с прилагаемыми чертежами и формулой изобретения.These and other features will be better understood from the following detailed description, together with the accompanying drawings and claims.

Краткое описание чертежейBrief description of the drawings

Для более полного понимания настоящего изобретения будет сделана ссылка на следующее краткое описание, совместно с прилагаемыми чертежами и подробным описанием, в котором одинаковые ссылочные позиции представляют одинаковые части.For a more complete understanding of the present invention, reference will be made to the following brief description, together with the accompanying drawings and a detailed description in which like reference numbers represent like parts.

Фиг.1A является блок-схемой, иллюстрирующей примерную систему кодирования, которая может реализовывать варианты осуществления настоящего изобретения.1A is a block diagram illustrating an exemplary coding system that may implement embodiments of the present invention.

Фиг.1B является блок-схемой, иллюстрирующей другой пример системы кодирования, которая может реализовывать варианты осуществления настоящего изобретения.1B is a block diagram illustrating another example of a coding system that may implement embodiments of the present invention.

Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера, который может реализовывать варианты осуществления настоящего изобретения.2 is a block diagram illustrating an example of a video encoder that may implement embodiments of the present invention.

Фиг.3 является блок-схемой, иллюстрирующей пример видеодекодера, который может реализовывать варианты осуществления настоящего изобретения.3 is a block diagram illustrating an example of a video decoder that may implement embodiments of the present invention.

Фиг.4 является схемой сетевого устройства согласно варианту осуществления настоящего изобретения.4 is a diagram of a network device according to an embodiment of the present invention.

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

Фиг.6 A-F показаны различные режимы разбиения CU в VVC.6A-F show different CU partitioning modes in VVC.

Фиг.7A показывает принудительное разделение QT нижней границы CTU (128x128) HD (1920x1080).7A shows the forced QT split of the lower boundary of the CTU (128x128) HD (1920x1080).

Фиг.7B показывает принудительное разделение BT (128x128) нижней границы CTU HD (1920 x 1080) согласно варианту осуществления изобретения.7B shows forced splitting BT (128x128) of the lower boundary of the HD CTU (1920 x 1080) according to an embodiment of the invention.

Фиг.8 показывает пример определения границы.8 shows an example of defining a boundary.

Фиг.9A показывает пример принудительного разделения QTBT ситуации в углу согласно варианту осуществления настоящего изобретения.9A shows an example of forced separation of the QTBT of a corner situation according to an embodiment of the present invention.

Фиг.9B показывает пример принудительного разделения QTBT для блока, расположенного в углу, согласно варианту осуществления настоящего изобретения.9B shows an example of forced QTBT separation for a corner block according to an embodiment of the present invention.

Фиг.10 показан вариант определения границы.Fig.10 shows a variant of the definition of the border.

Осуществление изобретенияImplementation of the invention

Вначале следует понимать, что, хотя ниже представлена иллюстративная реализация одного или более вариантов осуществления, раскрытые системы и/или способы могут быть реализованы с использованием любого количества способов, известных в настоящее время или существующих. Настоящее изобретение никоим образом не должно ограничиваться иллюстративными реализациями, чертежами и технологиями, проиллюстрированными ниже, включающие в себя иллюстративные конструкции и реализации, проиллюстрированные и описанные в настоящем документе, но может быть изменено в пределах объема прилагаемой формулы изобретения вместе с полным объемом их эквивалентов.It should first be understood that while an exemplary implementation of one or more embodiments is provided below, the disclosed systems and/or methods may be implemented using any number of methods currently known or existing. The present invention should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the illustrative constructions and implementations illustrated and described herein, but may be varied within the scope of the appended claims, along with the full scope of their equivalents.

Фиг.1A является блок-схемой, иллюстрирующей примерную систему 10 кодирования, например, систему 10 кодирования видео, которая может реализовывать варианты осуществления настоящего изобретения. Система 10 кодирования может использовать способы предсказания, например, способы двунаправленного предсказания. Как показано на фиг.1A, система 10 кодирования включает в себя устройство 12 источника, которое предоставляет закодированные видеоданные для декодирования в более позднее время с помощью устройства 14 назначения. В частности, устройство 12 источника может предоставлять видеоданные в устройство 14 назначения посредством машиночитаемого носителя 16. Устройство 12 источника и устройство 14 назначения могут содержать или быть любым из широкого диапазона устройств, включающие в себя настольные компьютеры, ноутбуки (то есть, портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, так называемые «умные» телефоны, так называемые «умные» планшеты, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства для потоковой передачи видео и т.п. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для беспроводной связи.1A is a block diagram illustrating an exemplary coding system 10, such as a video coding system 10, that may implement embodiments of the present invention. The coding system 10 may use prediction techniques, such as bidirectional prediction techniques. As shown in FIG. 1A, encoding system 10 includes a source device 12 that provides encoded video data for decoding at a later time by destination device 14. In particular, source device 12 may provide video data to destination device 14 via computer-readable medium 16. Source device 12 and destination device 14 may comprise or be any of a wide range of devices, including desktop computers, laptops (i.e., laptop computers), tablet computers, set-top boxes, handsets, so-called smart phones, so-called smart tablets, TVs, cameras, display devices, digital media players, game consoles, video streaming devices, etc. In some cases, source device 12 and destination device 14 may be equipped for wireless communication.

Устройство 14 источника может принимать кодированные видеоданные для декодирования через машиночитаемый носитель 16. Машиночитаемый носитель 16 может содержать любой тип носителя или устройства, выполненного с возможностью перемещать закодированные видеоданные из устройства 12 источника в устройство 14 назначения. В одном примере машиночитаемый носитель 16 может содержать среду связи, позволяющую устройству 12 источника передавать закодированные видеоданные непосредственно в устройство 14 назначения в реальном времени. Закодированные видеоданные могут быть модулированы согласно стандарту связи, например, протоколу беспроводной связи, и переданы в устройство 14 назначения. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одну или несколько физических линий передачи. Среда связи может образовывать часть сети с пакетной передачей, такой как локальная сеть, региональная сеть или глобальная сеть, такая как интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть выполнено с возможностью обеспечивать связь от устройства 12 источника в устройство 14 назначения.Source device 14 may receive encoded video data for decoding via computer readable medium 16. Computer readable medium 16 may comprise any type of media or device configured to transfer encoded video data from source device 12 to destination device 14. In one example, computer-readable medium 16 may include a communication medium allowing source device 12 to transmit encoded video data directly to destination device 14 in real time. The encoded video data may be modulated according to a communication standard, such as a wireless communication protocol, and transmitted to the destination device 14 . The communication medium may comprise any wireless or wired communication medium such as radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet network such as a local area network, a wide area network, or a wide area network such as the Internet. The communications medium may include routers, switches, base stations, or any other equipment that may be configured to provide communications from source device 12 to destination device 14.

В некоторых примерах закодированные данные могут выводиться через интерфейс 22 вывода в устройство хранения. Точно так же к закодированным данным можно получить доступ с устройства хранения через интерфейс 28 ввода. Устройство хранения может включать в себя любой из множества распределенных или локально доступных носителей данных, таких как жесткий диск, диски Blu-ray, цифровые видеодиски (DVDs), постоянное запоминающее устройство на компакт-диске (CD-ROM), флэш-память, энергозависимая или энергонезависимая память или любой другой подходящий цифровой носитель для хранения закодированных видеоданных. В дополнительном примере устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сгенерированное устройством 12 источника. Устройство 14 назначение может осуществлять доступ к сохраненным видеоданным из устройства хранения посредством потоковой передачи или загрузки. Файловым сервером может быть любой тип сервера, выполненный с возможностью хранить закодированные видеоданные и передавать эти закодированные видеоданные в устройство 14 назначения. Примеры файловых серверов включают в себя веб-сервер (например, для веб-сайта), сервер протокола передачи файлов (FTP), сетевые устройства хранения (NAS) или локальный диск. Устройство 14 назначения может получить доступ к закодированным видеоданным через любое стандартное соединение для передачи данных, включающее в себя соединение с интернетом. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, цифровую абонентскую линию (DSL), кабельный модем и т.д.) или их комбинацию, которая подходит для доступа к сохраненным кодированным видеоданным на файловом сервере. Передача закодированных видеоданных из устройства хранения может быть потоковой передачей, загрузкой или их комбинацией.In some examples, the encoded data may be output via the output interface 22 to a storage device. Similarly, the encoded data can be accessed from the storage device via the input interface 28 . The storage device may include any of a variety of distributed or locally available storage media such as a hard drive, Blu-ray discs, digital video discs (DVDs), compact disc read only memory (CD-ROM), flash memory, volatile or non-volatile memory or any other suitable digital storage medium for storing encoded video data. In a further example, the storage device may correspond to a file server or other intermediate storage device that may store the encoded video generated by source device 12. The destination device 14 may access the stored video data from the storage device via streaming or download. The file server may be any type of server capable of storing encoded video data and transmitting this encoded video data to the destination device 14 . Examples of file servers include a web server (eg, for a website), a file transfer protocol (FTP) server, network attached storage (NAS), or a local drive. Destination device 14 can access the encoded video data over any standard data connection, including an Internet connection. This may include a wireless link (such as a Wi-Fi connection), a wired connection (such as a digital subscriber line (DSL), cable modem, etc.), or a combination thereof that is suitable for accessing stored encoded video data on a file. server. The transmission of the encoded video data from the storage device may be streaming, downloading, or a combination thereof.

Способы настоящего изобретения не обязательно ограничиваются беспроводными приложениями или настройками. Эти способы могут применяться к кодированию видео для поддержки любого из множества мультимедийных приложений, таких как эфирное телевещание, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео через интернет, такие как динамическая адаптивная потоковая передача по протоколу HTTP (DASH), цифровое видео, которое закодировано на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или другие приложения. В некоторых примерах система 10 кодирования может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачи видео для поддержки таких приложений, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видео телефония.The methods of the present invention are not necessarily limited to wireless applications or settings. These techniques can be applied to video coding to support any of a variety of multimedia applications such as terrestrial television, cable television transmissions, satellite television transmissions, Internet video streaming such as HTTP Dynamic Adaptive Streaming (DASH), digital video, which is encoded on a storage medium, decoding digital video stored on a storage medium, or other applications. In some examples, encoding system 10 may be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcast, and/or video telephony.

В примере на фиг.1A, устройство 12 источника включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. Устройство 14 назначения включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В соответствии с этим изобретением, видеокодер 20 устройства 12 источника и/или видеодекодер 30 устройства 14 назначения может быть выполнен с возможностью применять способ предсказания, например, двунаправленное предсказание. В других примерах устройство 12 источника и устройство 14 назначения могут включать в себя другие компоненты или компоновки. Например, устройство 12 источника может принимать видеоданные из внешнего источника видео, такого как внешняя камера. Аналогично, устройство 14 назначения может взаимодействовать с внешним устройством отображения, а не включать в себя встроенное устройство отображения.In the example of FIG. 1A, source device 12 includes video source 18, video encoder 20, and output interface 22. The destination device 14 includes an input interface 28, a video decoder 30, and a display device 32. In accordance with this invention, video encoder 20 of source device 12 and/or video decoder 30 of destination device 14 may be configured to apply a prediction method, such as bidirectional prediction. In other examples, source device 12 and destination device 14 may include other components or arrangements. For example, source device 12 may receive video data from an external video source such as an external camera. Likewise, destination device 14 may interact with an external display device rather than include an onboard display device.

Иллюстрированная система 10 кодирования на фиг.1A является всего лишь одним примером. Способы предсказания, например, двунаправленное предсказание может выполняться любым устройством кодирования и/или декодирования цифрового видео. Хотя способы этого настоящего изобретения обычно выполняются устройством для кодирования видео, способы также могут выполняться кодером/декодером видео, обычно называемым «CODEC». Более того, способы настоящего изобретения также могут выполняться препроцессором видео. Видеокодер и/или декодер могут быть графическим процессором (GPU) или аналогичным устройством.The illustrated coding system 10 in FIG. 1A is just one example. Prediction techniques, such as bi-directional prediction, may be performed by any digital video encoding and/or decoding device. Although the methods of this present invention are typically performed by a video encoding device, the methods can also be performed by a video encoder/decoder, commonly referred to as "CODEC". Moreover, the methods of the present invention can also be performed by a video preprocessor. The video encoder and/or decoder may be a graphics processing unit (GPU) or the like.

Устройство 12 источника и устройство 14 назначения являются просто примерами таких устройств для кодирования, в которых устройство 12 источника генерирует кодированные видеоданные для передачи в устройство 14 назначения. В некоторых примерах устройство 12 источника и устройство 14 назначения может работать, по существу, симметрично, так что каждое из устройства 12 источника и устройства 14 назначения включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 кодирования может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 14, например, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видео телефонии.Source device 12 and destination device 14 are merely examples of such encoding devices, in which source device 12 generates encoded video data for transmission to destination device 14. In some examples, source device 12 and destination device 14 may operate substantially symmetrically such that source device 12 and destination device 14 each include video encoding and decoding components. Therefore, encoding system 10 can support one-way or two-way video transmission between video devices 12, 14, such as for video streaming, video playback, video broadcast, or video telephony.

Источник 18 видео устройства 12 источника может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или интерфейс видеопотока для приема видео от поставщика видеоконтента. В качестве дополнительной альтернативы источник 18 видео может генерировать данные на основе компьютерной графики как исходное видео или комбинацию видео в реальном времени, архивированного видео и видео, сгенерированного компьютером.Video source 18 of source device 12 may include a video capture device such as a video camera, a video archive containing previously captured video, and/or a video stream interface for receiving video from a video content provider. As a further alternative, video source 18 may generate computer graphics based data as original video or a combination of live video, archived video, and computer generated video.

В некоторых случаях, когда источником 18 видео является видеокамера, устройство 12 источника и устройство 14 назначения могут образовывать так называемые телефоны с камерой или видеотелефоны. Однако, как упомянуто выше, способы, описанные в настоящем изобретении, могут быть применимы к кодированию видео в целом и могут применяться к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано видеокодером 20. Закодированная видеоинформация затем может выводиться через интерфейс 22 вывода на машиночитаемый носитель 16.In some cases where video source 18 is a video camera, source device 12 and destination device 14 may form so-called camera phones or video phones. However, as mentioned above, the methods described in the present invention may be applicable to video coding in general and may be applied to wireless and/or wired applications. In each case, the captured, pre-captured, or computer-generated video may be encoded by the video encoder 20. The encoded video information may then be output via the output interface 22 to the computer-readable medium 16.

Машиночитаемый носитель 16 может включать в себя временные носители, такие как беспроводное вещание или передача по проводной сети, или машиночитаемый носитель 16 может включать в себя постоянные носители данных, такие как жесткий диск, флэш-накопитель, компакт-диск, цифровые видеодиск, диск Blu-ray или другой машиночитаемый носитель. В некоторых примерах сетевой сервер (не показан) может принимать закодированные видеоданные из устройства 12 источника и предоставлять закодированные видеоданные в устройство 14 назначения, например, посредством сетевой передачи. Точно так же вычислительное устройство производственного процесса, такого как средство штамповки диска, может принимать закодированные видеоданные от устройства 12 источника и производить диск, содержащий закодированные видеоданные. Следовательно, можно понимать, что машиночитаемый носитель 16 включает в себя один или несколько машиночитаемых носителей различных форм в различных примерах.The computer readable medium 16 may include temporary media such as wireless broadcast or wired network transmission, or the computer readable medium 16 may include permanent storage media such as a hard drive, flash drive, CD, digital video disc, Blu disc. -ray or other machine-readable media. In some examples, a network server (not shown) may receive encoded video data from source device 12 and provide encoded video data to destination device 14, such as via a network transmission. Similarly, a manufacturing process computing device, such as a disc stamper, may receive encoded video data from source device 12 and produce a disc containing the encoded video data. Therefore, it can be understood that the computer-readable medium 16 includes one or more computer-readable media in various forms in various examples.

Интерфейс 28 ввода устройства 14 назначения принимает информацию машиночитаемого носителя 16. Информация машиночитаемого носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 20, которая также используется видеодекодером 30, который включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например, группу изображений (GOP). Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, органический светоизлучающий диод (OLED) или другое устройство отображения.The input interface 28 of the destination device 14 receives information of the computer-readable medium 16. The information of the computer-readable medium 16 may include syntax information defined by video encoder 20, which is also used by video decoder 30, which includes syntax elements that describe the characteristics and/or processing of blocks and other coded units, such as a group of pictures (GOP). The display device 32 displays the decoded video data to the user and may include any of a variety of display devices such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma display, organic light emitting diode (OLED), or other display device.

Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом кодирования видео, таким как стандарт высокоэффективного кодирования видео (HEVC), который в настоящее время разрабатывается, и могут соответствовать тестовой модели HEVC (HM). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими частными или отраслевыми стандартами, такими как стандарт H.264 сектора стандартизации электросвязи Международного союза электросвязи (ITU-T), также называемый группой экспертов по движущимся изображениям (MPEG)-4, Часть 10, усовершенствованное кодирование видео (AVC), H.265/HEVC, проект стандарта универсального кодирования видео (VVC), который в настоящее время разрабатывается ITU-T и MPEG, или расширения таких стандартов. Однако способы настоящего изобретения не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры стандартов кодирования видео включают в себя MPEG-2 и ITU-T H.263. Хотя это не показано на фиг.1A, в некоторых аспектах, видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие блоки мультиплексора-демультиплексора (MUX-DEMUX) или другое аппаратное и программное обеспечение для обработки кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, MUX-DEMUX блоки могут соответствовать ITU-T H.223 протоколу мультиплексора или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).Video encoder 20 and video decoder 30 may operate in accordance with a video coding standard, such as the High Efficiency Video Coding (HEVC) standard currently under development, and may comply with the HEVC test model (HM). Alternatively, video encoder 20 and video decoder 30 may operate in accordance with other proprietary or industry standards, such as the H.264 standard of the Telecommunication Standardization Sector of the International Telecommunication Union (ITU-T), also referred to as the Moving Picture Experts Group (MPEG)-4, Part 10, Advanced Video Coding (AVC), H.265/HEVC, a draft Universal Video Coding (VVC) standard currently being developed by ITU-T and MPEG, or extensions to such standards. However, the methods of the present invention are not limited to any particular coding standard. Other examples of video coding standards include MPEG-2 and ITU-T H.263. Although not shown in FIG. 1A, in some aspects, video encoder 20 and video decoder 30 may be integrated with an audio encoder and decoder and may include appropriate multiplexer-demultiplexer (MUX-DEMUX) units or other encoding processing hardware and software such as audio and video in a common data stream or in separate data streams. If applicable, MUX-DEMUX blocks may conform to the ITU-T H.223 multiplexer protocol or other protocols such as User Datagram Protocol (UDP).

Видеокодер 20 и видеодекодер 30, каждый, могут быть реализованы как любая из множества подходящих схем кодера или декодера, или в виде общей логической схемы или схемы кодера, например, один или несколько микропроцессоров, процессоров цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, графические процессоры (GPU), процессоры (например, программируемые, например, программно-программируемые), программное обеспечение, аппаратное обеспечение, встроенное программное обеспечение или любые их комбинации. Когда способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе и выполнять инструкции в аппаратных средствах, используя один или несколько процессоров для выполнения способов настоящего изобретения. Каждый из видеокодера 20 и видеодекодера 30 может содержаться в одном или нескольких кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве. Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.Video encoder 20 and video decoder 30 may each be implemented as any of a variety of suitable encoder or decoder circuits, or as a common logic or encoder circuit, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs). ), field-programmable gate arrays (FPGAs), discrete logic, graphics processing units (GPUs), processors (eg, programmable, eg, software-programmable), software, hardware, firmware, or any combination thereof. When the methods are partially implemented in software, the device may store instructions for the software on a suitable non-volatile computer-readable medium and execute the instructions in hardware using one or more processors to perform the methods of the present invention. Each of video encoder 20 and video decoder 30 may be contained in one or more encoders or decoders, each of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective device. The device including video encoder 20 and/or video decoder 30 may include an integrated circuit, a microprocessor, and/or a wireless communication device such as a cellular phone.

Фиг.1B является иллюстративной схемой примерной системы 40 кодирования видео, включающей в себя видеокодер 20 на фиг.2 и/или видеодекодер 30 на фиг.3 в соответствии с примерным вариантом осуществления. Система 40 кодирования видео может реализовывать способы настоящего изобретения. В проиллюстрированной реализации система 40 кодирования видео может включать в себя устройство (устройства) 41 формирования изображения, видеокодер 20, видеодекодер 30 (и/или видеокодер, реализованный посредством логической схемы 47 блока (блоков) 46 обработки), антенну 42, один или несколько процессоров 43, одно или несколько памяти или хранилищ 44 памяти и/или устройство 45 отображения. Как показано, устройство (устройства) 41 формирования изображения, антенна 42, блок (блоки) 46 обработки, логическая схема 47, видеокодер 20, видеодекодер 30, процессор (процессоры) 43, памяти и/или хранилище 44 памяти и/или устройство 45 отображения могут быть выполнены с возможностью взаимодействовать друг с другом. Как обсуждалось, хотя фиг.1B показывает и видеокодер 20, и видеодекодер 30, система 40 кодирования видео может включать в себя только видеокодер 20 или только видеодекодер 30 в различных примерах.FIG. 1B is an illustrative diagram of an exemplary video coding system 40 including video encoder 20 in FIG. 2 and/or video decoder 30 in FIG. 3, in accordance with an exemplary embodiment. Video coding system 40 may implement the methods of the present invention. In the illustrated implementation, the video coding system 40 may include an imaging device(s) 41, a video encoder 20, a video decoder 30 (and/or a video encoder implemented by processing block(s) 46 logic 47), an antenna 42, one or more processors 43, one or more memory or memory stores 44 and/or a display device 45. As shown, imaging device(s) 41, antenna 42, processing unit(s) 46, logic circuit 47, video encoder 20, video decoder 30, processor(s) 43, memories and/or memory storage 44 and/or display device 45 may be configured to interact with each other. As discussed, although FIG. 1B shows both video encoder 20 and video decoder 30, video coding system 40 may include only video encoder 20 or only video decoder 30 in various examples.

Как показано, в некоторых примерах система 40 кодирования видео может включать в себя антенну 42. Антенна 42 может быть выполнена с возможностью, например, передавать или принимать закодированный битовый поток видеоданных. Кроме того, в некоторых примерах система 40 кодирования видео может включать в себя устройство 45 отображения.As shown, in some examples, video coding system 40 may include an antenna 42. Antenna 42 may be configured to transmit or receive an encoded video bitstream, for example. In addition, in some examples, the video encoding system 40 may include a display device 45 .

Устройство 45 отображения может быть выполнено с возможностью представлять видеоданные. Как показано, в некоторых примерах, логическая схема 47 может быть реализована посредством блока (блоков) 46 обработки. Блок (блоки) 46 обработки может включать в себя логику специализированной интегральной схемы (ASIC), графический процессор (процессоры) общего назначения. процессор (процессоры) или подобное. Система 40 кодирования видео также может включать в себя дополнительный процессор (процессоры) 43, который аналогичным образом может включать в себя логику специализированной интегральной схемы (ASIC), графический процессор (процессоры), процессор (процессоры) общего назначения и т.п. В некоторых примерах логическая схема 47 может быть реализована с помощью аппаратного обеспечения, специализированного оборудования для кодирования видео и т.п., и процессор (процессоры) 43 может быть реализован с помощью программного обеспечения общего назначения, операционных систем и т.п. Дополнительно, память 44 может быть любым типом памяти, например энергозависимой памятью (например, статической памятью с произвольным доступом (SRAM), динамической памятью с произвольным доступом (DRAM) и т. д.) или энергонезависимой памятью (например, флэш-память и т. д.) и т. д. В неограничивающем примере память 44 может быть реализована посредством кэш-памяти. В некоторых примерах логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображения). В других примерах логическая схема 47 и/или блок (блоки) 46 обработки могут включать в себя хранилища памяти (например, кэш и т.п.) для реализации буфера изображений или т.п.The display device 45 may be configured to present video data. As shown, in some examples, logic 47 may be implemented by processing unit(s) 46 . Processing unit(s) 46 may include application specific integrated circuit (ASIC) logic, general purpose graphics processor(s). processor(s) or the like. Video encoding system 40 may also include additional processor(s) 43, which may likewise include application specific integrated circuit (ASIC) logic, graphics processor(s), general purpose processor(s), and the like. In some examples, logic circuitry 47 may be implemented in hardware, dedicated video coding hardware, and the like, and processor(s) 43 may be implemented in general purpose software, operating systems, and the like. Additionally, memory 44 may be any type of memory, such as volatile memory (eg, static random access memory (SRAM), dynamic random access memory (DRAM), etc.) or non-volatile memory (eg, flash memory, etc.). etc.) etc. In a non-limiting example, the memory 44 may be implemented by means of a cache memory. In some examples, logic circuitry 47 may access memory 44 (eg, to implement an image buffer). In other examples, logic circuitry 47 and/or processing unit(s) 46 may include memory stores (eg, cache, etc.) for implementing an image buffer or the like.

Блок обработки графики может включать в себя видеокодер 20, реализованный посредством логической схемы 47, для воплощения различных модулей, как описано со ссылкой на фиг.2 и/или любой другой кодирующей системе или подсистеме, описанной в настоящем документе. Логическая схема 47 может быть выполнена с возможностью выполнения различных операций, обсуждаемых в данном документе. Видеодекодер 30 может быть реализован аналогично тому, как реализован с помощью логической схемы 47, для воплощения различных модулей, как описано в отношении декодера 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в настоящем документе. В некоторых примерах видеокодер 20 и видеодекодер 30 могут быть реализованы с помощью логической схемы и могут включать в себя буфер изображения (например, посредством блока (блоков) 46 обработки или памяти 44) и графического процессора. (GPU) (например, через процессор (процессоры) 46). Блок обработки графики может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя видеодекодер 30, реализованный через логическую схему 47, для воплощения различных модулей, как обсуждалось со ссылкой на фиг.3 и/или любую другую систему или подсистему декодера, описанную в настоящем документе.The graphics processing unit may include a video encoder 20 implemented by logic 47 for implementing various modules as described with reference to FIG. 2 and/or any other coding system or subsystem described herein. Logic circuit 47 may be configured to perform various operations discussed herein. Video decoder 30 may be implemented in a manner similar to that implemented by logic circuitry 47 to implement various modules as described with respect to decoder 30 in FIG. 3 and/or any other decoder system or subsystem described herein. In some examples, video encoder 20 and video decoder 30 may be implemented with logic and may include an image buffer (eg, via processing unit(s) 46 or memory 44) and a graphics processor. (GPU) (eg, via the processor(s) 46). The graphics processing unit may be communicatively coupled to the image buffer. The graphics processing unit may include a video decoder 30 implemented via logic 47 to implement various modules as discussed with reference to FIG. 3 and/or any other decoder system or subsystem described herein.

В некоторых примерах антенна 42 системы 40 кодирования видео может быть выполнена с возможностью принимать закодированный битовый поток видеоданных. Как обсуждалось, кодированный битовый поток может включать в себя данные, индикаторы, значения индексов, данные выбора режима и т.п., связанные с кодированием видеокадра, как обсуждалось в данном документе, например, данные, связанные с разделом кодирования (например, коэффициенты преобразования или квантованные коэффициенты преобразования, возможные индикаторы (как обсуждалось) и/или данные, определяющие раздел кодирования). Система 40 кодирования видео может также включать в себя видеодекодер 30, подключенный к антенне 42 и выполненный с возможностью декодировать кодированный битовый поток. Устройство 45 отображения выполнено с возможностью представлять видеокадры.In some examples, antenna 42 of video coding system 40 may be configured to receive an encoded video bitstream. As discussed, the encoded bitstream may include data, indicators, index values, mode selection data, and the like associated with encoding a video frame as discussed herein, such as data associated with an encoding section (eg, transform coefficients or quantized transform coefficients, possible indicators (as discussed) and/or data defining the coding section). Video coding system 40 may also include a video decoder 30 coupled to antenna 42 and configured to decode the encoded bitstream. The display device 45 is configured to present video frames.

Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера 20, который может реализовывать способы настоящего изобретения. Видеокодер 20 может выполнять внутреннее кодирование и внешнее кодирование блоков видео в сегментах видео. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности в видео в пределах данного видеокадра или изображения. Внешнее кодирование основывается на временном прогнозировании для уменьшения или удаления временной избыточности в видео в соседних кадрах или изображениях последовательности видео. Режим (режим I) внутреннего предсказания может относиться к любому из нескольких режимов пространственного кодирования. Режимы внешнего предсказания, такие как однонаправленное предсказание (режим P) или двунаправленное предсказание (режим B), могут относиться к любому из нескольких режимов кодирования, основанные на времени.2 is a block diagram illustrating an example of a video encoder 20 that may implement the methods of the present invention. Video encoder 20 may perform intra-coding and inter-coding of video blocks in video segments. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in video within a given video frame or picture. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy in video in adjacent frames or pictures of a video sequence. The intra prediction mode (mode I) may refer to any of several spatial coding modes. Inter prediction modes such as unidirectional prediction (P mode) or bidirectional prediction (B mode) may refer to any of several time-based coding modes.

Как показано на фиг.2, видеокодер 20 принимает текущий блок видео в видеокадре, который должен быть кодирован. В примере на фиг.2, видеокодер 20 включает в себя блок 40 выбора режима, память 64 опорных кадров, сумматор 50, блок 52 обработки преобразования, блок 54 квантования и блок 56 энтропийного кодирования. Блок 40 выбора режима включает в себя блок 44 компенсации движения, блок 42 оценки движения, блок 46 внутреннего предсказания и блок 48 разделения. Для восстановления блока видео видеокодер 20 также включает в себя блок 58 обратного квантования, блок 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен для фильтрации границ блоков для удаления артефактов блочности из восстановленного видео. Желательно (например, активирован или реализован вообще), фильтр удаления блочности фильтрует выходной сигнал сумматора 62. Дополнительные фильтры (в контуре или после контура) также могут использоваться в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но при желании могут фильтровать, например, выходной сигнал сумматора 50 (как внутриконтурный фильтр).As shown in FIG. 2, video encoder 20 receives the current block of video in the video frame to be encoded. In the example of FIG. 2, video encoder 20 includes a mode selector 40, a reference frame memory 64, an adder 50, a transform processing block 52, a quantization block 54, and an entropy coding block 56. The mode selection block 40 includes a motion compensation block 44 , a motion estimation block 42 , an intra prediction block 46 , and a division block 48 . For video block reconstruction, video encoder 20 also includes an inverse quantizer 58, an inverse transform block 60, and an adder 62. A deblocking filter (not shown in FIG. 2) can also be included to filter block boundaries to remove blocking artifacts from the reconstructed video. Desirably (eg, enabled or implemented at all), the deblocking filter filters the output of adder 62. Additional filters (in-loop or post-loop) may also be used in addition to the deblocking filter. Such filters are not shown for brevity, but may optionally filter, for example, the output of adder 50 (as an in-loop filter).

Во время процесса кодирования видеокодер 20 принимает видеокадр или сегмент, подлежащий кодированию. Кадр или сегмент можно разделить на несколько блоков видео. Блок 42 оценки движения и Блок 44 компенсации движения выполняют кодирование с внешним предсказанием принятого блока видео относительно одного или нескольких блоков в одном или нескольких опорных кадрах для временного предсказания. Блок 46 внутреннего предсказания может альтернативно выполнять кодирование с внутренним предсказанием принятого блока видео относительно одного или нескольких соседних блоков в том же кадре или сегменте, что и блок, который должен быть кодирован, для обеспечения пространственного предсказания. Видеокодер 20 может выполнять несколько проходов кодирования, например, для выбора соответствующего режима кодирования для каждого блока видеоданных.During the encoding process, video encoder 20 receives a video frame or segment to be encoded. A frame or segment can be divided into multiple video blocks. The motion estimator 42 and the motion compensator 44 perform inter prediction encoding of the received video block with respect to one or more blocks in one or more reference frames for temporal prediction. Intra predictor 46 may alternatively perform intra prediction encoding of the received video block with respect to one or more neighboring blocks in the same frame or slot as the block to be encoded to provide spatial prediction. Video encoder 20 may perform multiple encoding passes, for example, to select an appropriate encoding mode for each block of video data.

Кроме того, блок 48 разделения может разделять блоки видеоданных на подблоки или разделы на основе оценки предшествующих схем разделения в предшествующих проходах или этапах кодирования. Например, блок 48 разделения может первоначально разделить кадр или сегмент на наибольшие блоки кодирования (LCUs) и разделить каждый из LCUs на блоки субкодирования (sub-CUs) на основе анализа искажения скорости (например, оптимизация скорость-искажение). Блок 40 выбора режима может дополнительно формировать структуру данных дерева квадрантов, указывающую или указывающую разделение LCU на суб-CUs. CUs листового узла дерева квадрантов могут включать в себя один или несколько блоков предсказания (PUs) и один или несколько блоков преобразования (TUs).In addition, the splitter 48 may split blocks of video data into subblocks or partitions based on the evaluation of previous splitting schemes in previous passes or encoding steps. For example, splitter 48 may initially split a frame or segment into largest coding units (LCUs) and split each of the LCUs into sub-coding units (sub-CUs) based on rate distortion analysis (eg, rate-distortion optimization). The mode selector 40 may further generate a quadtree data structure indicating or indicating the division of the LCU into sub-CUs. The leaf node CUs of the quadtree may include one or more prediction units (PUs) and one or more transform units (TUs).

В настоящем изобретении используется термин «блок» для обозначения любого из CU, PU или TU, например, в контексте HEVC или VVC, или аналогичных структур данных в контексте других стандартов (например, макроблоков и их подблоки в H.264/AVC). CU включает в себя, например, узел кодирования, PUs и TUs, ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и имеет, например, квадратную форму. Размер CU может варьироваться от 8 × 8 пикселей до размера древовидного блока с максимумом 64 × 64 пикселей или больше, например, 128x128 пикселей. Каждый CU может содержать один или несколько PUs и один или несколько TUs. Данные синтаксиса, ассоциированные с CU, могут описывать, например, разделение CU на один или несколько PUs. Режимы разделения могут различаться в зависимости от того, кодируется ли CU в режиме пропуска или в прямом режиме, в режиме внутреннего предсказания или в режиме внешнего предсказания. PUs могут быть разделены на части, имеющие неквадратную форму. Данные синтаксиса, ассоциированные с CU, также могут описывать, например, разделение CU на один или несколько TUs согласно дереву квадратов. В варианте осуществления CU, PU или TU могут иметь квадратную или неквадратную форму (например, прямоугольную).The present invention uses the term "block" to refer to any of the CU, PU or TU, eg in the context of HEVC or VVC, or similar data structures in the context of other standards (eg, macroblocks and their subblocks in H.264/AVC). The CU includes, for example, an encoding node, PUs, and TUs associated with the encoding node. The size of the CU corresponds to the size of the coding unit and has a square shape, for example. The size of a CU can vary from 8×8 pixels to a treeblock size with a maximum of 64×64 pixels or more, such as 128x128 pixels. Each CU may contain one or more PUs and one or more TUs. Syntax data associated with a CU may describe, for example, partitioning the CU into one or more PUs. The split modes may differ depending on whether the CU is encoded in skip mode or direct mode, intra prediction mode or inter prediction mode. PUs can be divided into non-square pieces. Syntax data associated with a CU may also describe, for example, splitting the CU into one or more TUs according to a square tree. In an embodiment, the CU, PU, or TU may be square or non-square (eg, rectangular).

Блок 40 выбора режима может выбрать один из режимов кодирования, внутреннее или внешнее, например, на основе результатов ошибок, и предоставить результирующий режим внутреннего или внешнего кодирования в сумматор 50 для генерации данных остаточного блока и сумматор 62 для восстановления кодированного блока для использования в качестве опорного кадра. Блок 40 выбора режима также предоставляет элементы синтаксиса, такие как векторы движения, индикаторы режима внутреннего кодирования, информацию о разделах и/или другую такую информацию синтаксиса, в блок 56 энтропийного кодирования.The mode selector 40 may select one of the coding modes, inner or outer, for example, based on the results of errors, and provide the resulting inner or outer encoding mode to adder 50 for generating residual block data and adder 62 for recovering the coded block for use as a reference. frame. The mode selector 40 also provides syntax elements such as motion vectors, intra coding mode indicators, partition information, and/or other such syntax information to the entropy coding block 56 .

Блок 42 оценки движения и блок 44 компенсации движения могут иметь высокую степень интеграции, но в концептуальных целях показаны отдельно. Оценка движения, выполняемая блоком 42 оценки движения, представляет собой процесс генерирования векторов движения, которые оценивают движение для блоков видео. Вектор движения, например, может указывать на перемещение PU блока видео в пределах текущего кадра видео или изображения по отношению к блоку предсказания в опорном кадре (или другой кодированный блок) по отношению к текущему блоку, кодируемый в пределах текущего кадра (или другой кодированный блок). Блок предсказания является блоком, который, как установлено, близко соответствует блоку, который должен быть закодирован, с точки зрения разности пикселей, которая может определяться суммой абсолютной разности (SAD), суммой разницы квадратов (SSD) или другими показателями разности. В некоторых примерах видеокодер 20 может вычислять значения для позиций субцелочисленных пикселей опорных изображений, сохраненных в памяти 64 опорных кадров. Например, видеокодер 20 может интерполировать значения позиций одной четверти пикселя, позиций одной восьмой пикселя, или другие дробные позиции пикселей опорного кадра. Следовательно, блок 42 оценки движения может выполнять поиск движения относительно полных позиций пикселей и позиций дробных пикселей и выводить вектор движения с точностью до дробных пикселей.The motion estimation block 42 and the motion compensation block 44 may be highly integrated, but are shown separately for conceptual purposes. Motion estimation performed by motion estimation block 42 is a process of generating motion vectors that estimate motion for blocks of video. A motion vector, for example, may indicate the movement of a PU of a video block within the current video or image frame with respect to a prediction block in a reference frame (or other coded block) with respect to the current block being coded within the current frame (or other coded block) . A prediction block is a block that is found to closely match the block to be encoded in terms of pixel difference, which may be defined by sum absolute difference (SAD), sum difference of squares (SSD), or other difference metrics. In some examples, video encoder 20 may calculate values for sub-integer pixel positions of reference pictures stored in reference frame memory 64 . For example, video encoder 20 may interpolate one-quarter pixel positions, one-eighth pixel positions, or other fractional pixel positions of a reference frame. Therefore, the motion estimator 42 can search for motion with respect to full pixel positions and fractional pixel positions, and output a motion vector accurate to fractional pixels.

Блок 42 оценки движения вычисляет вектор движения для PU блока видео в сегменте, закодированном с внешним предсказанием, сравнивая позицию PU с позицией блока предсказания опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (List 0) или из второго списка опорных изображений (List 1), каждый из которых идентифицирует одно или более опорные изображения, сохраненных в памяти 64 опорного кадра. Блок 42 оценки движения отправляет вычисленный вектор движения в блок 56 энтропийного кодирования и блок 44 компенсации движения.The motion estimator 42 calculates a motion vector for the PU of the video block in the inter prediction encoded segment by comparing the position of the PU with the position of the reference picture prediction block. The reference picture may be selected from a first reference picture list (List 0) or from a second reference picture list (List 1), each of which identifies one or more reference pictures stored in the reference frame memory 64 . The motion estimator 42 sends the calculated motion vector to the entropy encoding block 56 and the motion compensation block 44 .

Компенсация движения, выполняемая блоком 44 компенсации движения, может включать в себя выборку или генерирование блока предсказания на основании вектора движения, определенного блоком 42 оценки движения. Опять же, в некоторых примерах блок 42 оценки движения и блок 44 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего блока видео блок 44 компенсации движения может определять местонахождение блока предсказания, на который указывает вектор движения, в одном из списков опорных изображений. Сумматор 50 формирует остаточный блок видео путем вычитания значений пикселей блока предсказания из значений пикселей текущего кодируемого блока видео, формируя значения разности пикселей, как описано ниже. В общем, блок 42 оценки движения выполняет оценку движения относительно компонентов яркости и блок 44 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок 40 выбора режима также может генерировать элементы синтаксиса, ассоциированные с блоком видео и сегментом видео, для использования видеодекодером 30 при декодировании блоков видео сегмента видео.The motion compensation performed by the motion compensator 44 may include fetching or generating a prediction block based on the motion vector determined by the motion estimator 42 . Again, in some examples, motion estimation unit 42 and motion compensation unit 44 may be functionally integrated. After receiving the motion vector for the PU of the current video block, the motion compensator 44 may locate the prediction block pointed to by the motion vector in one of the reference picture lists. The adder 50 generates a residual video block by subtracting the pixel values of the prediction block from the pixel values of the current encoded video block to generate pixel difference values as described below. In general, motion estimator 42 performs motion estimation with respect to luma components, and motion compensator 44 uses motion vectors computed based on luminance components for both chrominance and luminance components. The mode selector 40 may also generate syntax elements associated with the video block and video segment for use by video decoder 30 when decoding the video blocks of the video segment.

Блок 46 внутреннего предсказания может внутреннее предсказывать текущий блок в качестве альтернативы внешнему предсказанию, выполняемому блоком 42 оценки движения и блоком 44 компенсации движения, как описано выше. В частности, блок 46 внутреннего предсказания может определять режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах блок 46 внутреннего предсказания может кодировать текущий блок с использованием различных режимов внутреннего предсказания, например, во время отдельных проходов или этапов кодирования, и блок 46 внутреннего предсказания (или блок 40 выбора режима в некоторых примерах) может выбрать подходящий режим внутреннего предсказания для использования из протестированных режимов.The intra prediction unit 46 may intra predict the current block as an alternative to the inter prediction performed by the motion estimator 42 and the motion compensation unit 44 as described above. In particular, intra prediction block 46 may determine the intra prediction mode to use for encoding the current block. In some examples, intra prediction block 46 may encode the current block using different intra prediction modes, such as during separate passes or encoding steps, and intra prediction block 46 (or mode selector 40 in some examples) may select an appropriate intra prediction mode for use from the tested modes.

Например, блок 46 внутреннего предсказания может вычислять значения искажения скорости с использованием анализа искажения скорости для различных протестированных режимов внутреннего предсказания и выбирать режим внутреннего предсказания, имеющий наилучшие характеристики соотношение скорость-искажение среди тестированных режимов. Анализ искажения скорости обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для генерирования закодированного блока, а также битрейт (то есть, количество битов) используется для генерирования закодированного блока. Блок 46 внутреннего предсказания может вычислять отношения искажений и скоростей для различных кодированных блоков для определения, какой режим внутреннего предсказания показывает наилучшее значение искажения скорости для блока.For example, intra prediction unit 46 may calculate rate distortion values using rate distortion analysis for the various intra prediction modes tested, and select the intra prediction mode having the best rate-distortion performance among the tested modes. Rate distortion analysis typically determines the amount of distortion (or error) between the encoded block and the original unencoded block that was encoded to generate the encoded block, and the bitrate (ie, number of bits) used to generate the encoded block. Intra prediction block 46 may calculate distortion and rate ratios for various coded blocks to determine which intra prediction mode exhibits the best rate distortion value for the block.

Дополнительно, блок 46 внутреннего предсказания может быть выполнен с возможностью кодировать блоки глубины карты глубины с использованием режима моделирования глубины (DMM). Блок 40 выбора режима может определять, предоставляет ли доступный режим DMM лучшие результаты кодирования, чем режим внутреннего предсказания и другие режимы DMM, например, используя оптимизацию скорости-искажения (RDO). Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 64 опорных кадров. Блок 42 оценки движения и блок 44 компенсации движения также могут быть выполнены с возможностью внешнего предсказания блоков глубины карты глубины.Additionally, intra predictor 46 may be configured to encode depth map depth blocks using a depth modeling mode (DMM). The mode selector 40 may determine if the available DMM mode provides better coding results than the intra prediction mode and other DMM modes, for example, using rate-distortion optimization (RDO). The data for the texture image corresponding to the depth map may be stored in the 64 reference frame memory. Motion estimator 42 and motion compensator 44 may also be configured to inter-predict depth blocks of a depth map.

После выбора режима внутреннего предсказания для блока (например, обычного режима внутреннего предсказания или одного из режимов DMM), блок 46 внутреннего предсказания может предоставить информацию, указывающую на выбранный режим внутреннего предсказания для блока в блок 56 энтропийного кодирования. Блок 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания. Видеокодер 20 может включать в себя передаваемые данные конфигурации битового потока, которые могут включать в себя множество таблиц индексов режима внутреннего предсказания и множество модифицированных таблиц индексов режима внутреннего предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и индикаторов наиболее вероятного режима внутреннего предсказания, таблицы индексов режима внутреннего предсказания и модифицированной таблицы индексов режима внутреннего предсказания для использования в каждом из контекстов.After selecting an intra prediction mode for a block (eg, a normal intra prediction mode or one of the DMM modes), intra prediction block 46 may provide information indicative of the selected intra prediction mode for the block to entropy encoding block 56 . Entropy encoding unit 56 may encode information indicating the selected intra prediction mode. Video encoder 20 may include transmitted bitstream configuration data, which may include a plurality of intra prediction mode index tables and a plurality of modified intra prediction mode index tables (also referred to as codeword mapping tables), coding context definitions for various blocks, and most likely indicators. an intra prediction mode index table, an intra prediction mode index table, and a modified intra prediction mode index table for use in each of the contexts.

Видеокодер 20 формирует остаточный блок видео путем вычитания данных предсказания из блока 40 выбора режима из исходного кодируемого блока видео. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания.Video encoder 20 generates a residual video block by subtracting the prediction data from mode selector 40 from the original encoded video block. The adder 50 represents the component or components that perform this subtraction operation.

Блок 52 обработки преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование, к остаточному блоку, формируя блок видео, содержащий значения коэффициентов остаточного преобразования. Блок 52 обработки преобразования может выполнять другие преобразования, которые концептуально аналогичны DCT. Также могут использоваться вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований.The transform processing unit 52 applies a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform, to the residual block, generating a video block containing residual transform coefficient values. The transform processing unit 52 may perform other transforms that are conceptually similar to the DCT. Wavelet transforms, integer transforms, subband transforms, or other types of transforms may also be used.

Блок 52 обработки преобразования применяет преобразование к остаточному блоку, формируя остаточный блок коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Блок 52 обработки преобразования может отправлять результирующие коэффициенты преобразования в блок 54 квантования. Блок 54 квантования квантует коэффициенты преобразования, чтобы дополнительно снизить скорость передачи битов. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена путем регулировки параметра квантования. В некоторых примерах блок 54 квантования может затем выполнить сканирование матрицы, включающую в себя квантованные коэффициенты преобразования. В качестве альтернативы сканирование может выполнять блок 56 энтропийного кодирования.The transform processing unit 52 applies the transform to the residual block, generating a residual block of transform coefficients. The transform may transform the residual information from the pixel range into a transform region, such as a frequency domain. Transform processing unit 52 may send the resulting transform coefficients to quantization unit 54 . Quantizer 54 quantizes the transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization can be changed by adjusting the quantization parameter. In some examples, quantizer 54 may then perform a matrix scan including the quantized transform coefficients. Alternatively, the entropy encoding block 56 may perform the scanning.

После квантования блок 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, блок 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), контекстно-адаптивное двоичное арифметическое кодирование на основе синтаксиса (SBAC), энтропийное кодирование с разделением интервала вероятности (PIPE), или другой способ энтропийного кодирования. В случае энтропийного кодирования на основе контекста контекст может быть основан на соседних блоках. После энтропийного кодирования блоком 56 энтропийного кодирования закодированный битовый поток может быть передан на другое устройство (например, видеодекодер 30) или заархивирован для последующей передачи или поиска.After quantization, entropy encoding block 56 entropy encodes the quantized transform coefficients. For example, entropy encoding unit 56 may perform context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), syntax-based context adaptive binary arithmetic coding (SBAC), probability interval division entropy coding (PIPE ), or another way of entropy coding. In the case of context-based entropy coding, the context may be based on neighboring blocks. Following entropy encoding by entropy encoding unit 56, the encoded bit stream may be transferred to another device (eg, video decoder 30) or archived for later transmission or retrieval.

Блок 58 обратного квантования и блок 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в пиксельной области, например, для последующего использования в качестве опорного блока. Блок 44 компенсации движения может определять блок предсказания (также называемый блоком предсказания), например, блок предсказания с компенсацией движения на основании вектора движения и соответствующего опорного блока, например, полученный из опорного кадра одного из кадров памяти 64 опорного кадра. Блок 44 компенсации движения может также применять один или несколько фильтров интерполяции для расчета значения суб-целого числа пикселей опорного блока для использования в оценке движения или компенсации. Сумматор 62 добавляет восстановленный остаточный блок к (с компенсацией движения) блоку предсказания, сформированного блоком 44 компенсации движения для генерирования восстановленного блока видео для хранения в памяти 64 опорных кадров. Восстановленный блок видео может использоваться блоком 42 оценки движения и блоком 44 компенсация движения в качестве опорного блока для блока внешнего кодирования в последующем видеокадре.An inverse quantizer 58 and an inverse transform 60 apply inverse quantization and inverse transform, respectively, to reconstruct a residual block in the pixel region, for example, for later use as a reference block. Motion compensation block 44 may determine a prediction block (also referred to as a prediction block), such as a motion compensated prediction block, based on a motion vector and a corresponding reference block, such as obtained from a reference frame of one of the reference frame memory 64 frames. Motion compensator 44 may also apply one or more interpolation filters to calculate a sub-integer pixel value of the reference block for use in motion estimation or compensation. Adder 62 adds the reconstructed residual block to the (motion compensated) prediction block generated by motion compensator 44 to generate a reconstructed video block for storage in reference frame memory 64 . The reconstructed video block may be used by the motion estimator 42 and the motion compensation block 44 as a reference block for the outer coding block in a subsequent video frame.

Для кодирования видеопотока могут использоваться другие структурные вариации видеокодера 20. Например, видеокодер 20 без преобразования может квантовать остаточный сигнал напрямую без блока 52 обработки преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь блок 54 квантования и блок 58 обратного квантования, объединенные в один блок.Other structural variations of video encoder 20 may be used to encode the video stream. For example, video encoder 20 without transform may quantize the residual signal directly without transform processor 52 for certain blocks or frames. In another implementation, encoder 20 may have quantizer 54 and inverse quantizer 58 combined into one block.

Фиг.3 является блок-схемой, иллюстрирующей пример видеодекодера 30, который может реализовывать способы настоящего изобретения. В примере на фиг.3, видеодекодер 30 включает в себя блок 70 энтропийного декодирования, блок 72 компенсации движения, блок 74 внутреннего предсказания, блок 76 обратного квантования, блок 78 обратного преобразования, память 82 опорных кадров и сумматор 80. Видеодекодер 30 может, в некоторых примерах, выполнять проход или путь декодирования, в целом, обратный проходу или пути кодирования, описанному относительно видеокодера 20 на фиг.2. Блок 72 компенсации движения может генерировать данные предсказания на основании векторов движения, принятых из блока 70 энтропийного декодирования, в то время, как блок 74 внутреннего предсказания может генерировать данные предсказания на основании индикаторов режима внутреннего предсказания, принятых из блока 70 энтропийного декодирования.3 is a block diagram illustrating an example of a video decoder 30 that may implement the methods of the present invention. In the example of FIG. 3, video decoder 30 includes an entropy decoder 70, motion compensation 72, intra prediction 74, inverse quantizer 76, inverse transform 78, reference frame memory 82, and adder 80. Video decoder 30 may, in in some examples, perform a decoding pass or path generally reverse of the encoding pass or path described with respect to video encoder 20 in FIG. Motion compensation unit 72 may generate prediction data based on motion vectors received from entropy decoding unit 70, while intra prediction unit 74 may generate prediction data based on intra prediction mode indicators received from entropy decoding unit 70.

Во время процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет блок видео и закодированного сегмента видео и ассоциированные с ними элементы синтаксиса, сгенерированные видеокодером 20. Блок 70 энтропийного декодирования видеодекодера 30 выполняет энтропийное декодирование битового потока для генерирования квантованных коэффициентов, векторов движения или индикаторов режима внутреннего предсказания и других элементов синтаксиса. Блок 70 энтропийного декодирования пересылает векторы движения и другие элементы синтаксиса в блок 72 компенсации движения. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне блока видео.During the decoding process, video decoder 30 receives an encoded video bitstream that represents a block of video and an encoded video segment and their associated syntax elements generated by video encoder 20. Entropy decoding block 70 of video decoder 30 performs entropy decoding of the bitstream to generate quantized coefficients, motion vectors, or intra prediction mode indicators; and other syntax elements. Block 70 entropy decoding sends the motion vectors and other elements of the syntax in block 72 motion compensation. Video decoder 30 may receive syntax elements at the video segment level and/or the video block level.

Когда сегмент видео кодируется как сегмент с внутренним кодированием (I), блок 74 внутреннего предсказания может сгенерировать данные предсказания для блока видео текущего сегмента видео на основании сигнального режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как сегмент с внешним кодированием (то есть, B, P или GPB), блок 72 компенсации движения формирует блоки предсказания для блока видео текущего сегмента видео на основании векторов движения и других принятых элементов синтаксиса из блока 70 энтропийного декодирования. Блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может формировать списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основе опорных изображений, сохраненных в памяти 82 опорных кадров.When a video segment is encoded as an intra (I) segment, intra prediction block 74 may generate prediction data for a video block of the current video segment based on the intra prediction signaling mode and data from previously decoded blocks of the current frame or picture. When a video frame is encoded as an inter-coded segment (i.e., B, P, or GPB), motion compensator 72 generates prediction blocks for the video block of the current video segment based on the motion vectors and other received syntax elements from entropy decoder 70. The prediction blocks may be generated from one of the reference pictures in one of the reference picture lists. Video decoder 30 may generate the reference frame lists, list 0 and list 1, using default construction methods based on the reference pictures stored in the reference frame memory 82 .

Блок 72 компенсации движения определяет информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, блок 72 компенсации движения использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования блоков видео сегмента видео, типа сегмента с внешним предсказанием (например, B-сегмент, P-сегмент или GPB-сегмент), информации о структуре для одного или нескольких списков опорных изображений для сегмента, векторы движения для каждого блока видео с внешним кодированием сегмента видео, статуса внешнего предсказания для каждого блока видео с внешним кодированием сегмента и другой информации для декодирования блоков видео в текущем сегменте.The motion compensation block 72 determines prediction information for the video block of the current video segment by analyzing motion vectors and other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, the motion compensator 72 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode the video blocks of a video segment, the inter prediction segment type (eg, B-segment, P-segment, or GPB -segment), structure information for one or more reference picture lists for the segment, motion vectors for each inter-coded video block of the video segment, inter-prediction status for each inter-segment video block, and other information for decoding video blocks in the current segment .

Блок 72 компенсации движения также может выполнять интерполяцию на основе фильтров интерполяции. Блок 72 компенсации движения может использовать фильтры интерполяции, которые используются видеокодером 20 во время кодирования блоков видео, для вычисления интерполированного значения для субцелочисленных пикселей опорных блоков. В этом случае блок 72 компенсации движения может определять фильтры интерполяции, используемые видеокодером 20, из принятых элементов синтаксиса и использовать фильтры интерполяции для формирования блоков предсказания.The motion compensation block 72 may also perform interpolation based on interpolation filters. Motion compensator 72 may use the interpolation filters that are used by video encoder 20 during video block encoding to calculate an interpolated value for the sub-integer pixels of the reference blocks. In this case, the motion compensator 72 may determine the interpolation filters used by the video encoder 20 from the received syntax elements and use the interpolation filters to generate prediction blocks.

Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 82 опорных кадров. Блок 72 компенсации движения также может быть сконфигурирован для взаимного предсказания блоков глубины карты глубины.The data for the texture image corresponding to the depth map may be stored in the 82 reference frame memory. Motion compensation block 72 may also be configured to inter-predict depth blocks of a depth map.

Возвращаясь к фиг.1A, система 10 кодирования видео может использоваться для реализации различных способов кодирования видео или сжатия. Некоторые способы сжатия видео, такие как внешнее предсказание, внутреннее предсказание и контурные фильтры, продемонстрировали свою эффективность. Поэтому способы сжатия видео были приняты в различные стандарты кодирования видео, такие как H.264/AVC и H.265/HEVC.Returning to FIG. 1A, the video encoding system 10 may be used to implement various video encoding or compression techniques. Several video compression techniques such as inter-prediction, intra-prediction, and loop filters have been shown to be effective. Therefore, video compression techniques have been adopted into various video coding standards such as H.264/AVC and H.265/HEVC.

Для предсказания векторов движения (MV) и повышения эффективности внешнего предсказания и, следовательно, общей эффективности сжатия видео могут использоваться различные инструменты кодирования, такие как адаптивное предсказание вектора движения (AMVP) и режим объединения (MERGE).Various coding tools such as adaptive motion vector prediction (AMVP) and merging mode (MERGE) can be used to predict motion vectors (MV) and improve inter-prediction performance and hence overall video compression efficiency.

Вышеупомянутые MVs могут использоваться в двунаправленном предсказании. В операции двунаправленного предсказания формируются два блока предсказания. Один блок предсказания формируется с использованием MV список 0 (именуемого здесь MV0). Другой блок предсказания формируется с использованием MV списка 1 (в данном документе именуемого MV1). Затем два блока предсказания объединяются (например, усредняются) для формирования единого сигнала предсказания (например, блок предсказания или блок предиктора).The above MVs can be used in bidirectional prediction. In a bidirectional prediction operation, two prediction blocks are generated. One prediction block is generated using MV list 0 (referred to here as MV0). Another prediction block is generated using List 1 MV (referred to herein as MV1). The two prediction blocks are then combined (eg, averaged) to form a single prediction signal (eg, a prediction block or a predictor block).

Для декодирования сжатого битового потока могут использоваться другие варианты видеодекодера 30. Например, декодер 30 может формировать выходной видеопоток без блока контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнить обратное квантование остаточного сигнала напрямую без блока 78 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 76 обратного квантования и блок 78 обработки обратного преобразования, объединенные в один блок.Other variants of video decoder 30 may be used to decode the compressed bit stream. For example, decoder 30 may generate an output video stream without a loop filter unit. For example, a non-transform-based decoder 30 can directly inversely quantize the residual signal without the inverse transform processing unit 78 for certain blocks or frames. In another implementation, video decoder 30 may have an inverse quantization unit 76 and an inverse transform processing unit 78 combined into one unit.

Фиг.4 является схемой сетевого устройства 400 (например, устройства для кодирования) согласно варианту осуществления настоящего изобретения. Сетевое устройство 400 подходит для реализации раскрытых вариантов осуществления, как описано в настоящем документе. В варианте осуществления сетевое устройство 400 может быть декодером, таким как видеодекодер 30 на фиг.1A и 3, или кодером, такой как видеокодер 20 на фиг.1A и 2. В варианте осуществления сетевое устройство 400 может быть одним или более компонентами видеодекодера 30 по фиг.1A и 3 или видеокодером 20 по фиг.1A и 2, как описано выше.4 is a diagram of a network device 400 (eg, an encoder) according to an embodiment of the present invention. The network device 400 is suitable for implementing the disclosed embodiments as described herein. In an embodiment, network device 400 may be a decoder, such as video decoder 30 in FIGS. 1A and 3, or an encoder, such as video encoder 20 in FIGS. 1A and 2. In an embodiment, network device 400 may be one or more components of video decoder 30 along 1A and 3 or video encoder 20 of FIGS. 1A and 2 as described above.

Сетевое устройство 400 содержит входные порты 410 и блоки (Rx) 420 приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки (Tx) 440 передатчика и выходные порты 450 для передачи данных; и память 460 для хранения данных. Сетевое устройство 400 может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.The network device 400 includes input ports 410 and receiver units (Rx) 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for processing data; blocks (Tx) 440 transmitter and output ports 450 for data transmission; and a memory 460 for storing data. Network device 400 may also include optical-electrical (OE) components and electrical-optical (EO) components connected to input ports 410, receiver units 420, transmitter units 440, and output ports 450 for outputting or inputting optical or electrical signals.

Процессор 430 может быть реализован аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 связан с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использование модуля 470 кодирования обеспечивает существенное улучшение функциональности сетевого устройства 400 и в результате преобразовывает сетевое устройство 400 в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.Processor 430 may be implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), FPGA, ASIC, and DSP. Processor 430 is connected to input ports 410, receiver units 420, transmitter units 440, output ports 450, and memory 460. Processor 430 includes an encoder 470. Encoding module 470 implements the disclosed embodiments described above. For example, encoding module 470 implements, processes, prepares, or provides various encoding operations. Thus, the use of the encoder 470 provides a significant improvement in the functionality of the network device 400 and, as a result, transforms the network device 400 into a different state. Alternatively, encoding module 470 is implemented as instructions stored in memory 460 and executed by processor 430.

Память 460 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве запоминающего устройства для переполнения данных, для хранения программ, когда такие программы выбраны для выполнения, а также для хранения инструкций и данных, которые читаются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).Memory 460 includes one or more disks, tape drives, and solid state drives and can be used as a storage device for overflowing data, for storing programs when such programs are selected for execution, and for storing instructions and data that are read during program execution. Memory 460 may be volatile and/or non-volatile and may be read only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and/or static random access memory (SRAM).

Фиг.5 является упрощенной блок-схемой устройства 500, которое может использоваться как устройство 12 источника и устройство 14 назначения, или как оба, на фиг.1A согласно примерному варианту осуществления. Устройство 500 может реализовывать способы настоящего изобретения. Устройство 500 может быть в виде вычислительной системы, включающей в себя несколько вычислительных устройств, или в виде одного вычислительного устройства, например, мобильного телефона, планшетного компьютера, портативного компьютера, портативного компьютера, настольного компьютера и подобное, аналогичное, похожее.FIG. 5 is a simplified block diagram of a device 500 that can be used as source device 12 and destination device 14, or both, in FIG. 1A according to an exemplary embodiment. Device 500 may implement the methods of the present invention. Device 500 may be in the form of a computing system including multiple computing devices, or in the form of a single computing device such as a mobile phone, tablet computer, laptop computer, laptop computer, desktop computer, and the like, like, like.

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

Память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, и прикладные программы 510 включают в себя, по меньшей мере, одну программу, которая позволяет процессору 502 выполнять описанные здесь способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь способы. Устройство 500 также может включать в себя дополнительную память в виде вторичного запоминающего устройства 514, которым может быть, например, карта памяти, используемая с мобильным вычислительным устройством. Поскольку сеансы видеосвязи могут содержать значительный объем информации, они могут быть сохранены полностью или частично во вторичном запоминающем устройстве 514 и загружены в память 504 по мере необходимости для обработки.Memory 504 in device 500 may be read only memory (ROM) or random access memory (RAM) in an implementation. The memory 504 may be any other suitable type of storage device. Memory 504 may include code and data 506 accessed by processor 502 using bus 512. Memory 504 may further include an operating system 508 and application programs 510, and application programs 510 include at least one program , which allows the processor 502 to perform the methods described here. For example, applications 510 may include applications 1 through N, which further include a video encoding application that performs the methods described herein. Device 500 may also include additional memory in the form of secondary storage 514, which may be, for example, a memory card used with a mobile computing device. Because video communications may contain a significant amount of information, they may be stored in whole or in part in secondary storage 514 and loaded into memory 504 as needed for processing.

Устройство 500 также может включать в себя одно или несколько устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, который может работать как сенсорный ввод. Дисплей 518 может быть подключен к процессору 502 через шину 512. Другие устройства вывода, которые позволяют пользователю программировать или иным образом использовать устройство 500, могут быть предоставлены в дополнение к дисплею 518 или в качестве альтернативы ему. Когда устройство вывода работает или включает в себя дисплей, дисплей может быть реализован различными способами, в том числе с помощью жидкокристаллического дисплея (LCD), дисплея с электронно-лучевой трубкой (CRT), плазменного дисплея или дисплея на светоизлучающих диодах (LED), например, органического светодиодного дисплея (OLED).The device 500 may also include one or more output devices, such as a display 518. The display 518 may be, in one example, a touch display that combines a display with a touch element that can act as a touch input. Display 518 may be connected to processor 502 via bus 512. Other output devices that allow a user to program or otherwise use device 500 may be provided in addition to or as an alternative to display 518. When the output device is operating or includes a display, the display may be implemented in various ways, including liquid crystal display (LCD), cathode ray tube (CRT) display, plasma display, or light emitting diode (LED) display, for example , organic light-emitting diode display (OLED).

Устройство 500 также может включать в себя устройство 520 формирования изображений или взаимодействовать с ним, например, камеру или любое другое устройство 520 формирования изображений, существующее в настоящее время или разработанное в будущем, которое может воспринимать изображение, такое как изображение пользователя, работающего с устройством 500. Устройство 520 формирования изображений может быть расположено так, чтобы оно было направлено к пользователю, работающему с устройством 500. В примере положение и оптическая ось устройства 520 формирования изображений могут быть сконфигурированы так, чтобы поле зрения включает в себя область, которая непосредственно примыкает к дисплею 518 и из которой виден дисплей 518.The device 500 may also include or interact with an imaging device 520, such as a camera or any other imaging device 520, currently or in the future, that can capture an image, such as an image of a user operating the device 500. The imaging device 520 may be positioned to face a user operating the device 500. In an example, the position and optical axis of the imaging device 520 may be configured such that the field of view includes an area that is immediately adjacent to the display. 518 and from which the display 518 is visible.

Устройство 500 также может включать в себя устройство 522 захвата звука или взаимодействовать с ним, например, микрофон или любое другое существующее или разрабатываемое в настоящее время звуковое устройство, которое может воспринимать звуки рядом с устройством 500. Устройство 522 захвата звука может быть расположено так, чтобы оно было направлено на пользователя, управляющего устройством 500, и может быть выполнено с возможностью принимать звук, например, речь или другие звуки, издаваемые пользователем, когда пользователь управляет устройством 500.The device 500 may also include or interact with an audio capture device 522, such as a microphone or any other existing or currently developed audio device that can sense sounds near the device 500. The audio capture device 522 may be positioned so that it has been directed at the user operating the device 500 and may be configured to receive sound, such as speech or other sounds made by the user, when the user is operating the device 500.

Хотя на фиг.5 показан процессор 502 и память 504 устройства 500 как интегрированные в единый блок, можно использовать другие конфигурации. Операции процессора 502 могут быть распределены между несколькими машинами (каждая машина имеет один или несколько процессоров), которые могут быть связаны напрямую или через локальную область или другую сеть. Память 504 может быть распределена по нескольким машинам, таким как сетевая память или память на нескольких машинах, выполняющих операции устройства 500. Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из нескольких шин. Дополнительно, вторичное запоминающее устройство 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, таких как несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.Although FIG. 5 shows processor 502 and memory 504 of device 500 as integrated into a single unit, other configurations may be used. The operations of the processor 502 may be distributed among multiple machines (each machine has one or more processors), which may be connected directly or through a local area or other network. Memory 504 may be distributed across multiple machines, such as network memory or memory on multiple machines performing the operations of device 500. Although shown here as a single bus, bus 512 of device 500 may be comprised of multiple buses. Additionally, the secondary storage device 514 may be directly connected to other components of the device 500, or may be accessible via a network, and may comprise a single integrated unit, such as a memory card, or multiple units, such as multiple memory cards. Thus, device 500 can be implemented in a wide variety of configurations.

Стандарт следующего поколения универсального кодирования видео (VVC) является последним совместным видеопроектом группы экспертов по кодированию видео (VCEG) Международного союза электросвязи (ITU-T) и Международной организации по стандартизации/Международной электротехнической комиссии. (ISO/IEC) организации по стандартизации группы экспертов по движущемуся изображению (MPEG), работающие вместе в рамках партнерства, известного как Joint Video Exploration Team (JVET). В VVC структура сегментации с несколькими древовидными типами (двоичное/тройное/четвертичное) (BT/TT/QT или двоичное дерево/тройное дерево/четвертичное дерево) заменяет или может заменить концепцию типов блоков раздела множественного разделения, т.е. удаляет концепции разделения CU, PU и TU за исключением случаев, когда это необходимо для CUs, размер которых слишком велик для максимальной длины преобразования, и поддерживает большую гибкость для форм разделения CU. [JVET-J1002].The Next Generation Universal Video Coding (VVC) standard is the latest joint video project of the International Telecommunication Union (ITU-T) Video Coding Experts Group (VCEG) and the International Organization for Standardization/International Electrotechnical Commission. (ISO/IEC) Moving Picture Experts Group (MPEG) standards organizations working together in a partnership known as the Joint Video Exploration Team (JVET). In VVC, a segmentation structure with multiple tree types (binary/triple/quaternary) (BT/TT/QT or binary tree/triple tree/quaternary tree) replaces or can replace the concept of multiple partition partition block types, i.e. removes the concepts of CU, PU, and TU partitioning except when necessary for CUs that are too large for the maximum transform length, and maintains more flexibility for CU partitioning forms. [JVET-J1002].

Фиг.6A-F иллюстрируют, в качестве примера, режимы разделения, используемые в настоящее время в VTM. Фиг.6A показывает неразделенный блок (no split), фиг.6Bb показывает четвертичное разделение или дерево квадратов (QT), фиг.6C показывает горизонтальное двоичное разделение или двоичного дерева (BT), фиг.6D показывает вертикальное двоичное разделение или двоичного дерева (BT), фиг.6E показывает горизонтальное троичное разделение или троичного дерева (TT), фиг.6F показывает вертикальное троичное разделение или троичное дерево (TT) блока, такого как CU или CTU. Варианты осуществления могут быть сконфигурированы для реализации режимов разделения, как показано на фиг.6А-6F.6A-F illustrate, by way of example, the separation modes currently used in the VTM. Fig. 6A shows a non-split block (no split), Fig. 6Bb shows a quaternary split or square tree (QT), Fig. 6C shows a horizontal binary split or binary tree (BT), Fig. 6D shows a vertical binary split or binary tree (BT ), FIG. 6E shows a horizontal ternary partition or ternary tree (TT), FIG. 6F shows a vertical ternary partition or ternary tree (TT) of a block such as a CU or CTU. Embodiments may be configured to implement split modes as shown in FIGS. 6A-6F.

В вариантах осуществления могут быть определены следующие параметры и указаны элементами синтаксиса набора параметров последовательности (SPS) для схемы дерева кодирования BT/TT/QT:In embodiments, the following parameters may be defined and indicated by sequence parameter set (SPS) syntax elements for the BT/TT/QT coding tree scheme:

CTU размер: размер корневого узла четвертичного дерева.CTU size: the size of the root node of the quaternary tree.

MinQTSize: минимально допустимый размер листового узла четвертичного дереваMinQTSize: minimum allowable leaf node size of a quaternary tree

MaxBTTSize: максимально допустимый размер корневого узла двоичного и троичного дерева.MaxBTTSize: The maximum allowable size of the root node of a binary and ternary tree.

MaxBTTDepth: максимально допустимая глубина двоичного и троичного дерева, иMaxBTTDepth: the maximum allowed binary and ternary tree depth, and

MinBTTSize: минимально допустимый размер листового узла двоичного и тройного дерева.MinBTTSize: The minimum allowed size for a binary and ternary tree leaf node.

В других вариантах осуществления минимально допустимый размер MinQTSize листового узла четвертичного дерева может также содержаться в других заголовках или наборах, например, в заголовке сегмента (SH) или наборе параметров изображения (PPS).In other embodiments, the minimum allowable leaf node size MinQTSize of a quaternary tree may also be contained in other headers or sets, such as a segment header (SH) or a picture parameter set (PPS).

В стандарте HEVC блоки дерева кодирования (CTU) или блоки кодирования (CU), которые расположены на границах сегмента/изображения, будут принудительно разделены с использованием дерева квадратов (QT) до тех пор, пока правая нижняя выборка листового узла не будет расположена в пределах границы сегмента/изображения. О принудительном разделе QT или разделении не требуется сигнализировать в битовом потоке, потому что и кодер, и декодер, например, и видеокодер 20, и видеодекодер 30 знают, когда применять принудительный QT. Цель принудительного разделения сделать возможной границу CTU / CU с помощью видеокодера 20/видеодекодера 30.In the HEVC standard, coding tree blocks (CTUs) or coding units (CUs) that are located on segment/picture boundaries will be forced to split using a square tree (QT) until the bottom right sample of a leaf node is located within the boundary. segment/image. The forced QT split or split does not need to be signaled in the bitstream because both the encoder and decoder, for example, both video encoder 20 and video decoder 30 know when to apply forced QT. The purpose of forced separation is to make the CTU/CU boundary possible with video encoder 20/video decoder 30.

Международная патентная публикация номер WO 2016/090568 раскрывает структуру QTBT (дерево квадратов плюс двоичное дерево) и также в VTM 1.0 процесс принудительного разделения CTU/CU на границе унаследован от HEVC. Это означает, что CTU/CU, расположенный на границе кадра, принудительно разделяется структурой дерева квадратов (QT) без учета оптимизации соотношения скорость-искажение (RD) до тех пор, пока весь текущий CU не окажется внутри границы изображения. Эти принудительные разделы не передаются в битовом потоке.International patent publication number WO 2016/090568 discloses a QTBT (square tree plus binary tree) structure and also in VTM 1.0, the CTU/CU forced splitting process at the boundary is inherited from HEVC. This means that a CTU/CU located on a frame boundary is forced to be split by a square tree (QT) structure without regard to rate-distortion (RD) optimization until the entire current CU is inside the picture boundary. These forced sections are not transmitted in the bitstream.

Фиг.7A показан пример принудительного разделения для CTU нижней границы (128x128) высокого разрешения (HD) (1920x1080 пикселей) посредством принудительного разделения QT. На фиг.7, изображение HD имеет или имеет размер 1920x1080 пикселей и CTU имеет или имеет размер 128x128 пикселей.7A shows an example of forced splitting for a high definition (HD) lower bound (128x128) CTU (1920x1080 pixels) by forced QT splitting. 7, an HD image has or has a size of 1920x1080 pixels and a CTU has or has a size of 128x128 pixels.

В SubCE2 (обработка границ изображения) CE1 (разделение) на совещании в Сан-Диего (04.2018) [JVET-J1021] было предложено 15 тестов для обработки границ изображения с использованием BT, TT или ABT (асимметричный BT). Например, в JVET-K0280 и JVET-K0376 граница определяется, как показано на фиг.8. На фиг.8 границы изображения показаны пунктирными линиями и области граничных случаев проиллюстрированы прямыми линиями, а именно, случай нижней границы, случай угловой границы и случай правой границы. Нижняя граница может быть разделена горизонтальным принудительным BT или принудительным QT, правая граница может быть разделена вертикальным принудительным BT или принудительным QT, угловой случай может быть разделен только принудительным QT, при этом решение об использовании любого из принудительных BT или принудительное разделение QT основано на критерии оптимизации искажения скорости и передается в битовом потоке. Принудительное разделение означает, что блок должен быть разделен, например, принудительное разделение применяется к граничным блокам, которые нельзя закодировать с использованием «без разделения», как показано на фиг.6A.In SubCE2 (image edge processing) CE1 (separation), the San Diego meeting (04.2018) [JVET-J1021] proposed 15 tests for image edge processing using BT, TT, or ABT (asymmetric BT). For example, in JVET-K0280 and JVET-K0376, the boundary is defined as shown in FIG. 8, the borders of the image are shown with dotted lines and the regions of the border cases are illustrated with straight lines, namely, the bottom border case, the corner border case, and the right border case. Lower bound can be split by horizontal forced BT or forced QT, right bound can be split by vertical forced BT or forced QT, corner case can only be split by forced QT, and the decision to use either forced BT or forced QT split is based on the optimization criterion rate distortion and is transmitted in the bitstream. Forced split means that the block must be split, for example, forced split is applied to boundary blocks that cannot be encoded using "no split" as shown in FIG. 6A.

Если принудительное разделение QT используется в принудительном граничном разделении, ограничение разделения MinQTSize игнорируется. Например, на фиг.9A, если MinQTSize передается как 32 в SPS, чтобы соответствовать границе с принудительным способом QT, будет необходимо разделение QT до размера блока 8x8, что игнорирует ограничение MinQTSize, равное 32.If a forced QT split is used in a forced boundary split, the MinQTSize split constraint is ignored. For example, in FIG. 9A, if MinQTSize is passed as 32 in the SPS to match the bound with the forced QT method, it will be necessary to split the QT to a block size of 8x8, which ignores the MinQTSize constraint of 32.

Согласно вариантам осуществления изобретения, если для разделения границ изображения используется принудительный QT, то обязательно используется принудительное разделение QT, например, не игнорирует ограничение разделения, как указано, например, в SPS. Если необходимо дополнительное принудительное разделение, используется только принудительный BT, который в комбинации также может называться принудительным QTBT. В вариантах реализации изобретения, например, ограничение разделения MinQTSize учитывается для принудительного разделения QT на границах изображения, и никакой дополнительной сигнализации для принудительного разделения BT не требуется. Варианты осуществления также позволяют согласовывать разделение для нормальных (не граничных) блоков и граничных блоков. Например в традиционных решениях требуются два параметра «MinQTSize»: один для нормального разделения блоков и другой для граничного разделения блоков. Варианты осуществления требуют только одного общего параметра «MinQTSize» для нормального разделения блоков и граничных блоков, который может гибко устанавливаться между кодером и декодером, например, сигнализируя один параметр «MinQTSize». Кроме того, варианты осуществления требуют меньше разделов, чем, например, принудительный QT.According to embodiments of the invention, if a forced QT is used to separate image boundaries, then a forced QT separation is necessarily used, eg, does not ignore the separation constraint as specified in, for example, SPS. If additional forced separation is needed, only forced BT is used, which in combination can also be called forced QTBT. In embodiments of the invention, for example, the split constraint MinQTSize is taken into account to force QT split at image boundaries, and no additional signaling is required to force BT split. Embodiments also allow the separation to be negotiated for normal (non-boundary) blocks and boundary blocks. For example, traditional solutions require two "MinQTSize" parameters: one for normal block separation and another for boundary block separation. Embodiments require only one common parameter "MinQTSize" for normal block and boundary block separation, which can be flexibly set between encoder and decoder, for example signaling one parameter "MinQTSize". In addition, embodiments require fewer partitions than, for example, forced QT.

Решения для случая нижней границы и случая правой границыSolutions for the Lower Bound Case and the Right Bound Case

В случае нижней и правой границы, если размер блока больше MinQTSize, то режим разделения для граничного разделения изображения может быть выбран между принудительным разделением BT и принудительным разделением QT, например, на основе RDO. В противном случае (т.е. если размер блока равен или меньше, чем MinQTSize), для разделения границ изображения используется только принудительное разделение BT, более конкретно, принудительное горизонтальное разделение BT используется для нижней границы соответственно для граничного блока, расположенного на нижней границе изображения. изображение, и вертикальное принудительное BT используется для правой границы, соответственно, для граничного блока, расположенного на правой границе изображения.In case of bottom and right border, if the block size is larger than MinQTSize, then the division mode for the border division of the image can be selected between BT forced division and QT forced division, for example, based on RDO. Otherwise (i.e. if the block size is equal to or less than MinQTSize), only the forced separation BT is used to separate the image borders, more specifically, the forced horizontal separation BT is used for the bottom border respectively for the border box located on the bottom border of the image . image, and vertical forced BT is used for the right border, respectively, for the border box located on the right border of the image.

Принудительное разделение BT может содержать рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока подраздел текущего блока не окажется на нижней границе изображения, и рекурсивное разделение подраздела посредством вертикального принудительного граничного разделения до тех пор, пока листовой узел полностью не окажется на правой границе изображения. В качестве альтернативы принудительное разделение BT может содержать рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока подраздел текущего блока не окажется на нижней границе, и рекурсивное разделение подраздела с помощью горизонтального принудительного граничного разделения до тех пор, пока листовой узел целиком не будет расположен на правой границе. MinQTSize может применяться также для управления разделением неграничного блока.Forced BT splitting may comprise recursively splitting the current block with a horizontal forced border split until the subsection of the current box is at the bottom border of the image, and recursively splitting the subsection with a vertical forced border split until the entire leaf node is at the bottom of the image. right border of the image. Alternatively, forced splitting of a BT may comprise recursively splitting the current block with a vertical forced boundary splitting until the subsection of the current box is at the bottom boundary, and recursively splitting the subsection with a horizontal forced boundary splitting until the entire leaf node is will not be located on the right border. MinQTSize can also be used to control the division of a non-boundary block.

Например, в случае, показанном на фиг.7A, если MinQTSize равен или ограничен 32, в то время, как для соответствия границе изображения необходим размер прямоугольного (неквадратного) блока высотой или шириной 8 выборок, принудительное разделение BT будет использоваться для разделения 32x32 граничного расположенного блока. Разделы BT могут быть дополнительно разделены с помощью принудительного разделения BT того же типа, например, в случае применения принудительного вертикального разделения BT применяется только дополнительное принудительное вертикальное разделение BT, а в случае применения принудительного горизонтального разделения BT применяется только дополнительное принудительное горизонтальное разделение BT. Принудительное разделение BT продолжается до тех пор, пока листовой узел полностью не окажется в пределах изображения.For example, in the case shown in FIG. 7A, if MinQTSize is equal to or limited to 32, while a rectangular (non-square) block size of 8 samples high or wide is needed to fit the image border, forced BT splitting will be used to split the 32x32 border located block. BT partitions can be further partitioned using the same type of forced BT splitting, for example, in case of forced vertical splitting BT, only additional forced vertical splitting BT is applied, and in case of forced horizontal splitting BT, only additional forced horizontal splitting BT is applied. Forced BT splitting continues until the leaf node is completely within the image.

Фиг.7B показывает примерное разделение CTU нижней границы с размером 128x128 выборок согласно варианту осуществления изобретения. Нижний граничный CTU, который образует корневой блок или корневой узел дерева разделения, разбит на более мелкие разделы, например, блоки меньшего размера квадратного или прямоугольного размера. Эти меньшие разделы или блоки могут быть дополнительно разделены на еще меньшие разделы или блоки. На фиг.7B, CTU является первым деревом квадратов, разделенным на четыре квадратных блока 710, 720, 730 и 740, каждый из которых имеет размер 64x64 выборок. Из этих блоков блоки 710 и 720 снова являются нижними граничными блоками, тогда как блоки 730 и 740 находятся вне изображения (соответственно, находятся вне изображения) и не обрабатываются.7B shows an exemplary 128x128 sample lower bound CTU split according to an embodiment of the invention. The lower boundary CTU, which forms the root block or root node of the partition tree, is broken into smaller sections, such as smaller square or rectangular sized blocks. These smaller sections or blocks may be further subdivided into even smaller sections or blocks. In FIG. 7B, the CTU is the first square tree divided into four square blocks 710, 720, 730, and 740, each of which has a size of 64x64 samples. Of these blocks, blocks 710 and 720 are again lower boundary blocks, while blocks 730 and 740 are out of the image (respectively, out of the image) and are not processed.

Блок 710 дополнительно разделяется с использованием четырехугольного дерева на четыре квадратных блока 750, 760, 770 и 780, каждый из которых имеет размер 32x32 отсчета. Блоки 750 и 760 расположены внутри изображения, тогда как блоки 770 и 780 снова образуют нижние граничные блоки. Поскольку размер блока 770 не превышает MinQTSize, который, например, равен 32, рекурсивное горизонтальное принудительное двоичное разделение применяется к блоку 770 до тех пор, пока листовой узел не окажется полностью в пределах или полностью внутри изображения, например, пока блок 772 листовых узлов, прямоугольный неквадратный блок, имеющий 32x16 отсчетов, находится внутри изображения (после одного горизонтального двоичного разделения), или блок 774 листового узла, прямоугольный неквадратный блок, расположенный на нижней границе изображения и имеющий 32x8 выборок находятся внутри изображения (после двух горизонтальных двоичных разбиений). То же самое касается блока 780.Block 710 is further divided using a quad tree into four square blocks 750, 760, 770, and 780, each of which has a size of 32x32 samples. Blocks 750 and 760 are located inside the image, while blocks 770 and 780 again form the lower boundary blocks. Since the size of block 770 does not exceed MinQTSize, which is equal to 32, for example, a recursive horizontal forced binary split is applied to block 770 until the leaf node is completely within or completely inside the image, for example, until block 772 of leaf nodes is rectangular a non-square block having 32x16 samples is inside the image (after one horizontal bin split), or a leaf node block 774, a rectangular non-square block located at the bottom edge of the image and having 32x8 samples is inside the image (after two horizontal bin splits). The same goes for block 780.

Варианты осуществления настоящего изобретения позволяют согласовать разделение для нормальных блоков, полностью расположенных внутри изображения, и разделение граничных блоков. Граничные блоки представляют собой блоки, которые не полностью находятся внутри изображения и не полностью вне изображения. Иными словами, граничные блоки являются блоками, которые содержат часть, которая расположена внутри изображения, и часть, которая расположена за пределами изображения. Кроме того, варианты осуществления настоящего изобретения позволяют уменьшить сигнализацию, поскольку не требуется сигнализация о принудительном разделении BT на уровне MinQTSize или ниже.Embodiments of the present invention allow for matching the separation for normal blocks located entirely within the image and the separation of boundary blocks. Boundary boxes are boxes that are not completely inside the image and not completely outside the image. In other words, border boxes are boxes that contain a part that is located inside the image and a part that is located outside the image. In addition, embodiments of the present invention can reduce signaling since forced BT split signaling at or below the MinQTSize level is not required.

Решения для углового случаяCorner Case Solutions

В угловом случае некоторые подходы допускают только принудительное разделение QT, которое также игнорирует ограничение MinQTSize. Варианты осуществления настоящего изобретения обеспечивают два решения для углового случая.In the corner case, some approaches only allow for forced QT splitting, which also ignores the MinQTSize constraint. Embodiments of the present invention provide two solutions for the corner case.

Решение 1:Solution 1:

Угловой случай рассматривается как нижний граничный случай или как правый граничный случай. Фиг.10 показывает вариант определения границы. Фиг.10 показывает пунктирными линиями границы изображения и области граничных случаев показывает прямыми линиями. Как показано, угловой случай определяется как нижний граничный случай. Таким образом, решение является таким же, как описано выше для случая нижней границы и случая правой границы. Другими словами, сначала применяется горизонтальное разделение (как описано для случая нижней границы) до тех пор, пока блоки или разделы не будут полностью внутри изображения (в вертикальном направлении) и затем применяется вертикальное разделение (как описано для случая правой границы), пока листовые узлы полностью не окажутся внутри изображения (в горизонтальном направлении).The corner case is treated as a lower boundary case or as a right boundary case. 10 shows a variant of the boundary definition. 10 shows the borders of the image with dotted lines and the edge case areas are shown with straight lines. As shown, the corner case is defined as the lower boundary case. Thus, the solution is the same as described above for the lower border case and the right border case. In other words, first apply the horizontal split (as described for the bottom border case) until the blocks or sections are completely within the image (in the vertical direction) and then apply the vertical split (as described for the right border case) until the leaf nodes will not be completely inside the image (in the horizontal direction).

Решение 2:Solution 2:

Определение граничных случаев остается как есть. Если принудительный QT ограничен MinQTSize (текущий размер блока равен или меньше MinQTSize), использовать принудительное горизонтальное BT для соответствия нижней границе, когда нижняя граница совпадает, использовать принудительную вертикальную BT для соответствия правой границе.The definition of edge cases remains as is. If forced QT is limited by MinQTSize (current block size is equal to or less than MinQTSize), use forced horizontal BT to match lower bound, when lower bound is equal, use forced vertical BT to match right bound.

Например, на фиг.9A, на котором показан вариант принудительного QTBT для блока, расположенного в углу изображения, если MinQTSize равен или ограничен 32 для принудительного разделения QT углового случая, дополнительное разделение BT будет использоваться после разделения блока 32x32, пока принудительное разделение не будет завершено.For example, in Figure 9A, which shows a forced QTBT variant for a block located in the corner of an image, if MinQTSize is equal to or limited to 32 to force corner case QT splitting, additional BT splitting will be used after splitting the 32x32 block until the forced splitting is completed. .

Фиг.9B показывает дополнительные детали примерного разделения граничного CTU в или в углу изображения согласно варианту осуществления изобретения, в котором CTU имеет размер 128x128 выборок. CTU является первым деревом квадратов, разделенное на четыре квадратных блока, каждый размером 64x64 выборок. Из этих блоков только верхний левый блок 910 является граничным блоком, тогда как остальные три расположены вне (полностью вне) изображения и не обрабатываются дополнительно. Блок 910 дополнительно разделяется с использованием разделения дерева квадратов на четыре квадратных блока 920, 930, 940 и 950, каждый из которых имеет размер 32x32 выборок. Блок 920 расположен внутри изображения, тогда как блоки 930, 940 и 950 снова образуют граничные блоки. Поскольку размер этих блоков 930, 940 и 950 не больше, чем MinQTSize, который равен 32, к блокам 930, 940 и 950 применяется принудительное двоичное разделение.9B shows further details of an exemplary split of an edge CTU at or in a corner of an image according to an embodiment of the invention in which the CTU has a size of 128x128 samples. The CTU is the first square tree divided into four square blocks, each 64x64 samples in size. Of these boxes, only the upper left box 910 is a boundary box, while the other three are located outside (completely outside) the image and are not further processed. Block 910 is further partitioned using square tree partitioning into four square blocks 920, 930, 940, and 950, each having a size of 32x32 samples. Block 920 is located inside the image, while blocks 930, 940 and 950 again form boundary blocks. Since the size of these blocks 930, 940 and 950 is no larger than MinQTSize, which is 32, forced binary splitting is applied to blocks 930, 940 and 950.

Блок 930 расположен на правой границе и разделяется с использованием рекурсивного вертикального принудительного двоичного разделения до тех пор, пока листовой узел не окажется внутри изображения, например, блок 932, расположенный на правой границе изображения (здесь после двух вертикальных двоичных разбиений).Block 930 is located on the right border and is split using a recursive vertical forced binary split until the leaf node is inside the image, such as block 932 located on the right border of the image (here after two vertical binary splits).

Блок 940 расположен на нижней границе и разделяется с использованием рекурсивного горизонтального принудительного двоичного разделения до тех пор, пока листовой узел не окажется внутри изображения, например, блок 942, расположенный на правой границе изображения (здесь после двух горизонтальных двоичных разбиений).Block 940 is located on the bottom border and is split using a recursive horizontal forced binary split until the leaf node is inside the image, such as block 942 located on the right border of the image (here after two horizontal binary splits).

Блок 950 расположен на угловой границе и разделяется с использованием первого рекурсивного горизонтального принудительного двоичного разделения до тех пор, пока подразделение или блок, здесь блок 952, не окажется на нижней границе изображения (здесь после двух горизонтальных двоичных разделений) и затем выполняется рекурсивное разделение с помощью вертикального принудительного граничного разделения до листового узла или блока, например, блока 954, расположенного на правой границе изображения (здесь после двух вертикальных двоичных разделений) или, соответственно, до тех пор, пока листовой узел не окажется внутри изображения.Block 950 is located at the corner boundary and is split using a first recursive horizontal forced binary split until the subdivision or block, here block 952, is at the bottom border of the image (here after two horizontal binary splits) and then a recursive split is performed with vertical forced boundary split until a leaf node or block, such as block 954, located on the right border of the image (here after two vertical binary splits) or, respectively, until the leaf node is inside the image.

Вышеупомянутые подходы могут применяться как к декодированию, так и к кодированию. Для декодирования MinQTSize может быть принят через SPS. Для кодирования MinQTSize может передаваться через SPS. Варианты осуществления могут использовать определения границ, как показано на фиг.8 или фиг.10 или другие определения границ.The above approaches can be applied to both decoding and encoding. For decoding MinQTSize can be received via SPS. For encoding, MinQTSize may be transmitted via SPS. Embodiments may use boundary definitions as shown in FIG. 8 or FIG. 10 or other boundary definitions.

Далее представлены дополнительные варианты осуществления настоящего изобретения. Следует отметить, что нумерация, используемая в следующем разделе, не обязательно должна соответствовать нумерации, используемой в предшествующих разделах.The following are additional embodiments of the present invention. It should be noted that the numbering used in the following section does not have to match the numbering used in the preceding sections.

Вариант 1 осуществления: способ разделения, содержащий:Embodiment 1: separation method comprising:

определение, является ли текущий блок изображения граничным блоком;determining whether the current image block is a boundary block;

если текущий блок является граничным, определение, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов;if the current box is a boundary box, determining whether the size of the current box exceeds the minimum allowable size of the leaf node of the quadtree;

если размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, применение принудительного разделения двоичного дерева к текущему блоку.if the current block size does not exceed the minimum allowed quadtree leaf node size, apply forced binary tree splitting to the current block.

Вариант 2 осуществления: способ разделения по варианту 1 осуществления, в котором принудительное разделение двоичного дерева представляет собой рекурсивное горизонтальное принудительное двоичное разделение в случае, если текущий блок находится на нижней границе изображения, или является рекурсивным вертикальным принудительным граничным разделением в случае, если текущий блок расположен на правой границе изображения.Embodiment 2: The splitting method of Embodiment 1, wherein the forced binary tree splitting is a recursive horizontal forced binary splitting in case the current block is at the bottom boundary of the image, or is a recursive vertical forced boundary splitting in the case that the current block is located on the right side of the image.

Вариант 3 осуществления: способ разделения по вариантам 1 или 2 осуществления, в котором принудительное двоичное разделение содержит рекурсивное разделение текущего блока посредством горизонтального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет расположено непосредственно на нижней границе изображения, и рекурсивное разделение подразделения с помощью вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен непосредственно на правой границе изображения, или наоборот.Embodiment 3: The division method of Embodiment 1 or 2, wherein the forced binary division comprises recursively dividing the current block by horizontally forced boundary division until the division of the current block is located directly at the lower boundary of the image, and recursively dividing the division with using a vertical forced border split until the leaf node is located entirely on the right border of the image, or vice versa.

Вариант 4 осуществления: способ разделения по любому из вариантов 1-3 осуществления, в котором минимально допустимый размер листового узла дерева квадрантов является минимально допустимым размером листового узла дерева квадрантов, также применяемым для управления разделением неграничного блока.Embodiment 4: The partitioning method of any one of Embodiments 1 to 3, wherein the minimum allowable quadtree leaf node size is the minimum allowable quadtree leaf node size also used to control the division of a non-boundary block.

Вариант 5 осуществления: способ декодирования для декодирования блока путем разделения блока согласно способу разделения любого из вариантов 1-4 осуществления.Embodiment 5: A decoding method for decoding a block by splitting a block according to the splitting method of any of Embodiments 1 to 4.

Вариант 6 осуществления: способ декодирования согласно варианту 5 осуществления, в котором минимально допустимый размер листового узла дерева квадрантов принимается через SPS.Embodiment 6: The decoding method according to Embodiment 5, in which the minimum allowable leaf node size of the quadtree is received via the SPS.

Вариант 7 осуществления: способ кодирования для кодирования блока путем разделения блока в соответствии со способом разделения любого из вариантов осуществления с 1 по 4.Embodiment 7: An encoding method for encoding a block by splitting a block according to the splitting method of any of Embodiments 1 to 4.

Вариант 8 осуществления: способ кодирования по варианту 7 осуществления, в котором минимально допустимый размер листового узла дерева квадрантов передается через SPS.Embodiment 8: The coding method of Embodiment 7, in which the minimum allowable size of the leaf node of the quadtree is transmitted via the SPS.

Вариант 9 осуществления: устройство декодирования, содержащее логическую схему, выполненную с возможностью реализации любого из способов по вариантам 5 или 6 осуществления.Embodiment 9: A decoding device comprising a logic circuit capable of implementing any of the methods of Embodiments 5 or 6.

Вариант 10 осуществления: устройство кодирования, содержащее логическую схему, выполненную с возможностью реализации любого из способов по вариантам 7 или 8 осуществления.Embodiment 10: An encoding device comprising a logic circuit configured to implement any of the methods of Embodiments 7 or 8.

Вариант 11 осуществления: энергонезависимый носитель данных для хранения инструкций, вызывающих, при исполнении процессором, выполнение, процессором, способа по любому из вариантов 1-8 осуществления.Embodiment 11: A non-volatile storage medium for storing instructions causing, when executed by the processor, execution, by the processor, of the method of any one of Embodiments 1-8.

В одном или более примерах описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на машиночитаемом носителе и выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающему в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода или структур данных для реализации способов, описанных в настоящем изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель.In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware processing unit. The computer-readable medium may include a computer-readable medium that corresponds to a tangible medium, such as a data medium, or a communication medium, including any medium that facilitates the transfer of a computer program from one place to another, such as according to a communication protocol. Thus, computer-readable media can typically correspond to (1) tangible computer-readable storage media that are non-volatile, or (2) communication media such as a signal or carrier wave. Storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, or data structures for implementing the methods described in the present invention. The computer program product may include a computer readable medium.

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

Инструкции могут выполняться одним или более процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые логические матрицы (FPGA) или другие эквивалентные интегрированные или дискретная логическая схема. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных здесь способов. Дополнительно, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Кроме того, способы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structure suitable for implementing the methods described herein. Additionally, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured to encode and decode or contained in a combined codec. In addition, the methods may be fully implemented in one or more circuits or logic elements.

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

Устройство содержит элемент памяти; и элемент процессора, связанный с элементом памяти и выполненный с возможностью определять, является ли текущий блок изображения граничным блоком, определять, когда текущий блок является граничным блоком, определять, превышает ли размер текущего блока минимально допустимый размер (MinQTSize) листового узла дерева квадрантов (QT) и применять, когда размер текущего блока не превышает MinQTSize, принудительное разделение двоичного дерева (BT) к текущему блоку.The device contains a memory element; and a processor element associated with the memory element and configured to determine whether the current image block is a boundary box, determine when the current block is a boundary box, determine whether the size of the current block exceeds the minimum allowable size (MinQTSize) of the quadtree leaf node (QT ) and apply, when the size of the current block does not exceed MinQTSize, force binary tree splitting (BT) to the current block.

Хотя в настоящем изобретении представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах без отступления от сущности или объема настоящего изобретения. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и намерение не ограничиваться приведенными здесь деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.Although the present invention presents several embodiments, it should be understood that the disclosed systems and methods can be embodied in many other specific forms without departing from the essence or scope of the present invention. The present examples are to be considered illustrative and not restrictive, and the intention is not to be limited by the details given here. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.

Дополнительно, способы, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как отдельные могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами без выхода за рамки настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений, замен и переделок могут быть установлены специалистом в данной области техники и могут быть сделаны без отступления от сущности и объема настоящего изобретения.Additionally, the methods, systems, subsystems, and methods described and illustrated in various embodiments as separate entities may be combined or integrated with other systems, modules, technologies, or methods without departing from the scope of the present invention. Other elements shown or discussed as related or directly connected or interacting with each other may be indirectly connected or interact through some interface, device or intermediate component, electrically, mechanically or otherwise. Other examples of changes, substitutions and alterations can be established by a person skilled in the art and can be made without departing from the essence and scope of the present invention.

Определения сокращений и глоссарийAbbreviations definitions and glossary

HEVC - высокоэффективное кодирование видеоHEVC - High Efficiency Video Coding

VVC - универсальное кодирование видеоVVC - Universal Video Coding

VTM - VVC тестовая модельVTM - VVC test model

JEM - модель совместного исследованияJEM - collaborative research model

CTU - блок дерева кодированияCTU - coding tree block

CU - блок кодированияCU - coding unit

BT - двоичное деревоBT - binary tree

TT - тернарное деревоTT - ternary tree

QT - дерево квадратов или четвертичное деревоQT - square tree or quaternary tree

ABT - асимметричное BTABT - asymmetric BT

МТТ - многотипное деревоMTT - multitype tree

AMP - асимметричный разделAMP - asymmetric section

SH - заголовок сегментаSH - segment header

SPS - набор параметров последовательностиSPS - Sequence Parameter Set

PPS - набор параметров изображенияPPS - Image Parameter Set

CE - основной экспериментCE - main experiment

SubCE – подосновной эксперимент (часть основного эксперимента)SubCE - sub-main experiment (part of the main experiment)

Claims (21)

1. Способ разделения, содержащий этапы, на которых:1. A separation method, comprising the steps of: определяют, является ли текущий блок изображения граничным блоком и превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; иdetermining whether the current image block is a boundary block and whether the size of the current block exceeds the minimum allowable size of the leaf node of the quadtree; and применяют, когда текущий блок является граничным блоком и размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов (MinQTSize), принудительное разделение двоичного дерева (BT) к текущему блоку.applied when the current block is a boundary block and the size of the current block does not exceed the minimum allowable quadtree leaf node size (MinQTSize), forced binary tree splitting (BT) to the current block. 2. Способ разделения по п.1, в котором этап принудительного разделения двоичного дерева представляет собой рекурсивное горизонтальное принудительное двоичное разделение, когда текущий блок находится на нижней границе изображения, или рекурсивное вертикальное принудительное граничное разделение, когда текущий блок расположен на правой границе изображения.2. The splitting method according to claim 1, wherein the step of forcing binary tree splitting is a recursive horizontal forced binary splitting when the current block is at the bottom border of the image, or a recursive vertical forced border splitting when the current block is located at the right border of the image. 3. Способ разделения по п.1 или 2, в котором этап принудительного разделения двоичного дерева продолжается, пока блок листового узла не окажется в пределах изображения.3. The partitioning method according to claim 1 or 2, wherein the step of forcibly splitting the binary tree continues until the leaf node block is within the image. 4. Способ разделения по п.1 или 2, в котором этап принудительного двоичного разделения содержит подэтапы, на которых:4. The splitting method according to claim 1 or 2, wherein the step of forcing binary splitting comprises sub-steps of: выполняют рекурсивное разделение текущего блока посредством горизонтального принудительного граничного разделения, пока подразделение текущего блока не окажется на нижней границе изображения; иperforming a recursive division of the current block through a horizontal forced border division until the division of the current block is at the bottom border of the image; and выполняют рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения, пока листовой узел полностью не окажется на правой границе изображения.performing recursive subdivision splitting by vertically forced edge splitting until the leaf node is completely on the right border of the image. 5. Способ разделения по п.1 или 2, в котором этап принудительного разделения BT содержит подэтапы, на которых:5. The splitting method according to claim 1 or 2, wherein the step of forcing BT splitting comprises sub-steps of: выполняют рекурсивное разделение текущего блока посредством принудительного вертикального граничного разделения, пока подразделение текущего блока не окажется на нижней границе; иperforming a recursive division of the current block by forcing a vertical boundary division until the division of the current block is at the bottom boundary; and выполняют рекурсивное разделение подразделения посредством горизонтального принудительного граничного разделения, пока листовой узел не окажется полностью на правой границе.performing a recursive subdivision split by horizontally forced boundary splitting until the leaf node is completely on the right boundary. 6. Способ разделения по п.1 или 2, дополнительно содержащий этап, на котором применяют минимально допустимый размер листового узла дерева квадрантов для управления разделением неграничного блока.6. The partitioning method according to claim 1 or 2, further comprising applying a minimum allowable quadtree leaf node size to control partitioning of the non-boundary block. 7. Способ разделения по п.1 или 2, в котором граничный блок представляет собой блок, который не полностью находится внутри изображения и не полностью вне изображения.7. The partitioning method according to claim 1 or 2, wherein the boundary block is a block that is not completely inside the image and not completely outside the image. 8. Способ декодирования для декодирования блока посредством разделения блока согласно способу разделения по п.1 или 2.8. A decoding method for decoding a block by splitting the block according to the splitting method of claim 1 or 2. 9. Способ декодирования по п.8, дополнительно содержащий этап, на котором принимают минимально допустимый размер листового узла дерева квадрантов посредством набора параметров последовательности (SPS).9. The decoding method of claim 8, further comprising receiving a minimum allowable leaf node size of the quadtree via a sequence parameter set (SPS). 10. Способ кодирования для кодирования блока посредством разделения блока согласно способу разделения по п.1 или 2.10. An encoding method for encoding a block by splitting the block according to the splitting method according to claim 1 or 2. 11. Способ кодирования по п.10, дополнительно содержащий этап, на котором передают минимально допустимый размер листового узла дерева квадрантов посредством набора параметров последовательности (SPS).11. The encoding method of claim 10, further comprising transmitting a minimum allowable leaf node size of the quadtree via a sequence parameter set (SPS). 12. Устройство декодирования, содержащее логическую схему, выполненную с возможностью декодирования блока посредством разделения блока согласно способу разделения по п.1 или 2.12. A decoding device, comprising a logic circuit configured to decode the block by splitting the block according to the splitting method according to claim 1 or 2. 13. Устройство декодирования по п.12, в котором логическая схема дополнительно выполнена с возможностью приема минимально допустимого размера листового узла дерева квадрантов посредством набора параметров последовательности (SPS).13. The decoder of claim 12, wherein the logic circuitry is further configured to receive a minimum allowable leaf node size of the quadtree via a sequence parameter set (SPS). 14. Устройство кодирования, содержащее логическую схему, выполненную с возможностью кодирования блока посредством разделения блока согласно способу разделения по п.1 или 2.14. An encoding device, comprising a logic circuit configured to encode a block by dividing the block according to the dividing method according to claim 1 or 2. 15. Энергонезависимый носитель данных для хранения инструкций, вызывающих, при исполнении процессором, выполнение, процессором, способа по п.1 или 2.15. A non-volatile storage medium for storing instructions causing, when executed by the processor, the execution, by the processor, of the method of claim 1 or 2.
RU2021103246A 2018-07-12 2019-06-27 Boundary block separation in video encoding RU2786746C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/697,274 2018-07-12
US62/818,996 2019-03-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2022132530A Division RU2022132530A (en) 2018-07-12 2019-06-27 SEPARATION OF BOUNDARY BLOCKS IN VIDEO CODING

Publications (2)

Publication Number Publication Date
RU2021103246A RU2021103246A (en) 2022-08-15
RU2786746C2 true RU2786746C2 (en) 2022-12-26

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8761245B2 (en) * 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
WO2017157249A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Method and apparatus of video data processing with restricted block size in video coding
US20170347128A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Binary ternary quad tree partitioning for jvet
WO2018038492A1 (en) * 2016-08-21 2018-03-01 엘지전자(주) Image coding/decoding method and apparatus therefor
JP2018085660A (en) * 2016-11-25 2018-05-31 キヤノン株式会社 Image encoder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8761245B2 (en) * 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
WO2017157249A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Method and apparatus of video data processing with restricted block size in video coding
US20170347128A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Binary ternary quad tree partitioning for jvet
WO2018038492A1 (en) * 2016-08-21 2018-03-01 엘지전자(주) Image coding/decoding method and apparatus therefor
JP2018085660A (en) * 2016-11-25 2018-05-31 キヤノン株式会社 Image encoder

Similar Documents

Publication Publication Date Title
CN110622508B (en) Bidirectional prediction method and device in video compression
US20190020895A1 (en) Decoder Side Motion Vector Refinement in Video Coding
WO2018184542A1 (en) Processing reference samples used for intra-prediction of a picture block
US20190089952A1 (en) Bidirectional Weighted Intra Prediction
WO2015057706A1 (en) Systems and methods for inter-layer rps derivation based on sub-layer reference prediction dependency
JP2023052019A (en) Luma intra mode signaling
JP2024116271A (en) Boundary block partitioning in video coding
JP2023104953A (en) Transform unit partition method for video coding
RU2786746C2 (en) Boundary block separation in video encoding
RU2772813C1 (en) Video encoder, video decoder, and corresponding methods for encoding and decoding